第10章-面向对象分析

合集下载

软件工程导论第10章面向对象分析

软件工程导论第10章面向对象分析

易于理解,同时减少了代码冗余和重复,提高了开发效率和代码质量。
03
提高软件的可重用性
面向对象分析鼓励使用抽象和封装技术,使得软件组件更加模块化和可
重用,减少了重复开发的工作量,提高了软件开发的效率。
02
面向对象分析的主要步骤
问题识别
总结词
明确问题的本质和范围
详细描述
在面向对象分析中,问题识别是首要步骤,它要求对问题进行深入理解和明确, 包括确定问题的范围、目标、限制条件等,以便为后续的分析和设计工作提供 清晰的方向。
面向对象分析的优势与不足
过度抽象
面向对象分析有时会过度抽象,导致 系统过于复杂,难以理解和实现。
缺乏对系统流程的关注
面向对象分析更关注静态结构,可能 忽略系统流程和动态行为。
面向对象分析与传统分析方法的结合使用
在实际软件开发中,可以结合 面向对象分析和传统分析方法, 取长补短,提高软件开发的效
率和成功率。
05
面向对象分析与传统分析方法的 比较
传统分析方法的问题与挑战
缺乏对系统整体结构的考虑
传统分析方法往往只关注单个功能或模块,忽略了系统整体的结 构和关系。
难以处理复杂系统
对于复杂系统,传统分析方法难以有效地进行抽象和建模。
难以维护和扩展
由于缺乏整体结构和面向对象的思维,传统分析方法构建的系统往 往难以维护和扩展。
对象是指系统中具有明确边界和状态 的结构,它可以包含数据和操作,并 且具有封装性、继承性和多态性等特 征。
面向对象的基本特征
封装
封装是将对象的属性和操作封装 在一起,形成一个独立的实体, 对外隐藏内部实现细节,只通过 接口与外界交互。
继承
继承是指子类可以继承父类的属 性和方法,并且可以扩展或修改 它们,从而实现代码的重用和扩 展。

第十章 状态机图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社

第十章 状态机图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社
事件包含一个参数列表(可能为空),用于从事件的产生者向其接 收者传递信息。
对应于触发器转换,没有明确的触发器的转换成为结束转换或无触 发器转换,是在状态的内部活动执行完毕后隐式触发的。
转换——事件
能够在触发器中接收的事件有以下四种:
调用事件:调用事件表示对象接收到一个调用操作的请求。其期待的结 果是事件的接收者触发一个转换并执行相应的操作。
改变事件:改变事件的发生依赖于事件中某个表达式所表达的布尔条件。 改变事件没有参数,要一直等到条件被满足才能发生。
信号事件:信号由一个对象准确地送给另一个或一组对象。发送给一组 对象的信号可能触发每个对象的不同转换。
时间事件:时间事件的发生依赖于事件中的一个时间表达式。比如,可 以让对象进入某状态后经过一段给定的时间或到达某个绝对时间后发生 该事件。
转换——事件
stm 订单类 Unselected
click(posX, posY) [posX==x and posY==y]
Selected
(a)
SingleSelectionMode shiftKeyUp MultiSelectionMode shiftKeyDown (c)
状态机图
状态机 状态机图
状态机图的基本概念
状态机
状态机是一种行为,它说明对象在其生命周期中响应事件所经历的 状态变化序列以及对那些时间的响应。
一般情况下,一个状态机依附于一个类,用来描述这个类的实例的 状态及其转换,和对接收到的事件所做出的响应。此外,状态机也可 以依附于用例、操作、协作等元素上,描述它们的执行过程。
等待支付
[立即支付] 审核完成
[及时支付]
[超出支付时限]
审核失败
状态机图

面向对象分析方法

面向对象分析方法

面向对象分析方法面向对象分析方法是以系统的用户和目的为出发点的一种分析技术,它主要用于分析系统中的物体(对象)之间的关系,以及这些物体所具有的通用性质,以便将它们组织为一个可使用的整体系统。

在软件开发中,面向对象分析方法用于发现和描述系统中的对象,以及它们之间的关系,并将这些对象组织为可重用的模块,以便用于系统的设计和实现。

面向对象分析方法包括四个主要步骤: 1、识别对象:根据系统的用户和目的,识别系统中的对象,并确定它们之间的关系。

2、分析对象:对系统中的对象进行进一步分析,以便更好地理解它们之间的关系。

3、确定对象的功能:确定系统中的对象应该具有的功能,以及它们之间的关系应该如何实现。

