收藏 分享(赏)

软件工程 第9章:对象分析.ppt

上传人:fmgc7290 文档编号:7950847 上传时间:2019-05-31 格式:PPT 页数:81 大小:192.50KB
下载 相关 举报
软件工程 第9章:对象分析.ppt_第1页
第1页 / 共81页
软件工程 第9章:对象分析.ppt_第2页
第2页 / 共81页
软件工程 第9章:对象分析.ppt_第3页
第3页 / 共81页
软件工程 第9章:对象分析.ppt_第4页
第4页 / 共81页
软件工程 第9章:对象分析.ppt_第5页
第5页 / 共81页
点击查看更多>>
资源描述

1、2019年5月31日,广东工业大学计算机学院,1,软件工程 Software Engineering,2019/5/31,广东工业大学计算机学院,2,第9章 对象分析,本章内容: 9.1 对象、主动对象以及它们的类 9.2 研究问题域和用户需求 9.3 发现对象 9.4 对象的发现和标识 9.5 对象分类,建立类图的对象层 9.6 对象的属性和服务 9.7 定义属性 9.8 定义服务 9.9 应用实例,2019/5/31,广东工业大学计算机学院,3,9.1 对象、主动对象以及它们的类 1. 对象 对象的定义是:对象是对问题域中某个实体的抽象,这种抽象反映了系统保存有关这个实体的信息或与它交互的

2、能力。它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。,2019/5/31,广东工业大学计算机学院,4,2. 类 在面向对象的软件技术中,“类”就是对具有相同数据和相同操作的一组相似对象的定义,也就是说,类是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中也包括对怎样创建该类的新对象的说明。,2019/5/31,广东工业大学计算机学院,5,3. 主动对象 主动对象的定义是:主动对象是至少有一个服务不需要接收消息就能主动执行的对象。不需要接收消息就能主动执行的服务可称为主动服务,在编程时它将对应一个并发执行的程序单位。,2019/5/31,广东工

3、业大学计算机学院,6,在OOA中运用主动对象需要注意以下两点: (1)不提倡脱离系统开发的实际需要漫无目标地去发掘每个对象的主动行为。 (2)往往由设计决策决定是否应该把一个对象定义为主动对象,设计者可以为提高或减低系统的并发难度而人为的增加或减少主动对象的种类与数量。,2019/5/31,广东工业大学计算机学院,7,4. 表示法图9-1 普通对象的类符号 图9-2 主动对象的类符号,2019/5/31,广东工业大学计算机学院,8,9.2 研究问题域和用户需求,OOA的基本出发点是问题域和用户要求,分析员的主要工作就是:通过不断地研究问题域,建立一个能满足用户需求的系统模型。,2019/5/3

4、1,广东工业大学计算机学院,9,9.2.1 研究用户需求,明确系统责任 系统的需求包括四个不同的层次:业务需求、用户需求、功能需求和非功能性需求。 需求获取就是根据系统业务需求去获得系统用户需求,然后通过需求分析得到系统的功能需求和非功能需求。 研究用户需求包括以下活动: (1)阅读有关文档:阅读用户提交的需求文档等一切与用户需求有关的书面材料。,2019/5/31,广东工业大学计算机学院,10,(2)与用户交流:了解用户的需求,搞清有关用户需求的疑点。 (3)进行实地调查:有些需求问题,通过以上途径仍然不能完全明确,则需要到现场作适当的调查,因为以上资料可能表达得不够准确、清晰。 (4)记录

5、所得认识:随时记录通过阅读、交流和调查所得到的认识,更要记录所存在的疑点。 (5)整理相关资料:纠正初始需求文档中不符合的内容,整理出一份确切表达系统责任的需求文档。,2019/5/31,广东工业大学计算机学院,11,9.2.2 研究问题域 定义9-1:被开发的应用系统所考虑的整个业务范围。 目的: 1)进一步明确用户需求。 2)二是为了建立一个符合问题域情况、满足用户需求的分析模型。,2019/5/31,广东工业大学计算机学院,12,研究问题域应包括下述几个工作要点。 1. 认真听取问题域专家的见解 流程: 提问倾听理解消化反馈自己的理解以求印证提出进一步的问题。 2. 亲临现场,通过直接观

