复习UML做下的笔记
一. UML简介
1.UML概述
什么是UML
UML
(Unified Modeling Language)即"统一建模语言"是一种采用图表表达信息系统,或软件程序的方法,一般被用于面向对象的软件工程项目里,包含需求分析与系统设计等阶段所使用到的工具。
为什么要建模?
- 模型提供了系统的蓝图。能够更好地理解正在开发的系统。
UML结构图
- Class diagram:类图,描述系统的静态结构,类、接口、协作以及之间的关系
- Object diagram:对象图,对象及对象间的关系
- Package diagram:包图,包以及包之间的依赖关系
- Component diagram:构件图,构件及其互相依赖关系
- Composite structure diagram:组合结构图,系统某一部分的内部结构
- Deployment diagram:部署图,构件在各节点上的部署
- Profile diagram:外廓图,不同应用领域对UML2进行扩展或裁剪的机制
UML行为图
- Activity diagram:活动图,描述事物执行的控制流或数据流
- Sequence diagram:顺序图,对象之间的消息交互,强调消息执行的顺序的交互图
- Communication diagram:通信图,对象之间的消息交互,强调对象协作的交互图
- Timing diagram:时序图,对象之间的消息交互,强调真实时间信息的交互图
- Interaction overview diagram:交互概览图,展示交互图之间的执行顺序
- State diagram:状态机图,描述对象所经历的状态转移
- Use case diagram:用例图,描述一组用例、参与者以及它们之间的关系
1.3 安装UML工具
下载地址https://staruml.io/download
2.软件开发
软件工程的开发流程
OO
:Object-oriented面向对象
软件开发的 7个阶段
可行性分析与计划阶段
目的: 不是要去解决问题,而是确定问题是否值得去解决。
- 确定软件开发的总体目标
- 估计软件开发所需要的各种资源,效益,成本,开发进度
- 提交可行性分析报告,开发计划文档,至少从下面3个方面研究每种解法的可行性
- 经济可行性:利润比成本高?
- 技术可行性:使用现有的或比较成熟的技术,能实现这个系统吗?
- 组织可行性:设计合理组织机构,选择经验丰富的管理人,保证项目的顺利执行
- 操作可行性:系统的操作方式在这个用户组织内行得通吗?
需求分析
分析用户提出的要求,给出需求详细定义,确定软件系统的各项功能,性能需求和设计约束,确定对文档编制的要求。
需求分类:
- 功能性需求(function requirement):用户登陆
- 非功能性需求,或称性能需求(quality requirement):性能、可靠性、可维护性、可扩充性
需求分析
关联紧密的是用例图
和活动图
系统分析(总体设计)
- 关键任务:
怎样实现目标系统?
- 各项需求 ==>> 软件体系结构(明确模块)
- 做出最佳方案
系统设计,详细设计(OOD)
- 关键任务:
怎样具体实现目标系统?设计每个模块的算法和数据结构,然后用相应的工具(UML)表达
- (分析模式):将需求模式中系统表达成一个物件,包括物件图和类别图
- (设计模式):施展情景,包括循序图、合作图、状态图、活动图
编码Coding(含单元测试)
- 关键任务:选择语言,将详细设计阶段的结果
(算法,数据机构)翻译成程序
,然后再进行单元模块测试
二. UML各类图
UML的特点:
- 统一的标准,OMG标准的建模语言
- 支持
面向对象
的建模语言 - 可视化、表达能力强
- 独立于软件开发过程
- 概念明确,建模表示方法简洁、图形结构清晰,容易掌握和使用
UML各图的关系
UML九种图:用例图、类图、对象图、顺序图、协作图、状态图、活动图、构件图、部署图
UML 语法描述
1. 用例图
- 用例图(use case diagram)依照需求,描述了系统提供的各项
功能单元
- 用例图是
需求分析
中的产物,帮助开发人员可视化的了解系统的功能。
事物名称 | 解释 | UML表示 |
---|---|---|
参与者(Actor) | 参与者是角色 (role)而不是具体的人 | |
用例(Use Case) | 系统功能单元 |
关系 | 解释 | 图 |
---|---|---|
关联 | 有时候也用箭头 | |
包含 | 箭头指向被包含用例 | |
扩展 | 箭头指向扩展用例 | |
泛化 | is a |
2. 活动图
- 活动图是一种**用于
描述系统行为
**的模型视图。 - 通常,活动图
记录单个操作或方法的逻辑、单个用例或商业过程的逻辑流程
。 - 活动图的起点,用黑的实心圆表示。
- 活动图的重点,用实心圆的空心圆表示。
- 活动图的任务,用圆角矩形表示。
活动图的组成
活动 | 活动的执行 | |
---|---|---|
起点 | 活动图的开始 | |
终点 | 活动图的终点 | |
对象流 | 活动之间的交换信息 | |
发送信息 | 发送事件 | |
接收信号 | 接收事件 | |
泳道 | 活动的负责者 |
活动图的关系
迁移 | 活动的完成与新活动的开始 | |
---|---|---|
分支 | 根据条件,控制执行方向 | |
分叉 | 以下活动可以并发执行 | |
结合 | 以上并发执行活动在此结合 |
3. 类图
含义
- 类图(Class diagram)以反映类的结构(属性、方法或操作),以及类之间的关系为主要目的,描述了软件系统的结构,是一种
静态建模
方法。
组成
- 类的名字(Name)
- 类的属性(Attribute,Property)
- 类的操作(Method,Operation)
参数列表
- | private |
---|---|
+ | public |
# | protected |
~ | package包 |
关系表示
需求表+用例图
订房系统
1.实体类
- 顾客
- 房间
- 房型
- 购物车
2.边界类
- 订房界面类
- 购物车界面类
3.控制类(逻辑)
- 订房控制类
- 购物车控制类
4. 顺序图(循序图、时序图)
- 循序图表示系统要做某件事情的那段时间内,运作的样子
- 循序图的重点是在描述一件事情,以及系统要完成这件事情的一连串动作
- 建立循序图主要基础在[
时间顺序
]和[合作对象
]的概念上
组成元素
面向对象
对象(Object)
- 对象是一件事、一个实体、一个名词…
- 对象有属性、行为
类(Class)
- 类是对象的抽象描述
设计模式
什么是设计模式
- 设计模式讲的是别人千锤百炼出来的精华(也就是被反复使用的一种代码设计经验),它传授的是一种思想,是一种脱离语言的编程习惯。
- 对于没有太多经验的程序员,如何写出简洁优雅,可复用性搞,可扩展性强,高内聚低耦合的代码至关重要。