系统架构设计师学习之路(28)

6.2 UML基础

6.2.1 概述
UML通过图形化的表示机制从多个侧面对系统的分析和设计模型进行刻画。它共定义了10种视图,并将其分为4类:
(1)用例图
从外部用户的角度描述系统的功能,并指出功能的执行者。
(2)静态图
包括类图、对象图、包图。
类图:描述系统的静态结构,类图的节点表示系统中的类及其属性和操作,类图的边表示类之间的联系,包括继承、关联、依赖和聚合等。
对象图:是类图的一个实例,它描述在某种状态下或在某一时间段,系统中活跃的对象及其关系。
包图:描述系统的分解结构,它表示包以及包之间的关系。包由子包及类组成。包之间的关系包括继承、构成与依赖关系。
(3)行为图
包括交互图、状态图与活动图,它们从不同的侧面刻画系统的动态行为。
交互图:描述对象之间的消息传递,它又可分为顺序图与合作图两种形式。顺序图强调对象之间消息发送的时间序。合作图更强调对象间的动态协作关系。合作图也可通过消息序号来表示消息传递的时间序,只不过这种表示不如顺序图那样直观。
状态图:描述类的对象的动态行为,包含对象的所有状态、在每个状态下能够响应的事件以及事件发生时的状态迁移与响应动作。
活动图:描述系统为完成某项功能而执行的操作序列,这些操作序列可以并发和同步。活动图中包含控制流和信息流。
(4)实现图
包括构件图与部署图,它们描述软件实现系统的组成和分布状况。
构件图:描述软件实现系统中各组成部件及它们之间的依赖关系。
部署图:描述作为软件系统运行环境的硬件及网络的物理体系结构,其节点表示实际的计算机和设备,边表示节点之间的物理连接关系,也可以显示连接的类型及节点之间的依赖性。

6.2.2 用例和用例图
用例,国内也翻译为用况、用案等。在UML中,用例是一个椭圆表示,用例名往往用动宾结构或主谓结构命名。
定义一:用例是对一个活动者使用系统的一项功能时所进行的交互过程的一个文字描述序列。
定义二:用例是系统、子系统或类和外部的参与者交互的动作序列的说明,包括可选的动作序列和会出现异常的动作序列。
用例是代表系统中各相关人员之间就系统的行为所达成的契约。软件的开发过程可以分为需求分析、设计、实现等阶段,在需求阶段用例是分析人员与客户沟通的工具和项目规模估算的依据;设计阶段用例是系统功能设计的主要输入;在实现阶段用例是检测类行为正确性的文档。
因此,面向对象的软件开发过程是用例驱动的。
用例分析可以支持领域建模,以确保定义正确的需求,是保证OO软件开发成功的基础。但要在具体的项目中灵活使用用例来捕获用户的需求并不是一件容易的事,往往需要用户的经验、沟通能力、丰富的领域知识等。
本质上,用例分析是一种功能分解的技术,并未使用到面向对象思想。但用例是UML重要部分,确定一个系统的用例是开发OO系统的第一步,用例分析这一步做好,接着的交互图分析、类图分析等才有可能做得好,整个系统的开发才能顺利进行。
编写用例必须识别以下元素:
1)参与者
角色(actor),指系统以外的、需要使用系统或与系统交互的东西,包括人、设备、外部系统等。actor有不同的译名,包括参与者、活动者、执行者和行动者等。
一个参与者可以执行多个用例,一个用例也可以由多个参与者使用。但需要注意的是参与者不是系统的一部分,尽管在模型中会使用参与者。
参与者实际上是一个版型化的类,其版型是<>。下面是参与者的三种表示形式:
参与者三种表示形式
2)用例间的关系
用例除了参与者有关联关系外,用例之间也存在一定的关系(Relationship),如泛化(generalization)关系、包含(include)关系、扩展(extend)关系等。
包含关系:指两个用例之间的关系,其中一个用例(称作基本用例)的行为包含另一个用例(称作包含用例)的行为。
包含关系
扩展关系:基本含义与泛化关系类似。扩展关系中,对于扩展用例有更多的规则限制,即基本用例必须声明若干“扩展点”,而扩展用例只能在这些扩展点上增加新的行为和含义。
包含用例和扩展用例:
包含用例和扩展用例
3)用例图
用例图是显示一组用例、参与者以及它们之间关系的图。在UML中,一个用例模型由若干个用例图描述。
UML规范说明中并不使用颜色作为图形语义的区分标记,但建模人员可以在图中给某些图符加上填充颜色,以强调某一部分的模型,或希望引起使用者的特别注意。但在语义上,使用填充颜色和不使用填充颜色的模型是一样的。
4)用例的描述
用例的描述才是用例的核心部分,用例采用自然语言描述参与者与系统进行交互时双方的行为。
电话系统的使用用例图:
电话系统的使用用例图

6.2.3 交互图
交互图是用来描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档。它通常用来描述一个用例的行为,显示该用例中所涉及的对象之间的消息传递。
交互图包括顺序图和协作图两种形式。顺序图和协作图从不同的角度表达了系统中的交互和系统的行为,它们之间可以相互转化。
交互图可以帮助分析人员对照检查每个用例中所描述的用户需求,如这些需求是否已经落实到能够完成这些功能的类中去实现,提醒分析人员去补充遗漏的类或方法。
1.顺序图
也称时序图。顺序图是显示对象交互的图,这些对象是按时间顺序排列的。顺序图中显示的是参与交互的对象及对象之间消息交互的顺序。
顺序图
顺序图是一个二维图形。在顺序图中水平方向为对象维,沿水平方向排列的是参与交互的对象。其中对象间的排列顺序并不重要,但一般把表示参与者的对象放在图的两侧,主要参与者放在最左边,次要参与者放在最右边(或表示人的参与者放在最左边,表示系统的参与者放在最右边)。顺序图中的垂直方向为时间维,沿垂直向下方向按时间递增顺序列出各对象所发出和接收的消息。
2.协作图
用于描述系统的行为是如何由系统的成分协作实现的图,协作图中包括的建模元素有对象(包括参与者实例、多对象、主动对象等)、消息、链等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值