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

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

第7章面向对象分析•7.1.1 面向对象分析过程面向对象的分析主要以用例模型为基础。
开发人员在收集到的原始需求的基础上,通过构建用例模型从而得到系统的需求。
进而再通过对用例模型的完善,使得需求得到改善。
所谓用例是指系统中的一个功能单元,可以描述为参与者与系统之间的一次交互。
用例常被用来收集用户的需求。
①首先要找到系统的操作者,即用例的参与者。
参与者是在系统之外,透过系统边界与系统进行有意义交互的任何事物。
②可以把参与者执行的每一个系统功能都看作一个用例。
可以说,用例描述了系统的功能,涉及系统为了实现一个功能目标而关联的参与者、对象和行为。
③确定了系统的所有用例之后,就可以开始识别目标系统中的对象和类了。
把具有相似属性和操作的对象定义为一个类。
边界类示意图控制类示意图目标系统的类可以划分为边界类、控制类和实体类。
Ø边界类代表了系统及其操参与者的边界,描述参与者与系统之间的交互。
它更加关注系统的职责,而不是实现职责的具体细节。
通常,界面控制类、系统和设备接口类都属于边界类。
Ø控制类代表了系统的逻辑控制,描述一个用例所具有的事件流的控制行为,实现对用例行为的封装。
通常,可以为每个用例定义一个控制类。
Ø实体类描述了系统中必须存储的信息及相关的行为,通常对应于现实世界中的事物。
确定了系统的类和对象之后,就可以分析类之间的关系了。
对象或类之间的关系有依赖、关联、聚合、组合、泛化和实现。
①依赖关系是“非结构化”的和短暂的关系,表明某个对象会影响另外一个对象的行为或服务。
②关联关系是“结构化”的关系,描述对象之间的连接。
③聚合关系和组合关系是特殊的关联关系,它们强调整体和部分之间的从属性,组合是聚合的一种形式,组合关系对应的整体和部分具有很强的归属关系和一致的生命期。
比如,计算机和显示器就属于聚合关系。
④泛化关系与类间的继承类似。
⑤实现关系是针对类与接口的关系。
明确了对象、类和类之间的层次关系之后,需要进一步识别出对象之间的动态交互行为,即系统响应外部事件或操作的工作过程。
软件工程面向对象

面向对象软件工程面向对象方法学的提出•结构化软件工程方法学•面向过程、以算法为核心、把数据和过程作为相对独立的部分•对早期只重视编程、不重视用户需求和开发过程,只重视代码、不重视文档来说,是一个巨大的进步•给软件产业带来了巨大的进步,部分缓解了软件危机•在许多中小型软件项目中获得了很大的成功•但是,它存在着明显的缺点•当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功面向对象方法学概述•面向对象方法学的出发点和原则•尽可能模仿人类习惯的思维方式,使软件开发的方法与过程尽可能接近人类认识世界、解决问题的方法与过程•面向对象方法的特点•与人类习惯的思维方法一致:按照人们习惯的思维方式建立模型,模拟客观世界•稳定性好:实体是相对稳定的,以对象为中心构建的软件系统必然是相对稳定的•可重用性好:对象类提供了比较理想的模块化机制和可重用机制•易于开发大型软件:把大型产品看作一系列本质上相互独立的小产品来处理•可维护性好:容易理解、容易修改、易于测试四个要点:对象+类+继承+通信•面向对象软件是由对象组成•软件中的任何元素都是对象•对象是把静态属性的数据和动态属性的操作封装在一起而形成的统一体•复杂对象由简单对象组成•把所有对象都划分成若干类•每个类都定义了一组数据和方法(即施加于对象的操作);•按照子类与父类的关系,把若干个对象类组成一个层次结构的系统(即继承);•对象彼此之间仅能通过传递消息相互联系(对象的私有信息都被封装在对象类中)。
Coad和Yourdon给出了一个定义:面向对象=对象+类+继承+通信基本概念(1)•类(Class)•是对具有相同属性和行为的一(多)个对象的描述•是一个支持继承的抽象数据类型•实例(Instance)•就是由某个特定的类所描述的一个具体的对象•消息(Message)•是要求某个对象执行类中所定义的某个操作的规格说明•其组成为:接收消息的对象、消息名和变元•方法(Method)•就是对象所能执行的操作(类中定义的服务)•属性(Attribute)•就是类中所定义的数据,是对客观世界实体所具有的性质的抽象基本概念(2)•封装•是把数据和实现操作的代码集中起来放在对象内部,不能从外部进行访问和修改。
(完整版)软件工程 第五章 面向对象的需求分析

