第4章-面向对象的系统分析1_第1页
第4章-面向对象的系统分析1_第2页
第4章-面向对象的系统分析1_第3页
第4章-面向对象的系统分析1_第4页
第4章-面向对象的系统分析1_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、梁昌勇梁昌勇信息系统分析、设计与开发方法第第4 4章章 面向对象的系统分析面向对象的系统分析2/85第第4 4章章 面向对象的系统分析面向对象的系统分析4.1 4.1 面向对象的基本过程面向对象的基本过程 4.2 4.2 面向对象分析的特点面向对象分析的特点 4.3 4.3 需求分析陈述需求分析陈述 4.4 4.4 面向对象的系统分析活动面向对象的系统分析活动4.5 4.5 建立对象模型建立对象模型4.6 4.6 建立动态模型建立动态模型4.7 4.7 建立功能模型建立功能模型 4.8 4.8 案例案例目录目录3/85第第4 4章章 面向对象的系统分析面向对象的系统分析u面向对象分析面向对象分

2、析(Object-Oriented Analysis(Object-Oriented Analysis,OOA)OOA),就是,就是抽取和整理用户需求,按照面向对象的思想来分析问题抽取和整理用户需求,按照面向对象的思想来分析问题,最后建立问题域的精确模型。,最后建立问题域的精确模型。u分析的过程就是识别问题域和系统责任提取系统需求的分析的过程就是识别问题域和系统责任提取系统需求的过程,分析工作包括过程,分析工作包括3 3项内容,即项内容,即理解、表达、验证理解、表达、验证。u分析过程得出的最重要的文档资料是软件需求规格说明分析过程得出的最重要的文档资料是软件需求规格说明,在面向对象分析中,主要

3、由对象模型、动态模型和功,在面向对象分析中,主要由对象模型、动态模型和功能模型组成。能模型组成。 4.1 4.1 面向对象分析的基本过程面向对象分析的基本过程4.1.1 4.1.1 概述概述4/85第第4 4章章 面向对象的系统分析面向对象的系统分析u问题域(问题域(problem domainproblem domain)就是被开发系统的应用领域,)就是被开发系统的应用领域,即软件系统所能处理的现实世界中业务范围。即软件系统所能处理的现实世界中业务范围。u系统责任(系统责任(system responsibilitiessystem responsibilities)即所开发的软件)即所开发

4、的软件系统应该具备的职能系统应该具备的职能. .4.1 4.1 面向对象分析的基本过程面向对象分析的基本过程4.1.1 4.1.1 概述概述5/85第第4 4章章 面向对象的系统分析面向对象的系统分析uOOAOOA分析的过程分析的过程就是提取需求的就是提取需求的过程,主要包括过程,主要包括理解、表达和验理解、表达和验证。证。OOAOOA过程模型过程模型4.1 4.1 面向对象分析的基本过程面向对象分析的基本过程4.1.2 4.1.2 基本过程基本过程6/85第第4 4章章 面向对象的系统分析面向对象的系统分析uOOAOOA过程由过程由5 5项主要活动组成:项主要活动组成:(1 1)识别问题域中

5、的类和对象)识别问题域中的类和对象(2 2)确定结构)确定结构(3 3)确定主题)确定主题(4 4)定义属性)定义属性(5 5)定义服务)定义服务4.1 4.1 面向对象分析的基本过程面向对象分析的基本过程4.1.2 4.1.2 基本过程基本过程7/85第第4 4章章 面向对象的系统分析面向对象的系统分析uOOAOOA模型由模型由5 5个层组成:个层组成:(1 1)主题层)主题层, ,按模块进行划分按模块进行划分, ,从而降低模型的复杂程度从而降低模型的复杂程度; ;(2 2)类与对象层)类与对象层, ,描述了系统中的类与对象;描述了系统中的类与对象;(3 3)结构层)结构层, ,描述了类之间

6、的继承关系和描述了类之间的继承关系和“整体整体- -部分部分”结构结构;(4 4)属性层)属性层, ,描述了属性以及类和对象之间的实例连接;描述了属性以及类和对象之间的实例连接;(5 5)服务层)服务层, ,描述了方法以及类和对象之间的消息连接。描述了方法以及类和对象之间的消息连接。 OOA OOA过程的过程的5 5项活动分别对应项活动分别对应OOAOOA模型的模型的5 5个层次个层次, ,这这5 5项项活动和活动和5 5个层次又继续贯穿在个层次又继续贯穿在OODOOD(面向对象的设计)过程(面向对象的设计)过程中。中。4.1 4.1 面向对象分析的基本过程面向对象分析的基本过程4.1.2 4

7、.1.2 基本过程基本过程8/85第第4 4章章 面向对象的系统分析面向对象的系统分析4.1 4.1 面向对象分析的基本过程面向对象分析的基本过程9/85第第4 4章章 面向对象的系统分析面向对象的系统分析4.1 4.1 面向对象的基本过程面向对象的基本过程 4.2 4.2 面向对象分析的特点面向对象分析的特点 4.3 4.3 需求分析陈述需求分析陈述 4.4 4.4 面向对象的系统分析活动面向对象的系统分析活动4.5 4.5 建立对象模型建立对象模型4.6 4.6 建立动态模型建立动态模型4.7 4.7 建立功能模型建立功能模型 4.8 4.8 案例案例目录目录10/85第第4 4章章 面向