6、察掌握第一手材料 3. 阅读领域相关资料 4. 借鉴他人经验,2019/5/31,广东工业大学计算机学院,13,9.2.3 确定系统边界 确定系统边界,就是明确系统是什么以及系统的环境是什么,划出被开发的系统和与该系统打交道的人或物之间的明确界限,并确定它们之间的接口。,2019/5/31,广东工业大学计算机学院,14,9.3 发现对象,尽可能识别出系统所需要的对象,系统分析员应首先找出各种可能有用的候选对象,尽量避免遗漏 。,2019/5/31,广东工业大学计算机学院,15,9.3.1 正确地运用抽象原则 在OOA中运用抽象原则,先要舍弃与系统责任无关的事物,保留与系统责任有关的事物。其次,

7、还要舍弃与系统责任有关的事物中与系统责任无关的特征。判断事物及其特征是否与系统责任相关的准则是:该事物是否为系统提供了一些有用的信息或需要系统为其保存和管理某些信息;该事物是否向系统提供了某些服务或需要系统描述它的某些行为。,2019/5/31,广东工业大学计算机学院,16,9.3.2 策略与启发 为了尽可能识别出系统所需要的对象,系统分析员应首先找出各种可能有用的候选对象,尽量避免遗漏;然后对所发现的候选对象逐个进行严格的审查,筛选不必要的对象,或者将它们进行适当的调整与合并,使系统中的对象和类尽可能地紧凑。这种策略可以称为“先紧后松”策略。,2019/5/31,广东工业大学计算机学院,17

8、,1. 考虑问题域 在问题域方面,可以启发分析员发现对象因素: (1)人员:大多数系统的问题域都涉及各种各样的人员,需要考虑的是以下两种情况。 (2)组织:在系统中发挥一定作用的组织结构。如行政单位、业务部门、办事机构、社会团体、工作班组等等。 (3)设备:是指在系统中动态地运行,由系统进行监控或者供系统使用的各种设备、仪表、机器以及运输工具。,2019/5/31,广东工业大学计算机学院,18,(4)物品:是指那些需要由系统管理的各种物品。 (5)事件:指那些需要由系统长期记忆的事件。 (6)表格:这里“表格”的概念是广义的,既包括各种业务报表。因为: 尽管表格也是问题域中的一种事物,但大多数

9、情况下并不是那种固有的、原始的事物。 许多表格的信息,是可以从其他表格(或某些对象)导出的。,2019/5/31,广东工业大学计算机学院,19,(7)结构:通过考虑结构可以得到一种启发从已经发现的对象联想到其他更多的对象。例如,考虑“汽车”。如图9-3所示。图9-3 结构,2019/5/31,广东工业大学计算机学院,20,2. 考虑系统边界 在系统边界方面,考虑:人员、设备和外部系统,可以启发发现一些系统与外部活动所进行的交互,并处理系统对外接口的对象。 1)人员:作为系统以外活动者与系统进行直接交互的各类人员。 (2)设备:作为系统以外的活动者与系统相连并交换信息的设备。 (3)外部系统:与

10、系统相连并交换信息的其他系统。,2019/5/31,广东工业大学计算机学院,21,3. 考虑系统责任 系统责任要求的某些功能可能与实现环境(如图形用户界面系统、数据库管理系统)有关。OOA的对象不提供这些功能是正常的,应该推迟到设计阶段考虑。因为按原则,OOA模型应该独立于具体的实现环境。,2019/5/31,广东工业大学计算机学院,22,9.3.3 审查和筛选 1. 舍弃无用的对象 1)通过属性判断 2)通过服务判断 2. 对象的精简 1)只有一个服务的对象 2)只有一个属性的对象 3. 推迟到OOD考虑的对象,2019/5/31,广东工业大学计算机学院,23,9.3.4 识别主动对象 (1

11、)问题域和系统责任:哪些对象将在系统中呈现一种主动行为,即哪些对象具有某种不需要其他对象请求就主动表现的行为(凡是在系统中呈现主动行为的对象都应该是主动对象)。 (2)系统边界:系统边界以外的活动者与系统中哪些对象直接进行交互,处理这些交互的对象服务是否需要与其他系统活动并发地执行(这些对象可能是主动对象)。 (3)系统执行情况:设想系统是怎样执行的。,2019/5/31,广东工业大学计算机学院,24,9.4 对象的发现和标识,许多资料都介绍了面向对象的技术。但是,对于发现和标识对象的问题,都仅是普通地讲一些原则。对于这些原则理解很容易。但是对于一个具体的系统而言,如何发现对象,却缺少一个形式