第五章面向对象的需求分析面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。
它包含面向对象风格的图形语言机制和用于指导需求分析的面向对象方法学。
面向对象的思想最初起源于 20世纪 60年代中期的仿真程序设计语言Simula67。
20世纪80年代初出现的Smalltalk 语言及其程序设计环境对面向对象技术的推广应用起到了显著的促进作用。
20世纪90年代中后期诞生并迅速成熟的UML(Unified Modeling Language,统一建模语言)是面向对象技术发展的一个重要里程碑。
UML 统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。
本章首先介绍面向对象的主要概念和思想。
在概述了UML的全貌之后,以“家庭保安系统”为实例,介绍与需求分析相关的部分 UML语言机制以及基于UML的面向对象的需求分析方法和过程。
第一节面向对象的概念与思想一、面向对象的概念关于“面向对象”,有许多不同的看法。
Coad和 Yourdon给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。
如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。
一个面向对象的程序的每一成分应是对象,计算是通过新的对象的建立和对象之间的消息通信来执行的。
1.对象(object)一般意义来讲,对象是现实世界中存在的一个事物。
可以是物理的,如一个家具或桌子,如图 5-1-1所示,可以是概念上的,如一个开发项目。
对象是构成现实世界的一个独立的单位,具有自己的静态特征(用数据描述)和动态特征(行为或具有的功能)。
例如:人的特征:姓名、性别、年龄等,行为:衣、食、住、行等。
图 5-1-1 对象的定义(1)对象、属性、操作、消息定义对象可以定义为系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。
软件工程导论_第十章

2. OOA基本任务是:
运用面向对象的方法,对问题域和系统责任 进行分析和理解,找出描述问题域及系统责任所需的 对象,定义对象的属性、服务以及它们之间的关系。 目标是建立一个符合问题域、满足用户功能需求的 OOA模型。
问题域:被开发系统的应用领域,记载现实世界中要
由这个系统进行处理的业务范围。现实世界中系统 所要解决问题的领域为“问题域”,如“银行业务” 属于“银行的问题域”。 系统责任:所开发的系统应该具备的职能。
• “小镇”是牙科诊所的地址属性,不是独 立的对象;“软件系统”和“系统”是 同义词,指的是将要开发的软件产品, 不是问题域中的对象;“就诊时间”、 “预约时间”和“约定时间”在本问题 陈述中的含义相同,指的都是预约的就 诊时间,实际上,预约的就诊时间既包 括日期又包括时间,但是,它们是预约 登记表包含的属性,不是问题域中的独 立的对象;“名字”和“姓名”是同义 词,应该作为病人和预约登记表的属性;
我们目标是尽可能全面的发现属性,宁可多费时, 也不要遗漏所需要的属性。
10.3.5 识别继承关系
继承关系的建立实质上是知识抽取过程,它应该 反映出一定深度的领域知识,因此必须有领域专家密 切配合才能完成。通常,许多归纳关系都是根据客观 世界现有的分类模式建立起来的,只要可能,就应该 使用现有的概念。
10.3 建立对象模型(类图)
1. 描述系统静态的对象模型(类图)是面向对象
的三个模型中的基本模型。 2. 它表述了系统中各个对象的类型及其间存在 的各种关系。在面向对象建模中,建立类图是最 基本的任务;建立类图也是最需要花费精力和时 间的技术活动。
3. 该模型主要关心系统中的:
①对象的结构; ②属性; ④关联; ⑤类的层次。 ③操作和方法;
《软件工程实用教程》第5_章_面向对象的需求分析

