软考下午科目——第三章——UML分析与设计
UML分析与设计
大纲要求:
- 学会面向对象的分析与设计,掌握UML描述方法
UML基础知识
面向对象的分析与设计
- 面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。
- 面向对象分析的目的是获得对应用问题的理解。
- 理解的目的是确定系统的功能和性能要求。
- 面向对象分析包含5个活动:认定对象、组织对象、描述对象之间的相互作用、定义对象的操作、定义对象的内部信息。
- 面向对象设计可建立软件 系统的结构。
- 其主要工作分为两个阶段:高层设计和类设计。
- 高层设计构造应用软件的总体模型。
- 类设计是在标识了一个类之后给出它的规格说明,其中包括类的实例可执行的操作及其数据表示。
UML概述
UML(Unified Modeling Language,统一建模语言)是面向对象软件的标准化建模语言,具有丰富的表达力,可以描述开发所需要的各种视图,然后以这些视图为基础装配系统。
UML由3个要素构成:
- UML的基本构造块
- 支配这些构造块如何放置在一起的规则
- 运用于整个语言的一些公共机制
在最高层,视图被划分成3个视图域:结构分类、动态行为和模型管理
- 结构分类描述了系统中的结构成员及其相互关系。类元包括类、用例、构件和结点。类元为研究系统动态行为奠定了基础。类元视图包括静态视图、用例视图、实现视图、部署视图。
- 动态行为描述了系统随时间变化的行为。行为用从静态视图中抽取的瞬间值得变化来描述。动态行为视图包括状态机视图、活动视图和交互视图。
- 模型管理说明了模型得分层组织结构。包是模型的基本组织单元。特殊的包还包括模型和子系统。模型管理视图跨越了其他视图并根据系统开发和配置组织这些视图。
UML各种视图及其主要概念

