一,模型与建模
- 系统的模型即对系统的描述。建模即确立模型的过程和活动。
- 系统建模的目的,是为了理解系统需求,给出系统合理可行的设计。即得到对系统的各种描述。
- 软件建模目的是为了理解软件所在的上下文,明确软件需求,展示和交流软件设计方案,记录对需求和设计的重要决策。
- 软件建模是软件工程的核心。
二,软件模型的种类及转化
-
一个系统总是存在多种模型。不同的模型都是对系统的反映。
-
描述软件的语言,可以是自然语言(英语,汉语),可以是数学语言(集合、代数),也可以是图形语言(UML,SDL),还可以是编程语言(C, Java)。
-
软件开发过程由需求、分析、设计、实现、测试等活动构成。每项活动无非是为了给出软件某一方面的、某种形式的描述,即得到软件的不同模型。
-
对软件需求的描述,称为需求模型。
-
分析活动是为了解析系统,确保系统经过确认的需求是一致的、符合逻辑的、可以实现的,所得到的制品给出了系统分解方案和子系统(模块)实现逻辑,为软件的分析模型;
-
设计活动是为了给出一种可行的、符合约束条件和非功能要求的软件架构和设计方案,所得到的制品为软件的设计模型;
-
软件的源代码也是软件的模型,称为实现模型;
-
测试用例和测试结果,构成了对软件运行情况的描述,也是一种软件模型,称为测试模型
-
系统构建活动和模型的对应关系为:
-
分析模型以需求模型为输入,设计模型以分析模型为基础,实现模型以设计模型为基础,测试模型基于实现模型。因此,模型之间是相互转化的。
-
软件构建的过程,就是建模和模型转化的过程。
-
不同的开发方法得到的软件制品可能采用不同的模型名称。
三,UML的产生背景
- UML主要图形有用例图、类图、包图、活动图、顺序图、通信图、状态图、部署图、组件图等。
- 用例图:描述系统功能构成和边界,也说明了参与者与用例的关系。
- 类图:表示对象的抽象(类)之间的关系。用来表述系统的静态结构(构成)。领域类图是类图的一个具体应用。系统架构、详细设计都需要用类图表示。
- 包图:表示系统逻辑组成,或者物理组成。包是比类颗粒度更大的组合器,一个包中可以包含很多个类,包也包含较小的多个包。包图的作用表示了系统大粒度、宏观的构成
- 活动图:表示系统的业务处理流程,或者类的操作过程。类似流程图,也能表示数据流。
- 顺序图:描述在一个处理活动中,对象之间的交互(协作)关系,消息传递的先后顺序,以及消息本身。强调时间的先后。
- 通信图:与顺序图功能类似。画法不同。
- 状态图:描述了一个状态机。由状态、转移、事件和活动组成。展现了对象的动态视图。
- 部署图:表示系统安装部署到工作场地时,软件组件与硬件节点的匹配关系。
- 组件图:表示系统中含有接口、可插拔、可重用的软件单元(即:组件)之间的关系。一个组件可以只含有一个类,也可以含有多个类。组件图与类图作用相似,语法相似。
重点!!
- 模型是对系统的一种描述。采用不同方法,从不同角度,描述系统,可以得到多种模型。
- 软件模型也是对软件系统的描述。可以用自然语言、图形、数学语言、程序设计语言描述软件模型。软件建模就是建立软件模型的过程。
- 软件开发过程中得到各种制品都是对软件的描述,因此软件开发过程,就是软件建模过程。
- 需求过程得到需求模型;分析过程得到分析模型;设计过程得到设计模型;实现过程得到实现模型;测试过程得到测试模型。
- 各种模型之间是可以互相转换和跟踪的。
- 实践中软件建模十分依赖图形语言。目前最流行的图形语言是UML。
- UML中包含用例图,类图,包图,活动图,顺序图,通信图,状态图,部署图,组件图等。