8、对象的系统分析面向对象的系统分析lOOAOOA的主要原则的主要原则(1 1)抽象原则。系统中的对象是对现实世界中事物的抽象;)抽象原则。系统中的对象是对现实世界中事物的抽象;类是系统中对象的抽象。类是系统中对象的抽象。(2 2)分类原则。就是把具有相同属性和服务的对象划分为一)分类原则。就是把具有相同属性和服务的对象划分为一 类,用类作为这些对象的抽象描述。类,用类作为这些对象的抽象描述。(3 3)聚合原则。聚合将一个复杂的事物看成由若干比较简单)聚合原则。聚合将一个复杂的事物看成由若干比较简单 的事物组合形成的,从而简化对复杂事物的描述。的事物组合形成的,从而简化对复杂事物的描述。4.2 4

9、.2 面向对象分析的特点面向对象分析的特点11/85第第4 4章章 面向对象的系统分析面向对象的系统分析lOOAOOA的主要原则的主要原则(4 4)关联原则。在面向对象分析过程中,运用关联原则可以)关联原则。在面向对象分析过程中,运用关联原则可以 在系统模型中明确地标识对象之间的静态联系。在系统模型中明确地标识对象之间的静态联系。(5 5)消息通信原则。这一原则要求对象之间只能通过消息进)消息通信原则。这一原则要求对象之间只能通过消息进 行通信,而不允许在对象之外直接地存取对象内部的属行通信,而不允许在对象之外直接地存取对象内部的属 性。通过消息进行通信是由于封装原则而引起的。性。通过消息进行

10、通信是由于封装原则而引起的。(6 6)粒度控制原则。人在面对一个复杂的问题域时,需要控)粒度控制原则。人在面对一个复杂的问题域时,需要控 制自己的视野:考虑全局时,注意其大的组成部分,暂制自己的视野:考虑全局时,注意其大的组成部分,暂 时不详察每一部分的具体的细节;考虑某部分的细节时时不详察每一部分的具体的细节;考虑某部分的细节时 则暂时撇开其余的部分。则暂时撇开其余的部分。4.2 4.2 面向对象分析的特点面向对象分析的特点12/85第第4 4章章 面向对象的系统分析面向对象的系统分析lOOAOOA的主要优点的主要优点 (1 1)OOAOOA是在人类思维组织的基本方法框架下定义并表是在人类思

11、维组织的基本方法框架下定义并表达需求,直观性好。达需求,直观性好。 (2 2)便于分析人员集中精力于问题空间的理解和分析,)便于分析人员集中精力于问题空间的理解和分析,有利于超越系统的复杂性困难。有利于超越系统的复杂性困难。 (3 3)把属性和有关服务方法作为对象整体来看待,比较)把属性和有关服务方法作为对象整体来看待,比较自然。自然。 (4 4)使用对象间的最小相关性来分析和说明。这有利于)使用对象间的最小相关性来分析和说明。这有利于实行封装性原则,并使实行封装性原则,并使OOAOOA适应开发需求的变化,也有适应开发需求的变化,也有利于制作和提取可复用的部件。利于制作和提取可复用的部件。 4

12、.2 4.2 面向对象分析的特点面向对象分析的特点13/85第第4 4章章 面向对象的系统分析面向对象的系统分析lOOAOOA的主要优点的主要优点 (5 5)通过对共性的显式表示而提高表达能力。抽象层次)通过对共性的显式表示而提高表达能力。抽象层次与后续与后续OOPOOP结合,编程思路清晰,特别是有利于提高程序结合,编程思路清晰,特别是有利于提高程序效率。效率。 (6 6)分析法与设计法的一致性,密切配合建造一个问题)分析法与设计法的一致性,密切配合建造一个问题域模型。域模型。 (7 7)对系统族的适用性和可扩展性强)对系统族的适用性和可扩展性强4.2 4.2 面向对象分析的特点面向对象分析的

13、特点14/85第第4 4章章 面向对象的系统分析面向对象的系统分析4.1 4.1 面向对象的基本过程面向对象的基本过程 4.2 4.2 面向对象分析的特点面向对象分析的特点 4.3 4.3 需求分析陈述需求分析陈述 4.4 4.4 面向对象的系统分析活动面向对象的系统分析活动4.5 4.5 建立对象模型建立对象模型4.6 4.6 建立动态模型建立动态模型4.7 4.7 建立功能模型建立功能模型 4.8 4.8 案例案例目录目录15/85第第4 4章章 面向对象的系统分析面向对象的系统分析 面向对象系统分析的面向对象系统分析的基本出发点是问题域及用户需求基本出发点是问题域及用户需求。研。研究问题

14、域及用户需求的主要目的是通过对问题域的深入研究问题域及用户需求的主要目的是通过对问题域的深入研究,究,建立一个能够满足用户需求的系统模型建立一个能够满足用户需求的系统模型。面向对象分。面向对象分析强调系统模型与问题域的紧密对应,对问题域的研究贯析强调系统模型与问题域的紧密对应,对问题域的研究贯穿于整个面向对象分析工作中。穿于整个面向对象分析工作中。 对问题域的研究一般可以通过以下工作来完成:对问题域的研究一般可以通过以下工作来完成:亲临现场,通过观察掌握第一手材料;亲临现场,通过观察掌握第一手材料; 认真听取问题域专家的见解;认真听取问题域专家的见解; 阅读与问题论域有关的材料,学习相关领域的

