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

需求

用例图

类图

问题

答案

软考下午科目——第三章——UML分析与设计的更多相关文章

  1. 软考下午题详解---uml图

    在上篇博客中,小编主要简单的对软考下午题当中的数据流图设计进行了一系列总结,今天我们继续来看软考下午题当中大题部分,uml图的相关知识,在我们学习的过程中,我们也已经接触过,西安交大刘惠老师讲解过um ...

  2. 图书馆管理系统程序+全套开发文档(系统计划书,系统使用说明,测试报告,UML分析与设计,工作记录)

    图书馆管理系统程序+全套开发文档(系统计划书,系统使用说明,测试报告,UML分析与设计,工作记录): https://download.csdn.net/download/qq_39932172/11 ...

  3. UML分析与设计

    考点: 掌握面向对象的分析与设计 掌握UML描述方法 用例图.类图.序列图.状态转换图 类图:类的属性.方法的识别:类间的各种关系 类图:实体.联系 各种关系图例: 泛化:取公共属性 关联分为聚合.组 ...

  4. 第三章 设计程序架构 之 设计实现Windows Azure 角色生命周期

    1. 概述 Windows Azure 是微软的云计算平台.用于 在微软数据中心 通过全局网络 生成.发布和管理应用程序. 本章内容包括 startup tasks 以及  实现 Start, Run ...

  5. 第三章 IP地址规划设计技术(很重要)

    知识重点: 选择题考点 IP基础(网络地址.子网掩码) 网络地址转换 NAT 的原理 CIDR (计算方法) IPv6 地址表示 综合题 IP地址的分类与计算 VLSM 地址规划 3.1 基础知识 3 ...

  6. 《UML精粹》第三章 -类图的基本概念

    第三章 类图:基本概念 类图可用来描写叙述系统中各种对象的类型.也可描绘出对象间各种各样的静态关系.此外.类图中也能够秀出类的性质(property)与操作(operation),以及可应用到对象间连 ...

  7. 软考自查:UML建模

    UML建模 内容提要 用例图 类图与对象图 顺序图 活动图 状态图 通信图 构件图 用例图 包含关系 扩展关系 泛化关系     类图与对象图 填类名,方法名,属性名 填多重度 填关系     1: ...

  8. 2018.1.4 UML 第三章 用例图

    第三章 用例图 (1)参与者 是指系统以外的需要使用系统或与系统交互的外部实体,吧阔人.设备.外部系统等. (2)参与者之间的关系 泛化关系的含义是参与者的共同行为提取出来表示成通用行为,并描述成超类 ...

  9. 软考之路--J2SE,从HelloWorld到传世代码

    "Hello World"程序指的是只在计算机屏幕上输出"Hello, World!"(意为"世界,你好!")这行字符串的计算机程序.hel ...

  10. 软考论文的六大应对策略V1.0

    软考论文的六大应对策略V1.0 短短2个小时,要写3000字的文章,对习惯了用电脑敲字.办公的IT从业人员而言,难度不小.尤其,大家会提笔忘字.笔者的应试策略,就是勤学苦练,考试前的一个星期,摸清套路 ...

随机推荐

  1. MySQL部署后配置

    授权root用户登录 #仅本地登录,修改密码用 alter user root@'localhost' identified with mysql_native_password by'******* ...

  2. CIDR技术划分和计算

    CIDR:无类域间路由 由于早期的IP地址的划分会浪费太多的IP地址,所以,现在都是用CIDR表示法,为此引入了子网掩码的概念,即网络位的个数可以任意指定.该方法兼容早期的IP划分方法. CIDR表示 ...

  3. Spring系列:基于注解的方式构建IOC

    目录 一.搭建子模块spring6-ioc-annotation 二.添加配置类 三.使用注解定义 Bean 四.@Autowired注入 五.@Resource注入 六.全部代码 从 Java 5 ...

  4. Git使用经验总结1

    目录 1. 概述 2. 界面化工具 3. 远端覆盖本地 4. 设置代理 1. 概述 就不去介绍一些Git最常规的命令了,这些命令一般的教程都有,这里更多的总结自己的一些使用经验.当然作为初学者,常规的 ...

  5. ReactNative环境安装

    一.Homebrew 采用 Homebrew 镜像源及工具,切换到国内. /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/Homebre ...

  6. C# 在Word中添加Latex 数学公式和符号

    本篇内容介绍使用Spire.Doc for .NET在Word中添加Latex数学公式和符号的方法.编辑代码前,将Spire.Doc.dll文件添加引用至VS程序.dll文件包可通过官网下载导入(如果 ...

  7. 如何通过Python将JSON格式文件导入redis?

    摘要:如果希望将 JSON 文件导入到 Redis 中,首先要做的就是连接到 redis 服务. 本文分享自华为云社区<Python将JSON格式文件导入 redis,多种方法>,作者: ...

  8. 论文推荐|TDSC2022 安全补丁识别最新的方案E-SPI

    摘要:TDSC 2022发表了安全补丁识别最新的方案"Enhancing Security Patch Identification by Capturing Structures in C ...

  9. 上手测试GaussDB(for Redis) 和开源 Redis,只为推荐质优价廉的Redis

    摘要:一文带你全方位测评 GaussDB(for Redis) 和开源 Redis. 本文分享自华为云社区<程序员硬核测评:全方位测评 GaussDB(for Redis) 和开源 Redis& ...

  10. ByteHouse:基于ClickHouse的实时数仓能力升级解读

     更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   ByteHouse是火山引擎上的一款云原生数据仓库,为用户带来极速分析体验,能够支撑实时数据分析和海量数据离 ...