atwood-pan

 

软考下午科目——第三章——UML分析与设计

UML分析与设计

大纲要求:

  • 学会面向对象的分析与设计,掌握UML描述方法

UML基础知识

面向对象的分析与设计

  • 面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。
  • 面向对象分析的目的是获得对应用问题的理解。
  • 理解的目的是确定系统的功能和性能要求。
  • 面向对象分析包含5个活动:认定对象、组织对象、描述对象之间的相互作用、定义对象的操作、定义对象的内部信息。
  • 面向对象设计可建立软件 系统的结构。
  • 其主要工作分为两个阶段:高层设计和类设计。
  • 高层设计构造应用软件的总体模型。
  • 类设计是在标识了一个类之后给出它的规格说明,其中包括类的实例可执行的操作及其数据表示。

UML概述

UML(Unified Modeling Language,统一建模语言)是面向对象软件的标准化建模语言,具有丰富的表达力,可以描述开发所需要的各种视图,然后以这些视图为基础装配系统。

UML由3个要素构成:

  • UML的基本构造块
  • 支配这些构造块如何放置在一起的规则
  • 运用于整个语言的一些公共机制

在最高层,视图被划分成3个视图域:结构分类、动态行为和模型管理

  • 结构分类描述了系统中的结构成员及其相互关系。类元包括类、用例、构件和结点。类元为研究系统动态行为奠定了基础。类元视图包括静态视图、用例视图、实现视图、部署视图。
  • 动态行为描述了系统随时间变化的行为。行为用从静态视图中抽取的瞬间值得变化来描述。动态行为视图包括状态机视图、活动视图和交互视图。
  • 模型管理说明了模型得分层组织结构。包是模型的基本组织单元。特殊的包还包括模型和子系统。模型管理视图跨越了其他视图并根据系统开发和配置组织这些视图。

UML各种视图及其主要概念

在这里插入图片描述

1.类图

类图(Class Diagram)展现了一组对象、接口、协作及其之间的关系。
类图给出了系统的静态设计视图,包含主动类的类图给出了系统的静态进程视图。
作为模型管理视图还可以含有包或子系统,二者都用于把模型元素聚集成更大的组块。
类图对于系统的静态视图建模。
这种视图主要支持系统的功能需求,即系统要提供给最终用户的服务。
使用类图的3种方式:

  1. 对系统的词汇建模
  2. 对简单的协作建模
  3. 对逻辑数据库模式建模

作为静态视图的类图可以包含依赖、关联、泛化、组合、实现关系以及注解和约束等。
(1)依赖关系是两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。
(2)关联关系是一种结构关系,它描述了一组对象之间的链接关系。其中有一种特殊类型的关联关系,即聚集关系,它描述了整体于部分的结构关系。
(3)泛化关系是一种“一般——特殊”关系,利用这种关系,子类可以共享父类的结构和行为。
(4)实现关系是类之间的语义关系,其中的一个类制订了另一个类保证执行的契约。实现关系用于两种情况:

  • 1、在接口和实现它们的类或构件之间
  • 2、在用例和它们的协作之间

(5)组合是聚集关系的变种,表示元素间更强的组合关系
在这里插入图片描述

各种关系图例如下所示:
在这里插入图片描述

2.用例图

用例图(Use Case Diagram)展现了一组用例、参与者(Actor)以及两者之间的关系。

用例图通常包括用例、参与者、扩展关系、包含关系。

用例图用于对系统的静态用例视图进行建模,主要支持系统的行为,即该系统在它的周边环境的语境中所提供的外部可见服务。

用例图使用方法:

  • 对系统的语境建模
  • 对系统的需求建模

在这里插入图片描述

3.构件图

构件图(Component Diagram)展现了一组构件之间的组织和依赖关系。

构件图专注于系统的静态实现视图。

它与类图相关,通常把构件映射为一个或多个类、接口或协作。

4.部署图

部署图(Deployment Diagram)展现了运行处理节点以及其中构件的配置。

部署图给出了体系结构的静态实施视图。

它与构件图相关,通常一个结点包含一个或多个构件。

5.状态图

状态图(State Diagram)展现了一个状态机,它由状态转换事件活动组成。

状态图关注系统的动态视图,它对接口、类和协作的行为建模尤为重要,强调对象行为的事件顺序。状态图通常包含简单状态组合状态转换(事件和动作)

可以用状态图对系统的动态方面建模。这些动态方面可以包括出现在系统体系结构的任何视图中的任何一种对象的按事件排序的行为,这些对象包括类(主动类)、接口、构件和节点。

6.活动图

活动图(Activity Diagram)是一种特殊的状态图,它展现了在系统内从一个活动到另一个活动的流程。

活动图专注于系统的动态视图,他对于系统的功能建模特别重要,并强调对象间的控制流程。

活动图一般包括活动状态和动作状态、转换和对象。

使用活动图的方式:

  • 对工作流建模
  • 对操作建模
7.交互图

顺序图(或称序列图)和协作图均被称为交互图,用于对系统的动态方面进行建模。
一张交互图显示的是一个交互,由一组对象及其之间的关系组成,包含它们之间可能传递的消息。

顺序图是强调消息时间序列的交互图,协作图则是强调接收和发送消息的对象的结构组织的交互图。

交互图用于对一个系统的动态方面建模。在大多数情况下,它包括对类、接口、构件和节点的具体的或原型化的实例及其之间传递的消息进行建模。

交互图可以单独使用,用于可视化、详述、构造和文档化一个特定的对象群体的动态方面,也可以用来对一个用例的特定控制流进行建模。

序列图有以下两个不同协作图的特征
(1)序列图有对象生命线,对象生命线是一条垂直的虚线,表示一个对象在一段时间内存在
(2)序列图有控制焦点,控制焦点是一个瘦高的矩形,表示一个对象执行一个动作所经历的时间段,既可以是直接执行,也可以是通过下级过程执行。

协作图有以下两个不同于序列图的特征
(1)协作图有路径
(2)协作图有顺序号

序列图和协作图是同构的,它们之间可以互相转换。

例题

例一

功能描述

在这里插入图片描述

用例图

在这里插入图片描述

类图

在这里插入图片描述

问题

在这里插入图片描述

解析

在这里插入图片描述

答案

在这里插入图片描述

例二

功能描述

在这里插入图片描述

用例图

在这里插入图片描述

类图

在这里插入图片描述

问题

在这里插入图片描述

解析

在这里插入图片描述

答案

在这里插入图片描述

例三

功能描述

在这里插入图片描述
在这里插入图片描述

类列表

在这里插入图片描述

类图、关键属性与方法列表

在这里插入图片描述
在这里插入图片描述

答案及解析

在这里插入图片描述
在这里插入图片描述

例四

功能描述

在这里插入图片描述

类图

在这里插入图片描述

问题

在这里插入图片描述

解析及答案

在这里插入图片描述

在这里插入图片描述

例五

功能描述

在这里插入图片描述

系统类模型及通信图

在这里插入图片描述在这里插入图片描述

问题

在这里插入图片描述

解析及答案

在这里插入图片描述在这里插入图片描述

同步练习

同步练习1

需求

在这里插入图片描述

用例图

在这里插入图片描述

类图

在这里插入图片描述

问题

在这里插入图片描述

答案

在这里插入图片描述

posted on 2022-05-03 14:03  JavaCoderPan  阅读(96)  评论(0编辑  收藏  举报  来源

导航