12、化的东西。 9.4.1 动机 可以用传统的三种系统分析工具:数据流图、实体-关系图和状态-变迁图。,2019/5/31,广东工业大学计算机学院,25,9.4.2 方法,图9-4 发现对象过程,2019/5/31,广东工业大学计算机学院,26,9.4.3 三视图模型(3VM) 1. 实体-关系模型 尽管实体-关系图是发现对象的有力工具,但是在此同时也发现在应用时存在一些问题 2. 数据流模型 数据流模型有两种模型,都是发现对象的有力工具。,2019/5/31,广东工业大学计算机学院,27,图9-5 上下文图,2019/5/31,广东工业大学计算机学院,28,3. 状态-变迁模型 状态-变迁模型有

13、两种形式,它们都是发现对象的有力工具。 第一种是事件响应模型。,2019/5/31,广东工业大学计算机学院,29,9.4.4 语言信息分析 基于语言的信息分析则在发现对象的方面起着重要的作用。而且,基于语言的信息分析也同样有助于标识对象的成分。因此,它和三视图模型有一定的重叠。 基于语言的信息分析的目的是标识出问题域的概念空间及其这些概念的关系。 短语频率分析是对选定的资源文本进行搜索,将可以表示问题域概念的术语标识出来。然后,用一个二维表列出对这个问题域进行描述的短语。,2019/5/31,广东工业大学计算机学院,30,将短语频率分析清单转换面向对象分析或者面向对象设计,其工作表是非常有用的

14、。,表9-1 面向对象分析/面向对象设计工作表格,2019/5/31,广东工业大学计算机学院,31,说明:表中(0)(8)栏的意义如下: (0)不合适,可能无关。 (1)可能的对象类。 (2)可能是子/超类。 (3)可能描述对象类的属性/关系。 (4)可能描述对象的服务。 (5)与实现无关。 (6)可能属于人机交互。 (7)可能属于任务管理。 (8)可能属于数据管理。,2019/5/31,广东工业大学计算机学院,32,另一种方法是矩阵分析方法,它是一种比短语频率分析方法更复杂、实现起来更困难的技术。而且通常是在初始对象标识出来后再使用矩阵分析技术。,图9-6 矩阵构造图,2019/5/31,广

15、东工业大学计算机学院,33,9.5 对象分类,建立类图的对象层,在大多数情况下,如果对系统中所需的对象有了正确的认识,建立它们的类便是一件相对简单的工作了。 但是在有些情况下事情未必都这么简单,从单个对象着眼所认识的对象特征是否正好可作为整个类的特征有待于核实。,2019/5/31,广东工业大学计算机学院,34,9.5.1 异常情况的检查和调整 1. 属性及服务相同的类 现实世界中完全不同的事物经过以系统责任为目标的抽象,保留下来的属性和服务可能是完全相同的,于是就出现了完全不同的事物被抽象为同一个类的现象。 2. 类的属性或服务不适合该类的全部对象 例如,“汽车”这个类如果有“载货限量”这个

16、属性,则它只适合于货车,而不能适合高级轿车。,2019/5/31,广东工业大学计算机学院,35,3. 属性和服务相似的类 如果两个(或以上)类的属性和服务有许多是相同的,则考虑建立一般-特殊结构或整体-部分结构,以简化类的定义。 4. 对同一事物的重复描述 问题域中某些事物实际上是另一种事物的附属品和一定意义上的抽象。例如,车辆驾照对车辆、身份证对公民、图书条形码对图书都是这样的关系。,2019/5/31,广东工业大学计算机学院,36,9.5.2 类的命名 类的命名应遵循以下原则: (1)类名应该反映每个对象个体,而不是整个群体。 (2)类的名字应恰好符合该类(和它的特殊类)所包含的每一个对象

