大师兄的信息化管理学习笔记(八):软件需求分析
大师兄的信息化管理学习笔记(十):面向对象方法
一、关于UML
- UML(Unified Modeling Language,)是一个通用的可视化建模语言,它是面向对象分析和设计的一种标准化表示,用于对软件进行描述、可视处理、构造和建立软件系统的文档。
- UML的特点:
- 支持需求分析开始的软件开发全过程
- UML不是一种可视化的程序设计语言,而是一种可视化的建模语言
- 是一种建模语言规格说明,是面向对象分析与设计的一种标准表示
- 不是过程,也不是方法
- 简单并且可扩展,具有扩展和专有化机制,便于扩展,无需对核心概念进行修改
二、UML的结构
1. 构造块
- UML的三种基本构造块:
- 事务:UML的基础
- 关系:事务之间的联系
- 图:事务的集合
2. 规则
- 规则是构造块如何放在一起的规定。
- 构造块命名
- 范围
- 可见性
- 完整性
- 执行
3. 公共机制
- 达到特定目标的公共UML方法:
- 规则说明(详细说明)
- 修饰
- 公共分类(通用划分)
- 扩展
三、UML的事务
类型 | 描述 |
---|---|
结构事务 | - 静态部分,代表概念上或物理上的元素。 - 7种结构事务:类、接口、写作、用例、活动类、构件和节点。 |
行为事务 | - 动态部分,代表时间和空间上的动作。 - 行为事务分为交互和状态机两类。 - - 交互:消息、动作次序、连接。 - - 状态机:由一系列对象的状态组成。 |
分组事务 | - 将UML模型中的元素进行分组。 - 只有一种分组事务,称为包 |
注释事务 | - URL模型的解释部分 |
四、UML2.0中的十四种图
结构图 | 行为图 |
---|---|
类图(Class diagram) | 用例图(Use Case diagrames) |
对象图(Object diagram) | 活动图(Activity diagrames) |
包图(Package diagrams) | 状态图(State machine diagrams) |
构件图(Component diagram) | 顺序图(Sequence diagrams),属于交互图 |
组合结构图(Composite structure diagram) | 通信图(Communication diagrams),属于交互图 |
部署图(Deployment diagram) | 定时图(Timing diagrams),属于交互图 |
制品图(Artifact diagram) | 交互概念图(Interaction overview diagrams),属于交互图 |
1. 类图Class diagram
- 类图用来显示系统中的类、接口、协作以及它们之间的静态结构和关系,是UML中最常见的图。
- 类图的3个基本组成部分:类名、属性和方法。
-
类之间的关系:
- 泛化关系(generalization):表示is-a的关系,是对象之间耦合度最大的一种关系,子类继承父类的所有细节。直接使用语言中的继承表达。
- 关联(Association):对象之间的一种引用关系,比如客户类与订单类之间的关系。通常使用类的属性表达。关联可以是单项或双向。
- 依赖(Dependency):对象之间最弱的一种关联方式,是临时性的关联。代码中一般指由局部变量、函数参数、返回值建立的对于其他对象的调用关系。
- 实现(Realization):在类图中就是接口和实现的关系。
- 聚合(Aggregation):表示has-a的关系,是一种不稳定的包含关系,没有整体,局部也可独立存在。
- 组合(Composition):表示contains-a的关系,是一种强烈的包含关系,比聚合关系更强,部分不能脱离整体存在。
2. 对象图Object diagram
- 对象图描述一组对象及它们之间的关系。
-
对象图描述的是参与交互的各个对象在交互过程中某一时刻的状态,可以看做是类图在某一时刻的快照。
3. 包图Package diagrams
- 为了简单地表示出复杂的类图,可以把类组合成包。
- 一个包是UML上有逻辑关系的元件的集合。
4. 构件图Component diagram
- 表示系统中构件与构件之间,类或接口与构件之间的关系图。
- 其中,构件图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系。
5. 组合结构图Composite structure diagram
- 描述系统中某一部分(构件或类)的内部结构,包括该部分与系统其它部分的交互点。
6. 部署图Deployment diagram
- 也称配置图,用来显示系统中软件和硬件的物理架构。
- 它描述了运行时的硬件结点,以及在这些结点上运行的软件组件的静态试图。
7. 用例图Use Case diagrames
- 用例图展现系统功能用例,主要用来描述“用户、需求、系统功能单元”之间的关系。
- 它展示了一个外部用户能够观察到的系统功能模型图。
- 用例图所包含的元素如下:
- 参与者Actor:表示与应用程序或系统进行交互的用户、组织或外部系统,用一个小人表示。
- 用例Use Case:用例就是外部可见的系统功能,对系统提供的服务进行描述,用椭圆表示。
- 子系统Sub System:用来展示系统的一部分功能,这部分功能联系紧密。
- 用例图中的四种关系
类型 | 说明 | 符号 |
---|---|---|
关联 | 参与者与用例间的关系 | |
泛化 | 参与者之间或用例之间的关系 | |
包含 | 用例之间的关系 | |
扩展 | 用例之间的关系 |
8.活动图Activity diagrames
- 活动图是一个特殊的流程图,集中在一个单独过程动作流程。
- 活动图告诉我们活动之间的依赖关系。
9.状态图State machine diagrams
- 状态图描述一个状态机,它由状态、转移、事件和活动组成。
- 状态图给出了对象的动态试图,对于接口类或协作的行为建模尤为重要。
-
状态图强调事件导致的对象行为,这非常有助于反应式系统建模。
10.顺序图Sequence diagrams
- 顺序图展现了一组对象或参与者以及它们之间可能发送的消息。
- 顺序图是强调消息的时间次序的交互图。
11.通信图Communication diagrams
- 与顺序图类似,但是通信图更侧重于对象间的联系,而顺序图强调消息的先后顺序。
image.png
12. 定时图Timing diagrams
- 定时图用来显示随时间变化,一个或多个元素的值或状态的改变。
-
定时图强调消息跨越不同对象或参与者的实际时间。
13. 交互概览图Interaction Overview Diagrams
-
交互概览图是多种图的组合。
五、UML中的视图
-
视图从更宏观的层面展示了系统的结构。
1. 逻辑视图Logical View
- 逻辑视图展现系统静态或结构组成及特性,表示了设计模型中在架构方面具有重要意义的部分,如类、子系统、包和用例实现等。
2. 进程视图Process View
- 进程视图是逻辑视图的一次执行实例,描述了并发与同步结构,系统的动态或行为特征。
3. 实现视图Implementation View
- 实现视图对组成基于系统的物理代码的文件和构件进行建模,指导开发架构设计。
4. 部署视图Deployment View
- 部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。
- 部署视图指导物理架构设计,主要是部署图。
5. 用例视图Use-Case View
- 用例视图是最基本的需求分析模型,强调从用户的角度看到的或需要的系统功能,在系统建模中处于中心地位。
网友评论