面向对象软件开发与UML建模课件.ppt

上传人(卖家):ziliao2023 文档编号:5788943 上传时间:2023-05-09 格式:PPT 页数:177 大小:868.02KB
下载 相关 举报
面向对象软件开发与UML建模课件.ppt_第1页
第1页 / 共177页
面向对象软件开发与UML建模课件.ppt_第2页
第2页 / 共177页
面向对象软件开发与UML建模课件.ppt_第3页
第3页 / 共177页
面向对象软件开发与UML建模课件.ppt_第4页
第4页 / 共177页
面向对象软件开发与UML建模课件.ppt_第5页
第5页 / 共177页
点击查看更多>>
资源描述

1、。人员对象姓名年龄性别职务住址职务变迁改换住址对象类型对象的属性对象的服务几何对象几何对象颜色颜色位置位置移动(移动(delta:矢量):矢量)选择(选择(P:指针型)指针型):布尔型布尔型旋转旋转(角度角度)图示图示 类的描述类的描述人人姓姓 名名:字符串字符串年年 龄龄:整整 型型职务变迁职务变迁改换地址改换地址文件文件文件名文件名文件大小文件大小最近更新日期最近更新日期打印打印(人人)李四李四28绘图员绘图员人民路人民路8号号(人人)张三张三24程序员程序员无无图示图示 对象的描述对象的描述类名类名属性属性服务服务 对象图对象图 类图类图已有类定义已有类定义父类父类(基类基类)新类定义新

2、类定义子类子类(派生类派生类)继承继承轮船轮船客轮客轮货轮货轮对象之间的联对象之间的联系可表示为对象间的消息传递,即对象间的通信机系可表示为对象间的消息传递,即对象间的通信机制。制。属性:姓名属性:姓名 年龄年龄 单位单位 职称职称 工资工资属性:王五属性:王五 25 电机系电机系 讲师讲师 1500服务:调工资服务:调工资 评职称评职称 受受 聘聘操作:调工资操作:调工资 (计算公式)(计算公式)评职称评职称 (步骤、条件)(步骤、条件)服务:调工资服务:调工资 评职称评职称 受受 聘聘王五,调工资(王五,调工资()数数据据结结构构数数据据值值劳资处理例程向对象发消息劳资处理例程向对象发消息

3、执行执行的的操作操作服服务务体体类:教师类:教师对象:王五对象:王五抽象抽象实例实例抽象抽象实例实例抽象抽象方法名(参数)方法名(参数)图示:图示:对象、类和消息传递对象、类和消息传递。人员教师学生研究生本科生交通工具轮船客运工具火车客轮客运列车 Booch 是面向对象方法的最早倡导者之一。Booch认为开发过程为螺旋上升模式,每一次重复的步骤如下:从应用的问题域中发现类和对象;分析类和对象的功能、行为,确定其属性和操作;找出类、对象之间的关系;说明每个类和对象的界面和实现。Booch采用以下方法构筑系统模型:类图在Booch方法中作为逻辑的、静态模型的描述方法;描述系统的构成。类的图形表示:

4、类之间相互关系的表示:名称名称属性属性操作操作关联:继承:包含:使用:环境控环境控制器制器管理计划管理计划作物作物实施()实施()可否收获()可否收获()暖气暖气冷气冷气灯光灯光温度温度执行机构执行机构启动()启动()关闭()关闭()定义气候定义气候11111n例:温室管理系统类图 对象图在Booch方法中作为逻辑的、静态模型的描述方法;表示系统行为的基本结构。例:计划分析管理计划谷物计划度量1:收获时间2:状态3:成熟时间4:产量5:作物产量6:成本 状态迁移图作为逻辑的、动态模型的描述方法;表示一个类的动态行为。交互作用图作为逻辑的、动态模型的描述方法;表示几个对象在共同完成一个系统功能时

5、表现出的交互关系(亦即:一个类的动态行为)。交互作用图与OMT的事件追踪图十分相似,区别是:交互图主要表示操作而不是事件;是对象图的另一种表示形式。计划分析计划分析计划度量计划度量管理计划管理计划C:作物:作物C:谷物谷物收获时间收获时间()状态状态()成熟时间成熟时间()产量产量()产量产量()成本成本()例:温室管理系统的交互作用图例:温室管理系统的交互作用图 模块图作为物理模型的描述方法;表示如何将类和对象分配到不同的软件模块中。每个符号表示一个模块,每个模块是一个文件连接文件的箭头表示两个文件的编译依赖关系。气候定义 气候 计划作物定义 冷气 暖气气候定义例:温室管理系统的模块图 进程

6、图作为物理模型的描述方法;表示如何将可同时执行的进程分配到不同的处理机上。对于单处理级系统,表示处于活动状态的对象,及进程调度。温室工作站温室A温室B温室C温室管理系统的进程图 Booch方法表示系统模型:系统模型静态模型动态模型逻辑模型物理模型类图对象图状态图交互作用图模块图进程图 Coad与Yourdon的方法是在信息模型化技术、面向对象程序设计语言及知识库系统的基础上发展起来的,这个方法分为OOA和OOD两部分。一、面向对象的分析(OOA)Coad与Yourdon和其它描写面向对象方法的作者一样,认为OOA主要考虑与一个特定应用有关的对象及对象与对象之间在结构与相互作用上的关系。1.OO

7、A的任务1)形式地说明所面对的应用问题,最终成为软件系统基本构成的对象,还有系统所必须遵从的,由应用环境所决定的规则和约束。2)明确地规定构成系统的对象如何协同合作,完成指定的功能。在OOA中,要建立分析模型来描述系统的功能第一个层次主要是识别类和对象,这是整个分析模型的基础。第二层和第三层是属性层和服务层,用以说明前面已识别的类和对象。第四层是结构层,OOA允许两种类型的基本结构:一是整体与部分结构,也叫组装结构,组装结构表示聚合,即由属于不同类的成员聚合而成新的类;二是泛化与特化结构,也叫分类结构。其中,特化类是泛化类的子类,泛化类是特化类的父类。分类结构具有继承性,泛化类和对象的属性与服

