版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2/215 面向对象的基本概念面向对象的基本概念 面向对象的分析和设计过程面向对象的分析和设计过程 UML概述概述 用况建模用况建模 静态建模静态建模 动态建模动态建模 物理体系结构建模物理体系结构建模3/215 面向对象的分析和设计过程面向对象的分析和设计过程 UML概述概述 用况建模用况建模 静态建模静态建模 动态建模动态建模 物理体系结构建模物理体系结构建模4/215Peter Coad和Edward Yourdon提出用下列等式识认面向对象方法:面向对象 = 对象(object) + 分类(classification) + 继承(inheritance) + 通过消息的通信(comm
2、unication with messages)可以说,采用这四个概念开发的软件系统是面向对象的5/215面向对象方法的出现很快受到计算机软件界的青睐,并成为20世纪90年代的主流开发方法。我们可以从下列几个方面来分析其原因:1.从认知学的角度来看,面向对象方法符合人们对客观世界的认识规律。2.面向对象方法开发的软件系统易于维护,其体系结构易于理解、扩充和修改。3.面向对象方法中的继承机制有力支持软件的复用。 6/2151. 对象(object) 对象是指一组属性以及这组属性上的专用操作的封装体。 属性(attribute)通常是一些数据,有时它也可以是另一个对象。每个对象都有它自己的属性值,
3、表示该对象的状态。对象中的属性只能通过该对象所提供的操作来存取或修改。 操作(operation)(也称方法或服务)规定了对象的行为,表示对象所能提供的服务。 7/215封装(encapsulation)是一种信息隐信息隐蔽技术蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装的目的是使对象的使用者和生产者分离,使对象的定义和实现分开。 一个对象通常可由对象名、属性和操作三部分组成。8/2152. 类(class) 类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例(instance)。 类是创建对象的模板,从同一个类实例化的每个对象都
4、具有相同的结构和行为。9/215轿轿 车车型号:字符串型号:字符串颜色:字符串颜色:字符串牌照号:字符串牌照号:字符串张经理的轿车张经理的轿车型号型号= =桑塔纳桑塔纳颜色颜色= =红色红色牌照号牌照号= =沪沪AN2037AN2037类类实例对象实例对象10/2153. 继承(inheritance) 继承是类间的基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承其父类(或祖先类)的属性和操作,还可以对父类(或祖先类)中的操作重新定义其实现方法。 11/215 矩形矩形长长宽宽对角线对角线计算面
5、积计算面积计算对角线计算对角线 多边形多边形顶点数顶点数顶点坐标顶点坐标计算面积计算面积旋转旋转12/215有时,我们定义一个类,它把一些类组织起来,提供一些公共的行为,但并不需要使用这个类的实例,而仅使用其子类的实例。我们把这种没有实例的类称为抽象类(abstract class)。在抽象类中可以定义抽象操作,抽象操作指:只定义这个类的操作接口,不定义它的实现,其实现部分由其子类定义。抽象操作操作名用斜体字表示,也可以在操作特征(signature)后面加上特征字符串abstract。13/215交通工具交通工具飞行器飞行器汽汽 车车 船船轿轿 车车货货 车车 一般一般- -特殊关系特殊关系
6、14/215 如果一个子类只有唯一一个父类,这个继承称为单一继承。如果一个子类有一个以上的父类,这种继承称为多重继承。 水上交通工具水上交通工具 陆上交通工具陆上交通工具 水陆两栖交通工具水陆两栖交通工具多重继承多重继承15/2154. 消息(message) 消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务。一个消息通常包括接收对象名、调用的操作名和适当的参数(如果有必要的话)。消息只告诉接收对象需要完成什么操作,但并不指示接收者怎样完成操作。消息完全由接收者解释,接收者独立决定采用什么方法完成所需的操作。 16/2155. 多态性(polymorphism) 多态性
7、是指同一个操作作用于不同的对象同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结上可以有不同的解释,并产生不同的执行结果果。例如“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形,作用在“圆”对象上,则在屏幕上画一个圆。也就是说,相同操作的消息发送给不同的对象时,每个对象将根据自己所属类中定义的这个操作去执行,从而产生不同的结果。 17/2156. 动态绑定(dynamic binding) 动态绑定是指在程序运行时才将消息所请求的操作与实现该操作的方法连接起来。 传统的程序设计语言的过程调用与目标代码的连接(即调用哪个过程)放在程序运行前(即编译链接时)进行(称为静态绑定)
8、,而动态绑定则是把这种连接推迟到运行时才进行。 动态绑定是一种在运行时确定被执行代码的技术。18/215在一般与特殊关系中,子类是父类的一个特例,所以父类对象可以出现的地方,也允许其子类对象出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定。 19/215if 条件条件 then p := t ; else p := r ;area := p.getarea ;getArea abstractpolygonareahexagongetArearectanglegetArealengthwidthtrianglegetAre
9、aVar p : polygon ;Var t : triangle := triangle.new ;Var r : rectangle := rectangle.new ; 20/215 面向对象的基本概念面向对象的基本概念 UML概述概述 用况建模用况建模 静态建模静态建模 动态建模动态建模 物理体系结构建模物理体系结构建模21/215定义需求定义需求1.获取客户对系统的需求:包括获取客户对系统的需求:包括标识场景和用况标识场景和用况,以,以及建造需求模型及建造需求模型2.用基本的需求为指南,来用基本的需求为指南,来确定类和对象确定类和对象(包括属性(包括属性和操作)和操作)系统设计系统
10、设计1.定义定义类的结构和层次类的结构和层次(继承关系继承关系)2.建造建造对象对象关系模型关系模型3.建造建造对象对象行为模型行为模型4.利用用况利用用况/场景来场景来复审复审分析模型分析模型22/2151.获取客户对系统的需求获取客户对系统的需求 需求获取必须让客户与开发者充分地交流,这里介绍一种采用用况来收集客户需求采用用况来收集客户需求的技术。分析员首先标识使用该系统的不同的执行者(执行者(actor),这些执行者代表使用该系统的不同的角色执行者代表使用该系统的不同的角色。每个执行者可以叙述他如何使用系统,或者说他需要系统提供什么功能。执行者提出的每一个使用场景(或功能)都是系统的一个
11、用况的实例,一个用况描述了系统的一种用法(或一个功能),所有执行者提出的所有用况构成系统的完整的需求。 23/215注意,执行者与用户是不同的两个概念,一个用户可以扮演几个角色(执行者),一个执行者可以是用户,也可以是其他系统(应用程序或设备)。得到的用况必须进行复审,以使需求完整。24/2152. 标识类和对象 类和对象来自问题领域可以先标识候选类,然后进行筛选可以先标识候选类,然后进行筛选25/2153. 定义类的结构和层次 类 的 结 构 主 要 有 两 种 : 一 般 特 殊(generalizationspecialization)结构和整体部分(wholepart)结构。 一般特殊
12、结构是一种分类结构,反映了类间的一般与特殊的关系。一般类与特殊类之间是一种“is a”的关系,如:汽车是一种交通工具。同样,特殊类还可以分为更特殊的类,这样可形成类的层次结构。 整体部分结构反映了类间的整体与部分关系。值得注意的是,整体部分关系是对对象而言的,而不是对类的。整体部分关系是一种“has a ”的关系,如“汽车”有“发动机”。同样,整体部分结构也具有层次结构。26/2154. 建造对象关系模型 对象-关系模型描述了系统的静态结构,它指出了类间的关系(relationship) 类之间的关系有关联、依赖、泛化、实现等27/2155. 建立对象行为模型对象-行为模型描述了系统的动态行为
13、,它们指 明 系 统 如 何 响 应 外 部 的 事 件 或 激 励(stimulus)。建模的步骤如下:评估所有的用况,以完全理解系统中交互的序列评估所有的用况,以完全理解系统中交互的序列标识驱动交互序列的事件,理解这些事件如何和特定标识驱动交互序列的事件,理解这些事件如何和特定的对象相关联的对象相关联为每个用况创建事件轨迹(为每个用况创建事件轨迹(event trace)为系统建造状态机图为系统建造状态机图复审对象复审对象-行为模型,以验证准确性和一致性行为模型,以验证准确性和一致性28/215面向对象设计的一般步骤如下:1. 系统设计将子系统分配到处理器将子系统分配到处理器选择实现数据管
14、理、界面支持和任务选择实现数据管理、界面支持和任务管理的设计策略管理的设计策略为系统设计合适的控制机制为系统设计合适的控制机制复审并考虑权衡(折衷)复审并考虑权衡(折衷)29/2152. 对象设计 在过程级别(在过程级别(procedural lavel)设计)设计每个操作,即设计每个操作的实现细节每个操作,即设计每个操作的实现细节 定义内部类定义内部类 为类属性设计内部数据结构为类属性设计内部数据结构3. 消息设计 使用对象间的协作和对象-关系模型,设计消息模型4. 复审 复审设计模型并在需要时迭代。 30/2151. 系统设计1) 将分析模型划分成子系统 在OO系统设计中,我们把分析模型中
15、紧密相关的类、关系等设计元素包装成子系统。 通常,子系统的所有元素共享某些公共的性质,它们可能都涉及完成相同的功能;它们可能驻留在相同的产品硬件中;或者它们可能管理相同的类和资源。子系统由它们的责任所刻画,即,一个子系统可以通过它提供的服务来标识。在OOD中,这种服务是完成特定功能的一组操作。 31/215 子系统的设计准则是:(1) 子系统应具有定义良好的接口,通过接口和系统的其它部分通信;(2) 除了少数的“通信类” 外,子系统中的类应只和该子系统中的其它类协作;(3) 子系统的数量不宜太多;(4) 可以在子系统内部再次划分,以降低复杂性。32/2152) 标识问题本身的并发性,并为子系统
16、分配处理器 通过对对象-行为模型的分析,可发现系统的并发性。如果对象(或子系统)不是同时活动的,则它们不需并发处理,此时这些对象(或子系统)可以在同一个处理器上实现。反之,如果对象(或子系统)必须对一些事件同时异步地动作,则它们被视为并发的,此时,可以将并发的子系统分别分配到不同的处理器,或者分配在同一个处理器,而由操作系统提供并发支持。33/2153) 任务管理设计Coad和Yourdon提出如下管理并发任务对象的设计策略:(1) 确定任务的类型;(2) 必要时,定义协调者任务和关联的对象;(3) 将协调者任务和其它任务集成。 通常可通过了解任务是如何被启动的来确定任务的通常可通过了解任务是
17、如何被启动的来确定任务的类型,如事件驱动任务,时钟驱动任务。每个任务应该类型,如事件驱动任务,时钟驱动任务。每个任务应该定义其优先级,并识别关键任务。当有多个任务时还可定义其优先级,并识别关键任务。当有多个任务时还可以考虑增加一个协调者任务,以控制这些任务协同工作以考虑增加一个协调者任务,以控制这些任务协同工作34/2154) 数据管理设计 通常数据管理设计成层次模式,其目的是将数据的物理存储及操纵与系统的业务逻辑加以分离。 数据管理的设计包括设计系统中各种数据对象的存储方式(如内部数据结构、文件、数据库),以及设计相应的服务,即为要储存的对象增加所需的属性和操作。35/2155) 资源管理设
18、计 OO系统可利用一系列不同的资源(如磁盘驱动器、处理器、通信线路等外部实体或数据库、对象等抽象资源),很多情况下,子系统同时竞争这些资源,因此要设计一套控制机制和安全机制,以控制对资源的访问,避免对资源使用的冲突。 6)人机界面设计 对大多数应用系统而言,人机界面本身是一个非常重要的子系统。人机界面主要强调人如何命令系统,以及系统如何向人提交信息。它包括窗口、菜单、报告的设计。 36/2157) 子系统间的通信 子系统之间可以通过建立客户/服务器连接进行通信,也可以通过端对端(peer to peer)连接进行通信。我们必须确定子系统间通信的合约(contract),合约提供了一个子系统和另
19、一个子系统交互的方式。 37/2152. 对象设计对象设计是为每个类的属性和操作作出详细的设计,并设计连接类与它的协作者之间的消息规约。对象描述对象描述1)协议描述(外部的黑盒描述外部的黑盒描述):描述对象的接口,即定义对象可以接收的消息以及当对象接收到消息后完成的相关操作;2)实现描述(内部描述内部描述):描述传送给对象的消息所蕴含的每个操作的实现细节,实现细节包括有关对象私有部分的信息,即关于描述对象属性的数据结构的内部细节和描述操作的过程细节。对象的使用者只需要关心协议描述对象的使用者只需要关心协议描述38/2152)设计算法和数据结构 为对象中的属性和操作设计数据结构和实现算法。 3.
20、 设计模式(design patterns) 在许多面向对象系统中,存在一些类和通信对象的重复出现的模式。这些模式求解特定的设计问题,使面向对象设计更灵活,并最终可复用。这些模式帮助设计者复用以前成功的设计,设计者可以把这些模式应用到新的设计中。39/215一个设计模式通常可用四个信息来描述:1)模式名 设计模式名应具有实际的含义,它能反映模式的适用性和意图。2)使模式可被应用所必须存在的环境和条件。3)设计模式的特征 模式特征指出一些设计的属性,调整这些属性使该模式能适应各种不同的问题。这些属性表示设计的特征,这些特征能被用于检索(通过数据库)以找到合适的模式。4)应用设计模式的结果(con
21、sequences) 对于一个设计模式的使用结果表明设计决策的走向。40/215CategoryClass-&-ObjectStructure1+1+AttributeMethodObject model 由五个由五个层次组成,层次组成,相当于相当于把五张透明胶片把五张透明胶片叠叠在一起,每一层显在一起,每一层显示更多的细节示更多的细节。41/215 面向对象的基本概念面向对象的基本概念 面向对象的分析和设计过程面向对象的分析和设计过程 用例建模用例建模 静态建模静态建模 动态建模动态建模 物理体系结构建模物理体系结构建模42/215Unified Modeling Language UML(
22、Unified Modeling Language)是一种)是一种建模语言,是为面向对象开发系统的产品进行可视化的说建模语言,是为面向对象开发系统的产品进行可视化的说明和编制文档的方法。它是由信息系统(明和编制文档的方法。它是由信息系统(IS,Information System) 和面向对象领域的三位著名的方和面向对象领域的三位著名的方法学家:法学家:Grady Booch、 James Rumbaugh、和、和Ivar Jacobson提出的,由提出的,由OMG 组织组织 (Object Management Group) 采纳作为业界标准。采纳作为业界标准。UML 取代目取代目前软件业众
23、多的分析和设计方法(前软件业众多的分析和设计方法(Booch、 Coad、 Jacobson、 Odell、 Rumbaugh、 Wirfs-Brock 等)等),成为一种标准,这是软件界第一次有了一个统一的建模,成为一种标准,这是软件界第一次有了一个统一的建模语言。语言。 复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程45/2151 UML 的产生和成长的产生和成长 UML发展历史大致可以概括为四个阶段发展历史大致可以概括为四个阶段:第一阶段:面向对象的方法学家联合行动。第一阶段:面向对象的方法学家联合行动。 1994年年10月,月,Grady Booch和和
24、Jim Rumbaugh开开始致力于这一工作。始致力于这一工作。第二阶段:公司的联合行动。第二阶段:公司的联合行动。 1996年,年, UML的开发者得到了来自公众的正面反的开发者得到了来自公众的正面反应,并倡议成立了应,并倡议成立了UML成员协会,以完善、加强和促进成员协会,以完善、加强和促进UML的定义工作。的定义工作。 第三阶段:在第三阶段:在OMG组织、控制下对组织、控制下对UML规范进行的修订和规范进行的修订和 改进,产生了改进,产生了UML1.2、1.3、1.4、1.5等版本。等版本。第四阶段:目前所处阶段。第四阶段:目前所处阶段。 目前所处阶段是本世纪开始以来的重大修订,推出目前
25、所处阶段是本世纪开始以来的重大修订,推出了全新的版本了全新的版本2.0。UML是一种是一种Language(语言)(语言)UML是一种是一种Modeling(建模)(建模)LanguageUML是是Unified(统一)(统一)Modeling Language已进入全面应用阶段的事实标准已进入全面应用阶段的事实标准应用领域正在逐渐扩展,包括嵌入式系统建模、业务建模、流程建应用领域正在逐渐扩展,包括嵌入式系统建模、业务建模、流程建模等多个领域模等多个领域成为成为“产生式编程产生式编程”的重要支持技术:的重要支持技术:MDA、可执行可执行UML等等UML是一种统一的、标准化的建模语言是一种统一的
26、、标准化的建模语言 UML是一种应用面很广泛的建模语言是一种应用面很广泛的建模语言 模型的种类模型的用途业务模型对业务过程、工作流、组织的建模需求模型对捕获的需求进行整理和分析的工具,辅助开发人员与用户进行沟通设计模型包含高层设计(架构模型)和详细设计模型,用于统一开发人员、沟通设计信息数据库模型设计数据库的结构、表结构以及与应用系统的交互实现模型用来理清软件的组成、部署方案,为安装与维护人员的工作提供指导业务建模:以领域专家为主,需求分析人员是主力,系统分析员、业务建模:以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与架构师可参与需求模型:以需求分析人员为主,系统分析员是主力,领
27、域专家提需求模型:以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与供指导,架构师和资深开发人员参与设计模型:高层设计模型以架构师为主,系统分析员从需求方面提设计模型:高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。以资深开发人员为主,架构师提供指导。实现模型:以资深开发人员(设计人员)为主,架构师提供总体指实现模型:以资深开发人员(设计人员)为主,架构师提供总体指导。导。数据库模型:以数据库开发人员为主,架构师提
28、供指导,资深开发数据库模型:以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。人员(设计人员)予以配合。UML构造块构造块规则规则公共机制公共机制建模元素建模元素关系关系图图修饰修饰公共分类公共分类扩展机制扩展机制命名命名范围范围可见性可见性完整性完整性执行执行1.结构元素结构元素(类类,接口接口,协作协作,用例用例,对象对象,构件构件,节点等节点等)2.行为元素行为元素(交互交互,状态机状态机)3.分组元素分组元素(包包)4.注解元素注解元素1.关联关联2.依赖依赖3.泛化泛化4.实现实现1.静态模型静态模型(类图类图,构件图构件图,部署图部署图)2.动态模型动态模型(
29、对象图对象图,用例图用例图,顺序顺序图图,协作图协作图,状态图状态图,活动图活动图)构造块是对模型中最具有代表性的成分的抽象构造块是对模型中最具有代表性的成分的抽象 建模元素:建模元素:UML中的名词,它是模型基本物理元素。中的名词,它是模型基本物理元素。行为元素:行为元素:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。分组元素:分组元素:UML中的容器,用来组织模型,使模型更加的结构化。中的容器,用来组织模型,使模型更加的结构化。注释元素:注释元素:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。中
30、的解释部分,和代码中的注释语句一样,是用来描述模型的。53/215 模型中的实体以及实体间相互连接的关系模型中的实体以及实体间相互连接的关系 泛化泛化 对象对象属性属性操作操作状态状态用例用例 结点结点接口接口包包依赖依赖关联关联聚集聚集模型元素模型元素类类 属性属性操作操作构件构件注解注解54/215 模型中的实体以及实体间相互连接的关系模型中的实体以及实体间相互连接的关系 部分模型元素部分模型元素注解注解类类属性属性操作操作对象:类对象:类属性属性操作操作状态状态用例用例 结点结点供应接口供应接口包包依赖依赖关联关联泛化泛化主动类主动类属性属性操作操作请求接口请求接口构件构件实现实现规则规
31、则命名:也就是为事物、关系和图起名字。和任何语言一样,名字都是一个标识符命名:也就是为事物、关系和图起名字。和任何语言一样,名字都是一个标识符 范围:与类的作用域相似范围:与类的作用域相似.可见性:可见性:可见性规则标准表示法Rose属性Rose方法public任一元素,若能访问包容器,就可以访问它+ + protected只有包容器中的元素或包容器的后代才能够看到它# private只有包容器中的元素才能够看得到它- package只有声明在同一个包中的元素才能够看到该元素在图形表示法的每个部分后面都有一个规格描述(也称为详述),它用来对构造块在图形表示法的每个部分后面都有一个规格描述(也称
32、为详述),它用来对构造块的语法和语义进行文字叙述。这种构思,也就使可视化视图和文字视图的分离的语法和语义进行文字叙述。这种构思,也就使可视化视图和文字视图的分离 :构造型构造型:在实际的建模过程中,可能会需要定义一些特定于某个领:在实际的建模过程中,可能会需要定义一些特定于某个领域或某个系统的构造块域或某个系统的构造块 标记值标记值则是用来为事物添加新特性的。标记值的表示方法是用形如则是用来为事物添加新特性的。标记值的表示方法是用形如“标记信息标记信息”的字符串的字符串 。标记值的一个重要应用是规定与代码产。标记值的一个重要应用是规定与代码产生或配置管理有关的性能。例如,使用标记值规定实现某个
33、类的编生或配置管理有关的性能。例如,使用标记值规定实现某个类的编程语言,使用标记值规定组件的作者和版本。程语言,使用标记值规定组件的作者和版本。 标记值与类属性不同,因为前者应用于元素自己,而不是元素的实例标记值与类属性不同,因为前者应用于元素自己,而不是元素的实例 Clockversion=1.1Author=Li Mei属性属性操作操作HandleEventTested复旦大学计算机科学与工程系复旦大学计算机科学与工程系 软件工程课程软件工程课程58/215约束约束是用来增加新的语义或改变已存在规则的一种机制(自由文本是用来增加新的语义或改变已存在规则的一种机制(自由文本和和OCL两种表示
34、法)。约束的表示法和标记值法类似,都是使用花两种表示法)。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近相关的元素附近59/215 用况图用况图 (use case diagram) 类图类图 (class diagram) 对象图对象图 (object diagram) 构件图构件图 (component diagram) 组合结构图组合结构图 (composite structure diagram) 顺序图顺序图 (sequence diagram) 通信图通信图 (
35、communication diagram)交互图交互图 (interaction diagram)60/215 状态机图状态机图 (state machine diagram) 活动图活动图 (activity diagram) 部署图部署图 (deployment diagram) 制品图制品图 (artifact diagram) 包图包图 (package diagram) 时间图时间图 (timing diagram) 交互概览图交互概览图 (interaction overview diagram)62/215描述参与者与用况描述参与者与用况(参与者使用系统以实现某一特定目标的参与
36、者使用系统以实现某一特定目标的情形情形)之间的关联关系,以及用况之间的扩展、继承等关系之间的关联关系,以及用况之间的扩展、继承等关系银行储蓄帐户管理系统银行储蓄帐户管理系统包含包含包含包含包含包含银行职员银行职员(用户代理)(用户代理)帐户管理帐户管理银行间转帐银行间转帐开户开户取款取款银行内转帐银行内转帐注销注销存款存款校验密码校验密码转帐转帐报表生成报表生成其它银行其它银行帐户管理系统帐户管理系统客户客户系统管理员系统管理员银行职员银行职员(管理人员)(管理人员)63/215展现一组类、接口以及它们相互之间的关系展现一组类、接口以及它们相互之间的关系2条或条或2条以上的线交于条以上的线交于
37、0个或个或1个点个点lineX1:realY1:realX2:realY2:realpointX: realY: real相交相交2.*0.164/215展现一组对象以及相互展现一组对象以及相互之间的关系,是依照类之间的关系,是依照类图所建立的一组事物图所建立的一组事物(实例实例)的静态快照的静态快照L1: lineX1=10Y1=10X2= -10Y2= -10L2: lineL3: lineX1=10Y1= 5X2= -10Y2= -5L4: lineX1=9Y1=5X2=9Y2=3X1= -10Y1=10X2=10Y2= -10P1:pointX = 0Y = 0P2:pointX=9Y
38、=4。565/215描述构件、接口以及构件间的组装关系的静态视图,复合构描述构件、接口以及构件间的组装关系的静态视图,复合构件本身可以由内部的子构件图描述件本身可以由内部的子构件图描述应用收费应用收费管理管理信用卡代理构件的内部结构图信用卡代理构件的内部结构图信用卡代理信用卡代理状况状况购买购买预购销售预购销售团体销售团体销售:售票员:售票员:营业员界面:营业员界面:销售亭界面:销售亭界面:管理员界面:管理员界面:票:票:信用卡收费:信用卡收费个体销售个体销售收费收费顾客访问顾客访问营业员访问营业员访问66/215UML2.0新增的图,展示了类或协作的内部结构,新增的图,展示了类或协作的内部结
39、构,与构件差别不大,经常认为与构件图等同与构件差别不大,经常认为与构件图等同67/215描述特定场景下交互各方消息发送和接收的顺序描述特定场景下交互各方消息发送和接收的顺序呼叫方呼叫方电话线电话线应叫方应叫方68/215业务时序图概念时序图71/215另一种交互图,强调交互上下文:参与交另一种交互图,强调交互上下文:参与交互的对象或角色的结构组织互的对象或角色的结构组织控制电梯运行的通信图控制电梯运行的通信图2:nextjob=GetJob():Elevator:Queue:Ordernewlocalnextjob:Elevator control:ButtonPush()parameterj
40、ob1.2:Create( )1.1 *all queues: len:=Length( ) broadcast1.3:Invoke (job)1:GetElevator(floorid)job概念协作图概念协作图72/215设计协作图设计协作图73/21574/215以状态机的形式描述目标对象在各种以状态机的形式描述目标对象在各种事件作用下的行为事件作用下的行为电梯升降的状态机图电梯升降的状态机图Moving updo/moving to floorMoving downdo/moving to floorIdletimer=0do/increase timerarrivedarrivedg
41、o down (floor)Moving to First floorgo up(floor)timer=time-outarrivedgo up(floor)Onfirst floor75/215描述一系列活动之间的控制流和数据流描述一系列活动之间的控制流和数据流未付款未付款已付款已付款*对每一订单项对每一订单项有货有货缺货缺货取消并取消并退回订单退回订单收到订单收到订单付款认可付款认可检查检查订单项订单项制作并发放制作并发放提货单提货单更新库存更新库存制作并发放制作并发放缺货单缺货单制作并发放制作并发放采购单采购单76/215描述系统运行时各相关处理单元结点、各结描述系统运行时各相关处理单
42、元结点、各结点上部署的构件、以及相互间的通信协议点上部署的构件、以及相互间的通信协议DecNetTCP/IPTCP/IPClientA:Compaq Pro PCApplicationServer;Silicon GraphicsO2DatabaseServer:VAXClientB:Compaq Pro PC77/215部署图的变体:描述系统实现制品的物理部署图的变体:描述系统实现制品的物理结构,制品包括文件、数据库等结构,制品包括文件、数据库等这两个物理文件这两个物理文件“承载了承载了”逻辑类逻辑类HelloWorld的实现的实现78/215描述包描述包(一种模型分解单位一种模型分解单位)
43、以及包之间的关系以及包之间的关系售票处售票处计划计划广告广告进度表进度表客户记录客户记录票记录票记录运作运作售票售票工资单工资单计算计算购买购买79/215UML2.0新增的图,描述对象间的交互,但关新增的图,描述对象间的交互,但关注于关于时间的推理,而不仅仅是相对顺序注于关于时间的推理,而不仅仅是相对顺序添水添水加热加热80/215UML2.0新增的图新增的图可认为是:活动图可认为是:活动图+顺序图的混合体顺序图的混合体使用活动图的表示使用活动图的表示法,其中的节点或法,其中的节点或者是一个交互或者者是一个交互或者是一个交互引用是一个交互引用81/215视图视图(view)UML图图(静态方
44、面静态方面)UML图图(动态方面动态方面)用况视图用况视图 用况图用况图交互图交互图状态机图状态机图活动图活动图设计视图设计视图 类图类图对象图对象图同上同上交互视图交互视图与设计视图相同,更强调消息交互方面与设计视图相同,更强调消息交互方面实现视图实现视图 构件图构件图同上同上部署视图部署视图 部署图部署图同上同上需需求求设设计计实现实现部署部署82/215 描述可被最终用户、分析人员和测试描述可被最终用户、分析人员和测试人员看到的人员看到的系统系统(外部外部)行为行为 不涉及系统的内部结构,但却是系统不涉及系统的内部结构,但却是系统体系结构设计的驱动力体系结构设计的驱动力 静态方面:用况图
45、静态方面:用况图 动态方面:交互图、状态机图、活动动态方面:交互图、状态机图、活动图图83/215 描述系统设计方案,主要包括类、接描述系统设计方案,主要包括类、接口以及相互之间的协作关系口以及相互之间的协作关系 静态方面:类图、对象图静态方面:类图、对象图 动态方面:交互图、状态机图、活动动态方面:交互图、状态机图、活动图图84/215 展示系统不同部分之间的控制流,包括展示系统不同部分之间的控制流,包括并发和同步机制并发和同步机制 主要针对系统的非功能性方面,例如性主要针对系统的非功能性方面,例如性能、可伸缩性、吞吐量等能、可伸缩性、吞吐量等 静态方面:类图、对象图静态方面:类图、对象图
46、动态方面:交互图、状态动态方面:交互图、状态机机图、活动图图、活动图 与设计视图的区别:突出控制系统的主与设计视图的区别:突出控制系统的主动类以及各部分间消息的流动动类以及各部分间消息的流动85/215 描述组成最终产品发布的相关制品及其描述组成最终产品发布的相关制品及其关系,实现单元体现为可装配、打包并关系,实现单元体现为可装配、打包并发布的文件发布的文件 体现了逻辑单元体现了逻辑单元(类和构件类和构件)到物理制品到物理制品(物理构件、文件等物理构件、文件等)的映射的映射 静态方面:构件图静态方面:构件图 动态方面:交互图、状态动态方面:交互图、状态机机图、活动图图、活动图86/215 描述
47、最终产品物理部署的拓扑结构描述最终产品物理部署的拓扑结构 包括组成整个系统的各种分布式硬件设包括组成整个系统的各种分布式硬件设备,以及各个软件模块在这些设备上的备,以及各个软件模块在这些设备上的部署和运行关系部署和运行关系 静态方面:部署图静态方面:部署图 动态方面:交互图、状态动态方面:交互图、状态机机图、活动图图、活动图87/215 面向对象的基本概念面向对象的基本概念 面向对象的分析和设计过程面向对象的分析和设计过程 UML概述概述 静态建模静态建模 动态建模动态建模 物理体系结构建模物理体系结构建模88/215 用况:文本形式的情节描述,用以说用况:文本形式的情节描述,用以说明某参与者
48、使用系统以实现某一特定明某参与者使用系统以实现某一特定目标的情形目标的情形 用况建模用于描述一个系统应该做什用况建模用于描述一个系统应该做什么,用么,用用例图用例图来描述来描述(可能有多幅可能有多幅) 用况图给出了用户所感受到的系统行用况图给出了用户所感受到的系统行为,但不描述系统如何实现该功能为,但不描述系统如何实现该功能89/215 用框图展示各类外部执行者用框图展示各类外部执行者(actor)与系与系统所提供的用况之间的参与关系,包括:统所提供的用况之间的参与关系,包括: 系统边界、用况 执行者(参与者):可能使用这些用况的人或外部系统人或外部系统,参与者与用况连接表示参与者使用了该用况
49、 模型元素间关系:关联、扩展、包含、泛化等 每个用况的细节通常用文字描述,也可以每个用况的细节通常用文字描述,也可以用活动图来描述用活动图来描述90/215关系关系说明说明记号记号关联关联参与者与所参与的一个用参与者与所参与的一个用况之间的通信路径况之间的通信路径扩展扩展扩展的用况到基本用况的扩展的用况到基本用况的一种关系:扩展用况可以一种关系:扩展用况可以访问基本用况的所有属性,访问基本用况的所有属性,并在基本用况基础上增加并在基本用况基础上增加新的行为新的行为extend91/215关系关系说明说明记号记号包含包含被包含用况是基本用况的一部被包含用况是基本用况的一部分,基本用况能看到被包含
50、用分,基本用况能看到被包含用况并依赖于它的的执行结果,况并依赖于它的的执行结果,但二者不能相互访问其它属性但二者不能相互访问其它属性泛化泛化一个一般用况与一个更特殊的一个一般用况与一个更特殊的用况之间的关系,特殊用况可用况之间的关系,特殊用况可继承一般用况的特征继承一般用况的特征include 包含关系包含关系 扩展关系扩展关系 扩展关系扩展关系 扩展关系扩展关系 扩展关系扩展关系 泛化泛化(继承继承)关系关系98/215客户客户售票员售票员送货员送货员主管主管建立信建立信用用供应订供应订单单订单支订单支付付提供提供客户数客户数据据产生订产生订单单信用卡信用卡支付支付现金支现金支付付设置订设置
51、订单单请求请求目录目录电话订购电话订购includeinclude includeextend核对身核对身份份关联关联扩展扩展包含包含泛化泛化99/215银行储蓄帐户管理系统银行储蓄帐户管理系统includeincludeinclude银行职员银行职员(用户代理)(用户代理)帐户管理帐户管理银行间转帐银行间转帐开户开户取款取款银行内转帐银行内转帐注销注销存款存款校验密校验密码码转帐转帐报表生成报表生成其它银行其它银行帐户管理系统帐户管理系统客户客户系统管理员系统管理员银行职员银行职员(管理人员)(管理人员)包含包含泛化泛化100/215 如果一组参与者具有共同的性质,可以把这些性质抽取出如果一
52、组参与者具有共同的性质,可以把这些性质抽取出来放在另一个参与者中,这组参与者再从中继承。来放在另一个参与者中,这组参与者再从中继承。俱乐部会员(俱乐部会员(B),普通会员(普通会员(A),VIP(C),临时会员(临时会员(D)101/215 客户:用况模型指明了系统的功能,描述客户:用况模型指明了系统的功能,描述了系统能如何使用了系统能如何使用 开发者:用况模型帮助他们理解系统要做开发者:用况模型帮助他们理解系统要做什么,同时为以后的其它模型建模、结构什么,同时为以后的其它模型建模、结构设计、实现等提供依据设计、实现等提供依据 集成测试和系统测试人员:根据用况来测集成测试和系统测试人员:根据用
53、况来测试系统,以验证系统是否完成了用况指定试系统,以验证系统是否完成了用况指定的功能的功能102/215 定义系统定义系统(总体范围总体范围) 确定参与者确定参与者 确定用况确定用况 描述用况描述用况 定义用况间的关系定义用况间的关系 确认模型确认模型103/215 根据项目的总体目标根据项目的总体目标/任务以及基本任务以及基本的开发决策决定的开发决策决定做什么不做什么做什么不做什么 总体目标/任务:实现出版社书籍的网上销售 开发决策:网上支付采用银联支付系统、书籍的基本信息来自于出版社已有的编辑和发行管理系统(遗产系统) 边界外的人或系统边界外的人或系统(第三方系统、遗第三方系统、遗留系统等
54、留系统等)成为候选的参与者成为候选的参与者104/215 参与者是指与系统交互的人、组织或其参与者是指与系统交互的人、组织或其它系统它系统 参与者代表一种角色,而不是具体的人参与者代表一种角色,而不是具体的人 可分成主参与者和辅助参与者可分成主参与者和辅助参与者 主参与者是用况的直接执行者,例如保险系统中业务员处理保险的注册和管理 辅助参与者对于用况的执行起辅助作用,例如保险系统中管理员负责分配业务员权限105/215 谁使用系统的主要功能谁使用系统的主要功能(主执行者主执行者) 谁需要从系统中得到对他们日常工作的支持谁需要从系统中得到对他们日常工作的支持 谁需要维护、管理和维持系统的日常运行
55、谁需要维护、管理和维持系统的日常运行 系统需要控制哪些硬件设备系统需要控制哪些硬件设备 系统需要与哪些其它系统交互系统需要与哪些其它系统交互 哪些人或哪些系统对系统产生的结果哪些人或哪些系统对系统产生的结果(值值)感感兴趣兴趣106/215 用况的特征用况的特征 用况总是由参与者启动的 执行者必须直接或间接地指示系统去执行用况 用况向参与者提供服务或返回结果,这些结果必须是可识别的 用况是完整的,一个用况必须是一个完整的描述(有开始、有结果)107/215 文本形式的情节描述,用以说文本形式的情节描述,用以说明某参与者使用系统以实现某明某参与者使用系统以实现某一特定目标的情形一特定目标的情形
56、例:顾客携带所购商品到达收银台,收银员使用POS系统记录每件商品,系统连续显示累计金额并逐行显示细目,顾客输入支付信息,系统对支付信息进行验证和记录,成功后更新库存信息,顾客从系统得到购物小票然后离开108/215 使用系统的一个特定情节或用况的一条执行路径,使用系统的一个特定情节或用况的一条执行路径,即用况实例即用况实例(Use Case Instance) 主成功场景:顾客携带商品到收银台,顺利地完成商品扫描及信用卡付款等全过程 替代场景1:商品扫描失败,提示输入商品唯一码 替代场景2:信用卡划账通讯失败,提示客户使用现金结帐 替代场景n:用户信用卡支付成功后要求退货 因此用况就是一系列可
57、能的场景集合因此用况就是一系列可能的场景集合109/215 执行者需要系统提供哪些功能?执行者需要系执行者需要系统提供哪些功能?执行者需要系统做什么统做什么? 执行者是否需要读、创建、删除、修改或储存执行者是否需要读、创建、删除、修改或储存系统中的某类信息系统中的某类信息? 执行者是否要被系统中的事件提醒,或者执行执行者是否要被系统中的事件提醒,或者执行者是否要提醒系统中某些事情者是否要提醒系统中某些事情?从功能观点看,从功能观点看,这些事件表示什么这些事件表示什么? 执行者的日常工作是否因为系统的新功能执行者的日常工作是否因为系统的新功能(尤其尤其是目前尚未自动化的功能是目前尚未自动化的功能
58、)而被简化或提高效率而被简化或提高效率110/215 使用文本描述使用文本描述 用况的目的 用况是如何启动的:哪个参与者在什么情况下启动(前提) 参与者和用况之间的消息流(步骤) 主消息流和其它消息流是什么主消息流和其它消息流是什么 根据条件或异常情况等选择不同的流程分支根据条件或异常情况等选择不同的流程分支 系统中哪些实体被使用或修改(结果),如何确定用况执行结束 使用活动图描述使用活动图描述111/215 执行者的简要描述,如执行者的简要描述,如 客户:向公司订购商品的人 客户代表:公司处理客户请求的雇员 库存系统:记录公司库存的软件 用况的简要描述,如用况的简要描述,如 订购货物:客户创
59、建一个新的请求商品的订单,并为那些商品付费 取消订单:客户取消一个已经存在的订单112/215 用况名称、参与者用况名称、参与者 用况的前置条件和后置条件:用况开用况的前置条件和后置条件:用况开始和结束的条件始和结束的条件 事件流:一系列陈述句,从参与者的事件流:一系列陈述句,从参与者的角度出发的一系列步骤角度出发的一系列步骤 一般有多个事件流:主要流程、其它流程 特殊需求:相关的非功能性需求特殊需求:相关的非功能性需求113/215用例的组成部分用例的组成部分注注 释释用例名称用例名称以动词开始以动词开始范围范围要设计的系统要设计的系统级别级别“用户目标用户目标”(基本流程基本流程)或或“子
60、功能子功能”主要参与者主要参与者调用系统以提供服务的参与者调用系统以提供服务的参与者涉众及其关注点涉众及其关注点关注该用例的人,以及他们各自的需要关注该用例的人,以及他们各自的需要前置条件前置条件用例启动前必须成立的条件用例启动前必须成立的条件后置条件后置条件用例结束后必须成立的条件用例结束后必须成立的条件主成功场景主成功场景典型的、理想的成功场景典型的、理想的成功场景替换场景替换场景其它可能的场景(成功或失败)其它可能的场景(成功或失败)特殊需求特殊需求相关的非功能需求相关的非功能需求技术和数据变元表技术和数据变元表不同的不同的I/O方法及数据格式方法及数据格式发生频率发生频率当前用例的发生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 2 Inspiring People(知识讲解)-2026-2027学年九年级英语上册基础知识专项讲练(新教材人教版)
- 德阳六中考试题目及答案
- 2026年天津物业管理师资格考试(物业管理实务)(建设部)在线模拟题库
- 2026年上半年教师资格证考试《综合素质》(中学)真题含参考答案
- 2026年湖北省孝感市晋升中、初级专业技术职务水平能力测试(新闻)试题解析及核心考点
- 2026年湖北省咸宁市农业专业技术职务水平能力测试(农学)测试题及答案
- 2026年湖北省随州市农业专业技术职务水平能力测试(农学)冲刺试题及答案
- 2026年湖北公开遴选公务员考试(综合管理类)能力提高训练题及答案
- 2026年初中教师资格证《综合素质》真题及答案
- 2026公开遴选和公开选调公务员考试(综合知识)仿真试题及答案
- 2024-2025学年小学信息技术(信息科技)第二册电子工业版(2022)教学设计合集
- GB/T 44539-2024萤石技术规范
- GB/T 24304-2024动植物油脂茴香胺值的测定
- 创新创业创造:职场竞争力密钥智慧树知到期末考试答案章节答案2024年上海对外经贸大学
- 三级公立医院绩效考核微创手术目录(2022版)
- 2024年广东省中考语文试卷附真题答案
- 快消品渠道营销策略研究
- 人教版高中化学选择性必修3 第二章测评(含答案)
- 麦凯66表格(完全版)
- 作文格子纸(小学生专用Word版)
- 乌鸦喝水(绘本)
评论
0/150
提交评论