17、。 例如,一个类(和它的特殊类)的对象如果既有汽车又有马车,则可用“车辆”作类名;如果还包括轮船,则可用“交通工具”作类名。,2019/5/31,广东工业大学计算机学院,37,(3)采用名词,或带有定语的名词(如“外语书”);使用规范的词汇,不用市井俚语(如“大款”、“手提”之类)和问题域专家及用户惯使用的词汇(例如在计算机行业不要把显卡称为“视屏适配器”),还要注意避免使用毫无意义的字符和数字作为类名(如x、y、z等)。 (4)使用适当的语言文字。 文档使用中文无疑最有利于表达和交流 ;类及其属性和服务的命名使用字符比较好。,2019/5/31,广东工业大学计算机学院,38,9.5.3 建立

18、类图的对象层 1)用类符号表示每个类(对于主动对象,在类名之前增加主动标记“”),把它们画出来(目前比较流行的是Rose工具),便形成了OOA基本模型中的对象层。 (2)在类描述模板中填写关于每个类的详细说明。 (3)在发现对象的活动中能够认识的属性和服务以及能够认识的结构一连接,均可随时在类图上画出。,2019/5/31,广东工业大学计算机学院,39,9.6 对象的属性和服务,面向对象程序设计的不同之处只是在于:以对象为基本单位来组织系统中的数据和操作,形成对问题域中事物的直接映射。 问题域中事物的特征可分为静态的和动态的。静态特征可以通过一些数据来表达,例如办公室职员的姓名、职务、电话号码

19、等;动态特征表明事物的行为,只能通过一系列操作来表达,例如职员所要完成的各项工作。面向对象方法用对象表示问题域中的事物,并分别用对象的一组属性和服务来表达事物的静态和动态特征。,2019/5/31,广东工业大学计算机学院,40,属性的定义是: 定义9-2:属性是描述对象静态特征的一个数据项。 服务的定义是: 定义9-3:服务是描述对象动态特征(行为)的一个操作序列。 按照面向对象方法的封装原则,一个对象的属性和服务应该紧密结合。某个对象的属性只能由其服务存取。,2019/5/31,广东工业大学计算机学院,41,属性的表示法,是在类符号的中部填写每一个属性的名字。服务的表示法,是在类符号的下部填

20、写每个服务的名字,对于主动服务,须在服务名之前加一个标记“”。如图9-7所示。图9-7 属性和服务表示法,2019/5/31,广东工业大学计算机学院,42,9.7 定义属性,研究当前的问题域和系统责任,针对本系统应该设置的每一类对象,按照问题的实际情况,以系统责任为目标进行正确的抽象,从而找出每一类对象应有的属性。 9.7.1 策略与启发 发现对象的属性: (1)从常理判断这个对象应该具有哪些属性。 按照一般常识推断它应该由哪些属性来描述。,2019/5/31,广东工业大学计算机学院,43,(2)根据当前问题域分析这个对象应该有哪些属性。 有些属性只有认真地研究当前问题域才能得到。例如条形码,

21、考虑超级市场这类问题域时则会发现它是必须设置的属性。 (3)从系统责任要求的角度分析这个对象应具有哪些属性。有时,只有具体地考虑系统责任才能决定是否需要对象的某些属性。,2019/5/31,广东工业大学计算机学院,44,(4)建立这个对象涉及到系统中所需的信息,包括要保存和管理的信息。 (5)对象区别的状态,是否增加属性来区别这些状态。例如,设备在“停止” ,“运行”不同状态下系统的行为不同,在“设备”对象中设立“状态”属性。 (6)对象在服务中实现其功能,要增设哪些属性。 例如实时监控系统的传感器对象,一个“时间间隔”属性。 (7)表示整体-部分结构和实例连接需要用什么属性。,2019/5/

