系统分析与设计——UML图总结
一. 前言
期末考试之前,我复习系统分析与设计的时候对UML图做了一些知识汇总,现在放到博客上。如果有不对或不恰当的地方,欢迎各位指正。本文仅仅起记录作用,可随意转载,荣幸之至。
截图来自网络或是老师的PPT
二. 概述
· 系统模型的三个主要部分:
功能模型:从用户的角度来看,系统的功能。包括用例图等
对象模型:用对象表示系统的结构和子结构、属性、操作或关系等。包括类图
动态模型:表示系统的内部行为。包括顺序图、活动图、状态图等
· 行为图和交互图:
行为图包括:用例图、状态图、活动图和交互图。交互图又包括顺序图,协作图等。用一个树形结构来表示各种图的关系:
下面根据例子介绍主要的几种图。
三. 具体例子
· sequence diagram(顺序图):
从左到右画出对象及其生命线,对象用矩形表示,生命线用虚线;
在生命线中嵌入的矩形,表示某一过程;对象之间用带箭头的线表示消息传递:
上图表示客户在银行取款的部分顺序图。客户插卡属于消息传递,用带箭头实线表示并在线上面注明行为;
返回的消息用带箭头虚线表示。同步消息和异步消息的区别如图所示。
如果消息传递受某个条件限制,将该条件用 [] 括起来;
表示if…else…结构,用Alt关键字标示(即alternative),并将该结构用实线框括起来:
if…then…结构同上,区别在于关键字Alt改为Opt。
再放一个例子:电梯系统中,一个乘客在一楼呼叫电梯准备上六楼:
这个电梯系统的顺序图是我自己设计的,不一定很正确,但是可以参考画顺序图的规则。
· state machine diagram(状态图):
表示系统的各个对象的状态变化。状态用圆边矩形表示,状态之间用带箭头实线表示,实线上标注驱动状态改变的事件。
起始点(请忽略图中的文字):
结束点:
异常终止点:
例子:仍然是电梯系统,一个乘客在一楼呼叫电梯准备上六楼,电梯的状态图:
历史状态:例如,洗衣机洗到一半突然断电,但是记录了历史状态,当通电后可以继续运行:
· collaboration diagram(协作图):
主要表示对象间的协作关系。对象用矩形表示,用带无箭头实线表示对象间有关系,实线上方用箭头表示消息的传递,注意这些消息要用序号标记。
下图为一个打印公司的协作图:
再例如,下图为一个安保系统的协作图,包括的对象有保安,操作台,火警传感器,安保传感器,窃贼:
· use case diagram(用例图):
表示系统的对象和用例。系统具有边界,对象用矩形表示,画在边界外;用例用椭圆表示,画在边界内。一个对象是一个用例的actor,则将它们连起来。
用例的关系:包含、扩展、泛化,包含和扩展都是虚线,而泛化是实线+三角,泛化的画法同对象图。扩展关系标注为extend,是带箭头的虚线,指向被扩展的用例。包含关系标注为include,也是带箭头的虚线,指向被包含的用例。
行为者和用例的连接是不需要文字说明的。
当用例图设计多个系统、多个对象,可以分开来画:
· activity diagram(活动图):
活动图是用例流,不使用对象、类等,但是对象也可以标注出来,要下划线,可用[]表示当前该对象的状态。
活动图的泳道:将用例按照功能或者对象分成几个部分,用实线隔开,状似泳道:
包括起始点、终止点(和状态图相同),对操作流建模,当一个操作完成时,流立即转移到下一个操作。状态的自动转移使它区别于状态图。下例为“作者-出版社-印刷厂”的活动图:
分支(选择性转移)的画法(状态图的分支也是这样画):
并发执行的画法:
· component diagram(组件图):
通常组件在运行时由一个或多个(对象)实现,具有比类图更高的抽象级别。组件图中所有的元素都是私有的。组件图之间通过接口相连,接口分为两种:一种用于访问其他组件(凸形),一种提供给其他组件访问(凹形)。例如:
· class diagram(类图)
类图是最常见的UML模型。包括类名、属性、方法三个部分:
类之间的关系有(根据关联强度从大到小):泛化=实现,组合,聚合,关联,依赖。
类图分为分析类图和设计类图。我们一般先构思分析类图,再构思设计类图。两者的区别:
a.一个分析类可能被分解成一个或多个设计类或接口;
b.在分析阶段类图研究领域的概念,可以理解为从需求中获取,而在设计阶段类图重点描述类与类之间的接口;
c.分析类的三高:高于设计实现(不必理会复杂的设计要求比如系统框架)、高于语言实现(不必理会采用哪一种特性的语言来编写)、高于实现方式(不必考虑采用哪一种具体的实现方式)。
设计类应当:指明每个模块的指责、具有完整的属性和完全的描述(可见性、属性名、类型、默认值)、完整的实现方法(可见性、方法名、变量列表、属性、返回值)。例如:
分析类转为设计类:细化分析类(分析类的抽象更加细节化、增加新的属性以使类能够完整地实现)、将大的分析类拆分;细化分析关系:拆分出整体和部分(用组合或聚合连接);注意标出数据结构的特点如indexed、sorted、set:
总之,当我们分析问题域的时候,我们一般用分析类图进行表示;当我们的分析已经成熟,考虑将它们具体地实现时,一般会借用设计类图。
系统分析与设计——UML图总结相关推荐
- 积分商城设计UML图
这是我去年在一个项目里做的系统设计,但设计刚做完,项目因为商业原因被老板停掉了,所以没用上,就贴在这里给有需要的同学做个参考吧. 概述 该系统主要是鼓励用户通过参与我们的活动获取积分,用积分兑换成实物 ...
- uml图中的各种箭头_设计模式学习笔记(二):UML与面向对象设计原则
1 UML 1.1 UML UML(Unified Modeling Language)是统一建模语言,1997年11月UML1.1版本提交给OMG并正式通过,成为建模语言的个那个也标准.2003年6 ...
- UML系统分析与设计01-准备
http://www.cnblogs.com/showjan/archive/2012/05/14/2499713.html UML,统一建模语言,在软件系统分析和设计中被广泛应用.作为一个初学者,我 ...
- 设计模式01 UML图,软件设计原则,创建型模式
概述 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中. 1995年,由 Erich Gamma.Richard Helm.Ralph Johnson 和 Joh ...
- UML图和软件设计原则
笔记来源于黑马程序员但不仅仅是黑马 UML图和软件设计原则 UML图 2.1 类图概述 2.2 类图的作用 2.3 类图表示法 2.3.1 类的表示方式 2.3.2 类与类之间关系的表示方式 2.3. ...
- UML图及软件设计原则详解
1.UML图 统一建模语言(Unified Modeling Language,UML)是用设计软件的可视化建模语言.它的特点是简单.统一.图形化.能表达软件设计中的动态与静态信息. UML从目标系统 ...
- 设计模式学习笔记1——概述 UML图 软件设计原则
目录 1.设计模式概述 1.1.软件设计模式产生背景 1.2.软件设计模式概念 1.3.学习设计模式的必要性 1.4.设计模式分类 1.4.1.创建型模式 1.4.2.结构型模式 1.4.3.行为型模 ...
- 【设计模式学习01】设计模式概述,UML图,软件设计原则
文章目录 1. 设计模式概述 1.1 软件设计模式的产生背景 1.2 软件设计模式的概念 1.3 学习设计模式的必要性 1.4 设计模式分类 2. UML图 2.1 类图概述 2.2 类图的作用 2. ...
- UML面向对象系统分析和设计:交互图
UML面向对象系统分析和设计 1. 概述(交互图) 交互图是用来表达系统的各个对象之间如何交互,如何完成某个行为的动态模型工具.主要用于对用例图中的控制流进行建模.一般要求每个用例使用一个交互图进行描 ...
- 软件设计-UML类图详解说明
一. UML类图思维导图 二. 详细分析和介绍 下面就从上面的思维导图开始,详细的介绍UML类图! 1. 什么是UML,概念是什么? UML(Unified Modeling Language)中文统 ...
最新文章
- 马年计划2014-2-21
- 程序员伤不起的年龄——30岁
- Spring boot -mongodb
- 3Sum探讨(Java)
- 使用组策略推送exchange自签名证书
- Kestrel的ListenAnyIP和ListenLocalhost的区别
- recaptcha_与reCAPTCHA的Spring集成
- MIP开发教程(一) MIP-CLI工具安装与环境部署
- Flex DataGrid 筛选实现
- 消息中间件kafka与activeMQ、rabbitMQ、zeroMQ、rocketMQ的比较
- 网络请求与本地函数调用的区别
- mysql stop salve_MySQL主从切换
- html项目的文件结构,项目文件结构
- 快速搭建企业级邮件系统iRedMail+Mysql+Postfix+php
- TF2.0—tf.keras.losses.BinaryCrossentropy
- SAS中library是 excel引擎,LIBNAME STATEMENT
- 解决pr调用麦克风的问题
- 堆糖生活家喜欢的图片批量下载
- DFS hdu1181(变形课)
- NAS存储忘记密码如何解决?