信管专业知识 2009-03-03 17:56:18 阅读190 评论0 字号:大中小
第七章 统一建模语言UML
7.1 UML简介
7.2 用例建模
7.3 静态建模
7.4 动态建模
7.5 物理架构建模
7.6 基于UML的统一建模过程——RUP
7.1 UML简介
Unified Modeling Language
近十几年来OOSE最重要的成果
贡献者:Grady Booch, James Rumbaugh,
Ivar Jacobson——于1996年6月推出
中文网站
http://www. umlchina.com
http://www.uml.com.cn
http://www.uml.org.cn
参考书
[美] G Booch,J Rumbaugh,I Jacobson. 邵维忠等译. UML用户指南. 北京:机械工业出版社, 2001
[美] James Rumbaugh. 姚淑珍,唐发根译. UML参考手册. 北京: 机械工业出版社, 2001
[美] W Boggs等. 邱仲潘等译. UML与Rational Rose2002从入门到精通. 北京:电子工业出版社, 2002
UML是一种可视化的图形符号建模语言,利用它可以进行需求分析、概要设计、详细设计、编程实现、项目计划、测试、原型迭代、产品发布、产品维护等。
目前在软件工程里主要用于系统分析与系统设计。
Rational Rose是UML的主要建模工具。
Microsoft Visio是UML常见的建模工具。
UML的重要影响
软件生存周期:RUP(Rational Unified Process)
软件建模方式:可视化的语言
软件文档规范:文档由UML建模工具自动产生
软件人员分工:岗位界线逐渐趋向模糊
UML的内容结构
UML模型中的图
UML共提供了九种图:
第一类图是用例图。用例图(Use Case,用况、实例)从用户的角度描述系统功能,并指出各功能的操作者。
第二类图是静态图,包括类图(Class)、对象图(Object)。类图描述类的定义和类之间的关系(关联、继承、聚合等),对象是类的实例。包描述系统的分层结构。
第三类图是行为图,包括状态图(Statechart)和活动图(Activity)。状态图描述对象的所有可能状态及事件发生时状态的转移条件。活动图描述了用例的活动行为以及活动时的约束关系。
UML模型中的图
第四类图是交互图,包括时序图(Sequence、循序、顺序、序列、轨迹)和协作图(Collaboration、合作图)。顺序图描述了对象间的动态协作关系,强调消息的时间排列;合作图同样描述了对象间的动态协作关系,但他强调消息发送和接收的对象的结构组织(及连接关系)。
第五类图是实现图,包括构件图(Component、组件、部件)和部署图(Deployment、配置、实施)。构件图描述了代码构件(模块)的物理结构和构件(模块)间的依赖关系;配置图定义了系统中软、硬件的体系结构。
UML五类九种图的符号体系——1
UML五类九种图的符号体系——2
UML五类九种图的符号体系——3
UML五类九种图的符号体系——4
UML五类九种图的符号体系——5
UML是一种标准化的图形建模语言,它是面向对象分析与设计的一种标准表示。由:
视图(views),
图(Diagrams),
模型元素(Model elements)
通用机制(general mechanism)
等几个部分构成。
UML的主要内容
一个系统应从不同的角度进行描述,从一个角度观察到的系统称为一个视图(view)。
视图由多个图(Diagrams)构成,它不是一个图表(Graph),而是在某一个抽象层上,对系统的抽象表示。
如果要为系统建立一个完整的模型图,需定义一定数量的视图,每个视图表示系统的一个特殊的方面。另外,视图还把建模语言和系统开发时选择的方法或过程连接起来。
UML常用视图
图
UML的特点
通用模型元素
模型元素
关联和链
关联(association)是两个或多个类之间的一个关系。
关联的表示
关联的重数
重数(multiplicity)表示多少个对象与对方对象相连接(右图),常用的重数符号有:
“0..1” 表示零或1
“0..*”或“*” 表示零或多个
“1..*” 表示1或多个
“1,3,7” 表示1或3或7(枚举型)
重数的默认值为1。
约束
约束
依赖
依赖关系描述的是两个模型元素(类,组合,用例等)之间的语义上的连接关系,其中一个模型元素是独立的,另一个模型元素是非独立的(或依赖的)。如下图表示类A依赖于类B的一个友元依赖关系。
实现
实现关系是一种模型元素(如类)与另外一种模型元素(如接口) 连接起来其中接口只是行为的说明而不是结构或者实现。真正的实现由前一个模型元素来完成。
如下图(a)所示。
7.2 用例建模
一、执行者
二、用例
用例图
用例图实例
课堂练习
例2: 医院病房监护系统
需求分析
需求分析
角色描述
角色描述
用例细化
用例细化
细化的用例图
类图的描述
2 UML中类之间的关系
二、聚集(aggregation)
三、泛化
继承性的实例
四、类图的抽象层次和实现关系
概念层
实现层
静态建模——例:建立“医院病房监护系统”的类与对象模型
类的识别
系统类图
3 包图
一个最古老的软件方法问题是:怎样将大系统拆分成小系统。UML中解决该问题的思路之一是将许多类集合成一个更高层次的单位,形成一个高内聚、低耦合的类的集合。UML中这种分组机制叫包(Package)。引入包是为了降低系统的复杂性。
包是一种组合机制,把各种各样的模型元素通过内在的语义连在一起成为一个整体就叫包,构成包的模型元素称为包的内容,包通常用于对模型的组织管理,因此有时又将包称为子系统(subsystem)。包拥有自己的模型元素,包与包之间不能共用一个相同的模型元素,包的实例没有任何语义(含义)。仅在模型执行期间包才有意义。
包
包的关系举例
包图
7.4 动态建模
动态模型
UML中的消息
1 状态图
状态图(State Diagram)用来描述一个特定对象的所有可能的状态及其引起状态转移的事件。一个状态图包括一系列的状态以及状态之间的转移。
状态 所有对象都具有状态,状态是对象执行了一系列活动的结果。当某个事件发生后,对象的状态将发生变化。状态图中定义的状态有:
1 状态图
细化的状态表示
1 状态图
事件
状态图之间的消息发送
2 顺序图
三、顺序图的形式
有两种使用顺序图的方式:一般格式和实例格式。
实例格式详细描述一次可能的交互。没有任何条件和分支或循环,它仅仅显示选定情节(场景)的交互(如下图所示)。
而一般格式则描述所有的情节。因此,包括了分支,条件和循环。
创建对象与对象的消亡
3 活动图
活动图的模型元素:
活动图的模型元素:
活动图1
活动图举例
4 合作图
4 合作图
关于顺序图与合作图
7.5 实现模型——物理架构建模
7.5 实现模型——物理架构建模
7.5 实现模型——物理架构建模
1 构件图
5.6.1 构件图
构件可以看作包与类对应的物理代码模块,逻辑上与包,类对应,实际上是一个文件,可以有下列几种类型的构件:
1) 源代码构件;
2) 二进制构件;
3) 可执行构件
构件对外提供的可见操作和属性称为构件的界面。界面的图符是一个小圆圈。用一条连线将构件与圆圈连起来。
构件之间的依赖关系是指结构之间在编译,连接或执行时的依赖关系。用虚线箭头表示。
1 构件图
2 配置图
配置图用来描述系统硬件的物理拓扑结构以及在此结构上执行的软件,即系统运行时刻的结构。
配置图可以显示计算机结点的拓扑结构和通信路径,结点上执行的软构件,软构件包含的逻辑单元等,特别对于分布式系统,配置图可以清楚的描述系统中硬件设备的配置,通信以及在各硬件设备上各种软构件和对象的配置。因此,配置图是描述任何基于计算机的应用系统的物理配置或逻辑配置的有力工具,配置图的元素有结点和连接。
配置图中的结点代表某种计算机构件,通常是某种硬件。同时结点还包括在其上运行的软构件,软构件代表可执行的物理代码模块。如一个可执行程序。 结点的图符是一个立方体。
2 配置图
UML对软件开发过程的支持
7.6 基于UML的统一建模过程——RUP
面向对象的过程模型
该模型每次迭代都要计划、工程和评估。每个计划都要调整进度以适应和本次迭代相关的变化。早期阶段迭代进行的分析与设计工作为了分离出OO模型中的所有重要元素;当工程工作不断进展时,产生软件的增量版本;在评估阶段对每个增量的评估其反馈将影响下一次计划活动及后续增量。
2、RUP
98年6月推出,该过程强调了开发方法的统一、建模语言的统一、研究成果的统一。该过程是基于构件的,即所构造的系统是由软件构件通过明确定义的接口相互连接所建造起来的。它使用UML来制定软件系统的所有蓝图。RUP的主要特点:
(1)用例驱动
用例作为系统分析、设计、实现和测试的基本输入。
即用例不只是一种确定系统需求的工具,它还能驱动系统的设计、实现和测试的进行。
基于用例模型,开发人员可以创建一系列实现这些用例的设计模型和实现模型。开发人员可以审查每个后续建立的模型是否与用例模型一致。测试人员测试实现以确定实现模型的构件是否实现了用例。所以用例启动了开发过程,还使开发过程结合为一体。开发过程是沿着一系列从用例得到的工作流前进的。
下图显示了用例模型与其他模型之间的相关性:
(2)以构架(Architecture)为中心
软件系统的构架从不同角度描述了即将构造的系统,它刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特征,包含了系统中最重要的静态结构和动态行为。
构架是根据应用领域的需要逐渐发展起来的,并在用例中得到反映。每种产品都具有功能和表现形式,功能与用例对应,表现形式与构架对应。用例与构架是相互影响的,用例在实现时必须符合于构架,构架必须预留空间以实现现在或将来所有需要的用例。
3、迭代与增量的过程
迭代指工作流中的步骤,增量指产品中增加的部分。
迭代过程要处理一组用例,这组用例合起来能扩展所开发产品的可用性,后续的迭代过程建立在前一次迭代过程末期所开发的产品上。
构架提供了一种结构来指导迭代过程中的工作,用例则确定了目标并驱动每次迭代的工作。——三条腿的凳子!
4、基于构件
统一过程所构造的软件系统,是由软件构件通过明确定义的接口相互连接所建造起来的。
5、使用UML
统一过程使用UML来制定软件系统的所有蓝图,UML是整个统一过程的一个完整部分,他们是共同发展起来的,它强调创建和维护模型。
6、过程可剪裁
用统一过程开发软件时,各阶段应该有多长?各个阶段迭代多少次是合适的?候选构架可以在哪一点完全建立起来?这些问题的答案取决于系统的规模、项目的性质、开发组织的领域经验,甚至包括相关人员有效配合程度。总之,统一过程是一个框架,可以根据具体情况加以裁剪,以此来适应各种各样的开发过程。
RUP的阶段论
RUP包括初始、细化、构造和移交4个阶段(初始、细化、构造、移交),每个阶段又分若干次迭代,每次迭代都有一个核心工作流(包括5个活动需求、分析、设计、实现、测试),如下图:
1.初始阶段
.对需求有一个大概了解,确定系统中的大多数用例和脚色,但此时用例是简要的; .划分主要子系统,给出系统体系结构概貌; .分析项目执行的风险; .考虑时间、经费、技术、项目规模和效益等因素; .定制出开发计划。
2.细化阶段
识别出大多数剩余的用例。对当前迭代的每个用例进行细化,分析用例处理流程、状态细节以及可能发生的状态改变。细化流程时,可以使用程序况图和协作图,还可以使用活动图、类图分析用例对风险的处理。主要工作:
需求风险 考虑项目的目标是否偏离了用户的需求。为了解决需求风险要充分了解用户需求以及各需求的优先级,还应尽量列出所有的用例,并要建立领域的概念模型。
技术风险 通过建立原型等方法,考察所选的技术方案是否可行;
技能风险 考虑实施项目的人员素质能否胜任项目的要求;
政策风险 考虑政策性的因素对项目的影响;
进行高层分析和设计,并做出结构性决策;
所产生的简要体系结构包括用例列表、领域概念模型和技术平台等,以后的阶段对细化阶段建立的体系结构不能进行过大的变动;
为构造阶段定制计划。
3.构造阶段
识别出剩余的用例。每一次迭代开发都针对用例进行分析、设计、编码、测试和集成过程,所得到的产品满足项目需求的一个子集。由于细化阶段的软件设计已经完成,这样各个项目组可以并发开发。
在代码完成后,要保证其符合标准和设计规则,并要进行质量检查。对于新出现的变化,要通过逆向工具把代码转换成模型,对模型进行修改、再重新产生代码,以保证软件与模型同步。
此阶段要建立类图、协作图和配置图;如一个类具有复杂的生命周期,可绘制状态图;如算法特别复杂,可绘制活动图。
4. 移交阶段
这一阶段完成最后的软件产品和最后的验收测试,并完成用户文档编制以及用户培训等工作。
UML开发过程中的产品
小结1:UML的事物、关系与图
小结1:UML的事物、关系与图
小结1:UML的事物、关系与图
小结1:UML的事物、关系与图
小结1:UML的事物、关系与图
小结1:UML的事物、关系与图
小结1:UML的事物、关系与图
小结2:面向对象的开发方法的一般过程
面向对象的开发方法的一般过程
面向对象的开发方法的一般过程
面向对象的开发方法的一般过程
面向对象的开发方法的一般过程
同学们辛苦了!
评论