15、基本知识;阅读与问题论域有关的材料,学习相关领域的基本知识; 借鉴相关或相似问题论域已有系统的借鉴相关或相似问题论域已有系统的OOAOOA文档。文档。4.3 4.3 需求分析陈述需求分析陈述16/85第第4 4章章 面向对象的系统分析面向对象的系统分析 用户需求就是用户对所要开发的系统提出的各种要求和期用户需求就是用户对所要开发的系统提出的各种要求和期望。用户需求大致可以分为望。用户需求大致可以分为2 2类:类:技术需求(功能需求、非功能需求、可用性需求等)技术需求(功能需求、非功能需求、可用性需求等)非技术需求(系统交付时间、资源使用限制等)非技术需求(系统交付时间、资源使用限制等)4.3

16、4.3 需求分析陈述需求分析陈述功能需求和非功能需求是系统分析人员首先要考虑的因素。功能需求和非功能需求是系统分析人员首先要考虑的因素。功能需求描述了系统可以做什么或被期望做什么,描述功能需求描述了系统可以做什么或被期望做什么,描述了系统的功能,在了系统的功能,在OOAOOA中可以使用用例来描述系统功能;中可以使用用例来描述系统功能;非功能需求描述了系统如何更好地提供功能服务,可以非功能需求描述了系统如何更好地提供功能服务,可以从性能、安全性、可靠性、可用性等方面来描述。从性能、安全性、可靠性、可用性等方面来描述。17/85第第4 4章章 面向对象的系统分析面向对象的系统分析 在对用户需求的研

17、究中,系统分析员需要解决如下问题:在对用户需求的研究中,系统分析员需要解决如下问题:系统需要提供哪些功能,要达到何种性能指标以及可靠性系统需要提供哪些功能,要达到何种性能指标以及可靠性、安全性要求,人机交互要求,系统的对外接口等。、安全性要求,人机交互要求,系统的对外接口等。 User caseUser case是用来收集和描述用户需求的最好方法。即先标是用来收集和描述用户需求的最好方法。即先标识使用该系统的不同的参与者识使用该系统的不同的参与者(actor)(actor)。参与者所提出的每。参与者所提出的每个使用场景(或功能)称为一个用例,所有的用例则构成完个使用场景(或功能)称为一个用例,

18、所有的用例则构成完整的系统需求。在这个过程中,很可能需要快速建立起原型整的系统需求。在这个过程中,很可能需要快速建立起原型系统,以便与用户更有效地交流。系统,以便与用户更有效地交流。4.3 4.3 需求分析陈述需求分析陈述18/85第第4 4章章 面向对象的系统分析面向对象的系统分析 需求陈述的内容包括:问题范围,功能需求,性能需求,需求陈述的内容包括:问题范围,功能需求,性能需求,应用环境及假设条件等。应用环境及假设条件等。 书写需求陈述时,要尽力做到语法正确,而且应该慎重选书写需求陈述时,要尽力做到语法正确,而且应该慎重选用名词、动词、形容词和同义词。用名词、动词、形容词和同义词。4.3

19、4.3 需求分析陈述需求分析陈述19/85第第4 4章章 面向对象的系统分析面向对象的系统分析用例名:购买商品用例名:购买商品参与者:出纳员参与者:出纳员简要描述:顾客带着所要购买的商品来到收款处。收款员记简要描述:顾客带着所要购买的商品来到收款处。收款员记录下商品信息并收款。付款完成后,顾客带着所购买的商录下商品信息并收款。付款完成后,顾客带着所购买的商品和收据离开。品和收据离开。用例的简要描述用例的简要描述购买商品购买商品收款员收款员4.3 4.3 需求分析陈述需求分析陈述20/85第第4 4章章 面向对象的系统分析面向对象的系统分析对对“取款取款”用例的非正式描用例的非正式描述述1 1)

20、用户插入)用户插入ATMATM卡并输入密码卡并输入密码2 2)用户选择取款并输入取款数量)用户选择取款并输入取款数量3 3)系统吐出现金,并从账号余额中扣除取款数)系统吐出现金,并从账号余额中扣除取款数4.3 4.3 需求分析陈述需求分析陈述21/85第第4 4章章 面向对象的系统分析面向对象的系统分析4.3 4.3 需求分析陈述需求分析陈述对对“取款取款”用例的完整描述用例的完整描述主参与者:主参与者:信用卡用户信用卡用户目标:目标: 用户使用信用卡从用户使用信用卡从ATMATM机获取现金机获取现金范围:范围:银行银行ATMATM系统系统前置条件:前置条件: 用户将信用卡插入用户将信用卡插入

21、ATMATM触发事件:触发事件: 用户希望从用户希望从ATMATM机上取现金机上取现金主事件流主事件流: 1 1)用户插入信用卡到)用户插入信用卡到ATMATM机机 2 2)ATMATM系统识别卡的系统识别卡的IDID和账号,并用主银行系统验证其有和账号,并用主银行系统验证其有效性效性 3 3)用户输入密码,)用户输入密码,ATMATM验证其有效性验证其有效性 4 4)用户选择取款,并输入提取金额,该数额必须在)用户选择取款,并输入提取金额,该数额必须在505050005000之间,之间,5050的倍数的倍数22/85第第4 4章章 面向对象的系统分析面向对象的系统分析4.3 4.3 需求分析

