学习笔记之再学《软件工程概论》(三) 程序编码及统一建模语言
程序设计语言
简称PDL,是编码使用的语言
分类
低级语言
包括机器语言和汇编语言
特点:
- 依赖相应的机器结构,其语句和计算机硬件操作相对应,指令因机器而异
- 生产效率低,容易出错,维护困难
- 响应速度快
高级语言
- 从应用角度分为: 基础语言、现代语言和专用语言三类
- 从语言的内在特点分为: 系统实现语言、静态高级语言、块结构高级语言和动态高级语言四类
- 从应用范围角度分为: 通用语言和专用语言
- 从用户要求角度分为: 过程性语言和非过程性语言
语言的选择
按以下角度分析:
- 项目的应用范围
- 算法的复杂性
- 软件运行的环境
- 软件性能上的考虑与实现的条件
- 数据结构的复杂性
- 软件开发者的知识水平和心理因素
冗余编程和容错技术
- 冗余: 是指所有对于实现系统规定功能来说是多余的那部分资源,包括硬件、软件、信息、时间。它是改善系统可靠性的一种重要技术手段
- 容错: 是指在出现一个或几个故障或错误情况下,计算机系统能够检测出故障的存在并采取措施容忍故障
面向对象的分析与设计
面向对象(Object-Oriented, OO)方法的思路是模拟人类习惯的思维方式,解决问题的思路是从现实世界中的客观对象入手,尽量运用人类的自然思维方式从多方面来构造软件系统。其特征是:继承、封装、多态
统一建模语言
简称UML(Unified Modeling Language),是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
组成
UML的定义包括UML语义和UML表示法两个部分
特点
- 统一了标准
- 面向对象建模
- 可视化建模
- 表达能力强
- 易学易用
通用元素
模型元素是UML构建模型的基本单位,通用模型元素分为以下两类:
- 基元素: UML已定义的模型元素,如:类、结点、构件、注释等
- 构造型元素: 在基元素上构造的新的模型元素叫构造型元素,是由基元素增加了新的定义而构成的,构造型元素用括在双尖括号<<>>中的构造版型来表示
模型间的连接关系也是模型元素,常见的关系有依赖、关联、泛化和实现等
- 依赖: 表示一个元素依赖于另一种元素
- 泛化: 表示一般与特殊的关系,即“一般”元素是“特殊”元素的泛化
- 实现: 是规格说明和其实现之间的关系。规格说明描述了某种事物的结构和行为,但是不决定这些行为实现的细节
- 除了上述的模型元素之外,模型元素还包括消息、动作等
视图
由一个或多个图组成的对系统某个角度的抽象,主要由五类视图定义
用例视图
从使用者角度描述系统的外部特性及系统应具备的功能等
- 作用: 描述系统的功能需求,找出用例和执行者
- 适用对象: 客户、分析者、设计者、开发者和测试者
- 描述用图: 用例图和活动图
- 地位: 它的内容直接驱动其他视图的开发
逻辑视图
从系统的静态结构和动态行为角度显示如何实现系统的功能
- 作用: 描述用例视图中提出的系统功能的实现
- 适用对象: 设计者、开发者和分析者
- 描述用图: 系统的静态结构在类图和对象图中进行描述,而动态模型则在状态图、顺序图、协作图及活动图中描述
- 地位: 描述了系统的静态结构和因发送消息而出现的动态协作关系
并发视图
主要考虑资源的有效利用、代码的并行执行及系统环境中异步事件的处理
- 作用: 显示系统的并发性,解决在并发系统中存在的通信和同步问题
- 适用对象: 开发人员和系统集成人员
- 描述用图: 状态图、协作图及活动图组成
- 地位: 将系统划分成并发执行的控制线程,处理这些进程的信息和同步
组件视图
组件是不同类型的代码模块,它是构造应用的软件单元
- 作用: 描述系统构建组织和实现模块及他们之间的依赖关系
- 适用对象: 开发者
- 描述用图: 组件图
- 地位: 描述系统如何划分软件构建,如何进行编程
配置视图
显示系统的具体部署,部署是指将系统配置到由计算机和设备组成的物理结构上
- 作用: 显示系统的物理部署
- 适用对象: 开发者、系统继承者和测试者
- 描述用图: 配置图
- 地位: 描述硬件设备的连接和哪个程序或对象在哪台计算机上执行
图
用来描述一个视图的内容,是构成视图的成分。UML定义了10种不同的图,这10种图分为5类
用例图
Use Case Diagram,从用户角度描述系统该具备的功能
用图:
- 用例图: 列出系统中的用例和参与者,主要参与者在左边,次要参与者在右边
名称 | 图标符号 | 功能描述 |
---|---|---|
参与者 | ![]() | 用于描述与系统功能有关的外部实体,它可以是用户,也可以是外部系统 |
用例 | ![]() | 用于表示所开发系统的一项外部功能需求,从用户角度分析所得的需求 |
系统 | ![]() | 用于界定系统功能范围,描述系统功能的用例至于其中,而描述外部实体的参与者置于其外 |
关联 | ![]() | 连接参与者和用例,表示该参与者所代表的系统外部实体与该用例所描述的系统需求有关 |
使用 | ![]() | 表示两个用例间的使用关系 |
拓展 | ![]() | 由用例A连接到用例B,表示用例B描述了一项基本需求,而用例A描述了该基本需求的特殊情况,是一种拓展 |
静态图
Static Diagram,描述系统中的静态结构
用图:
- 类图: 描述的是一种静态结构,在系统的整个生命周期都是有效的
- 对象图: 是类的实例,一个对象图是类图的一个实例,由于对象存在生命周期,因此对象图只能在系统某一时间段存在
- 包图: 用于描述系统的分层结构,由包或类组成,表示包与包之间的关系
行为图
Behavior Diagram,描述系统的动态模型和对象间的交互关系
用图:
-
状态图: 描述类的对象所有可能的状态以及事件发生时状态的转移条件
-
活动图: 描述满足用例要求所进行的活动以及活动间的约束关系,有利于识别并行活动
交互图
Interactive Diagram,描述对象间的交互
用图:
- 顺序图: 显示对象之间的动态合作关系,强调对象之间消息发送的顺序,同时显示对象之间的交互,强调时间和顺序
- 合作图: 显示对象间的动态合作关系,强调上下级关系。由对象、链接、消息三种图形元素组成。消息上的数字代表顺序
实现图
Implementation Diagram, 描述系统的物理实现和物理配置
用图:
- 构件图: 描述代码部件的物理结构及各部件之间的依赖关系,有助于分析和理解部件之间的相互影响程度
- 配置图: 定义系统中软硬件的物理体系结构,它可以显示实际的计算机和设备以及他们之间的连接关系,也可显示连接的类型及部件之间的依赖性。由处理器、设备、连接三个元素组成。
应用
- 需求阶段: 通过用例图来捕获用户需求
- 分析阶段: 通过静态图识别类相互间的关系,通过行为图和交互图描述系统的动态行为
- 设计阶段: 把分析阶段结果拓展成技术解决方案,增加新的类完善技术细节
- 构造阶段: 把设计阶段的类,转换成面向对象程序语言的代码
- 测试阶段: 单元测试用静态图规格说明;集成测试用交互图和实现图;系统测试、验收测试用用例图来验证行为
转载自:https://juejin.cn/post/6867844383912722445