22、31,广东工业大学计算机学院,45,9.7.2 审查与筛选 1. 这个属性是否体现了以系统责任为目标的抽象 例如一本书有长、宽、高等属性,但是在书籍管理系统中,这些属性可能没用,那就应该丢弃。 2. 这个属性是不是描述这个对象本身的特征 一个对象的属性,应该描述对象本身的特征,否则即使有用,也不应放置在对象中。,2019/5/31,广东工业大学计算机学院,46,3. 该属性是否破坏了对象特征的“原子性” 认识事物的特征,应该按日常的思维习惯采用原子的概念。例如人的姓名,包括姓氏和名字等内容,但这两个内容在概念上是不可分的。 4. 该属性是否可以通过继承得到 如果当前对象的类处于一般-特殊结构的

23、特殊类位置,则检查它的属性是否可以通过继承得到。 5. 该属性是否可以从其他属性直接导出 如果一个属性的值明显地可从另一个属性值直接导出,则应该去掉;,2019/5/31,广东工业大学计算机学院,47,6. 属性类型 (1)单值。 例10-1:如表9-2所示,2019/5/31,广东工业大学计算机学院,48,(2)互斥。 例10-2:如表9-3所示。,2019/5/31,广东工业大学计算机学院,49,(3)多值。 例10-3:如表9-4所示。,2019/5/31,广东工业大学计算机学院,50,7. 不同属性类型的解决方法 (1)互斥属性,解决方法如图9-8所示。图9-8 互斥属性的解决方法,2

24、019/5/31,广东工业大学计算机学院,51,(2)多值,解决方法如图9-9所示。图9-9 多值的解决方法,2019/5/31,广东工业大学计算机学院,52,9.7.3 推迟到OOD考虑的问题 与实现条件有关的问题可推迟到OOD中解决:(1)对象标识问题: 对象标识的定义如下: 对象标识是分配给每个对象的永久性标识(又称作“柄”),它符合下述条件: 在一定的范围或领域中是惟一的。 与对象实例的特征、状态及分类(可能是动态的)无关。 在对象存在期间保持一致。,2019/5/31,广东工业大学计算机学院,53,(2)规范化问题: 不太明显的信息冗余表现为不满足第二范式或更高的范式条件则暂时不予考

25、虑。(3)性能问题: 为了提高执行速度,可以增加一些属性。但是执行速度是与机器有关的,所以这个问题也推迟到OOD时考虑。,2019/5/31,广东工业大学计算机学院,54,9.7.4 属性的命名和定位 属性的命名原则基本上和类的命名原则相同:属性的定位首先要注意把属性放置到由它直接描述的那个对象的类符号中。 9.7.5 属性的详细说明 在类描述模板中,主要包括下述信息 : 1. 属性的说明 如果属性的命名不足以表明属性意义,则应给出简练的文字解释,2019/5/31,广东工业大学计算机学院,55,2. 属性的数据类型 每个属性的详细说明应尽可能指出该属性的数据类型。 3. 属性所体现的关系 用

26、于表示整体-部分关系或实例连接关系的属性,应该特别指明并加以解释。 4. 实现要求及其他 如属性的精度要求、初值、取值范围、度量单位、数据完整性、存取条件等,凡是分析阶段应该提出的要求或应该给出的信息,都在此明确地指出。,2019/5/31,广东工业大学计算机学院,56,9.8 定义服务,分析员通过分析对象的行为来发现和定义对象的每个服务,但对象的行为规则往往和对象所处的状态有关。 9.8.1 对象的状态与状态转换图 1. 对象状态 定义9-4a:对象或者类的所有属性的当前值。 对象的每一个属性的不同取值所构成的组合都可看作对象的一种新的状态。,2019/5/31,广东工业大学计算机学院,57

27、,定义9-4b:对象或者类的整体行为(例如响应消息)的某些规则所能适应的(对象或类的)状况、情态、条件、形式或生命周期阶段。 虽然在大部分情况下对象的不同状态也是通过不同的属性值来体现的,但是认识和区别对象的状态只着眼于它对对象行为规则的不同影响,即:仅当对象的行为规则有所不同时,才称对象处于不同状态。,2019/5/31,广东工业大学计算机学院,58,例10-4:通信控制系统中的传真机对象。 为了分析“接收”和“发送”等服务的行为规则,应该注意的对象状态是传真机设备的关闭、就绪(开启并空闲)、忙、故障等状态,为此可在其他属性之外专门定义一个“状态”属性。该属性有以上几种属性值,每一个属性值就