22、陈述需求分析陈述对对“取款取款”用例的完整描述用例的完整描述主事件流主事件流: 5 5)ATMATM系统通知账户所在的主银行系统,传递账号和取款系统通知账户所在的主银行系统,传递账号和取款金额,并接受返回的确认信息和账户余额金额,并接受返回的确认信息和账户余额 6 6)ATMATM系统发放现金、卡,并打印收据系统发放现金、卡,并打印收据 7 7)ATMATM将事务记入日志将事务记入日志23/85第第4 4章章 面向对象的系统分析面向对象的系统分析4.3 4.3 需求分析陈述需求分析陈述对对“取款取款”用例的完整描述用例的完整描述备选事件流:备选事件流: 2a2a:该卡不能在此:该卡不能在此AT

23、MATM机上使用机上使用 3a3a:密码不正确:密码不正确 3b3b:用户没有及时输入密码:用户没有及时输入密码 4a4a:金额不是:金额不是5050的倍数,或不在指定范围的倍数,或不在指定范围 5a5a:主机死机或网络瘫痪:主机死机或网络瘫痪 5b5b:账户余额不足:账户余额不足发生频率:发生频率: 一天一天10001000次次24/85第第4 4章章 面向对象的系统分析面向对象的系统分析4.1 4.1 面向对象的基本过程面向对象的基本过程 4.2 4.2 面向对象分析的特点面向对象分析的特点 4.3 4.3 需求分析陈述需求分析陈述 4.4 4.4 面向对象的系统分析活动面向对象的系统分析

24、活动4.5 4.5 建立对象模型建立对象模型4.6 4.6 建立动态模型建立动态模型4.7 4.7 建立功能模型建立功能模型 4.8 4.8 案例案例目录目录25/85第第4 4章章 面向对象的系统分析面向对象的系统分析 获取对象和类获取对象和类 确定关联确定关联 确定主题确定主题 确定属性确定属性 确定方法确定方法 4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动26/85第第4 4章章 面向对象的系统分析面向对象的系统分析 获取对象和类获取对象和类 面向对象系统分析过程如人的认识过程一样,从个别面向对象系统分析过程如人的认识过程一样,从个别事物认识上升到一般概念的归纳过程,这就

25、是认识事物的事物认识上升到一般概念的归纳过程,这就是认识事物的抽象过程。然后,在一般概念的指导下,再对事物进行认抽象过程。然后,在一般概念的指导下,再对事物进行认识与分析。识与分析。 在在OOOO建模和建模和OOPOOP中,所有的对象都是通过类来描述的,中,所有的对象都是通过类来描述的,类是具有相同属性和操作的一组对象的集合。类是具有相同属性和操作的一组对象的集合。OOAOOA活动的最活动的最终目标是建立所有对象的类。终目标是建立所有对象的类。4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动27/85第第4 4章章 面向对象的系统分析面向对象的系统分析u在识别问题域可能有用的候选对

26、象时,可以从以下三个面在识别问题域可能有用的候选对象时,可以从以下三个面入手:入手:从问题域方面出发从问题域方面出发,可以启发分析员发现对象的因素包括,可以启发分析员发现对象的因素包括:人员、组织、物品、设备、事件、表格、结构等。:人员、组织、物品、设备、事件、表格、结构等。从系统边界方面出发从系统边界方面出发,应该考虑的因素包括:人员、设备,应该考虑的因素包括:人员、设备和外部系统,它们是否与所要开发的系统有交互行为,如和外部系统,它们是否与所要开发的系统有交互行为,如果有,那么它们就是候选对象。果有,那么它们就是候选对象。从系统责任出发从系统责任出发,对照系统责任所要求的每一项功能,查,对

27、照系统责任所要求的每一项功能,查看是否可以由已找出的对象来完成该功能,在不能满足要看是否可以由已找出的对象来完成该功能,在不能满足要求时增加相应的对象,可以使系统分析员尽可能全地找出求时增加相应的对象,可以使系统分析员尽可能全地找出所需的各种对象。所需的各种对象。 4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.1 4.4.1 获取对象和类获取对象和类4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动28/85第第4 4章章 面向对象的系统分析面

28、向对象的系统分析u在找到许多可能有用的候选对象之后,需要对它们进行在找到许多可能有用的候选对象之后,需要对它们进行逐个审查,分析它们是否是逐个审查,分析它们是否是OOAOOA模型所真正需要的,从模型所真正需要的,从而筛选掉一些对象,或精简及合并一些对象,以及将一而筛选掉一些对象,或精简及合并一些对象,以及将一些对象推迟到些对象推迟到OODOOD阶段再进行考虑。阶段再进行考虑。u系统对象判断的标准就是这些对象是否为系统提供了有系统对象判断的标准就是这些对象是否为系统提供了有用的属性和服务。用的属性和服务。u确定最终对象的原则:需要保留的信息、需要的服务、确定最终对象的原则:需要保留的信息、需要的

29、服务、具有多个属性、具有公共属性及操作。具有多个属性、具有公共属性及操作。4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.1 4.4.1 获取对象和类获取对象和类29/85第第4 4章章 面向对象的系统分析面向对象的系统分析u抽象出对象类的常见问题:抽象出对象类的常见问题:(1) (1) 类的属性或服务不适合该类的全部对象类的属性或服务不适合该类的全部对象( (不完全不完全) ) ;(2) (2) 出现属性和服务相似的类出现属性和服务相似的类( (冗余冗余) ) ;(3) (3) 出现对同一事物的重复描述。出现对同一事物的重复描述。4.4 4.4 面相对象的系统分析活动面相