8、务一旦被识别,即可在特化类和对象中使用。第五层是主题层,是一些类和对象的特定组合表示,用来帮助和指导模型的读者。人 男人 女人 分类结构 人 头 身体 胳膊 腿 组装结构 2.OOA的步骤 1)找到类和对象首先确定问题空间中包含哪些对象,有哪些操作,这些对象之间有什么关系,它们与操作又有什么关系。对象应该是实际问题域中有意义的个体或概念实体,具有目标软件系统所关心的属性,还应该以某种方式与系统发生关联,即对象必须与系统中其他有意义的对象进行消息传递,并提供外部服务。有关对象命名的重要原则:a.使用单个名词或名词短语;b.对象名称必须简洁、精确、易于理解;c.尽量使用用户熟悉的标准词汇。2)确定

9、结构第一种结构是分类结构,代表了确定的类中的继承等级。另一种结构是组装结构,即由属于不同类的成员聚合而成新的类。3)定义主题 确定主题通过将类和对象划分成更大的单元来完成。主题是类和对象的组合。每个主题的规模按有助于读者通过模型理解系统来选择。4)定义属性 对每个对象,确定划给该对象所需的属性。关键是识别与当前所处理的问题相关的属性。被确定的属性放到继承等级的正确层次。注意应避免冗余的或不正确的属性 5)定义服务对象怎样进行消息通信是用消息的联系来确定的。这些都用来指定某一个操作。综上所述,OOA大体上可以按照这个顺序进行。但是,分析不可能严格地按照预定顺序进行,大型、复杂系统的模型需要反复构

10、造多遍才能建成。二、面向对象的设计(OOD)OOA到OOD实际上是一个逐渐扩充模型的过程。面向对象分析主要模拟问题空间和系统任务;而面向对象设计则是对其进行扩充,主要是增加各种组成部分。OOA识别和定义的类/对象,是一些直接反映问题空间和系统任务的;而OOD识别和定义的类/对象则是附加的,反映需求的一种实现。Coad与Yourdon在设计阶段中继续采用分析阶段中提到的五个层次,他们认为这有助于从分析到设计的过渡。不同的是,在设计阶段中,这五个层次是用于建立系统的四个组成成分上。这四个组成成分是:问题论域,用户界面,任务管理和数据管理。人机交互 问题域 数据管理 任务管理 主题层 类与对象层 结

11、构层 属性层 服务层 问题论域部分包括与所面对的应用问题直接有关的所有类和对象。在其它的三个部分中,识别和定义新的类和对象。1.问题域部分(PDC)的设计 OOA阶段得到的有关应用的概念模型描述了所要解决的问题。在OOD阶段,主要是对OOA产生模型中的某些类与对象、结构、属性、操作进行组合与分解,或者增加必要的类、属性和联系。1)复用设计 根据问题解决的需要,把从现有的类库或其它来源得到的现存类增加到问题解决方案中去。某 OOA 中含 车辆 车牌 颜色 式样 生产日期 产地 车牌确认 类库中已有 车辆 OTS 车牌 车牌确认 车辆 车牌 颜色 式样 生产日期 产地 车牌确认 设计结果:车辆 O