28、是一种状态。,2019/5/31,广东工业大学计算机学院,59,例10-5:“栈”对象。 假如它的属性是100个存储单元和一个栈顶指针;服务是“压入”和“弹出”。它有多少状态呢?经分析,只需认识三种状态,即空(指针值=0)、满(指针值=100)、半满(0指针值100)。由这三种状态决定的对象的行为规则如表9-5所示,2019/5/31,广东工业大学计算机学院,60,2. 状态转换图 对行为规则比较复杂的对象都需要做以下工作: (1)找出对象的各种状态。 (2)分析在不同的状态下,对象的行为规则有何不同?在发现它们没有区别时,可以将一些状态合并。 (3)分析从一种状态可以转换到哪几种其他状态以及

29、该对象的什么行为会引起这种转换?,2019/5/31,广东工业大学计算机学院,61,如图9-10所示是“栈”对象的状态转换图。,2019/5/31,广东工业大学计算机学院,62,9.8.2 行为分类 1. 系统行为 某些行为是系统把对象看作一个整体来处理时施加于对象的,这些行为实际上不是对象自身的行为。属于这类行为的有对象的创建、复制、存储到外存、从外存恢复、删除等等。 2. 对象自身的行为算法简单的服务 按照严格的封装原则,任何读、写对象属性的操作都不能从对象外部直接进行,而应由对象中相应的服务完成此事。,2019/5/31,广东工业大学计算机学院,63,3. 对象自身的行为算法复杂的服务

30、此类服务描述了对象所映射事物的固有行为,其算法是一些比较复杂的服务,而要进行某些计算或监控操作。,2019/5/31,广东工业大学计算机学院,64,9.8.3 发现服务的策略与启发 发现和定义对象的服务和OOA的其他活动一样,应研究问题域和系统责任以明确各个对象应该设立哪些服务以及如何定义这些服务;并借鉴以往同类系统的OOA结果尽可能加以复用。特别要考虑以下几个问题: 1. 考虑问题域 考虑问题域要求考虑对象在问题域中具有哪些行为?在这些行为中哪些是与系统责任有关的?以及应该设立何种服务来模拟这些行为?,2019/5/31,广东工业大学计算机学院,65,2. 考虑系统责任 在OOA模型中,对象

31、的服务是最直接地体现系统责任并实现用户需求的成分,因此定义服务的活动比其他OOA活动更强调对系统责任的考察。 3. 分析对象的状态 找出对象生命历程中所经历的每一种状态,画出状态转换图。与此同时提出下述问题: (1)对象从一种状态转换赋予另一种状态是由什么操作引起的?是否已经设立了相应的服务? (2)在每一种状态下对象可以发生什么行为?应该由什么服务来描述?,2019/5/31,广东工业大学计算机学院,66,4. 追踪服务的执行路线 在上述问题思考完毕后能够发现的服务都已发现,模拟每个服务的执行并追踪其执行路线,可以帮助分析员发现遗漏的服务。 对执行路线的跟踪可以同时起到两种作用:既可发现一些

32、服务,又可发现一些消息连接,可以说是一举两得,所以是非常重要的一步。,2019/5/31,广东工业大学计算机学院,67,9.8.4 审查与调整 对每个对象已发现的服务逐个进行审查,重点检查以下两点: (1)首先检查每个服务在系统中是否真正需要。 (2)其次是检查每个服务是不是高内聚的。,2019/5/31,广东工业大学计算机学院,68,9.8.5 认识对象的主动行为 从以下几个方面来进行这种判断: (1)考虑问题域。这要求考虑问题域这个服务所描述的对象行为是不是主动行为。 (2)考虑与系统边界以外的活动者直接进行交互的对象。这些对象极有可能成为主动对象。 (3)考虑系统功能的构成层次中完成最外