30、对象的系统分析活动4.4.1 4.4.1 获取对象和类获取对象和类30/85第第4 4章章 面向对象的系统分析面向对象的系统分析uOOAOOA中要正确运用抽象原则:中要正确运用抽象原则:首先是摈弃与系统责任无关的事物,专注于系统责任首先是摈弃与系统责任无关的事物,专注于系统责任所涉及的事物,把它们作为系统责任的候选对象。所涉及的事物,把它们作为系统责任的候选对象。其次,描述候选对象的相应特征,对这些特征进行认其次,描述候选对象的相应特征,对这些特征进行认真分析,舍弃与系统责任无关的特征,只保留与系统真分析,舍弃与系统责任无关的特征,只保留与系统责任有关的特征,然后将这些特征抽象为对象的属性责任

31、有关的特征,然后将这些特征抽象为对象的属性和操作。和操作。4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.1 4.4.1 获取对象和类获取对象和类31/85第第4 4章章 面向对象的系统分析面向对象的系统分析u判断问题域事物是否与系统责任有关,可以从以下判断问题域事物是否与系统责任有关,可以从以下3 3方方面进行:面进行:是否向系统输入信息,也就是说,系统是否要保留是否向系统输入信息,也就是说,系统是否要保留或管理这些信息。或管理这些信息。是否从系统接受信息,或者说事物是否需要系统提是否从系统接受信息,或者说事物是否需要系统提供信息。供信息。既向系统输入信息,也需要系统提供

32、信息。既向系统输入信息,也需要系统提供信息。4.4.1 4.4.1 获取对象和类获取对象和类4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动32/85第第4 4章章 面向对象的系统分析面向对象的系统分析u关联是指问题域的复杂性和连接关系。关联是指问题域的复杂性和连接关系。u当两个或多个类之间有相互依赖、相互作用的关系就是当两个或多个类之间有相互依赖、相互作用的关系就是关联关联 。一个面向对象的系统中,类之间存在以下四种关。一个面向对象的系统中,类之间存在以下四种关系:系:一般一般特殊特殊整体整体部分部分 关联关联 依赖关系依赖关系 4.4 4.4 面相对象的系统分析活动面相对象的系

33、统分析活动4.4.2 4.4.2 确定关联确定关联 33/85第第4 4章章 面向对象的系统分析面向对象的系统分析1.1.一般一般特殊结构特殊结构 一般一般特殊关系又称类属关系,是现实世界中一般对特殊关系又称类属关系,是现实世界中一般对象和特殊对象之间的关系,反映了现实世界中事物之象和特殊对象之间的关系,反映了现实世界中事物之间的分类关系。前者称为父类,后者称为子类,子类间的分类关系。前者称为父类,后者称为子类,子类继承父类的特性(属性、操作、关联等),同时又拥继承父类的特性(属性、操作、关联等),同时又拥有自己的特性。有自己的特性。 4.4 4.4 面相对象的系统分析活动面相对象的系统分析活

34、动4.4.24.4.2确定关联确定关联 34/85第第4 4章章 面向对象的系统分析面向对象的系统分析1.1.一般一般特殊结构特殊结构 确定了类中应该定义的属性之后,就可以利用继承确定了类中应该定义的属性之后,就可以利用继承机制共享公共性质,并对系统中众多的类加以组织。机制共享公共性质,并对系统中众多的类加以组织。 建立继承关系的方式:建立继承关系的方式:(1 1)自底向上:抽象出现有类的共同性质泛化出父类,)自底向上:抽象出现有类的共同性质泛化出父类,这个过程实质上模拟了人类归纳思维过程。这个过程实质上模拟了人类归纳思维过程。(2 2) 自顶向下:自顶向下: 把现有类细化成更具体的子类,这模

35、把现有类细化成更具体的子类,这模拟了人类的演绎思维过程。拟了人类的演绎思维过程。 4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.24.4.2确定关联确定关联 35/85第第4 4章章 面向对象的系统分析面向对象的系统分析 例如图书借阅管理系统例如图书借阅管理系统中,对象类中,对象类“人员人员”是类是类“管理员管理员”和和“借阅者借阅者”类的类的父类,而子类父类,而子类“管理员管理员”又又是类是类“系统维护人员系统维护人员”和类和类“一般操作人员一般操作人

36、员”的父类。的父类。一般一般特殊关系特殊关系4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.24.4.2确定关联确定关联 36/85第第4 4章章 面向对象的系统分析面向对象的系统分析2.2.整体整体部分部分 对象实例之间的整体对象实例之间的整体部分关系,反映了现实世部分关系,反映了现实世界中的事物之间的构成关系。整体界中的事物之间的构成关系。整体部分关联又可以部分关联又可以从两个方面来反映:从两个方面来反映:u聚合关系聚合关系 表示对象实例之间的整体与部分的关系,作为表示对象实例之间的整体与部分的关系,作为整体的对象拥有作为部分的对象。整体的对象拥有作为部分的对象。 u组

37、合关系组合关系 是聚合关系的一种特殊形式。在组合关系中,是聚合关系的一种特殊形式。在组合关系中,整体和部分之间有着很紧密的关系和一致的生命周整体和部分之间有着很紧密的关系和一致的生命周期。期。 4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.24.4.2确定关联确定关联 37/85第第4 4章章 面向对象的系统分析面向对象的系统分析4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.24.4.2确定关联确定关联 38/85第第4 4章章 面向对象的系统分析面向对象的系统分析3.3.关联关联 表示对象实例之间的静态联系,这两个对象实例之表示对象实例之间的静态联

