软件工程课件:7%-第07章 面向对象的分析和设计.ppt

上传人(卖家):罗嗣辉 文档编号:2045888 上传时间:2022-01-21 格式:PPT 页数:215 大小:2.04MB
下载 相关 举报
软件工程课件:7%-第07章 面向对象的分析和设计.ppt_第1页
第1页 / 共215页
软件工程课件:7%-第07章 面向对象的分析和设计.ppt_第2页
第2页 / 共215页
软件工程课件:7%-第07章 面向对象的分析和设计.ppt_第3页
第3页 / 共215页
软件工程课件:7%-第07章 面向对象的分析和设计.ppt_第4页
第4页 / 共215页
软件工程课件:7%-第07章 面向对象的分析和设计.ppt_第5页
第5页 / 共215页
点击查看更多>>
资源描述

1、复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程2/215 面向对象的基本概念面向对象的基本概念 面向对象的分析和设计过程面向对象的分析和设计过程 UML概述概述 用况建模用况建模 静态建模静态建模 动态建模动态建模 物理体系结构建模物理体系结构建模复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程3/215 面向对象的分析和设计过程面向对象的分析和设计过程 UML概述概述 用况建模用况建模 静态建模静态建模 动态建模动态建模 物理体系结构建模物理体系结构建模复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程

2、4/215Peter Coad和Edward Yourdon提出用下列等式识认面向对象方法:面向对象 = 对象(object) + 分类(classification) + 继承(inheritance) + 通过消息的通信(communication with messages)可以说,采用这四个概念开发的软件系统是面向对象的复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程5/215面向对象方法的出现很快受到计算机软件界的青睐,并成为20世纪90年代的主流开发方法。我们可以从下列几个方面来分析其原因:1.从认知学的角度来看,面向对象方法符合人们对客观世界的认识规

3、律。2.面向对象方法开发的软件系统易于维护,其体系结构易于理解、扩充和修改。3.面向对象方法中的继承机制有力支持软件的复用。 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程6/2151. 对象(object) 对象是指一组属性以及这组属性上的专用操作的封装体。 属性(attribute)通常是一些数据,有时它也可以是另一个对象。每个对象都有它自己的属性值,表示该对象的状态。对象中的属性只能通过该对象所提供的操作来存取或修改。 操作(operation)(也称方法或服务)规定了对象的行为,表示对象所能提供的服务。 复旦大学计算机科学与工程系复旦大学计算机科学与工程

4、系 软件工程课程软件工程课程7/215封装(encapsulation)是一种信息隐信息隐蔽技术蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装的目的是使对象的使用者和生产者分离,使对象的定义和实现分开。 一个对象通常可由对象名、属性和操作三部分组成。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程8/2152. 类(class) 类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例(instance)。 类是创建对象的模板,从同一个类实例化的每个对象都具有相同的结构和行为。复旦大学计算机科学与工程系复旦大

5、学计算机科学与工程系 软件工程课程软件工程课程9/215轿轿 车车型号:字符串型号:字符串颜色:字符串颜色:字符串牌照号:字符串牌照号:字符串张经理的轿车张经理的轿车型号型号= =桑塔纳桑塔纳颜色颜色= =红色红色牌照号牌照号= =沪沪AN2037AN2037类类实例对象实例对象复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程10/2153. 继承(inheritance) 继承是类间的基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承其父类(或祖先类)的属性和操作,

6、还可以对父类(或祖先类)中的操作重新定义其实现方法。 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程11/215 矩形矩形长长宽宽对角线对角线计算面积计算面积计算对角线计算对角线 多边形多边形顶点数顶点数顶点坐标顶点坐标计算面积计算面积旋转旋转复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程12/215有时,我们定义一个类,它把一些类组织起来,提供一些公共的行为,但并不需要使用这个类的实例,而仅使用其子类的实例。我们把这种没有实例的类称为抽象类(abstract class)。在抽象类中可以定义抽象操作,抽象操作指:只定义这个类的操