33、层功能的对象服务是否应定义为主动服务。,2019/5/31,广东工业大学计算机学院,69,(4)最后一个策略是进行服务执行路线的逆向追踪。考虑每个服务是被其他哪些对象的哪些服务请求的,按消息传递的相反方向跟踪上去,直到发现某个服务不被其他成分所请求。 9.8.6 服务的命名和定位 服务的名称应由动词和名词组成,它一般采用动宾结构。 服务放置在哪个对象,应和问题域中拥有这种行为的实际事物相一致。 在一般-特殊结构中,和属性的定位原则一样。,2019/5/31,广东工业大学计算机学院,70,9.8.7 服务的详细说明 (1)服务解释:用一段简练的文字解释该服务的作用及功能。 (2)消息协议:给出服

34、务的入口消息格式,内容包括:服务名、输入/输出参数、参数类型。 (3)消息发送:指出在这个服务执行时,需要请求哪些别的对象服务。内容包括接收消息的对象类名以及执行这个消息的服务名。 (4)约束条件:如果该服务的执行有前置条件、后置条件以及执行时间的要求等需要说明的事项。,2019/5/31,广东工业大学计算机学院,71,(5)服务流程图。 服务流程图两点说明: (1)OOA方法是支持渐进式开发的,一旦有了更深入的认识都可随时回到这个对象,继续补充、修改或细化详细说明。 (2)不管OOA文档还是OOD文档,都不强调十分细化的服务流程图。 对流程图的详细程度要把握适当的分寸。,2019/5/31,

35、广东工业大学计算机学院,72,所谓适当,是指能够表达清楚以下几点: (1)在每个陈述框中能够概括服务这一部分应做的主要工作。 (2)给出主要的分支点、循环、判断条件及控制路线。 (3)标明在哪些位置有对外消息,以及消息的名称。,2019/5/31,广东工业大学计算机学院,73,9.9 应用实例,下面将继续使用前面的电梯控制系统作为示范OOA实际操作过程的例子 9.9.1 功能需求 总的需求就是要设计和实现一个能对一座40层楼的建筑物内的4部电梯进行调度和控制的程序,这些电梯能以常规的方式将乘客从某一层楼送到另一层楼。 效率:、目的地按钮:、目的地按钮指示灯:、楼层传感器:、到达指示灯:、召唤按

36、钮:、召唤按钮指示灯:、电梯马达控制(上、下、停):、目标机:。,2019/5/31,广东工业大学计算机学院,74,9.9.2 发现对象 通过考查该系统的问题域及系统责任可以发现如下对象: (1)到达事件(ARRIVAL EVENT): (2)到达面板(ARRIVAL PANEL): (3)目的地事件(DESTINATION EVENT): (4)目的地面板(DESTINATION PANEL): (5)电梯(ELEVATOR):,2019/5/31,广东工业大学计算机学院,75,6)电梯马达(ELEVATOR MOTOR): (7)楼层(FLOOR): (8)超载传感器(OVERWEIGHT

37、 SENSOR): (9)召唤事件(SUMMONS EVENT): (10)召唤面板(SUMMONS PANEL):,2019/5/31,广东工业大学计算机学院,76,9.9.3 对象层表示图9-11 模型的对象层,2019/5/31,广东工业大学计算机学院,77,9.9.4 电梯系统的属性描述 找出的10个类找出它们的属性。 1. 类ARRIVAL EVENT 2. 类ARRIVAL PANEL 3. 类ELEVATOR 4. 类DESTINATION EVENT 5. 类DESTINATION PANEL,2019/5/31,广东工业大学计算机学院,78,6. 类SUMMONS_PANEL 7. 类FLOOR 8. 类ELEVATOR MOTOR 9. 类OVERWEIGHT SENSOR 10. 类SUMMONS EVENT,2019/5/31,广东工业大学计算机学院,79,9.9.5 电梯系统的服务定义 9.9.6 电梯系统的特征层 通过分析,明确了每个对象所需的属性与服务。至此可以画出该系统OOA模型的特征层,如图9-12所示。,2019/5/31,广东工业大学计算机学院,80,图9-12 OOA模型的特征层,2019/5/31,广东工业大学计算机学院,81,谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报