38、系,这两个对象实例之间存在某种语义上联系。例如,员工为公司工作,一个间存在某种语义上联系。例如,员工为公司工作,一个公司有许多部门,因此,可以认为员工和公司、公司和公司有许多部门,因此,可以认为员工和公司、公司和部门之间存在某种语义上的联系,如下图所示。部门之间存在某种语义上的联系,如下图所示。4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.24.4.2确定关联确定关联 39/85第第4 4章章 面向对象的系统分析面向对象的系统分析4.4.依赖关系依赖关系 一个模型元素的变化影响另一个模型元素,则两个元一个模型元素的变化影响另一个模型元素,则两个元素之间存在依赖关系。以素之

39、间存在依赖关系。以X X和和Y Y两个元素为例,当修改两个元素为例,当修改X X的的定义时,引起定义时,引起Y Y的定义的修改,则称的定义的修改,则称Y Y依赖于依赖于X X。4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.24.4.2确定关联确定关联 40/85第第4 4章章 面向对象的系统分析面向对象的系统分析 主题是指事物的总体概貌和总体分析模型。在开发大型、主题是指事物的总体概貌和总体分析模型。在开发大型、复杂系统的过程中,为了降低复杂程度,人们习惯于把复杂系复杂系统的过程中,为了降低复杂程度,人们习惯于把复杂系统进一步划分为几个不同的主题,即在概念上把系统包含的内

40、统进一步划分为几个不同的主题,即在概念上把系统包含的内容分解成几个小的范畴。容分解成几个小的范畴。 对于一个复杂的系统,一般情况下在获取对象与类、确定对于一个复杂的系统,一般情况下在获取对象与类、确定结构之后,然后划分主题。这样有利于系统开发人员观察整个结构之后,然后划分主题。这样有利于系统开发人员观察整个系统模型。系统模型。主题的划分不是按照功能进行分解的,而是按照问主题的划分不是按照功能进行分解的,而是按照问题域进行划分题域进行划分的。另外,的。另外,遵循最少原则进行主题划分遵循最少原则进行主题划分,即不同,即不同主题内的对象之间依赖和交互关系最少。主题内的对象之间依赖和交互关系最少。4.

41、4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.3 4.4.3 确定主题确定主题 41/85第第4 4章章 面向对象的系统分析面向对象的系统分析 从本质上讲,属性定义了对象。可从问题的陈述中或从本质上讲,属性定义了对象。可从问题的陈述中或通过对类的理解而标识出属性。通过对类的理解而标识出属性。 对象的属性是描述对象静态特征的,确定对象属性时对象的属性是描述对象静态特征的,确定对象属性时要从问题域和目标系统两方面进行。一般说来,确定属性要从问题域和目标系统两方面进行。一般说来,确定属性的过程包括的过程包括分析分析和和选择选择两个步骤。两个步骤。4.4 4.4 面相对象的系统分析活

42、动面相对象的系统分析活动4.4.4 4.4.4 确定属性确定属性 42/85第第4 4章章 面向对象的系统分析面向对象的系统分析1.1.分析分析 从以下角度去确定对象应具有的属性:从以下角度去确定对象应具有的属性: 按一般常识,该对象应具有哪些属性;按一般常识,该对象应具有哪些属性; 在当前问题论域中,该对象应具有哪些属性;在当前问题论域中,该对象应具有哪些属性; 根据系统责任的要求,该对象应具有哪些属性;根据系统责任的要求,该对象应具有哪些属性; 建立该对象是为了保存和管理哪些信息;建立该对象是为了保存和管理哪些信息; 对象为了在服务中实现其功能,需要增设哪些属性;对象为了在服务中实现其功能

43、,需要增设哪些属性; 是否需要增设属性来区别对象的不同状态;是否需要增设属性来区别对象的不同状态; 用什么属性来表示对象的整体部分联系和实例连接用什么属性来表示对象的整体部分联系和实例连接4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.4 4.4.4 确定属性确定属性 43/85第第4 4章章 面向对象的系统分析面向对象的系统分析2.2.选择选择 删掉不正确的或不必要的属性,通常有以下几种常见情况:删掉不正确的或不必要的属性,通常有以下几种常见情况:误把对象当作属性误把对象当作属性; ;如果某个实体的独立存在比它的值更重如果某个实体的独立存在比它的值更重要,则应把它作为一个

44、对象而不是对象的属性。在具体应要,则应把它作为一个对象而不是对象的属性。在具体应用领域中具有自身性质的实体,必然是对象。用领域中具有自身性质的实体,必然是对象。误把关联类的属性当作一般对象的属性误把关联类的属性当作一般对象的属性; ;如果某个性质依赖如果某个性质依赖于某个关联链的存在于某个关联链的存在; ;则该性质是关联类的属性,在分析阶则该性质是关联类的属性,在分析阶段不应该把它作为一般对象的属性。段不应该把它作为一般对象的属性。把限定误当成属性把限定误当成属性; ;正确使用限定词往往可以减少关联的重正确使用限定词往往可以减少关联的重数。数。4.4 4.4 面相对象的系统分析活动面相对象的系

45、统分析活动4.4.4 4.4.4 确定属性确定属性 44/85第第4 4章章 面向对象的系统分析面向对象的系统分析误把内部状态当成了属性误把内部状态当成了属性; ;如果某个性质是对象的非公开如果某个性质是对象的非公开的内部状态,则应该从对象模型中删掉这个属性。的内部状态,则应该从对象模型中删掉这个属性。过于细化过于细化; ;在分析阶段应该忽略那些对大多数操作都没有在分析阶段应该忽略那些对大多数操作都没有影响的属性。影响的属性。存在不一致的属性存在不一致的属性; ;类应该是简单而且一致的。如果得出类应该是简单而且一致的。如果得出一些看起来与其他属性毫不相关的属性,则应该考虑把该一些看起来与其他属