12、TS 车牌 车牌确认 2)把问题论域的专用类关联起来3)为建立公共操作集合建立一般类4)调整继承级别 2.用户界面部分(HIC)的设计 通常在OOA阶段给出了所需的属性和操作,在设计阶段必须根据需求把交互的细节加入到用户界面的设计中,包括有效的人机交互所必需的实际显示和输入。1)用户分类 通常可将其分为外行型、初学型、熟练型和专家型四类 2)描述人及其任务的场景 什么人、特点、期望软件用途、主要要求与喜好以及任务场景等。3)设计命令层尽量遵循用户界面的一般原则和规范,根据用户分析结果确定初步的命令系统,然后再优化。4)设计详细的交互5)设计HIC(人机交互)类 3.任务管理部分(TMC)的设计

13、 任务是进程的别称,是执行一系列活动的一段程序,或者说,任务是由目标软件系统中一段代码决定的处理行为。任务管理主要包括任务的选择和调整。1)识别事件驱动任务 一些负责与硬件设备通信的任务是事件驱动的,也就是说这些任务可由事件来激发,而事件常常是当数据到来时发出的一个信号。2)识别时钟驱动任务 以固定的时间间隔激发这种事件,以执行某些处理。3)识别优先任务和关键任务 根据处理的优先级别来安排各种任务。在系统中,有些操作具有高优先级,因此必须在很强的时间限制内完成;有些操作具有较低的优先级,可进行时间要求较低的处理。关键任务是对系统的成败起关键作用的处理,这些处理要求有较高的可靠性。4)识别协调者

14、 当有三个或更多的任务时,应当增加一个附加任务,专门负责任务之间的调度、协同和仲裁。5)评审各个任务 6)定义各个任务定义任务的工作主要包括它是什么任务、如何协调工作及如何通信。任务的定义如下:name(任务名)description(描述)priority(优先级)servicesincluded(包含的操作)communication via(经由谁通信)4.数据管理部分(DMC)的设计 数据管理部分提供了在数据管理系统中存储和检索对象的基本结构 设计数据管理部分的目的是,将目标软件系统中依赖开发平台的数据存取部分与其他功能分离,数据存取通过一般的数据管理系统实现,但实现细节集中在DMC中

15、。这样既有利于软件的扩充、移植和维护,又简化了软件设计、编码和测试的过程。1)数据管理方法 数据管理方法主要有三种 文件管理 关系数据库管理 面向对象的数据库管理 2)数据管理部分的设计数据存储管理部分的设计包括数据存放方法的设计和相应操作的设计 OMT是美国通用电气公司在总结其内部多年来采用OO技术开发实践的基础上提出的一套系统开发方法学。OMT最早是由Loomis,Shan和Rumbaugh在1987年提出的,曾扩展应用于关系DB设计。J.Rumbaugh在1991年正式把OMT应用于OO的分析和设计。它以面向对象思想为基础,通过构造一组相关模型(对象模型、动态模型和功能模型)来获得关于问

16、题的全面认识(即问题领域模型),是在实体关系模型上扩展了类、继承和行为而得到的。对象模型(object model)代表了系统的静态的、结构方面的特性。动态模型(dynamic model)代表了系统对象之间的时间的、行为的、控制方面的特性。功能模型(functional model)主要描述值与值之间的函数关系。这三个模型从不同角度对系统进行描述,分别抓住了系统的一个重要方面,组合起来构成了对系统的完整描述。OMT认为一个典型的软件过程是三个方面的合作:它的数据结构(对象模型)、它按时间顺序的操作(动态模型)和它所改变的值(功能模型)。在分析阶段,应用领域的一个模型被建立,不考虑最后的实现。

17、在设计阶段,解决领域的结构加入模型中,明确系统中各个类的定义和相互关系以及各个类中的操作,并考虑到重用效率,重新设计一些类和关系。在实现阶段,应用领域和解决领域的结构都被编码。模型有两层含义:从系统的观点看 对象模型 动态模型 功能模型从开发阶段看 分析模型 设计模型 实现模型u三种模型介绍1.对象模型对象模型描述了系统中对象的结构,即它们的标识、它们与其它对象之间的关系、它们的属性以及它们的操作。对象模型为动态模型和功能模型提供了重要的框架,因为只有当事物变化时,动态模型和功能模型才有存在的意义。对象模型用包含对象及对象的关系图表示。类名 属性 操作 对象名 属性 操作 类 对象 类名 属性

18、 操作 一个类及属于该类的对象 类之间的联系称为关系。类之间的关系在OMT符号中用一条线表示。对象图在关系线的端点用特定的符号表示多元性。(0 或 1)(0 或多)(1)(1)(1 或多)(2,4 或 18)(3 到 5)(一对一关系)(多对多关系)1 1+2,4,18 3-5 对象模型中类之间的三种基本关系以OMT符号来表示 1)相关关系 公司 公司名 地址 工作关系 工资 职务 人员 姓名 地址(a)2)包容关系 文档 段落 语句 3)继承关系 工人 车工 钳工 纺织工 OMT建立一个对象模型的步骤大致如下:确定对象类定义一个DD,包括类、属性和关系的描述增加类之间的关系增加对象和联系的属