7、作接口,不定义它的实现,其实现部分由其子类定义。抽象操作操作名用斜体字表示,也可以在操作特征(signature)后面加上特征字符串abstract。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程13/215交通工具交通工具飞行器飞行器汽汽 车车 船船轿轿 车车货货 车车 一般一般- -特殊关系特殊关系复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程14/215 如果一个子类只有唯一一个父类,这个继承称为单一继承。如果一个子类有一个以上的父类,这种继承称为多重继承。 水上交通工具水上交通工具 陆上交通工具陆上交通工具 水陆两栖交通工

8、具水陆两栖交通工具多重继承多重继承复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程15/2154. 消息(message) 消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务。一个消息通常包括接收对象名、调用的操作名和适当的参数(如果有必要的话)。消息只告诉接收对象需要完成什么操作,但并不指示接收者怎样完成操作。消息完全由接收者解释,接收者独立决定采用什么方法完成所需的操作。 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程16/2155. 多态性(polymorphism) 多态性是指同一个操作作用于不同的对象

9、同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结上可以有不同的解释,并产生不同的执行结果果。例如“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形,作用在“圆”对象上,则在屏幕上画一个圆。也就是说,相同操作的消息发送给不同的对象时,每个对象将根据自己所属类中定义的这个操作去执行,从而产生不同的结果。 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程17/2156. 动态绑定(dynamic binding) 动态绑定是指在程序运行时才将消息所请求的操作与实现该操作的方法连接起来。 传统的程序设计语言的过程调用与目标代码的连接(即调用哪个过程)放

10、在程序运行前(即编译链接时)进行(称为静态绑定),而动态绑定则是把这种连接推迟到运行时才进行。 动态绑定是一种在运行时确定被执行代码的技术。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程18/215在一般与特殊关系中,子类是父类的一个特例,所以父类对象可以出现的地方,也允许其子类对象出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定。 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程19/215if 条件条件 then p := t ; else p := r

11、;area := p.getarea ;getArea abstractpolygonareahexagongetArearectanglegetArealengthwidthtrianglegetAreaVar p : polygon ;Var t : triangle := triangle.new ;Var r : rectangle := rectangle.new ; 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程20/215 面向对象的基本概念面向对象的基本概念 UML概述概述 用况建模用况建模 静态建模静态建模 动态建模动态建模 物理体系结构建模物

12、理体系结构建模复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程21/2151.获取客户对系统的需求:包括获取客户对系统的需求:包括标识场景和用况标识场景和用况,以,以及建造需求模型及建造需求模型2.用基本的需求为指南,来用基本的需求为指南,来确定类和对象确定类和对象(包括属性(包括属性和操作)和操作)3.定义定义类的结构和层次类的结构和层次(继承关系继承关系)4.建造建造对象对象关系模型关系模型5.建造建造对象对象行为模型行为模型6.利用用况利用用况/场景来场景来复审复审分析模型分析模型复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程