46、性毫不相关的属性,则应该考虑把该类分解成两个不同的类。类分解成两个不同的类。4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.4 4.4.4 确定属性确定属性 45/85第第4 4章章 面向对象的系统分析面向对象的系统分析 方法,也称服务、操作或行为等,用来描述对象的动方法,也称服务、操作或行为等,用来描述对象的动态特征。有的面向对象的程序设计语言中,又将服务称之态特征。有的面向对象的程序设计语言中,又将服务称之为类的成员函数或简称函数。一般从以下几个方面发现和为类的成员函数或简称函数。一般从以下几个方面发现和定义对象方法:定义对象方法: u系统责任系统责任 u问题域问题域

47、u对象状态对象状态 (状态机图)(状态机图)4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.5 4.4.5 确定方法确定方法 46/85第第4 4章章 面向对象的系统分析面向对象的系统分析1.1.系统责任系统责任 在在OOAOOA模型中,对象的操作是最直接体现系统责任并实现模型中,对象的操作是最直接体现系统责任并实现用户需求的成分,分析研究用户需求中提出的每一项功能用户需求的成分,分析研究用户需求中提出的每一项功能要求,这些功能要求应该由哪对象来提供,从而在该对象要求,这些功能要求应该由哪对象来提供,从而在该对象中设立相应的方法。中设立相应的方法。 从对象的角度出发,分析这

48、个对象是否应该设立,它能完从对象的角度出发,分析这个对象是否应该设立,它能完成哪些功能。由该对象完成的功能就是这个对象的方法。成哪些功能。由该对象完成的功能就是这个对象的方法。 从信息的输入、加工、输出的流程出发,在整个信息流中从信息的输入、加工、输出的流程出发,在整个信息流中涉及哪些对象?这些对象是如何处理这些信息的?对象完涉及哪些对象?这些对象是如何处理这些信息的?对象完成信息处理的功能就是对象的方法。成信息处理的功能就是对象的方法。4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.5 4.4.5 确定方法确定方法 47/85第第4 4章章 面向对象的系统分析面向对象的系

49、统分析2.2.问题域问题域 从问题域出发,考虑每个对象所代表的实际事物在问从问题域出发,考虑每个对象所代表的实际事物在问题域中呈现哪些行为?这些行为是否与系统责任有关?在题域中呈现哪些行为?这些行为是否与系统责任有关?在系统中应该为这些对象设立何种方法?系统中应该为这些对象设立何种方法?3.3.对象状态对象状态 对象从创建到撤销要经历一对象从创建到撤销要经历一系列的状态,从一种状态系列的状态,从一种状态转移为另一种状态是由某个操作引起的。对象的状态和状转移为另一种状态是由某个操作引起的。对象的状态和状态之间的转移可以通过状态机图来描绘。状态机图就是确态之间的转移可以通过状态机图来描绘。状态机图

50、就是确定对象操作的手段之一。定对象操作的手段之一。4.4 4.4 面相对象的系统分析活动面相对象的系统分析活动4.4.5 4.4.5 确定方法确定方法 48/85第第4 4章章 面向对象的系统分析面向对象的系统分析4.1 4.1 面向对象的基本过程面向对象的基本过程 4.2 4.2 面向对象分析的特点面向对象分析的特点 4.3 4.3 需求分析陈述需求分析陈述 4.4 4.4 面向对象的系统分析活动面向对象的系统分析活动4.5 4.5 建立对象模型建立对象模型4.6 4.6 建立动态模型建立动态模型4.7 4.7 建立功能模型建立功能模型 4.8 4.8 案例案例目录目录49/85第第4 4章

51、章 面向对象的系统分析面向对象的系统分析 面向对象分析首要的工作,是面向对象分析首要的工作,是建立问题域的对象模型建立问题域的对象模型。这个。这个模型描述了现实世界中的模型描述了现实世界中的“类与对象类与对象”以及它们之间的关系以及它们之间的关系,表示了目标系统的静态数据结构。,表示了目标系统的静态数据结构。 OOAOOA基本模型分为三个层次:基本模型分为三个层次:u对象层对象层给出系统中所有反映问题域和系统责任的对象。给出系统中所有反映问题域和系统责任的对象。u特征层特征层给出类(对象)的内部特征,即类的属性和操作给出类(对象)的内部特征,即类的属性和操作u关系层关系层给出各类(对象)之间的

52、关系,即类之间的四种给出各类(对象)之间的关系,即类之间的四种关系。关系。4.5 4.5 建立对象模型建立对象模型50/85第第4 4章章 面向对象的系统分析面向对象的系统分析1.1.类图类图 类图描述系统中类的静态结构,它不仅定义系统中类图描述系统中类的静态结构,它不仅定义系统中的类,表示类之间的关系(如关联、依赖、聚集等),也的类,表示类之间的关系(如关联、依赖、聚集等),也表达类的内部结构(即类的属性和操作)。类图描述的这表达类的内部结构(即类的属性和操作)。类图描述的这种静态关系涉及软件系统开发的整个生命周期。种静态关系涉及软件系统开发的整个生命周期。 4.5 4.5 建立对象模型建立

