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. springMVC的基本介绍与入门

    1:MVC是什么? MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范. Model(模型):数据模型,提高要展示的数据 现在一般是分为Value ...

  2. JavaFx之ScrollPane滚动板面、CheckBox复选框(二十四)

    JavaFx之ScrollPane滚动板面.CheckBox复选框(二十四) 多个复选框时可能会超出屏幕,需要使用滚动版面. 布局方式:ScrollPane包括VBox.VBox 包括多个 Check ...

  3. Javac多模块化编译

    转载:原文链接 从SDK9开始,Java支持多模块编译.那么,怎么用javac实现多模块编译呢? 项目介绍 先来看看我们的项目. 首先lib文件夹下是依赖模块,有一个hello模块.hello模块包含 ...

  4. 文心一言 VS 讯飞星火 VS chatgpt (178)-- 算法导论13.4 1题

    一.用go语言,在执行 RB-DELETE-FIXUP 之后,证明:树根一定是黑色的. 文心一言: 在证明 RB-DELETE-FIXUP 之后,树根一定是黑色的的过程中,我们首先需要理解红黑树的性质 ...

  5. WMTS地图服务每一层级分辨率

    目录 1. 概述 2. 详论 2.1. Web墨卡托 2.2. 大地经纬度 3. 参考 1. 概述 WMTS地图服务每一层级的分辨率是多少?关于这个问题以前推算过,但总是忘记了.网上查询又是一堆废话, ...

  6. 格网DEM生成不规则三角网TIN

    目录 概述 详论 1️⃣数据准备 2️⃣转换算法 3️⃣TIN构建 4️⃣具体实现 5️⃣实验结果 参考 概述 在GIS(地理信息科学)中,地形有两种表达方式,一种是格网DEM,一种是不规则三角网TI ...

  7. 云小课|MRS基础原理之Hue组件介绍

    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:Hue是一组WEB ...

  8. 软件界旷世之架:测试驱动开发(TDD)之争

    摘要:在软件行业中,神仙打架的名场面,那就不得不提的是2014年的那场--测试驱动开发(TDD)之争. 在历史上有很多精彩绝伦的神仙打架,比如数学界的牛顿和莱布尼茨关于微积分的旷世之争:比如量子物理中 ...

  9. 【“互联网+”大赛华为云赛道】IoT命题攻略:仅需四步,轻松实现场景智能化设计

    摘要:仅需四步,轻松实现场景智能化设计,作品开发超轻松. 本文分享自华为云社区<["互联网+"大赛华为云赛道]IoT命题攻略:仅需四步,轻松实现场景智能化设计>,作者: ...

  10. 解读分布式调度平台Airflow在华为云MRS中的实践

    摘要:Airflow是一个使用Python语言编写的分布式调度平台,通过DAG(Directed acyclic graph 有向无环图)来管理任务. 本文分享自华为云社区<分布式调度平台Air ...