13、22/2151.获取客户对系统的需求获取客户对系统的需求 需求获取必须让客户与开发者充分地交流,这里介绍一种采用用况来收集客户需求采用用况来收集客户需求的技术。分析员首先标识使用该系统的不同的执行者(执行者(actor),这些执行者代表使用该系统的不同的角色执行者代表使用该系统的不同的角色。每个执行者可以叙述他如何使用系统,或者说他需要系统提供什么功能。执行者提出的每一个使用场景(或功能)都是系统的一个用况的实例,一个用况描述了系统的一种用法(或一个功能),所有执行者提出的所有用况构成系统的完整的需求。 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程23/215

14、注意,执行者与用户是不同的两个概念,一个用户可以扮演几个角色(执行者),一个执行者可以是用户,也可以是其他系统(应用程序或设备)。得到的用况必须进行复审,以使需求完整。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程24/2152.标识类和对象 类和对象来自问题领域可以先标识候选类,然后进行筛选可以先标识候选类,然后进行筛选复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程25/2153. 定义类的结构和层次 类 的 结 构 主 要 有 两 种 : 一 般 特 殊(generalizationspecialization)结构和整体部分

15、(wholepart)结构。 一般特殊结构是一种分类结构,反映了类间的一般与特殊的关系。一般类与特殊类之间是一种“is a”的关系,如:汽车是一种交通工具。同样,特殊类还可以分为更特殊的类,这样可形成类的层次结构。 整体部分结构反映了类间的整体与部分关系。值得注意的是,整体部分关系是对对象而言的,而不是对类的。整体部分关系是一种“has a ”的关系,如“汽车”有“发动机”。同样,整体部分结构也具有层次结构。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程26/2154. 建造对象关系模型 对象-关系模型描述了系统的静态结构,它指出了类间的关系(relations

16、hip) 类之间的关系有关联、依赖、泛化、实现等复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程27/2155. 建立对象行为模型对象-行为模型描述了系统的动态行为,它们指 明 系 统 如 何 响 应 外 部 的 事 件 或 激 励(stimulus)。建模的步骤如下:评估所有的用况,以完全理解系统中交互的序列评估所有的用况,以完全理解系统中交互的序列标识驱动交互序列的事件,理解这些事件如何和特定标识驱动交互序列的事件,理解这些事件如何和特定的对象相关联的对象相关联为每个用况创建事件轨迹(为每个用况创建事件轨迹(event trace)为系统建造状态机图为系统建造

17、状态机图复审对象复审对象-行为模型,以验证准确性和一致性行为模型,以验证准确性和一致性复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程28/215面向对象设计的一般步骤如下:1. 系统设计将子系统分配到处理器将子系统分配到处理器选择实现数据管理、界面支持和任务选择实现数据管理、界面支持和任务管理的设计策略管理的设计策略为系统设计合适的控制机制为系统设计合适的控制机制复审并考虑权衡(折衷)复审并考虑权衡(折衷)复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程29/2152. 对象设计 在过程级别(在过程级别(procedural lav

18、el)设计)设计每个操作,即设计每个操作的实现细节每个操作,即设计每个操作的实现细节 定义内部类定义内部类 为类属性设计内部数据结构为类属性设计内部数据结构3. 消息设计 使用对象间的协作和对象-关系模型,设计消息模型4. 复审 复审设计模型并在需要时迭代。 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程30/2151. 系统设计1) 将分析模型划分成子系统 在OO系统设计中,我们把分析模型中紧密相关的类、关系等设计元素包装成子系统。 通常,子系统的所有元素共享某些公共的性质,它们可能都涉及完成相同的功能;它们可能驻留在相同的产品硬件中;或者它们可能管理相同的类

19、和资源。子系统由它们的责任所刻画,即,一个子系统可以通过它提供的服务来标识。在OOD中,这种服务是完成特定功能的一组操作。 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程31/215 子系统的设计准则是:(1) 子系统应具有定义良好的接口,通过接口和系统的其它部分通信;(2) 除了少数的“通信类” 外,子系统中的类应只和该子系统中的其它类协作;(3) 子系统的数量不宜太多;(4) 可以在子系统内部再次划分,以降低复杂性。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程32/2152) 标识问题本身的并发性,并为子系统分配处理器 通过

20、对对象-行为模型的分析,可发现系统的并发性。如果对象(或子系统)不是同时活动的,则它们不需并发处理,此时这些对象(或子系统)可以在同一个处理器上实现。反之,如果对象(或子系统)必须对一些事件同时异步地动作,则它们被视为并发的,此时,可以将并发的子系统分别分配到不同的处理器,或者分配在同一个处理器,而由操作系统提供并发支持。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程33/2153) 任务管理设计Coad和Yourdon提出如下管理并发任务对象的设计策略:(1) 确定任务的类型;(2) 必要时,定义协调者任务和关联的对象;(3) 将协调者任务和其它任务集成。 通

21、常可通过了解任务是如何被启动的来确定任务的通常可通过了解任务是如何被启动的来确定任务的类型,如事件驱动任务,时钟驱动任务。每个任务应该类型,如事件驱动任务,时钟驱动任务。每个任务应该定义其优先级,并识别关键任务。当有多个任务时还可定义其优先级,并识别关键任务。当有多个任务时还可以考虑增加一个协调者任务,以控制这些任务协同工作以考虑增加一个协调者任务,以控制这些任务协同工作复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程34/2154) 数据管理设计 通常数据管理设计成层次模式,其目的是将数据的物理存储及操纵与系统的业务逻辑加以分离。 数据管理的设计包括设计系统中各