53、对象模型51/85第第4 4章章 面向对象的系统分析面向对象的系统分析1.1.类图类图 类一般包含类一般包含3 3个组成部分:类名、属性、方法。个组成部分:类名、属性、方法。4.5 4.5 建立对象模型建立对象模型52/85第第4 4章章 面向对象的系统分析面向对象的系统分析建筑设计院公文审批类图建筑设计院公文审批类图 53/85第第4 4章章 面向对象的系统分析面向对象的系统分析u类图使用方式类图使用方式对系统的静态对象建模。如图书借阅系统的对系统的静态对象建模。如图书借阅系统的BookBook类、类、readerreader类,学生管理系统的类,学生管理系统的StudentStudent类

54、等。类等。对简单的协作建模。协作是一些共同行为的类、接口和其对简单的协作建模。协作是一些共同行为的类、接口和其他元素的群体。他元素的群体。对逻辑数据库模式建模。在很多领域中,都需要在关系数对逻辑数据库模式建模。在很多领域中,都需要在关系数据库或面向对象数据库中存储永久信息,系统分析者可以据库或面向对象数据库中存储永久信息,系统分析者可以用类图对这些需要永久化的实体建模。用类图对这些需要永久化的实体建模。4.5 4.5 建立对象模型建立对象模型54/85第第4 4章章 面向对象的系统分析面向对象的系统分析u类的表示方式有两种即:全部显示类的属性和操作,或者类的表示方式有两种即:全部显示类的属性和

55、操作,或者隐藏属性部分或操作部分,或者两者都隐藏。隐藏属性部分或操作部分,或者两者都隐藏。4.5 4.5 建立对象模型建立对象模型55/85第第4 4章章 面向对象的系统分析面向对象的系统分析2.2.对象图对象图对象图表示在某一时刻系统对象的状态、对象之间的联系对象图表示在某一时刻系统对象的状态、对象之间的联系的状态以及对象行为的静态方面的状态。对象图和类图一的状态以及对象行为的静态方面的状态。对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。来表达的。对象图是类图的实例,几乎使用与类图完全相同的标识。对象图是类图的实例

56、,几乎使用与类图完全相同的标识。它们的不同点在于对象图显示类的多个对象实例,而不是它们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在生命周期,因此对象图只能在系统某一时间段存在。4.5 4.5 建立对象模型建立对象模型56/85第第4 4章章 面向对象的系统分析面向对象的系统分析2.2.对象图对象图4.5 4.5 建立对象模型建立对象模型:办公室工作人员:办公室工作人员:办公室主任:办公室主任 对象只有两个分栏(名称、属性);对象的名称形式为对象只有两

57、个分栏(名称、属性);对象的名称形式为“对象名对象名: :类名类名”;匿名对象的名称形式为;匿名对象的名称形式为“: :类名类名”;对象;对象只定义了属性的当前值;对象图中不包含操作;对象使用链只定义了属性的当前值;对象图中不包含操作;对象使用链连接,链拥有名称、角色,但是没有多重性。连接,链拥有名称、角色,但是没有多重性。 57/85第第4 4章章 面向对象的系统分析面向对象的系统分析u对象图的用途:对象图的用途:捕获实例和连接捕获实例和连接在分析和设计阶段创建在分析和设计阶段创建捕获交互的静态部分捕获交互的静态部分举例说明数据举例说明数据/ /对象结构对象结构详细描述瞬态图详细描述瞬态图由

58、分析人员、设计人员和代码实现人员开发由分析人员、设计人员和代码实现人员开发4.5 4.5 建立对象模型建立对象模型2.2.对象图对象图58/85第第4 4章章 面向对象的系统分析面向对象的系统分析u包(包(PackagePackage)是一种常规用途的组合机制。)是一种常规用途的组合机制。UMLUML中的一个中的一个包直接对应于包直接对应于JavaJava中的一个包。在中的一个包。在JavaJava中,一个包可能含中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,通常使有其他包、类或者同时含有这两者。进行建模时,通常使用逻辑性的包,用于对模型进行组织;使用物理性的包,用逻辑性的包,用

59、于对模型进行组织;使用物理性的包,用于转换成系统中的用于转换成系统中的JavaJava包。每个包的名称对这个包进行包。每个包的名称对这个包进行了惟一性的标识。了惟一性的标识。4.5 4.5 建立对象模型建立对象模型3.3.包图包图59/85第第4 4章章 面向对象的系统分析面向对象的系统分析u包图建模:包图建模:将一个框架的所有类放置在相同的包中;将一个框架的所有类放置在相同的包中;将相同继承层次的类放在相同的包中;将相同继承层次的类放在相同的包中;彼此间有聚集或组成关系的类通常放在相同的包中;彼此间有聚集或组成关系的类通常放在相同的包中;彼此合作频繁的类、信息能够通过彼此合作频繁的类、信息能

60、够通过UMLUML顺序图和顺序图和UMLUML合作图合作图反映出来的类,通常放在相同的包中;反映出来的类,通常放在相同的包中;确定包与包之间的依赖关系或泛化关系。确定包与包之间的依赖关系或泛化关系。 4.5 4.5 建立对象模型建立对象模型60/85第第4 4章章 面向对象的系统分析面向对象的系统分析4.1 4.1 面向对象的基本过程面向对象的基本过程 4.2 4.2 面向对象分析的特点面向对象分析的特点 4.3 4.3 需求分析陈述需求分析陈述 4.4 4.4 面向对象的系统分析活动面向对象的系统分析活动4.5 4.5 建立对象模型建立对象模型4.6 4.6 建立动态模型建立动态模型4.7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论