UML——从类图到C++
简易软件开发流程
实践中,use case and description、class diagram与sequence diagram三者搭配,几乎是UML项目的基本类型,所以在分工或外包的设计文档中,通常少不了这三款UML图。常见的开发程序是并行建构use case、description与class diagram,接着才构建sequence diagram以及按图编码,如下图所示。

一个软件系统,对外提供各种服务(use case描述)。外部行为由于环境、市场、政策等等因素具有动态行为以及不可预测性。无论系统对外服务多么不确定性,运作方式差异多么大,他所依赖的系统内部结构都是稳定的。一个系统只有一个内部结构,class diagram正是描述系统内部这种未定的静态结构。软件开发过程中,class diagram不是一蹴而就的,需要与use case、sequence diagram多次迭代更新后才能逐步稳定下来。
上图涉及的三种UML图功能如下:
use case:表示系统对外提供的服务
sequence diagram:表示软件内部对象交互的情况。
class diagram:用来呈现系统内部的静态结构,而这样的静态结构通常可以直接对应代码,因此,从程序员的角度来看,类图是最值得关注的UML图。
association
在OO的认识论中,世界的本质是由对象组成的,平时看上去相互无关的独立对象在不同驱动力和规则的作用下体现出不同的运动过程,然后这些过程便展现出了我们这个生动的世界。在软件设计中,我们往往采用领域术语做类,识别类的具体手段有软件专家Sally Shlaer和Stephen J.Mellor提出的对象种类理论,以及软件专家Peter Coad提出的transaction patterns。本文的重点不是如何设计类,而是如何刻画类与类之间的关系。

类与类之间的关系,有过C++等面向对象语言基础的人很容易理解。上图对应的inheritance、access level、virtual class在C++中都有语法支撑,大多数C++程序员很容易理解这些概念。
对象之间的关系则要丰富的多。C++中我们使用类来描述某种事物的共同特性,使用对象来描述具体事务的共同特性的实际值,有的甚至还有个性的实际值。对象很少独立存在,通常会与其他种类的对量产生关系,达到1+1>2的效果。本文重点讲述对象与对象之间的关系,不过虽说是对象之间的关系,但是体现在class diagram上还是在类与类之间建立联系,用来表达两个类所产生对象之间的关系。
static relationship
static relationship包括association、aggregation、composition。这三种关系在C++类定义代码里面可以直接体现出来,才C++中attributes、static relationship的实现方法相同,都当作静态的数据来处理,因此static relationship也会想attributes一样收到access level的限制,进而影响到子类继承后的使用情况。static relationship中最常见的又是association,只要两个对相见需要协作,都能和association扯上勾
UML——从类图到C++的更多相关文章
- [UML]UML系列——类图class的关联关系(聚合、组合)
关联的概念 关联用来表示两个或多个类的对象之间的结构关系,它在代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象的应用. 程序演示:关联关系(code/assocation) 假设:一个公司 ...
- [UML]UML系列——类图class的依赖关系
相关文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列—— ...
- [UML]UML系列——类图class的泛化关系
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图C ...
- [UML]UML系列——类图class的实现关系Realization
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class ...
- UML(一) 类图及类间关系
原创文章,同步发自作者个人博客,http://www.jasongj.com/uml/class_diagram/ UML类图 UML类图介绍 在UML 2.*的13种图形中,类图是使用频率最高的UM ...
- UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)
UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...
- 20170908工作日记--UML画类图、HTTP协议、Volley源码走读
随手搜了一下,Android studio居然能够自动帮追我们生成UML的类图,简直太棒了http://www.gcssloop.com/course/UsePlantUMLInAS(Win),具体做 ...
- [UML]UML系列——类图Class
相关文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) 一.类图的概念及组成 1.类图的概念 类图是描述类.接 ...
- Uml学习-类图简介
类图(Class Diagram)简介 类图是面向对象分析(OOA,Object-Oriented Analysis)和面向对象设计(OOP,Object-Oriented Deisgn)思想的重要 ...
- UML的类图、时序图表示方法以及惯例
<UML类图图示样例>说明:http://wenku.baidu.com/link?url=DEaRFyVIAH4kZ7TolplfFhFhmAk3gFaNSOH7XPzfTnCWY4CB ...
随机推荐
- cheerio 服务器端的jquery
cheerio https://cheerio.js.org/ Fast, flexible, and lean implementation of core jQuery designed spec ...
- python中的__futrue__模块,以及unicode_literals模块
Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动.有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码,到下一个版本运行就可能不正常了. 从Python 2.7到Pytho ...
- Android 横竖屏切换处理
最近在做一个平板项目,有横竖屏切换的问题,写一下处理的方法. 第一种:禁止横竖屏切换. 对于单独的Activity,使用下面的方式直接配置: <activity android:name=&qu ...
- 防火墙阻止了虚拟机与主机之间互相ping通解决方案
1. 打开WIN10防火墙,选择高级设置 2.入站规则 3.找到配置文件类型为“公用”的“文件和打印共享(回显请求 – ICMPv4-In)”规则,设置为允许. 如果上面步骤没有问题还ping不通,可 ...
- 解析Java反射java.lang.IllegalArgumentException: wrong number of arguments
项目中遇到的问题 import org.springframework.util.ReflectionUtils; import java.lang.reflect.Method; public cl ...
- ReflectionUtils.invokeMethod的作用
Object invokeMethod(Method method, Object target, Object... args)在指定对象(target)上,使用指定参数(args),执行方法(me ...
- [转帖]Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递?
Stack Overflow上188万浏览量的提问:Java 到底是值传递还是引用传递? http://www.itpub.net/2019/12/03/4567/ 在逛 Stack Overfl ...
- Kubernetes exec API串接分析
本篇将说明Kubernetes exec API的运作方式,并以简单范例进行开发在前后端上.虽然Kubernetes提供了不同资源的RESTful API来进行CRUD操作,但是部分API并非单纯的回 ...
- 池化方法总结(Pooling)
https://blog.csdn.net/mao_kun/article/details/50507376 在卷积神经网络中,我们经常会碰到池化操作,而池化层往往在卷积层后面,通过池化来降低卷 ...
- IDEA界面太丑??尝试一下这几个风格
>>>>>>>>>>原文地址<<<<<<<<<< >>>> ...