22、种数据对象的存储方式(如内部数据结构、文件、数据库),以及设计相应的服务,即为要储存的对象增加所需的属性和操作。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程35/2155) 资源管理设计 OO系统可利用一系列不同的资源(如磁盘驱动器、处理器、通信线路等外部实体或数据库、对象等抽象资源),很多情况下,子系统同时竞争这些资源,因此要设计一套控制机制和安全机制,以控制对资源的访问,避免对资源使用的冲突。 6)人机界面设计 对大多数应用系统而言,人机界面本身是一个非常重要的子系统。人机界面主要强调人如何命令系统,以及系统如何向人提交信息。它包括窗口、菜单、报告的设计。

23、 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程36/2157) 子系统间的通信 子系统之间可以通过建立客户/服务器连接进行通信,也可以通过端对端(peer to peer)连接进行通信。我们必须确定子系统间通信的合约(contract),合约提供了一个子系统和另一个子系统交互的方式。 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程37/2152. 对象设计对象设计是为每个类的属性和操作作出详细的设计,并设计连接类与它的协作者之间的消息规约。对象描述对象描述1)协议描述(外部的黑盒描述外部的黑盒描述):描述对象的接口,即定义对象可

24、以接收的消息以及当对象接收到消息后完成的相关操作;2)实现描述(内部描述内部描述):描述传送给对象的消息所蕴含的每个操作的实现细节,实现细节包括有关对象私有部分的信息,即关于描述对象属性的数据结构的内部细节和描述操作的过程细节。对象的使用者只需要关心协议描述对象的使用者只需要关心协议描述复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程38/2152)设计算法和数据结构 为对象中的属性和操作设计数据结构和实现算法。 3. 设计模式(design patterns) 在许多面向对象系统中,存在一些类和通信对象的重复出现的模式。这些模式求解特定的设计问题,使面向对象设计

25、更灵活,并最终可复用。这些模式帮助设计者复用以前成功的设计,设计者可以把这些模式应用到新的设计中。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程39/215一个设计模式通常可用四个信息来描述:1)模式名 设计模式名应具有实际的含义,它能反映模式的适用性和意图。2)使模式可被应用所必须存在的环境和条件。3)设计模式的特征 模式特征指出一些设计的属性,调整这些属性使该模式能适应各种不同的问题。这些属性表示设计的特征,这些特征能被用于检索(通过数据库)以找到合适的模式。4)应用设计模式的结果(consequences) 对于一个设计模式的使用结果表明设计决策的走向。复

26、旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程40/215CategoryClass-&-ObjectStructure1+1+AttributeMethodObject model 由五个由五个层次组成,层次组成,相当于相当于把五张透明胶片把五张透明胶片叠叠在一起,每一层显在一起,每一层显示更多的细节示更多的细节。复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程41/215 面向对象的基本概念面向对象的基本概念 面向对象的分析和设计过程面向对象的分析和设计过程 用况建模用况建模 静态建模静态建模 动态建模动态建模 物理体系结构建模物

27、理体系结构建模复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程42/215Unified Modeling Language复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程43/215 为何研究UML结束方法大战 发展历史 1994年Booch和Rumbaugh在Rational Software Corporation开始了UML的工作,其目标是创建一个“统一的方法”, 1995年OOSE的创始人Jacobson加盟到这项工作中,工作重点转移到创建一种统一的建模语言UML 1996年6月、10月、1997年1月、11月分别推出了UM

28、L0.9、 UML0.91、 UML1.0、 UML1.1 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程44/2151997年年11月,月,OMG(Object Management Group)批准把批准把UML1.1作为基于面向对象技术作为基于面向对象技术的标准建模语言的标准建模语言之后,之后,UML进行了持续的修订和改进,先后产进行了持续的修订和改进,先后产生了生了UML1.2、1.3、1.4、1.5版本版本2004年推出了年推出了UML2.0,UML2.0对对UML1.x作了重大的修改作了重大的修改复旦大学计算机科学与工程系复旦大学计算机科学与工程系

29、软件工程课程软件工程课程45/215 模型中的实体以及实体间相互连接的关系模型中的实体以及实体间相互连接的关系 泛化泛化 对象对象属性属性操作操作状态状态用例用例 结点结点接口接口包包依赖依赖关联关联聚集聚集模型元素模型元素类类 属性属性操作操作构件构件注解注解复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程46/215 模型中的实体以及实体间相互连接的关系模型中的实体以及实体间相互连接的关系 部分模型元素部分模型元素注解注解类类属性属性操作操作对象:类对象:类属性属性操作操作状态状态用况用况 结点结点供应接口供应接口包包依赖依赖关联关联泛化泛化主动类主动类属性属