4、设计对象结构:考虑到对象之间的关系,设计系统的对象结构,以便将它们组织为可重用的模块。

面向对象分析方法有助于定义和分析系统中的对象以及它们之间的关系,从而准备进行软件设计和实现。

它能够帮助开发人员更好地理解系统的用户和目的,以及系统的功能和结构,从而有效地实现软件开发过程。

首先,面向对象分析可以帮助开发人员确定和识别系统中的对象,以及它们之间的关系。

通过分析用户和目的,开发人员可以确定用户可能会使用的对象,以及这些对象之间的关系。

在确定系统中的对象之后,开发人员可以分析这些对象,以便更好地理解它们之间的关系。

其次,面向对象分析可以帮助开发人员确定系统中的对象应该具有的功能,以及它们之间的关系应该如何实现。

通过分析用户和目的,开发人员可以确定每个对象应具有的功能,以及它们之间的关系应该如何实现。

最后,面向对象分析可以帮助开发人员设计系统的对象结构,以便将它们组织为可重用的模块。

在设计对象结构时,开发人员需要考虑到对象之间的关系,以及它们应该如何被组织和重用。

总之,面向对象分析方法是一种帮助开发人员确定和分析系统中的对象以及它们之间的关系的技术,从而为软件设计和实现提供依据。

它可以帮助开发人员确定系统中的对象,以及它们应该具有的功能和结构,从而有助于软件开发过程的有效实施。

第10章 面向对象分析

第10章 面向对象分析
软件工程
第10章 面向对象分析
第10章 面向对象分析
• 面向对象软件开发技术
– 面向对象分析(OOA) – 面向对象设计(OOD) – 面向对象实现(OOP)
面向对象技术是一个有全新概念 的开发模式,其特点是:
(1)方法是对软件开发过程所有阶段进 行综合考虑而得到的; (2)从生存期的一个阶段到下一个阶段 所使用的方法与技术具有高度的连 续性;
取消交易
顾客可在按下选择键前任何一个时刻,拉动退币杆取 消交易收回硬币。
自动售货系统系统
-端1 * -端2
自动售货系统::售货
*
顾客
-端2
-端1 *
自动售货系统::供货
*
供货人
-端1 * -端2
自动售货系统::取货款
*
收银员
自动售货系统系统
-端1 *
-端2
售货
*
<<extends>>
售散装饮料
顾客
• 业务中的执行者扮演什么角色?这些角色可以 看作类,如客户、操作员等。
(2)筛选对象类,确定最终对象类 我们可以用以下选择特征来确定最终的对象: 1) 保留的信息:仅当必须记住有关潜在对象的 信息,系统才能运作时,则该潜在对象在分 析阶段是有用的; 2) 需要的服务:潜在对象必须拥有一组可标识 的操作,它们可以按某种方式修改对象属性 的值; 3) 多个属性:在分析阶段,关注点应该是“较 大的”信息(仅具有单个属性的对象在设计 时可能有用,但在分析阶段,最好把它表示 为另一对象的属性);
定义服务
• 对象=属性+操作(服务) • 因为在动态模型和功能模型中更明确地描 述了每个类中应该提供哪些服务,所以在 建立了这两个模型后才能最终确定类中应 有的服务。 • 事实上,在确定类中应有的服务时,既要 考虑该类实体的常规行为,又要考虑在本 系统中特殊需要的服务。

面向对象 分析方法

面向对象 分析方法

面向对象分析方法面向对象分析方法(Object-Oriented Analysis, OOA)是一种软件开发中的分析方法,它主要是从对象的角度对系统进行分析,以便确定系统的需求,并定义系统中的对象和关系。

首先,面向对象分析方法强调对象的概念。

对象有状态,行为和标识,面向对象的分析方法的主要目的是理解系统对象。

分析中的对象通常是从现实世界中抽象的概念。

它们可以是具有属性以及可以执行的操作的任何事物,从人、动物、物品到商业概念和过程。

其次,面向对象分析方法强调抽象的重要性。

抽象是利用模型对信息进行缩减和简化的过程,以使得更容易理解精华、关键概念、规则和限制等. 面向对象分析方法通常以业务范畴对象的类的描述的概念模型开展。

应用程序的最终设计不同于一个概念模型,但它通常从这个带着剖析方法的模型开始。

接下来,面向对象分析方法规范化的技术是UML,即Unified Modeling Language。