19、性用继承组织和简化对象类用场景测试访问路径如有需要重复以上各步基于相近的关系和相关的功能将成组的对象形成模块 2.动态模型动态模型描述系统中与时间有关的方面以及操作执行的顺序,包括引起变化的事件、事件的序列、定义事件序列上下文的状态、以及事件和状态的主次。动态建模中的主要概念是事件和状态。一个对象的状态是指对象所拥有的属性值和连接关系。从一个对象到另一个对象的单个消息叫作一个事件。在系统的一个特定的执行中发生的一系列事件叫一个场景。打电话者提起话机 开始拨号音 打电话者拨数字(6)拨号音停止 打电话者拨数字(8)打电话者拨数字(2)打电话者拨数字(2)打电话者拨数字(6)打电话者拨数字(6)打

20、电话者拨数字(8)打电话者拨数字(8)受话方电话机开始响铃 打电话者的电话中出现铃声 受话方回应 受话方电话机停止铃声 打电话者的电话中铃声消失 双方电话连通 受话方挂机 双方电话断开 打电话者挂机 打电话者 电话线 受话方 打电话者提起话机 拨号音开始 拨号(6)拨号音停止 拨号(8)拨号(2)拨号(2)拨号(6)拨号(6)拨号(8)拨号(8)电话中铃声 电话铃声响 回应 电话铃声停 电话中铃声停 电话连通 电话连通 受话方挂机 连结断开 连结断开 打电话者挂机 打电话的场景 电话的事件跟踪图 动态模型由多个状态图组成,每个用来描述一个类的重要动态行为,并表明整个系统的活动方式,不同类的状态

21、图通过共享的事件组成一个动态模型。状态图的结点是状态,标有事件的线是转移。转移的箭头指向接收事件后的目标状态。提机 空闲 挂机 拨号音 正在拨号 数字(n)超时 超时 挂机 非法电话号码 记录异常 连接 合法电话号码 数字(n)受话话机忙 忙音 短促忙音 线路忙 响铃 路由 连通 受话话机回应 断开 受话话机挂起 消息已记录 在案 超时 电话线的状态图 空闲空闲 挂机 拨号音拨号音 do:发拨号声发拨号声 提机 正在拨号正在拨号 数字(n)超时 超时超时 do:发超时声发超时声 挂机 非法电话号码 记录异常记录异常 do:处理消息处理消息 连接连接 do:查找查找 合法电话号码 数字(n)受话

22、话机忙 忙音忙音 do:发普通忙发普通忙 短促忙音短促忙音 do:发短促忙发短促忙 线路忙 响铃响铃 路由 连通连通 受话话机回应 断开断开 受话话机挂起/线路断开 消息已记录 在案 超时 加上了活动和行为的电话线的状态图 挂机 挂机 挂机/线路断开 挂机 挂机 建立一个动态模型的步骤准备典型的交互序列的场景确定对象之间的事件和为每个场景准备一个事件跟踪图为每个系统准备一个事件流图为每个有重要的动态行为的类开发一个状态图检验状态图之间的共享的事件的一致性和完整性。3.功能模型 对象模型指出事件要发生在什么方面,动态模型指出什么时候发生,功能模型则指出要发生什么。功能模型表示怎样从输入值得到输出

23、值。包括函数、映射、约束和功能性依赖。功能模型由多个DFD组成,它们表示从外部输入,通过操作和内部数据存储,到外部输出这样一个流。DFD不表示控制或对象结构信息,这些分别属于动态模型和对象模型。功能是由动态模型的动作引起,并在对象模型里表示对对象的操作。一个DFD包括转换数据的过程,移动数据的DF,生产和消费数据的角色对象,以及被动地存储数据的数据存储对象。建立一个功能模型的步骤确定输入和输出值需要时用DFD表示功能的依赖性描述每个功能干什么确定限制,指定优化准则 4.三个模型之间的关系对象模型、动态模型和功能模型都包含了同样的概念、数据、序列和操作,但它们描述了系统的不同方面,同时也互相引用

24、。对象模型描述了动态模型、功能模型所操作的DS。对象模型中的操作对应于动态模型中的事件和功能模型中的函数。动态模型描述了对象的控制结构,告诉我们哪些决策是依赖于对象值,哪些引起对象的变化,并激活了功能。功能模型描述了由对象模型中操作和动态模型中动作所激活的功能,而功能作用在对象模型说明的数据上,功能模型还表示对对象值的约束。uOMT的开发过程 1、分析阶段 分析阶段关心和理解要处理的应用和领域并建模。分析阶段首先输入的是问题陈述,它主要描述了需要处理的问题,并提供了将要产生的系统概况。分析后的输出是一个描述了系统三个重要方面的形式化模型:对象和对象之间的关系、动态的控制流,以及函数性转换。系统