30、性操作操作请求接口请求接口构件构件实现实现复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程47/215 用况图用况图 (use case diagram) 类图类图 (class diagram) 对象图对象图 (object diagram) 构件图构件图 (component diagram) 组合结构图组合结构图 (composite structure diagram) 顺序图顺序图 (sequence diagram) 通信图通信图 (communication diagram)交互图交互图 (interaction diagram)复旦大学计算机科学与

31、工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程48/215 状态机图状态机图 (state machine diagram) 活动图活动图 (activity diagram) 部署图部署图 (deployment diagram) 制品图制品图 (artifact diagram) 包图包图 (package diagram) 时间图时间图 (timing diagram) 交互概览图交互概览图 (interaction overview diagram)复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程49/215描述参与者与用况描述参与者与用况(参

32、与者使用系统以实现某一特定目标的参与者使用系统以实现某一特定目标的情形情形)之间的关联关系,以及用况之间的扩展、继承等关系之间的关联关系,以及用况之间的扩展、继承等关系银行储蓄帐户管理系统银行储蓄帐户管理系统包含包含包含包含包含包含银行职员银行职员(用户代理)(用户代理)帐户管理帐户管理银行间转帐银行间转帐开户开户取款取款银行内转帐银行内转帐注销注销存款存款校验密码校验密码转帐转帐报表生成报表生成其它银行其它银行帐户管理系统帐户管理系统客户客户系统管理员系统管理员银行职员银行职员(管理人员)(管理人员)复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程50/215展

33、现一组类、接口以及它们相互之间的关系展现一组类、接口以及它们相互之间的关系2条或条或2条以上的线交于条以上的线交于0个或个或1个点个点lineX1:realY1:realX2:realY2:realpointX: realY: real相交相交2.*0.1复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程51/215展现一组对象以及相互展现一组对象以及相互之间的关系,是依照类之间的关系,是依照类图所建立的一组事物图所建立的一组事物(实例实例)的静态快照的静态快照L1: lineX1=10Y1=10X2= -10Y2= -10L2: lineL3: lineX1=10

34、Y1= 5X2= -10Y2= -5L4: lineX1=9Y1=5X2=9Y2=3X1= -10Y1=10X2=10Y2= -10P1:pointX = 0Y = 0P2:pointX=9Y=4。5复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程52/215描述构件、接口以及构件间的组装关系的静态视图,复合构描述构件、接口以及构件间的组装关系的静态视图,复合构件本身可以由内部的子构件图描述件本身可以由内部的子构件图描述应用收费应用收费管理管理信用卡代理构件的内部结构图信用卡代理构件的内部结构图信用卡代理信用卡代理状况状况购买购买预购销售预购销售团体销售团体销售:

35、售票员:售票员:营业员界面:营业员界面:销售亭界面:销售亭界面:管理员界面:管理员界面:票:票:信用卡收费:信用卡收费个体销售个体销售收费收费顾客访问顾客访问营业员访问营业员访问复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程53/215UML2.0新增的图,展示了类或协作的内部结构,新增的图,展示了类或协作的内部结构,与构件差别不大,经常认为与构件图等同与构件差别不大,经常认为与构件图等同复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程54/215描述特定场景下交互各方消息发送和接收的顺序描述特定场景下交互各方消息发送和接收的顺序呼

36、叫方呼叫方电话线电话线应叫方应叫方复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程55/215另一种交互图,强调交互上下文:参与交另一种交互图,强调交互上下文:参与交互的对象或角色的结构组织互的对象或角色的结构组织控制电梯运行的通信图控制电梯运行的通信图2:nextjob=GetJob():Elevator:Queue:Ordernewlocalnextjob:Elevator control:ButtonPush()parameterjob1.2:Create( )1.1 *all queues: len:=Length( ) broadcast1.3:Invo