UML是指一个由许多图表构成的项目和一些相关规范。

它是一个图形化的建模语言,可用于实现面向对象的分析、设计和构造。

UML 图表类型包括类图、用例图、对象图、时序图、通信图等, 主要用于完成对象指导的概念和设计。

最后,面向对象分析方法是软件开发过程中各阶段之间的桥梁。

它的主要目的是促进清晰的沟通,促进团队合作,并确保开发人员在开发那些与系统需求相符的代码时有一致的理解。

此外,它帮助开发人员对需求进行分析,确保大家共享对系统的理解。

这使得开发团队更加有效和掌握问题的机会。

综上所述,面向对象分析方法是一种强调对象概念和抽象的分析方法,它的最终目标是为确保开发人员有一致的理解并开发切合需求的代码。

这个方法在软件开发生命周期的各个阶段起到一个支撑作用,并且通过UML 规范化技术来完成。

对于当前的软件开发,需要理解和应用面向对象分析方法来提高开发的工作效率和程序的质量。

软件工程ppt课件 第10章 面向对象分析-文档资料

软件工程ppt课件 第10章 面向对象分析-文档资料

拥有银行账户的储户有权申请领取现金兑换卡。
使用现金兑换卡可以通过ATM访问自己的账户。 目前仅限于用现金兑换卡在ATM上提取现金(即 取款),或查询有关自己账户的信息(例如,某 个指定账户上的余额)。
将来可能还要求使用ATM办理转账、存款等事务。
所谓现金兑换卡就是一张特制的磁卡,上面有分行 代码和卡号。 分行代码惟一标识总行下属的一个分行,卡号确定 了这张卡可以访问哪些账户。通常,一张卡可以访 问储户的若干个账户,但是不一定能访问这个储户 的全部账户。
§1. 基本过程 Object model 由
主题 类与对象 结构 属性 方法
1+
五个层次组成
(Coad&Yourdon, 1991),相当于把
1+
五张透明胶片
(transparencies)
叠在一起,每 一层显示更多 的细节。
主题是指导读者(包括系统分析员、软件设计人员、 领域专家、管理人员、用户等 )理解大型、复杂 模型的一种机制。也就是说,通过划分主题把一 个大型、复杂的对象模型分解成几个不同的概念 范畴。
第3步:完善
§3.建立 Object Model
① 正名:分行提供分行计算机和柜员终端 = 分行拥有分行计算机 + 分行拥有柜员终端 ② 分解:适当分解前面确定的class-&-objects ,使 其适用于不同的关联 事务 = 远程事务 + 柜员事务 ③补充 柜员输入柜员事务 在ATM上输入远程事务 柜员事务输进柜员终端 远程事务由现金兑换卡授权
1+ ATM
输入
1+ 1+ 远程事务 1+
修改 授权
现金兑换卡 1. 总 行 2. 分 行 3. ATM

第10章面向对象分析全解

第10章面向对象分析全解

第10章面向对象分析10.1面向对象分析的基本过程不论采用哪种软件工程方法开发软件,需求分析的主要工作都是:理解需求、表达需求和验证需求,下面的图概括地表示了参照当前系统建立目标系统的过程。

图:参照当前系统建立目标系统面向对象分析(Object-Oriented Analysis,简称OOA)的关键就是识别出对象与类,并分析它们之间的关系,最终建立对象模型、动态模型和功能模型。

10.1.1 概述系统分析员要善于学习、勇于实践,更重要的是一切从实际出发。

[[注注]]“OOA 就是抽取和整理用户需求并建立问题域精精确确模模型型的过程。

”(P231)——这在一开始能做到吗?——扯蛋10.1.2 3个子模型与5个层次面向对象建模需建立包含系统的三个要素:1)静态结构(对象模型)、2)交互次序(动态模型)、3)数据交换(功能模型)。

建立系统模型的过程是一个迭代(iterations )式的自顶向下的求精过程。

对于一个大型复杂系统来说对对象象模模型型一般由下述5个层次组成:图10.2 复杂问题的对象模型的5个层次其中主题层是指从一个更高(高于“类”)的抽象层次来描述对象模型(即从一个相当高的层次上描述总体模型),通过划分“主题”把一个复杂系统的对象模型分解成几个不同的概念范畴。

其实上述5个层次就是OOA中建立对象模型的5项主要工作:找出类和对象,识别结构(类或对象之间的关系),识别主题、定义属性、定义服务。