1.类图
类图(Class Diagram)展现了一组对象、接口、协作及其之间的关系。
类图给出了系统的静态设计视图,包含主动类的类图给出了系统的静态进程视图。
作为模型管理视图还可以含有包或子系统,二者都用于把模型元素聚集成更大的组块。
类图对于系统的静态视图建模。
这种视图主要支持系统的功能需求,即系统要提供给最终用户的服务。
使用类图的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分析与设计的更多相关文章
- 软考下午题详解---uml图
在上篇博客中,小编主要简单的对软考下午题当中的数据流图设计进行了一系列总结,今天我们继续来看软考下午题当中大题部分,uml图的相关知识,在我们学习的过程中,我们也已经接触过,西安交大刘惠老师讲解过um ...
- 图书馆管理系统程序+全套开发文档(系统计划书,系统使用说明,测试报告,UML分析与设计,工作记录)
图书馆管理系统程序+全套开发文档(系统计划书,系统使用说明,测试报告,UML分析与设计,工作记录): https://download.csdn.net/download/qq_39932172/11 ...
- UML分析与设计
考点: 掌握面向对象的分析与设计 掌握UML描述方法 用例图.类图.序列图.状态转换图 类图:类的属性.方法的识别:类间的各种关系 类图:实体.联系 各种关系图例: 泛化:取公共属性 关联分为聚合.组 ...
- 第三章 设计程序架构 之 设计实现Windows Azure 角色生命周期
1. 概述 Windows Azure 是微软的云计算平台.用于 在微软数据中心 通过全局网络 生成.发布和管理应用程序. 本章内容包括 startup tasks 以及 实现 Start, Run ...
- 第三章 IP地址规划设计技术(很重要)
知识重点: 选择题考点 IP基础(网络地址.子网掩码) 网络地址转换 NAT 的原理 CIDR (计算方法) IPv6 地址表示 综合题 IP地址的分类与计算 VLSM 地址规划 3.1 基础知识 3 ...
- 《UML精粹》第三章 -类图的基本概念
第三章 类图:基本概念 类图可用来描写叙述系统中各种对象的类型.也可描绘出对象间各种各样的静态关系.此外.类图中也能够秀出类的性质(property)与操作(operation),以及可应用到对象间连 ...
- 软考自查:UML建模
UML建模 内容提要 用例图 类图与对象图 顺序图 活动图 状态图 通信图 构件图 用例图 包含关系 扩展关系 泛化关系 类图与对象图 填类名,方法名,属性名 填多重度 填关系 1: ...
- 2018.1.4 UML 第三章 用例图
第三章 用例图 (1)参与者 是指系统以外的需要使用系统或与系统交互的外部实体,吧阔人.设备.外部系统等. (2)参与者之间的关系 泛化关系的含义是参与者的共同行为提取出来表示成通用行为,并描述成超类 ...
- 软考之路--J2SE,从HelloWorld到传世代码
"Hello World"程序指的是只在计算机屏幕上输出"Hello, World!"(意为"世界,你好!")这行字符串的计算机程序.hel ...
- 软考论文的六大应对策略V1.0
软考论文的六大应对策略V1.0 短短2个小时,要写3000字的文章,对习惯了用电脑敲字.办公的IT从业人员而言,难度不小.尤其,大家会提笔忘字.笔者的应试策略,就是勤学苦练,考试前的一个星期,摸清套路 ...
随机推荐
- TypeScript Vs JavaScript 区别
一.观察 1. JS 平常的复制类型 let val; val = 123; val = "123"; val = true; val = [1, 3, 5]; 注意点: 由于JS ...
- 【scikit-learn基础】--『监督学习』之 决策树分类
决策树分类算法是一种监督学习算法,它的基本原理是将数据集通过一系列的问题进行拆分,这些问题被视为决策树的叶子节点和内部节点.决策树的每个分支代表一个可能的决策结果,而每个叶子节点代表一个最终的分类结果 ...
- 聊一聊如何整合Microsoft.Extensions.DependencyInjection和Castle.Core(完结篇)
前言 书接上回,上回我们了解了 castle 代理的一些缺点,本文将开始操作整合 Microsoft.Extension.Dependency和Castle,以让默认的容器可以支持拦截器 我们将以进阶 ...
- 开发小技巧 - 合理使用Visual Studio 2022内置任务列表(TODO)
前言 在开发编码过程中经常会因为各种问题而打断自己的思绪和开发计划,可能会导致本来准备开发或者需要测试的功能到要上线的时候才想起来没有做完.这种情况相信很多同学都遇到过,咱们强大的Visual Stu ...
- 日常Bug排查-应用Commit报错事务并没有回滚
日常Bug排查-应用Commit报错事务并没有回滚 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. 应用Commit报错并不一定回滚 事 ...
- 一文带你了解Web前端发展历程
摘要:自互联网行业发展以来,web前端不断发展变化着.在前人的基础上,后人有幸能够站在前人的肩膀上行走.前端的发展变化不仅是继承式的迭代,同时也是不断的变革和创造. 一.前端到底是个什么? 简单点说, ...
- 一文带你解读Volcano架构设计与原理
摘要:Volcano主要是基于Kubernetes做的一个批处理系统,希望上层的HPC.中间层大数据的应用以及最下面一层AI能够在统一Kubernetes上面运行的更高效. Volcano产生的背景 ...
- 面对 Log4j2 漏洞,安全人都做了什么?
摘要:本文从漏洞复现.漏洞防护.漏洞检测.软件供应链安全等方面,介绍安全人针对该漏洞做的尝试. 本文分享自华为云社区<面对 Log4j2 漏洞,安全人都做了什么?>,作者:maijun. ...
- 4种Spring Boot 实现通用 Auth 认证方式
摘要: 文章介绍了 spring-boot 中实现通用 auth 的四种方式,包括传统 AOP.拦截器.参数解析器和过滤器,并提供了对应的实例代码,最后简单总结了下它们的执行顺序. 本文分享自华为云社 ...
- 火山引擎 ByteHouse:如何提升 18000 节点的 ClickHouse 可用性?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 ClickHouse 是业内被广泛使用的 OLAP 引擎.当集群规模过大时,ClickHouse 则面临使用局限性 ...