第5 章 面向對象的需求分析
5.2.2 封裝、繼承和多態
1.封裝 封裝是指把對象的外部特徵與內部實現細節分開,使 得一個對象的外部特徵對其他對象來說是可訪問的, 而它的內部細節對其他對象是隱蔽的。 對象具有封裝性的條件如下: (1) 有一個清楚的邊界,所有私有數據和操作的代碼都被 封裝在這個邊界內,從外面看不見更不能訪問; (2) 有確定的介面,這些介面描述這個對象和其他的對象 之間相互的作用; (3) 受保護的內部實現,這個實現給出了由軟體對象提供 的功能的細節,實現細節能在定義這個對象的類的外 面訪問。
第5 章面向對象的需求分析
通過在不同程度上運用抽象原則(忽略事物 之間的一些差異),可以得到較一般的類和 較特殊的類。特殊類繼承一般類的屬性和操 作,面向對象方法支持這種繼承關係的描述 與實現,從而簡化系統的構造過程及其文檔; 複雜對象可以用簡單的對象作為其構成部分 (稱為聚合); 對象之間通過消息進行通信,以實現對象之 間的動態聯繫; 通過關聯表達對象之間的靜態關係。
第5 章面向對象的需求分析
5.1.3 面向對象方法的優點 1. 與人們習慣的思維方法一致 2. 可使軟體系統結構更加穩定 3. 軟體具有更好的可複用性 4. 軟體更加便於維護與擴充
第5 章面向對象的需求分析
5.1.4 面向對象建模
用例模型:包含所有用例及其與用戶之間的關係; 對象模型:包含問題域涉及的類及其屬性和關係,其 作用是更詳細地提煉用例,將系統的行為初步分 配給提供行為的一組對象; 設計模型:將系統的靜態結構定義為子系統、類和介 面,並定義由子系統、類和介面之間的協作來實 現的用例; 實現模型:包含構件和類到構件的映射; 配置模型:定義電腦的物理節點和構件到這些節點的 映射; 測試模型:描述用於驗證用例的測試用例。
软件工程概论_8_面向对象需求分析

• 一.面向对象分析模型的组成结构 • 二.面向对象分析模型描述工具 • 三.面向对象分析的基本过程
• 四. 面向对象分析方法
• 五. 小结
一.面向对象分析模型的组成结构
数据模型
属性、操作、协作者
功能模型
类/对象 模型
对象关系模型
使用实例
对象-行为模型
行为模型
二.面向对象分析模型描述工具
1. 用例图
2.面向对象建模 (1)建模与模型 建模是将问题域的解空间定义成一种模型,以帮助系统分析 人员更好地理解问题。 模型是为了理解问题而对问题所做出的一种抽象,而且是对 问题的一种无歧义的描述。模型由一组图示符号和组织这些 符号的规则组成。利用它们来定义和描述问题域中的术语和 概念。 建模的目的主要是为了减少复杂性。 (2)面向对象模型
2) 面向对象分析的五个层次 面向对象分析由五个主要活动组成,即确定类-&-对象、识别 结构、识别主题、定义属性和定义服务(方法)。对于一个复杂 问题的面向对象的模型可用五个层次表示:类-&-对象层、结 构层,主题层、属性层和服务层,见图3.3.8。
主题层 subject level 类-&-对象层object 结构层 structure 属性层 attribute 服务层 serves
•使用具有确切含义的名词。
• 尽量使用能表示类的含义的日常用语作名字,不要使用空洞的或含 义模糊的词作名字。例如,“库房”比“房屋”或“存物场所”更确切。
•必要时用名词短语作名字。
• 为使名字的含义更准确,必要时用形容词加名词或其他形式的名词 短语作名字。例如,“最小的领土单元”、“储藏室”、“公司员工”等 都是比较恰当的名字。
签定保险单 销售统计
客户
第8章 面向对象分析-软件工程基础(第3版)-胡思康-清华大学出版社

