软件工程讲义07_第1页
软件工程讲义07_第2页
软件工程讲义07_第3页
软件工程讲义07_第4页
软件工程讲义07_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、七 面向对象分析与设计建模,1,面向对象分析与设计的建模,软件开发需要把问题解决模型化。 模型化是理解一个复杂系统的工具; 模型是系统早期抽象的重要结构; 常用的面向对象分析与设计模型 Rumbaugh 等人的 OMT 模型 Coad 和 Yourdon 的模型 Booch 开发模型 UML 统一建模语言,2,对象模型化技术的三类模型:对象模型、动态模型和功能模型。 这个模型化的过程是一个迭代过程通过不断更新、细化,直到切合系统真正需求为止,Rumbaugh的对象模型化技术OMT(object modeling technique,3,1. 对象模型,也叫做静态模型,是三个模型中最关键的一个模

2、型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系。 在OMT中,类与类之间的关系叫做关联。关联代表一组存在于两个或多个对象之间的,具有相同结构和含义的具体链接。关联可以是物理的,也可以是逻辑的,4,类名,属性,操作,类,类的实例,类名) 属性值,类定义示例,自动售货机,饮料编号 价格,投入货币 送出饮料 显示金额 按下按钮 按退币杆 显示售完,5,聚合,代表整体与部分的关系,这是一种特殊形式的关联。 菱形框 表示整体侧对象 限定,用以对关联的含义做某种约束。 角色,用来说明关联的一端。由于多数关联具有两个端点,因而涉及到两个角色。 附加的说明对象之间

