面向对象系统分析与设计
Object-Oriented Systems Analysis and Design Using UML
OOAD: Object Oriented Analysis and Desigin
面向对象系统分析与设计(Object Oriented Analysis and Desigin)简称 OOAD,是根据面向对象的方法学,对软件系统进行分析和设计的过程。可分为两个阶段:
- OOA(Object Oriented Analysis):分析阶段
- OOD(Object Oriented Desigin):设计阶段
在软件项目中,UML 常用于面向对象系统分析与设计。
UML 建模方法
UML 是“统一建模语言”(Unified Modeling Language)的缩写,是一种用于软件开发的图形化建模语言。它提供了一套用于描述系统构成、行为和交互的图形符号和文本标记,并支持了面向对象的建模方法。
UML包含多种图形表示方法,包括用于表示系统结构和组成的类图、用于描述系统流程和行为的活动图以及用于描述系统交互的用例图等。如今,UML 已成为工业标准,广泛应用于信息系统开发、软件工程 以及其他领域。
对象的三个基本要素分别是:对象标识、对象状态、对象行为。
对象是类的实例,类是对象的模板。
UML 的 5 个视图
1)用例视图
用例视图(Use case view)用于定义系统的外部行为,它定义了系统的需求,是描述系统设计和构建的其他视图的基础,即用例驱动。用例视图又称为“用户模型视图”。
2)逻辑视图
逻辑视图(Logic view)用于描述逻辑结构,该逻辑结构支持用例视图描述的功能,它描述了问题空间中的概念以及实现系统功能的机制,如类、包、子系统等。逻辑视图又称为“结构模型视图”或“静态视图”。
3)实现视图
实现视图(Implementation view)描述用于组建系统的物理组件,如可执行文件、代码库和数据库等系统程序员所看到的软件产物,是和配置管理以及系统集成相关的信息。实现视图又称为“组件视图”。
4)过程视图
过程视图(Process view)描述将系统分解为过程和任务,以及这些并发元素之间的通信与同步。过程视图又称为“并发视图”、“动态视图”或“协作视图”。
5)部署视图
部署视图(Deployment view)描述系统的物理网络布局,是系统工程师和网络工程师所感兴趣的。部署视图又称为“物理视图”。
UML 的 9 种图表
UML 中有九种建模的图表,可按静态和动态分为两大类:
- 静态图:用例图、类图、对象图、组件图、配置图
- 动态图:序列图、状态图、协作图、活动图
1)用例图
用例图(Use case diagram)描述系统的功能,作为一个外部的观察者的视角对系统的印象。它强调的是这个系统是什么而不是这个系统怎么工作,通常由由系统、用例和角色三种元素组成。
用例图由系统、用例和角色三种元素组成。用例图与情节紧紧相关的,情节(scenario)是指当某个人与系统进行互动时发生的情况。例如,下面是一个医院门诊部的情节。
“一个病人打电话给门诊部预约一年一次的身体检查。接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录。”
用例(Use case)是为了完成一个工作或者达到一个目的的一系列情节的总和。角色(actor)是发动与这个工作有关的事件的人或者事情。角色简单的扮演着人或者对象的作用。下面的图是一个门诊部(Make Appointment)用例。角色是病人。角色与用例的联系是通讯联系communication association(或简称通讯communication)
角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线。
一个用例图是角色,用例,和它们之间的联系的集合。我们已经把 Make Appointment 作为一个含有四个角色和四个用例的图的一部分。注意一个单独的用例可以有多个角色。
用例图在三个领域很有作用。
- 决定特征(需求)。当系统已经分析好并且设计成型时,新的用例产生新的需求。
- 客户通讯。使用用例图很容易表示开发者与客户之间的联系。
- 产生测试用例。一个用例的情节可能产生这些情节的一批测试用例。