第8章 面向对象分析
第 5 页5
面向对象分析概述
面向对象分析的3类模型
OOA模型由3类独立模型构成:功能模型、静态模型和动态模型。 ➢功能模型描述软件系统的用户交互和功能。 ➢静态模型描述软件系统中类与对象以及它们间的关系,也因也称 为对象模型。 ➢动态模型描述系统的控制结构,也称为交互模型。
第8章 面向对象分析
第 6 页6
面向对象分析概述
类
静态模型的5个层次 类-对象层
对象
Coad和Yourdon 提出,对于大型、复杂 性软件系统,需要建立 分析问题域的静态模型。 该模型由5个层次组成: 类-对象层、结构层、 属性层、服务层和主题 层。
结构层 属性层 服务层 主题层
泛化关系
关联关系
属性
对象连接
服务
消息连接
⑶ 用例描述:用文字信息详细描述用例的内容,它是对用 例的有益补充。
第8章 面向对象分析
第 8 页8
建立静态模型
➢用例模型分别从参与者和系统的角度描述用户需求, 依据用例模型导出静态模型。静态模型是面向对象建 模中最基本、最重要、最耗时的技术活动。 ➢静态建模的任务是构建问题域的概念模型,把问题 域中的实体转变为信息域的类与对象以及它们间的关 系,因此也被称为对象模型或领域模型。 ➢静态模型通过建立类图及关系来反映领域概念,而 面向对象设计也建立类图,但各阶段对类的抽象程度 不同。
第8章 面向对象分析
第 12 页12
建立动态模型
建立状态图
状态图描述的就是对象状态的转换过程。通过对对象状态 的分析,能够了解对象在系统流程中的变换,从而发现潜在的事 件和条件。
建立状态图的一般过程如下: ⑴ 了解系统的主要功能和性能,确定和它们有关的主要对象。 ⑵ 列出一个对象的生存期内的所有可能的状态。 ⑶ 确定对象状态改变时的触发条件或事件。 ⑷ 在一个对象中,选定一组与描述状态相关的行为属性和促使 改变状态的方法。 ⑸ 结合触发条件、事件、行为属性值改变的先后顺序,建立软 件系统的状态图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3)需求陈述作用:需求陈述仅仅是理解用户需求的出发点,千万不可 将此陈述当成完整、准确、有效和一成不变的文档。
单击此处编辑母版标题样 10.2.2 需求陈述书写举例 式 下图所示为自动取款机(ATM)系统(作为OO分析和OO设计实例)
单击此处编辑母版标题样
10.3 建立对象模型
式对象模型的作用:对象模型描述问题域中的“类与对象”以及它
们之间的相互关系,表示了目标系统的静态数据结构。
建立对象模型的信息来源:需求陈述、应用领域的专业知识以及 关于客观世界的常识,是建立对象模型时的主要信息来源。
单击此处编辑母版标题样 式建立对象模型的步骤:由于对象模型有5个层次。典型的工作步骤是:
动态模型和功能模型中都包含了对象模型中的操作(即服务或方法)。
单击此处编辑母版标题样 2)对象模型的5个层次:主题层、类与对象层、结构层、属性层和服务 式层,如下图所示。这5个层次按照从上到下或从抽象到具体的层面一
层比一层更细地给出了对象模型的更多细节。在概念上,这5个层次 是整个模型的5张水平切片。
分析抽取和确定问题域中的对象类; 确定对象类之间的关系(关联或结构); 对于大型复杂问题还要进一步划分出若干个主题; 确定对象类和关联类中的属性; 利用适当的继承关系进一步合并和组织类; 对类中操作需等到建立了动态模型和功能模型之后再确定。 注意:上述建立对象模型的步骤顺序是不严格限定的,因为分析建模过
图10.2 ATM系统
单击此处编辑母版标题样 式自动取款机(ATM)系统需求陈述:
某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计 算机、分行计算机及柜员终端组成的网络系统。ATM和中央计算机由总 行投资购买。总行拥有多台ATM,分别设在全市各主要街道上。分行负 责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属 的各个储蓄所内。该系统的软件开发成本由各个分行分摊。
OOA是分析用户需求,而建立问题域需求模型的过程:
1)OOA从分析用户需求陈述的文件开始:用户(代表)单方面写出需 求陈述;系统分析员配合用户共同写出需求陈述;招标方式的“标 书”作为初步的需求陈述。
2)建立和确认分析模型:系统分析员在搞清系统需求的基础上,应建 立系统的对象模型、动态模型和功能模型,从不同侧面完整、准确 地描述目标系统。
单击此处编辑母版标题样 式
经过初步筛选,ATM系统保留的类与对象为:
ATM、中央计算机、分行计算机、柜员终端、总行、分行、 柜员、储户、账户、事务、现金兑换卡。
单击此处编辑母版标题样 式10.3.2 确定关联
两个或多个对象之间的相互依赖、相互作用的关系就是关联。实际上, 关联、聚集、依赖等都可视为关联关系。 1. 初步确定关联(候选关联) 基本方法:以需求陈述中描述性动词或动词词组为纽带,确定类与对 象之间的关联关系。(语法:主语+谓语+宾语) 寻找范围:直接提取需求陈述中的动词词组;分析发现陈述中隐含的 关联;与用户及领域专家讨论获取关联。 以ATM系统为例,经过分析初步确定出下列关联:
注意:分析员应该根据领域知识或常识进一步把隐含的类与对象提取出 来。例如,ATM系统必须包含“通信链路”和“事务日志”实体,应该 补充进来。
单击此处编辑母版标题样 式2. 筛选出正确的类与对象
候选类与对象可能包括一些不正确的或不必要的类与对象,应该筛选掉, 仅保留确那些确实需要记录信息或提供服务的对象。
单击此处编辑母版标题样 式柜员终端与分行计算机通信。
柜员输入针对账户的事务。 ATM与中央计算机交换关于事务的信息。 中央计算机确定事务与分行的对应关系。 ATM读现金兑换卡。 ATM与用户交互。 ATM吐出现金。 ATM打印账单。 系统处理并发的访问。
单击此处编辑母版标题样 式 第10章 面向对象分析(OOA)
10.1 面向对象分析的基本过程 10.2 需求陈述 10.3 建立对象模型 10.4 建立动态模型 10.5 建立功能模型 10.6 定义服务
单击此处编辑母版标题样 式分析综述:OO分析的过程就是按照OO分析方法提取系统需求的过程。
OOA对应的分析过程包括: 1)理解需求:系统分析员通过与用户及领域专家的充分交流,力求完
单击此处编辑母版标题样 式当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次
事务的信息,并与中央计算机交换关于事务的信息。首先,ATM要求用 户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码 传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央 计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托 相应的分行计算机验证用户密码。如果用户输入的密码是正确的,ATM 就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请 求用户输入取款额。最后,ATM从现金出口吐出现金,并且打印出账单 交给用户。
以ATM系统为例:银行实际指总行或分行,访问在这里实际指事务,此 外还有一些笼统含糊的名词。在本例中应该去掉“银行”、“网 络”、“系统”、“软件”、“信息”、“访问”等候选类。
4)属性:把描述属性的名词应从候选类与对象中去掉。
在ATM系统的例子中,“现金”、“支票”、“取款额”、“账单”、 “余额”、“分行代码”、“卡号”、“密码”、“类型”等,实 际上都应该作为属性对待。
删除不正确或不必要的类与对象的筛选准则:
1)冗余:如果两个类表达了同样的信息,则应该保留行业规范名称。
ATM例中:储户与用户,现金兑换卡与磁卡及副本分别描述了相同的两 类信息,因此,仅保留“储户”和“现金兑换卡”这两个类,应该 去掉“用户”、“磁卡”、“副本”等冗余的类。
单击此处编辑母版标题样 式2)无关:保留与本问题密切相关的类与对象,删除与本问题无关或
单击此处编辑母版标题样 1)直接提取动词短语得出的关联 式ATM、中央计算机、分行计算机及柜员终端组成网络。
总行拥有多台ATM。 ATM设在主要街道上。 分行提供分行计算机和柜员终端。 柜员终端设在分行营业厅及储蓄所内。 分行分摊软件开发成本。 储户拥有账户。 分行计算机处理针对账户的事务。 分行计算机维护账户。
程本ห้องสมุดไป่ตู้是一个逐步深化、反复迭代的过程。
单10.3.击1 确此定类与处对象编辑母版标题样 式基本思想是:首先找出与问题空间相关的所有候选类与对象,然后从
候选类与对象中筛选掉不正确的或不必要的。 1、找出候选的类与对象 寻找类与对象的一般方法:对象是对问题空间相关实体或事物的抽象,
既可以是客观实体,也可以是抽象概念。一般划分5类: 1) 可感知的物理实体:如飞机、汽车、书、房屋等等。 2) 人或组织的角色:例医生、教师、雇主、计算机系、财务处等。 3) 应该记忆的事件:如飞行、演出、访问、交通事故等。 4) 两个或多个对象的相互作用:如购买、纳税、结婚等。 5) 需要说明的概念:如政策、保险政策、版权法等。 按照上述5类抽取和寻找系统的全部必要类和对象。
图10.1 复杂问题的对象模型的5个层次
单击此处编辑母版标题样 式 对象模型5个层次的含义:类与对象、结构(类或对象之间的关系)、
属性和服务的概念,已经在第9章介绍过。现在介绍主题的概念。
主题含义:主题是指导开发人员和用户理解大型、复杂模型的一种机 制。实际上,主题就是对对象模型所涉及的诸多类和对象按照问题空 间的组成范围(方面)进行划分和归类。
单击此处编辑母版标题样 式5)操作:在需求陈述中既可作为名词,又可作为动词的词,应该慎重
考虑它们在本问题中的含义,以便正确决定他们作为类还是操作。
6)实现:在分析阶段不应该过早地考虑怎样实现目标系统。因此,应 该去掉仅和实现有关的候选的类与对象。
在ATM系统中,“事务日志”是对一系列事务的记录,它的确切表示方 式是面向对象设计的议题;“通信链路”在逻辑上是一种联系,在 系统实现时它是关联类的物理实现。应该暂时去掉 “事务日志”和 “通信链路”这两个类,在设计或实现时再考虑它们。
5个层次对应着建立对象模型的5项主要活动:找出类与对象,识别结 构,识别主题,定义属性,定义服务。
面向对象分析的一般步骤:寻找类与对象,识别结构,识别主题,定 义属性,建立动态模型,建立功能模型,定义服务。
单10.2击需此求陈处述 编辑母版标题样 式10.2.1 书写要点
1)写什么:需求陈述的内容包括:问题范围,功能需求,性能需求, 应用环境及约束条件等。简单地讲,需求陈述应该阐明系统“做什 么”、“做得怎么样”、“受何约束”,而不管“怎样做”。
下面以ATM系统为例,说明非正式分析过程。认真阅读ATM需求陈述, 从中找出相关名词,可以把它们作为类与对象的初步的候选者:
单击此处编辑母版标题样 式银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,
网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员, 储户,现金,支票,账户,事务,现金兑换卡,余额,磁卡,分行代码, 卡号,用户,副本,信息,密码,类型,取款额,账单,访问。
单击此处编辑母版标题样 式银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支
票向自己拥有的某个账户内存款或开新账户。储户也可以从自己的账户 中取款。通常,一个储户可能拥有多个账户。柜员负责把储户提交的存 款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户 现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某 个账户的事务并且维护账户。
单击此处编辑母版标题样 式 一种寻找对象类的非正式分析方法:这种分析方法以需求陈述为依据,
把陈述中的名词作为类与对象的候选者;用形容词或名词作为确定属 性的候选者;把动词作为服务(操作)的候选者。
由于需求陈述用自然语言描述的随意性、隐含性和重复性,这种简单 方法确定的候选者是非常不准确的,其中往往包含大量不正确的或不 必要的事物,还必须经过更进一步的严格筛选。