3、的连接连接属性,6,聚合,限定,7,泛化关联 (一般-特殊关系,8,9,2. 动态模型,动态模型着重于系统的控制逻辑,它包括两个图,一是状态图,一是事件追踪图,状态图,状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为,10,11,事件追踪图,事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”。 场景也叫做脚本,是完成系统某个功能的一个事件序列。 场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包括发生在这个期间的系统所有的内部事件,12,自动售货机售货脚本(事件序列,13,顾客 售货机 金额计算器 选择按钮 存量计算器 售空灯 投入硬币 累加 总额

4、 显示总额 金额足够 灯亮 选择按钮 按下按钮 送出饮料 结算 余额 找零 扣减存量 存量为零 灯亮,14,3. 功能模型,功能模型由数据流图组成,指明从外部输入到外部输出,数据在系统中传递和变换的情况,顶层数据流图,15,数据流图,16,Coad 与 Yourdon 的分析与设计,1. 面向对象分析的概念模型,通过面向对象分析建立的系统模型是以概念为中心的,因此称为概念模型。 这样的模型由一组相关的类组成。 构造和评审面向对象分析概念模型的顺序和由五个层次组成,即类与对象、属性、服务、结构和主题,17,18,2. Coad 与 Yourdon 的设计模型,设计模型被划分成了 4 个组成部分,

5、这些组成部分把实现技术隐藏起来,使之与系统的基本问题领域行为分离开来。 从分析转到设计需要在分析模型的基础上加入实现方面的限制。 设计模型类似于构造蓝图,设计模型全面地定义了如何用特定的实现技术建立起一个目标系统,19,设计模型的体系结构,20,UML面向对象分析与设计,UML把Booch, Rumbaugh和Jacobson等各自独立的OOA和OOD方法中最优秀的特色组合成一个统一的方法。 UML的特点: 统一标准 面向对象 可视化,表示能力强大 独立于过程 容易掌握使用,21,UML的定义,UML定义有两个主要组成部分: 语义:用自然语言描述 表示法:定义UML的可视化标准表示符号 使用

6、UML 时,要从不同的角度观察系统,为此定义了概念 “视图”。视图是对系统的模型在某方面的投影,注重于系统的某个方面,22,结构视图,行为视图,实现视图,环境视图,用例视图,为最终用户做什么,系统静态结构,程序员提供什么,软件组织与管理,系统集成人员如何组织与控制系统,系统工程师如何配置和运行系统,系统拓扑、交付、安装、操作、通信,分析员或测试员,系统任务控制与管理 (性能,可伸缩性,吞吐量,行为,23,结构视图:描述系统的静态结构,可根据它确定重要的设计:类、包和子系统。 实现视图:描述处于开发环境中的静态软件成分的组织(源程序、构件、数据文件、可执行程序等)。 行为视图:描述系统在运行时的

7、并发性,包括任务、线程、进程及其相互作用,软件体系结构的 4+1 视图模型,24,环境视图:描述处于运行环境中的各种可执行程序是如何映射到底层平台或计算结点上的。 用例视图:包括若干关键场景或用例。在初始和细化阶段用来帮助发现和设计体系结构。在构造阶段用来验证各种不同视图。在文档中用来表明其他视图是如何工作的。 UML分析建模着重系统的用例模型和结构模型,设计建模着重行为模型,实现模型和环境模型上,25,体系结构中主要的元素包括: 主要的类,如为业务实体建模的类。 将行为赋予类的机制,如协同。 模式与框架。 层次与子系统。 接口以及主要的进程控制或线程控制。 UML 的三个主要组成元素 基本构

8、造块 组织构造块的规则 运用于整个 UML 的公共机制,26,UML的构成,UML包括三种基本构造块:事物、关系和图,UML事物结构事物,类,27,接口 描述一个类或构件的服务(操作)。 协作 描述合作完成某个特定任务的一组类及其关联的集合,用于对使用情形的实现建模。 用例 表示系统想要实现的行为,不关心这些行为是怎样实现的,ISpelling,28,主动类 它至少拥有一个进程或线程,故能够启动控制活动,29,构件 系统中物理 的、可替代的部件。 节点 系统在运行 时存在的物理元素,Orderform .java,30,UML 事物行为事物,交互 由在特定环境中共同完成一定任务的一组对象之间交

9、换的消息组成,31,状态机 描述了一个对象或一个交互在生存周期内响应事件所经历的状态序列,32,UML 事物分组事物,包,33,UML 事物注释事物,注释 依附于一个元素或一组元素之上,对其进行约束或解释的简单符号,34,UML 关系,依赖 两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义,35,关联 一种描述一组对象之间连接的结构关系。 聚合是一种特殊类型的关联,描述了整体和部分间的结构关系。 泛化 一种一般化特殊化的关系,36,37,实现 类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。 两种情况出现实现关系: 在接口和实现它们的类或构件之间; 用例和它们的

10、协作之间,38,模型中主要的图形元素,39,UML 模型的图形,40,1. 用例图,用例图展现了一组用例、参与者以及它们间的关系。 可以用用例图描述系统的静态使用情况,它定义了系统的功能需求,但这是从系统的外部观看系统功能,并不描述系统内部对功能的具体实现。 在对系统行为组织和建模方面,用例图的是相当重要的,41,42,用例规格说明:销售商品,43,2. 类图,类图展示了一组类、接口和协作及它们间的关系。 类图没有时间概念,是概念数据模型(如E-R 图)的一种延伸。 用类图说明系统的静态结构视图,包含主动类的类图专注于系统的静态处理视图。 系统可有多个类图,单个类图仅表达了系统的一个方面,要在

11、高层给出类的主要职责,在低层给出类的属性和操作,44,类图是从系统构成角度来描述系统。 类的表示,45,限定关联,聚合、引用和重复度,46,关联名,类 1,类 2,角色 1,角色 2,关联类,47,泛化关系,48,49,3. 对象图,对象图展示了一组对象及它们间的关系。 用对象图说明类图中类的对象实例的数据结构和静态快照,即在某一时刻,一组对象的状态及其关系。 对象图表达了系统的静态设计视图或静态过程视图,除了现实和原型的方面因素外,它与类图作用是相同的,50,51,4. 包图,包图表明包及其之间的依赖类图。 包是对模型中涉及的元素分组所得的结果,是具有特定语义的一个子集,必须保证低耦合、高内

12、聚。 广义地讲,包可以包含类、接口、构件、节点、协作、用例等,还可以内嵌其他子包。 包之间的访问权限通过输出(输出品)和导入(进口货)设置,虚箭头 从源包到目标包,52,53,5. 构件图,构件图展现了一组构件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库等的系统建模。 构件图表示系统的静态实现视图,54,55,6. 部署图,部署图展现了对运行时处理节点以及其中构件的配置每一节点代表一个计算单元。 它描述系统硬件的物理拓扑结构 ( 包括网络布局和构件在网络上的位置) ,以及在此结构上执行的软件(即运行时软构件在节点中的分布情况)。 用部署图说明系统结构的静态环境视图,即说明分布、交付

13、和安装的物理系统,56,57,8. 活动图,活动图是一种特殊的状态图,描述要做的活动、执行这些活动的顺序以及工作流。它对于系统的功能建模特别重要,强调对象间的控制流程。 高层活动图用于表示任务。即用于分析用例,理解涉及多个用例的工作流、多线程及并行,显示相互联系的行为整体,还可用于业务过程建模,对系统的功能建模。低层活动图用于表示类的方法,58,59,9. 状态图,状态图展示了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态间的转移。 一个状态图描述了一个状态机,用状态图说明系统的动态视图。 状态图对于接口、类或协作的行为建模尤为重要,可用它描述用例实例的生存周期,60,Project对象的状态图,61,10. 交互图,交互图展现了按一定的目的进行一种交互,它由在一个上下文中的一组对象及它们之间交互的信息组成。 交互图可用于描述一个用例的行为。顺序图和协作图都是交互图,它们可以相互转换。 如果希望查看单个对象跨用例的行为, 要使用状态图。 如果希望查看跨用例跨线程的行为,要使用活动图,62,10-1 顺序图,顺序图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流建模。 对象表述为虚垂线顶端的矩形小框。 垂线是对象的生命线,说明对象的生命。 生命线之间的箭头表示消息。消息出现的次

温馨提示

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

评论

0/150

提交评论