我们知道动态模型和功能模型中都包含了对象模型中的操作,因此人们在定义每个类中的服务前,往往先建立起动态模型和功能模型,这样说来OOA大体上可按下列顺序进行:(1)确定类和对象(2)确定关联(3)划分主题(4)定义属性(5)确定继承关系(6)建立动态模型(7)建立功能模型(8)定义服务需要注意地是在这里我们根本不强调顺序,更不是谈什么步骤。

10.2需求陈述需求陈述的主要任务是准确地回答“系统必须做什么?”,而不是“系统应该怎么做?”10.2.1书写要点10.2.2例子我们用“ATM系统”(ATM是Automatic Teller Machine的缩写,意即自动柜员机)的开发作为OOA&OOD的实例。

第10章面向对象分析(OOA)

第10章面向对象分析(OOA)

建立模型:
系统分析员应该深入理解用户需求,抽象出目标系 统的本质属性,并用模型准确地表示出来
分析模型应该成为对问题的精确而又简洁的表示 后继的设计阶段将以分析模型为基础
通过建立分析模型能够纠正在开发早期对问题域的 误解
建模的过程中,系统分析员必须认真向领域专家学 习
注意结果的可重用性
候选类:
银行,自动取款机(ATM),系统,中央计算机,分 行计算机,柜员终端,网络,总行,分行,软件, 成本,市,街道,营业厅,储蓄所,柜员,储户, 现金,支票,账户,事务,现金兑换卡,余额,磁 卡,分行代码,卡号,用户,副本,信息,密码, 类型,取款额,账单,访问
根据领域知识或常识进一步把隐含的类与对象 提取出来
当用户把现金兑换卡插入ATM之后,ATM就与 用户交互,以获取有关这次事务的信息,并与 中央计算机交换关于事务的信息。首先,ATM 要求用户输入密码,接下来ATM把从这张卡上 读到的信息以及用户输入的密码传给中央计算 机,请求中央计算机核对这些信息并处理这次 事务。中央计算机根据卡上的分行代码确定这 次事务与分行的对应关系,并且委托相应的分 行计算机验证用户密码。如果用户输入的密码 是正确的,ATM就要求用户选择事务类型(取款、 查询等)。当用户选择取款时,ATM请求用户输 入取款额。最后,ATM从现金出口吐出现金, 并且打印出账单交给用户。
需求陈述的内容包括:
问题范围 功能需求 性能需求 应用环境及假设条件等
应该阐明“做什么”而不是“怎样做” 应该描述用户的需求而不是提出解决问题的方法 应该指出哪些是系统必要的性质,哪些是任选的 需求陈述可简可繁、要尽力做到语法正确 最好是分析员和系统用户共同完成
10.2.2 例子
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对这两种模型的研究,能够更正确更合 理地确定每个类应该提供哪些服务。
10.1.2 3个子模型与5个层次
在概念上可以认为,面向对象分析大体上按照 下列顺序进行:
Step1: 寻找类与对象 Step2: 识别结构 Step3: 识别主题 Step4: 定义属性 Step5: 建立动态模型 Step6: 建立功能模型 Step7: 定义服务。
10.3.1 确定类与对象
综上所述,在ATM系统的例子中,经过初步筛选, 剩下下列类与对象:ATM、中央计算机、分行计 算机、柜员终端、总行、分行、柜员、储户、 账户、事务、现金兑换卡。
10.3.1 确定类与对象
两个或多个对象之间的相互依赖、相互作用的 关系就是关联。 分析确定关联,能促使分析员考虑问题域的边 缘情况,有助于发现那些尚未被发现的类与对 象。 在分析确定关联的过程中,不必花过多的精力 去区分关联和聚集。
10.2.2 例子
10.2.2 例子
银行柜员使用柜员终端处理储户提交的储蓄事 务。储户可以用现金或支票向自己拥有的某个 账户内存款或开新账户。 储户也可以从自己的账户中取款。
通常,一个储户可能拥有多个账户。柜员负责 把储户提交的存款或取款事务输进柜员终端, 接收储户交来的现金或支票,或付给储户现金。 柜员终端与相应的分行计算机通信,分行计算 机具体处理针对某个账户的事务并且维护账户。
第10章 面向对象分析
10.1 面向对象分析的基本过程 10.2 需求陈述 10.3 建立对象模型 10.4 建立动态模型 10.5 建立功能模型 10.6 定义服务 10.7 小结
OOA
面向对象分析(OOA)的关键是识别出问题域内 的类与对象,并分析它们相互间的关系,最终 建立起问题域的简洁、精确、可理解的正确模 型。 在用面向对象观点建立起的3种模型中,对象 模型是最基本、最重要、最核心的。
10.2.2 例子
某银行拟开发一个自动取款机系统,它是一个 由自动取款机、中央计算机、分行计算机及柜 员终端组成的网络系统。 ATM和中央计算机由总行投资购买。总行拥有多 台ATM,分别设在全市各主要街道上。分行负责 提供分行计算机和柜员终端。 柜员终端设在分行营业厅及分行下属的各个储 蓄所内。该系统的软件开发成本由各个分行分 摊。
10.3.1 确定类与对象
(4) 属性 在需求陈述中有些名词实际上描述的是其他对 象的属性。 在ATM系统的例子中,“现金”、“支票”、 “取款额”、“账单”、“余额”、“分行代 码”、“卡号”、“密码”、“类型”等,实 际上都应该作为属性对待。
10.3.1 确定类与对象
(5) 操作 在需求陈述中有时可能使用一些既可作为名词, 又可作为动词的词。
例如,谈到电话时通常把“拨号”当作动词,当 构造电话模型时确实应该把它作为一个操作,而 不是一个类。但是,在开发电话的自动记账系统 时,“拨号”需要有自己的属性(例如日期、时 间、受话地点等),因此应该把它作为一个类。
10.3.1 确定类与对象
(6) 实现 在分析阶段不应该过早地考虑怎样实现目标系 统。因此,应该去掉和实现有关的候选的类与 对象。 在ATM系统的例子中,“事务日志”无非是对一 系列事务的记录,它的确切表示方式是面向对 象设计的议题;“通信链路”在逻辑上是一种 联系,在系统实现时它是关联类的物理实现。 总之,应该暂时去掉 “事务日志”和“通信链 路”这两个类,在设计或实现时再考虑它们。
10.3.1 确定类与对象
1. 初步确定关联 需求陈述中的描述性动词或动词词组,通常表 示关联。 以ATM系统为例,经过分析初步确定出下列关联:
10.3.1 确定类与对象
(1) 直接提取动词短语得出的关联
10.3.1 确定类与对象
(2) 无关 现实世界中存在许多对象,不能把它们都纳入 到系统中去,仅需要把与本问题密切相关的类 与对象放进目标系统中。 以ATM系统为例,这个系统并不处理分摊软件开 发成本的问题,而且ATM和柜员终端放置的地点 与本软件的关系也不大。因此,应该去掉候选 类“成本”、“市”、“街道”、“营业厅” 和“储蓄所”。
分析员还应该根据领域知识或常识进一步把隐 含的类与对象提取出来。例如,在ATM系统的需 求陈述中提取“通信链路”和“事务日志”。
10.3.1 确定类与对象
2. 筛选出正确的类与对象 非正式分析仅仅找到一些候选的类与对象,下 面应该严格考察每个候选对象,从中去掉不正 确的或不必要的,仅保留确实应该记录其信息 或需要其提供服务的那些对象。 筛选时主要依据下列标准,删除不正确或不必 要的类与对象:
复杂问题的对象模型通常由5个层次组成: 主 题层、类与对象层、结构层、属性层和服务层。
10.1.2 3个子模型与5个层次
主题是指导读者(包括系统分析员、软件设计 人员、领域专家、管理人员、用户等,泛指所 有需要读懂系统模型的人)理解大型、复杂模型 的一种机制。
通过划分主题把一个大型、复杂的对象模型分 解成几个不同的概念范畴。
10.1.1 概述
通过分析,可以发现和改正原始陈述中的二义
性和不一致性,补充遗漏的内容,从而使需求陈
述更完整、更准确。
迭代
因此,需求陈述不是一成不变的,它是细化和
完善实际需求的基础。
快速建立的原型系统,有助于分析员和用户之
间的交流和理解,从而能更正确地提炼出用户的
需求。
分析模
接着,系统分析员深入理解用户型需求,抽象出
每张现金兑换卡仅属于一个储户所有,但是, 同一张卡可能有多个副本,因此,必须考虑同 时在若干台ATM上使用同样的现金兑换卡的可能 性。也就是说,系统应该能够处理并发的访问。
10.2.2 例子
当用户把现金兑换卡插入ATM之后,ATM就与用户交互, 以获取有关这次事务的信息,并与中央计算机交换关 于事务的信息。
不同问题中这3个子模型的重要程度也不同。 解决任何一个问题,都需要从客观世界实体及 实体间相互关系抽象出极有价值的对象模型;
➢ 当问题涉及交互作用和时序时,动态模型是重要的; ➢ 解决运算量很大的问题,则涉及重要的功能模型。 ➢ 动态模型和功能模型中都包含了对象模型中的操作(即服
务或方法)。
10.1.2 3个子模型与5个层次
首先,ATM要求用户输入密码,接下来ATM把从这张卡上读到的 信息以及用户输入的密码传给中央计算机,请求中央计算机核 对这些信息并处理这次事务。 中央计算机根据卡上的分行代码确定这次事务与分行的对应关 系,并且委托相应的分行计算机验证用户密码。如果用户输入 的密码是正确的,ATM就要求用户选择事务类型(取款、查询等)。 当用户选择取款时,ATM请求用户输入取款额。最后,ATM从现 金出口吐出现金,并且打印出账单交给用户。
10.1.2 3个子模型与5个层次
5个层次对应着在面向对象分析过程中建立 对象模型的5项主要活动:
① 找出类与对象; ② 识别结构; ③ 识别主题; ④ 定义属性; ⑤ 定义服务。
在进行面向对象分析时并不需要严格遵守 自顶向下的原则。
10.1.2 3个子模型与5个层次
在完整地定义每个类中的服务之前,需 要先建立起动态模型和功能模型,通过
目标系统的本质属性,并用模型准确地表示出来。
10.1.1 概述
建模过程中分类工作往往有很大难度。 它必须反映出一定深度的领域知识,必须有领 域专家的密切配合才能完成。 重用技术是经常使用的。 面向对象建模得到的模型即静态结构(对象模 型)、交互次序(动态模型)和数据变换(功能模 型)。
10.1.2 3ቤተ መጻሕፍቲ ባይዱ子模型与5个层次
10.3.1 确定类与对象
另一种非正式分析方法以用自然语言书写的需 求陈述为依据。
把陈述中的名词作为类与对象的候选者 把形容词作为确定属性的线索 把动词作为服务的候选者。
10.3.1 确定类与对象
银行,自动取款机(ATM),系统,中央计算机, 分行计算机,柜员终端,网络,总行,分行, 软件,成本,市,街道,营业厅,储蓄所,柜 员,储户,现金,支票,账户,事务,现金兑 换卡,余额,磁卡,分行代码,卡号,用户, 副本,信息,密码,类型,取款额,账单,访 问。
10.3.1 确定类与对象
(3) 笼统 在需求陈述中常常使用一些笼统的、泛指的名词, 要么系统无须记忆有关它们的信息,要么在需求陈 述中有更明确更具体的名词对应它们所暗示的事务。
以ATM系统为例,“银行”实际指总行或分行, “访问”在这里实际指事务,“信息”的具体内容 在需求陈述中随后就指明了。此外还有一些笼统含 糊的名词。总之,在本例中应该去掉“银行”、 “网络”、“系统”、“软件”、“信息”、“访 问”等候选类。
主题
10.2 需求陈述
10.2.1 书写要点
需求陈述的内容包括:问题范围,功能需求,性 能需求,应用环境及假设条件等。
它描述用户的需求而不是提出解决问题的方法。
应该指出哪些是系统必要的,哪些是任选的。 应该避免对设计策略施加约束,也不要描述系统 的内部结构。 对系统性能及系统与外界环境交互协议的描述, 是合适的需求。 从实际出发,迭代完成。
(1) 可感知的物理实体,例如,飞机、汽车、书、房 屋等。 (2) 人或组织的角色,例如,医生、教师、雇主、雇 员、计算机系、财务处等。 (3) 应该记忆的事件,例如,飞行、演出、访问、交 通事故等。 (4) 两个或多个对象的相互作用,通常具有交易或接 触的性质,例如,购买、纳税、结婚等。 (5) 需要说明的概念,例如,政策、保险政策、版权 法等。
10.3.1 确定类与对象
(1) 冗余 如果两个类表达了同样的信息,则应该保留在 此问题域中最富于描述力的名称。 以ATM系统为例,上面用非正式分析法得出了34 个候选的类,其中储户与用户,现金兑换卡与 磁卡及副本分别描述了相同的两类信息,因此, 应该去掉“用户”、“磁卡”、“副本”等冗 余的类,仅保留“储户”和“现金兑换卡”这 两个类。
10.1 面向对象分析的基本过程
相关文档
最新文档