25、分析文档包括问题陈述和三类模型。用户 开发人员 管理人员 生成 需求 问题陈述 生成 需求 对象模型/动态模型/功能模型 访问用户 领域知识 现实世界 设计 2、系统设计阶段系统设计阶段决定系统的整个体系结构。系统设计是一个用于解决问题和形成解答的高层次的策略。它是最先的设计阶段,在这里将选择解决问题的基本方法。在系统设计阶段,总体的结构和风格被决定,这将为以后的设计阶段中更详细的决定提供依据。通过作出用于整个系统的高层决定,系统设计者以对象模型为依据,将系统划分成子系统,以便以后的工作可以由几个设计者独立地在不同的子系统上完成。系统设计文档包括系统的基本的体系结构以及高层的策略决定。3.对象

26、设计阶段在对象设计阶段中,从着重于应用概念逐步转移到着重于计算机概念上。对象设计阶段决定实现中所用的类和关系的全部定义,包括接口和用于实现操作的算法。在对象设计时,设计者执行系统设计期间所选的策略和给出细节。对象设计文档包括详细的对象模型、详细的动态模型和详细的功能模型。4、实现阶段实现是在良好的面向对象编程风格的编码原则指导下进行的。需求模型(需求模型(RM)2、分析模型(、分析模型(AM)3、设计模型(、设计模型(DM)4、实现模型(、实现模型(IM)5、测试模型(、测试模型(TM)OOSE的开发活动主要分为三类:分析、构造和测试。的开发活动主要分为三类:分析、构造和测试。在开发各种模型时

27、,在开发各种模型时,用例贯穿了用例贯穿了OOSE活动的核心,活动的核心,描述了系统的需求及功能。描述了系统的需求及功能。贸易经理贸易经理风险分析风险分析设置边界设置边界进行交易进行交易交易估价交易估价更新帐目更新帐目使用使用使用使用扩展扩展营销人员营销人员超越边界超越边界评价评价记帐系统记帐系统销售人员销售人员图示用例图示用例图图 use caseuse case模型通过分析来构造。模型通过分析来构造。use caseuse case模型通过设计来具体化。模型通过设计来具体化。该模型依据具体化的设计来实现该模型依据具体化的设计来实现use caseuse case模型。模型。用来测试具体化的用

28、来测试具体化的use caseuse case模型。模型。用例图 静态图(类图,对象图,包图)行为图(状态图,活动图)交互图(顺序图,协作图)实现图(部件图,配置图)元-元模型:元模型的基础体系结构,定义一种说明元模型的语言 元模型:元-元模型的一个实例,定义一种说明模型的语言 模型:元模型的一个实例,定义一种语言来描述信息领域 用户对象:模型的一个实例,定义一个特定的领域 UML概要(UML Summary)UML语义(UML Semantics)UML表示法指南(UML Notation Guide)对象约束语言规约(Object Contraint language Specificat

29、ion):该文件定义并介绍了一种对象约束语言(OCL),其用途是用来说明在图形化的系统模型中不能充分表达的建模信息。它是一种形式化语言。从本质上将,一个用例是用户与计算机之间为达到某个目的的一次典型交互作用:用例描述了用户提出的一些可见的需求;用例可大可小;用例对应一个具体的用户目标 用例图描述系统外部的执行者与系统的用例之间的某种联系。所谓用例是指对系统提供的功能(或称系统的用途)的一种描述;执行者是那些可能使用这些用例的人或外部系统;用例和执行者之间的联系描述了“谁使用哪个用例”。用例图着重于从系统外部执行者的角度来描述系统需要提供哪些功能,并且指明了这些功能的执行者是谁;用例图在UML方

30、法中占有十分重要的地位,人们甚至称UML是一种用例图驱动的开发方法。用例图中的图符:用例 执行者 系统:用于界定系统功能范围,描述该系统功能的用例都置于其中,而描述外部实体的执行者都置于其外。关联:连接执行者和用例,表示执行者所代表的系统外部实体与该用例所描述的系统需求有关。用例图中的图符:使用:由用例A连向用例B,表示用例A中使用了用例B中的行为或功能。扩展:由用例A连向用例B,表示用例B描述了一项基本需求,而用例A则描述了该基本需求的特殊情况。注释体:对UML实体进行文字描述 注释连接:将注释体与要描述的实体连接,说明该注释体是针对该实体所进行的描述。使用扩展设置边界风险分析交易估计进行交

31、易超越边界更新帐目评价贸易经理营销人员记帐系统销售人员使用使用扩展用例模型的获取:获取执行者 获取用例获取执行者:谁使用系统的主要功能(主要使用者)?谁需要系统支持他们的日常工作?谁来维护、管理系统使其能正常工作(辅助使用者)?系统需要控制哪些硬件?系统需要与其他哪些系统交互?对系统产生的结果感兴趣的是哪些人?获取用例:执行者要求系统提供哪些功能?执行者需要读、产生、删除、修改或存储系统中的信息有哪些类型?必须提醒执行者的系统事件有哪些?执行者必须提醒系统事件有哪些?怎样把这些事件表示成用例中的功能?在面向对象的建模技术中,类、对象和它们之间的关系是最基本的建模元素。对于一个想要描述的系统,其

32、类模型、对象模型以及它们之间的关系揭示了系统的结构。类图描述了系统中的类及其相互之间的各种关系,其本质反映了系统中包含的各种对象的类型以及对象间的各种静态关系(关联,子类型)。类图中的图符:类:表示一个类,其中第一栏是类的 名,第二栏是类的属性,第三栏是类的操作。包:包是一种分组机制,表示一个类 图集合。关联:用于表示类的对象之间的关系。其特殊形式有组成关联和聚集关联。OperationsAttributesClassPackage类图中的图符:聚集关联:用于表示类的对象之间的关系是整体与部分的关系。组成关联:用于表示类的对象之间的关系:整体拥有各部分,部分与整体共存,如整体不存在了,部分也会

33、随之消失。泛化关联:泛化关系(继承关系)定义了类和包间的一般元素和特殊元素之间的分类关系。类图中的图符:依赖关系:有两个类或包元素X、Y,修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。对象:类的一个实例。链接:用于表示对象间的关联关系的一个实例。ValuesObject订单DateReceivedisPrepaidnumber:Stringprce:MoneyDispatch()close()订单项Quantity:Integerprice:MoneyisSatisfied:Boolean1*项客户NameaddressCreditRating():String

34、团体客户ContactNamecreditRatingcreditLimitRemind()billforMonth(Intrger)雇员产品个人客户CreditCard#creditRating()=“poor”销售代表1*0.11*对象图 对象图是类图的一种变形。除了在对象名下面要加下划线以外,对象图中所使用的符号与类图基本相同。对象图是类图的一种实例化。一张对象图表示的是与其对应的类图的一个具体实例,即系统在某一时期或者某一特定时刻可能存在的具体对象实例以及它们相互之间的具体关系。作者计算机名字:String内存:Ineger名字:String年龄:Integer0.1Uses1.*小王

35、:作者小王的工作PC:计算机名字=“王小影”年龄=32小王的工作PC:计算机名字=“Compaq X”内存=32名字=“Dell486”内存=64类图对象图 对象图并不象类图那样具有重要的地位,但是利用它可以帮助我们通过具体的实例分析,更具体直观地了解复杂系统类图的丰富内涵。对象图还常常被用作合作图的一部分,用以展示一组对象实例之间的动态协作关系。包是类的集合。包图所显示的是类的包以及这些包之间的依赖关系。如果两个包中的任意两个类之间存在依赖关系,则这两个包之间存在依赖关系。包的依赖是不传递的。订单获取界面订单获取应用AWT邮件发送清单界面邮件发送清单应用订单顾客何时使用包图:在大项目中,包图

36、是一种重要工具(有专家建议,只要你不能将整个系统的类图压缩到一张A4纸上,你就应该使用包图);依赖产生耦合,应该尽量将依赖性减少到最低程度;包的概念对测试也是特别有用的。状态图 状态图是对类的一种补充描述,它展示了此类对象所具有的可能的状态以及某些事件发生时其状态的转移情况。在状态图中,状态由圆角矩形表示。状态的改变称作转移,状态转移由箭头表示,箭头旁可以标出转移发生的条件。状态转移可以伴随有某个动作,它表明当转移发生时系统要做什么。下降状态在第一层上升状态向第一层下降空闲状态上升到达到达上升超时下降到达第一层顺序图 顺序图描述了对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。顺序图

37、由一组对象构成,每个对象分别带有一条竖线,称作对象的生命线,它代表时间轴,时间沿竖线向下延伸。顺序图描述了这些对象随着时间的推移相互之间交换消息的过程。消息用从一条垂直的对象生命线指向另一个对象的生命线的水平箭头表示。图中还可以根据需要增加有关时间的说明和其他注释。:计算机:打印服务程序:打印队列:打印机打印文件打印文件打印机空闲保存文件打印机忙P1P2P3e1e2e3e4e5e6e7e8e9e10顺序图中的事件顺序:因果性(Causality):对同一消息而言,发送事件先于接收事件。可控性(Controlability):对同一对象而言,事件p出现在发送事件q的上方,则p先于q。队列性(FI

38、FO):对同一对象而言,接收事件p出现在接收事件q的上方,并且它们分别对应的发送事件也位于同一个对象,则p先于q。e1e2e3e4e5e6e8e7e9e10e12e11P1P2P3P1P2P3e1e2e3e4e6e5e7e8e9e11e10e12协作图 与顺序图作用相同,协作图也是用来描述系统中对象之间的动态协作关系。协作图侧重于描述各个对象之间存在的消息收发关系(交互关系),而不专门突出这些消息发送的时间顺序。在协作图中,对象同样是用一个对象图符来表示,箭头表示消息发送的方向,而消息执行的顺序则由消息的编号来表明。:计算机:打印队列:打印服务程序:打印机1.打印文件 3.保存文件打印机忙2.

39、打印文件打印机空闲 协作图的布局方法能更清楚地表示出对象之间静态的连接关系。顺序图突出执行的时序,能更方便地看出事情发生的次序。如果要描述在一个用例中的几个对象协同工作的行为,交互图是一种有力的工具。交互图擅长显示对象之间的协作关系,尽管它并不对这些对象的行为进行精确的定义。如果想要描述跨越多个用例的单个对象的行为,应当使用状态图;如果想要描述跨越多个用例或多个线程的多个对象的复杂行为,则需考虑使用活动图。活动图 活动图描述系统中各种活动的执行顺序,通常用于描述一个操作中所要进行的各项活动的执行流程。同时,它也常被用来描述一个用例的处理流程,或者某种交互流程。活动图由一些活动组成,图中同时包括

40、了对这些活动的说明。当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。活动图中还可以方便地描述控制转移的条件以及并行执行等要求。加水到容器中将咖啡放到过滤器中点燃咖啡炉取出咖啡杯把过滤器放到咖啡炉上冲调咖啡倒咖啡找饮料取一听可口可乐喝饮料人找到可口可乐没有可口可乐没有咖啡找到咖啡熄灭咖啡炉 活动图最适合支持描述并行行为,这使之成为支持工作流建模的最好工具。活动图最大的缺点是很难清楚地描述动作与对象之间的关系。对于以下情况可以使用活动图:(1)分析用例;(2)理解牵涉多个用例的工作流;(3)处理多线程应用。在下列情况下,一般不要使用活动图:(1)显示对象间合作;(2)显示对象在其生命

41、周期内的运转情况。部件图 部件图描述软件构件以及它们之间的依赖关系,从而便于人们分析和发现当修改某个部件时可能对那些部件产生影响,以便对它们做相应的修改或更新。部件可以是源代码部件、二进制目标码部件、可执行部件或文档部件。Whnd.cpp:窗口处理器 Graphic.dll:图形库 Comhnd.cpp:命令处理器 Main.cpp:主类 Whnd.obj:窗口处理器 Comhnd.obj:命令处理器 Main.obj:主类 client.exe:客户程序配置图 配置图描述系统中硬件和软件的物理配置情况和系统体系结构。在配置图中,用结点表示实际的物理设备,如计算机和各种外部设备等,并根据它们之

42、间的连接关系,将相应的结点连接起来,并说明其连接方式。在结点里面,说明分配给该结点上运行的可执行部件或对象,从而说明哪些软件单元被分配在哪些结点上运行。客户A:个人电脑PC客户B:个人电脑PC数据库服务器:VAX服务器:02TCP/IP协议TCP/IP协议DecNet协议 最常用的是为软件系统建模,但不限于软件系统建模。UML还可用来描述其他非软件系统,如一个机构的组成或机构中的工作流程等。UML被用来为系统建模,它可应用的范围非常广泛 在不同系统中的应用 信息系统 技术系统 嵌入式实时系统 分布式系统 商业系统在软件开发不同阶段的应用在软件开发不同阶段的应用 需求分析需求分析 分析分析 设计

43、设计 构造构造 测试测试 UML 的用例视图可以表示客户的需求,通过用例建模可以对外部的角色以及它们所需要的系统功能建模。分析阶段主要考虑所要解决的问题。可用UML 的逻辑视图和动态视图来描述,类图描述系统的静态结构;协作图、状态图、顺序图和活动图描述系统的动态特征。在分析阶段,只为问题领域的类建模,不定义软件系统的解决方案的细节(如用户接口的类数据库等)。在设计阶段把分析阶段的结果扩展成技术解决方案,加入新的类来提供技术基础结构-用户接口,数据库操作等。分析阶段的领域问题类被嵌入在这个技术基础结构中,设计阶段的结果是构造阶段的详细的规格说明。在构造(或程序设计)阶段把设计阶段的类转换成某种面

44、向对象程序设计语言的代码。对系统的测试通常分为单元测试、集成测试、系统测试和接受测试几个不同级别。不同的测试小组使用不同的UML 图作为他们工作的基础。单元测试使用类图和类的规格说明;集成测试典型地使用组件图和协作图;而系统测试实现用例图来确认系统的行为是否符合这些图中的定义。UML是一种建模语言,是系统开发的一个组成部分,本身并没有关于开发过程概念的定义和表示符号。UML的创始者们在Rational公司的支持下综合了多种系统开发过程的长处,提出新的面向对象的开发过程,称为Rational统一过程(Rational Unified Process,RUP)。RUP过程的核心工作流包括:业务建模

45、、需求分析、系统分析与设计、实现、测试和系统配置。(1)识别系统的用例和角色 首先对项目进行需求调研,依据项目的业务流程图和数据流程图以及项目中涉及的各级操作人员,通过分析,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,再使用UML建模工具画出系统的用例图,同时,勾画系统的概念层模型,借助UML建模工具描述概念层类图和活动图。(2)进行系统分析,并抽取类 系统分析的任务是找出系统的所有需求并加以描述,同时建立特定领域模型。建立域模型有助于开发人员考察用例,从中抽取出类,并描述类之间的关系。(3)系统设计,并设计类及其行为 设计阶段由架构设计和详细设计组成。架构设计是高层设计

46、,其任务是定义包(子系统),包括包间的依赖关系和主要通信机制。包有利于描述系统的逻辑组成部分以及各部分之间的依赖关系。详细设计就是要细化包的内容,清晰描述所有的类,同时使用UML的动态模型描述在特定环境下这些类的实例的行为。案例分析案例分析图书馆管理系统图书馆管理系统 目的目的 通过一个具体的项目开发实例,简要介绍面向通过一个具体的项目开发实例,简要介绍面向对象软件开发的一些基本机制。加深对面向对对象软件开发的一些基本机制。加深对面向对象方法和统一软件过程的理解。象方法和统一软件过程的理解。需求工程需求工程-需求收集需求收集 需求获取是软件系统开发的起点。通常我们可以需求获取是软件系统开发的起

47、点。通常我们可以通过会谈、集体讨论等有效的方式获取、理解用通过会谈、集体讨论等有效的方式获取、理解用户需求。并最终采用文档户需求。并最终采用文档需求规范文档的方式需求规范文档的方式把所收集的需求文档化。把所收集的需求文档化。需求收集需求收集 在图书管理系统需求规范文档中可能指出如下内在图书管理系统需求规范文档中可能指出如下内容:容:这是一个图书馆支持系统;这是一个图书馆支持系统;图书馆将图书和杂志借给借书者。借书者已经预先注册,图书馆将图书和杂志借给借书者。借书者已经预先注册,图书和杂志也预先登记;图书和杂志也预先登记;图书馆负责新书的采购。每一本图书都购进多本书。当图书馆负责新书的采购。每一

48、本图书都购进多本书。当旧书超期或破旧不堪时,从图书馆中处理掉。旧书超期或破旧不堪时,从图书馆中处理掉。图书管理员是图书馆的员工。他们的工作就是和读者打图书管理员是图书馆的员工。他们的工作就是和读者打交道并在软件系统的支持下工作。交道并在软件系统的支持下工作。借阅人可以预定当前没有的图书和杂志。这样,当他所借阅人可以预定当前没有的图书和杂志。这样,当他所预定的图书和杂志归还回来或购进时,就通知预定人。预定的图书和杂志归还回来或购进时,就通知预定人。当预定了某书的借书者借阅了该书后,预定就取消。或当预定了某书的借书者借阅了该书后,预定就取消。或者通过显式的取消过程强行预定。者通过显式的取消过程强行

49、预定。需求收集需求收集 图书馆能够容易地建立、修改和删除标题、借书者、图书馆能够容易地建立、修改和删除标题、借书者、借阅信息和预定信息。借阅信息和预定信息。系统能够运行在所有流行的技术环境中,包括系统能够运行在所有流行的技术环境中,包括Unix,Windows 和和OS/2,并应有一个现代的图形用户界面。,并应有一个现代的图形用户界面。系统容易扩展新功能。系统容易扩展新功能。这里我们暂时不必考虑预定的图书到达后通知预这里我们暂时不必考虑预定的图书到达后通知预定人的功能,也不必检查借书过期的情况。定人的功能,也不必检查借书过期的情况。用例建模用例建模 为了理解系统所要解决的业务问题,以便掌握用户

50、为了理解系统所要解决的业务问题,以便掌握用户需求,我们可以采用用例图进行需求建模。需求,我们可以采用用例图进行需求建模。用例图描述了外部用户所能观察到的系统功能。用例图描述了外部用户所能观察到的系统功能。它通过列出用例和角色,显示用例和角色的关系,它通过列出用例和角色,显示用例和角色的关系,从而给出了目标系统的功能。从而给出了目标系统的功能。用例建模用例建模 图书馆管理系统的用例有:图书馆管理系统的用例有:借书(借书(Lend Item)返书(返书(Return Item)预订图书(预订图书(Make Reservation)删除预订(删除预订(Remove Reservation)管理(管理

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

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


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

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


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