37、ke (job)1:GetElevator(floorid)job复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程56/215以状态机的形式描述目标对象在各种以状态机的形式描述目标对象在各种事件作用下的行为事件作用下的行为电梯升降的状态机图电梯升降的状态机图Moving updo/moving to floorMoving downdo/moving to floorIdletimer=0do/increase timerarrivedarrivedgo down (floor)Moving to First floorgo up(floor)timer=time

38、-outarrivedgo up(floor)Onfirst floor复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程57/215描述一系列活动之间的控制流和数据流描述一系列活动之间的控制流和数据流未付款未付款已付款已付款*对每一订单项对每一订单项有货有货缺货缺货取消并取消并退回订单退回订单收到订单收到订单付款认可付款认可检查检查订单项订单项制作并发放制作并发放提货单提货单更新库存更新库存制作并发放制作并发放缺货单缺货单制作并发放制作并发放采购单采购单复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程58/215描述系统运行时各相关处

39、理单元结点、各结描述系统运行时各相关处理单元结点、各结点上部署的构件、以及相互间的通信协议点上部署的构件、以及相互间的通信协议DecNetTCP/IPTCP/IPClientA:Compaq Pro PCApplicationServer;Silicon GraphicsO2DatabaseServer:VAXClientB:Compaq Pro PC复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程59/215部署图的变体:描述系统实现制品的物理部署图的变体:描述系统实现制品的物理结构,制品包括文件、数据库等结构,制品包括文件、数据库等这两个物理文件这两个物理文件

40、“承载了承载了”逻辑类逻辑类HelloWorld的实现的实现复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程60/215描述包描述包(一种模型分解单位一种模型分解单位)以及包之间的关系以及包之间的关系售票处售票处计划计划广告广告进度表进度表客户记录客户记录票记录票记录运作运作售票售票工资单工资单计算计算购买购买复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程61/215UML2.0新增的图,描述对象间的交互,但关新增的图,描述对象间的交互,但关注于关于时间的推理,而不仅仅是相对顺序注于关于时间的推理,而不仅仅是相对顺序添水添水加热加热

41、复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程62/215UML2.0新增的图新增的图可认为是:活动图可认为是:活动图+顺序图的混合体顺序图的混合体使用活动图的表示使用活动图的表示法,其中的节点或法,其中的节点或者是一个交互或者者是一个交互或者是一个交互引用是一个交互引用复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程63/215视图视图(view)UML图图(静态方面静态方面)UML图图(动态方面动态方面)用况视图用况视图 用况图用况图交互图交互图状态机图状态机图活动图活动图设计视图设计视图 类图类图对象图对象图同上同上交互视图交

42、互视图与设计视图相同,更强调消息交互方面与设计视图相同,更强调消息交互方面实现视图实现视图 构件图构件图同上同上部署视图部署视图 部署图部署图同上同上需需求求设设计计实现实现部署部署复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程64/215 描述可被最终用户、分析人员和测试描述可被最终用户、分析人员和测试人员看到的人员看到的系统系统(外部外部)行为行为 不涉及系统的内部结构,但却是系统不涉及系统的内部结构,但却是系统体系结构设计的驱动力体系结构设计的驱动力 静态方面:用况图静态方面:用况图 动态方面:交互图、状态机图、活动动态方面:交互图、状态机图、活动图图复旦

43、大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程65/215 描述系统设计方案,主要包括类、接描述系统设计方案,主要包括类、接口以及相互之间的协作关系口以及相互之间的协作关系 静态方面:类图、对象图静态方面:类图、对象图 动态方面:交互图、状态机图、活动动态方面:交互图、状态机图、活动图图复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程66/215 展示系统不同部分之间的控制流,包括展示系统不同部分之间的控制流,包括并发和同步机制并发和同步机制 主要针对系统的非功能性方面,例如性主要针对系统的非功能性方面,例如性能、可伸缩性、吞吐量等能、

44、可伸缩性、吞吐量等 静态方面:类图、对象图静态方面:类图、对象图 动态方面:交互图、状态动态方面:交互图、状态机机图、活动图图、活动图 与设计视图的区别:突出控制系统的主与设计视图的区别:突出控制系统的主动类以及各部分间消息的流动动类以及各部分间消息的流动复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程67/215 描述组成最终产品发布的相关制品及其描述组成最终产品发布的相关制品及其关系,实现单元体现为可装配、打包并关系,实现单元体现为可装配、打包并发布的文件发布的文件 体现了逻辑单元体现了逻辑单元(类和构件类和构件)到物理制品到物理制品(物理构件、文件等物理构件

45、、文件等)的映射的映射 静态方面:构件图静态方面:构件图 动态方面:交互图、状态动态方面:交互图、状态机机图、活动图图、活动图复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程68/215 描述最终产品物理部署的拓扑结构描述最终产品物理部署的拓扑结构 包括组成整个系统的各种分布式硬件设包括组成整个系统的各种分布式硬件设备,以及各个软件模块在这些设备上的备,以及各个软件模块在这些设备上的部署和运行关系部署和运行关系 静态方面:部署图静态方面:部署图 动态方面:交互图、状态动态方面:交互图、状态机机图、活动图图、活动图复旦大学计算机科学与工程系复旦大学计算机科学与工程系

46、 软件工程课程软件工程课程69/215 面向对象的基本概念面向对象的基本概念 面向对象的分析和设计过程面向对象的分析和设计过程 UML概述概述 静态建模静态建模 动态建模动态建模 物理体系结构建模物理体系结构建模复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程70/215 用况:文本形式的情节描述,用以说用况:文本形式的情节描述,用以说明某参与者使用系统以实现某一特定明某参与者使用系统以实现某一特定目标的情形目标的情形 用况建模用于描述一个系统应该做什用况建模用于描述一个系统应该做什么,用么,用用况图用况图来描述来描述(可能有多幅可能有多幅) 用况图给出了用户所感

47、受到的系统行用况图给出了用户所感受到的系统行为,但不描述系统如何实现该功能为,但不描述系统如何实现该功能复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程71/215 用框图展示各类外部执行者用框图展示各类外部执行者(actor)与系与系统所提供的用况之间的参与关系,包括:统所提供的用况之间的参与关系,包括: 系统边界、用况 执行者(参与者):可能使用这些用况的人或外部系统人或外部系统,参与者与用况连接表示参与者使用了该用况 模型元素间关系:关联、扩展、包含、泛化等 每个用况的细节通常用文字描述,也可以每个用况的细节通常用文字描述,也可以用活动图来描述用活动图来描述

48、复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程72/215关系关系说明说明记号记号关联关联参与者与所参与的一个用参与者与所参与的一个用况之间的通信路径况之间的通信路径扩展扩展扩展的用况到基本用况的扩展的用况到基本用况的一种关系:扩展用况可以一种关系:扩展用况可以访问基本用况的所有属性,访问基本用况的所有属性,并在基本用况基础上增加并在基本用况基础上增加新的行为新的行为extend复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程73/215关系关系说明说明记号记号包含包含被包含用况是基本用况的一部被包含用况是基本用况的一部分,基本用况

49、能看到被包含用分,基本用况能看到被包含用况并依赖于它的的执行结果,况并依赖于它的的执行结果,但二者不能相互访问其它属性但二者不能相互访问其它属性泛化泛化一个一般用况与一个更特殊的一个一般用况与一个更特殊的用况之间的关系,特殊用况可用况之间的关系,特殊用况可继承一般用况的特征继承一般用况的特征include复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程74/215客户客户售票员售票员送货员送货员主管主管建立信建立信用用供应订供应订单单订单支订单支付付提供提供客户数客户数据据产生订产生订单单信用卡信用卡支付支付现金支现金支付付设置订设置订单单请求请求目录目录电话订购

50、电话订购includeinclude includeextend核对身核对身份份关联关联扩展扩展包含包含泛化泛化复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程75/215银行储蓄帐户管理系统银行储蓄帐户管理系统includeincludeinclude银行职员银行职员(用户代理)(用户代理)帐户管理帐户管理银行间转帐银行间转帐开户开户取款取款银行内转帐银行内转帐注销注销存款存款校验密校验密码码转帐转帐报表生成报表生成其它银行其它银行帐户管理系统帐户管理系统客户客户系统管理员系统管理员银行职员银行职员(管理人员)(管理人员)包含包含泛化泛化复旦大学计算机科学与工程

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

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(软件工程课件:7%-第07章 面向对象的分析和设计.ppt)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|