UML复习系列之一(基本概念)【原创】
1.UML简介
UML (Unified Modeling Language统一建模语言)是一种可视化的建模语言,它能让系统构造者用标准的、易于理解的方式建立起能够表达出他们想象力的系统蓝图,并且提供一种机制,以便于不同的人之间有效地共享和交流设计结果。
UML是一套系统的“图”表示法,通过各种不同的“图”产生出系统“模型”(一种易于使用和易于理解的对象模型)。UML模型只说明一个系统应该做什么,并没有告诉我们应该怎么做。
2.面向对象简介
以对象为中心,以类和继承为构造机制,充分利用接口和多态提供灵活性,来抽象和描述客观世界,并由此设计和构建出相应的系统。基于构建的软件开发方法就是面向对象技术孕育出来的。
相关概念:对象,类,抽象,继承,多态,封装,接口。
对象:数据(对象属性描述)和操作(对象行为描述)的封装体。
类:具有共同属性特征和行为特征的对象的抽象描述。
多态:在运行时刻决定执行代码的技术。
接口:对操作规范的说明。
构建:一个物理的、可替换的系统部分,它表现了一个接口集合。
3.UML中的类图
由一个矩形表示。类名、属性、操作、职责(描述类是做什么的)都在区域各自的方框中。
可以在类图中指定属性的类型和初始值,操作的参数和参数类型。
类之间的关系:
A.关联:类之间由连接关系,每个类都扮演某种角色。:实线
B.继承:子类和父类的关系。(UML中也称之为“泛化”):空心箭头的实线
C.依赖:一个类操作的型构中用到了另一个类的定义。:箭头虚线
D.聚集:一个类由几个部分组成(如个人电脑包括CPU,主板,磁盘,内存,鼠标键盘等)
E.组成:表示强类型的聚集,每个聚集的部分只能属于一个整体
F.接口:描述类的部分行为的一组操作,是一个类提供给另一个类的一组操作
(举例:汽车的方向盘控制,我们并不需要知道其中的传动原理,只关系它的操作)
G.实现:一个类和它的接口之间的关系
说明:一个类可以实现多个接口,一个接口也可以被多个类实现
接口和依赖举例:
洗衣机-----------△ 洗衣机控制器(接口)←-----------人
接口 依赖
4.用例图
用例是帮助分析员和用户确定系统使用情况的UML组件,一组用例就是从用户的角度出发对如何使用系统的描述。可以认为用例是系统的一组使用场景,每个场景描述一个事件的序列,每个序列由一个人、或另一个系统、或一台硬件设备、或时间的流逝所发起。发起事件序列的实体叫做“参与者”(actor)。
用例复用:从各个步骤序列中抽取出公共步骤形成一个每个用例都要使用的附加用例,我们也可以由此得到一个扩展用例。
参与者、用例和互连线共同组成了“用例模型”,例如:
参与者--------系统(用例)--------参与者
用例的文档描述:①发起用例的参与者②用例的假设条件③用例中的前置条件④场景中的步骤⑤场景完成后的后置条件⑥从用例中获益的参与者
5.状态图
对象(或行为元素)改变了自己的状态(以响应事件或时间的流逝),这种表征系统变化的方法即可用状态图。状态图只是对单个对象建立模型。
状态图的一些细节选项:入口动作、动作、其他动作或事件。引起转移发生的事件叫做触发器事件,也可以是无触发器转移。转移细节可以添加保护条件(只有当条件满足时,转移才能发生)。
一个状态可以由自己的子状态,子状态由两种形式:顺序子状态和并发子状态。
6.顺序图
顺序图由以下对象组成:对象用矩形框表示,消息用带箭头的实线表示,时间用垂直虚线表示。
A.对象:向下伸展的虚线叫做对象的生命线。
B.消息:带有实心箭头的实线表示调用消息,空心箭头的返回虚线叫做返回消息,异步消息用空心箭头的实现表示。
C.时间:流逝自顶向下。
说明:顺序图中交互时间也可以做到复用!
7.协作图
写作图是对象的扩展,处理展示出对象之间的关联,还显示出对象之间的消息传递。顺序图按照时间顺序布图,写作图按照空间组织布图。
8.活动图
用于简化描述一个过程或者操作的工作步骤。活动序列到达某一点需要作出判定,然后执行一个并发路径。
涌道:表示每个角色负责的活动。可理解为顺序图和活动图的简单结合。
9.构件图(Component)
定义一个系统的功能。一个重要特征是它具有潜在的复用性!处理构件的时候,必须处理构件的即可。
10.部署图:各个软硬件系统的相互连接图。
11.包图
包给一组元素提供了一个命名空间(namespace),包之间关系可为泛化、依赖等。
12.在开发过程中运用UML
传统过程方法学:瀑布模型:分析(analysis),设计(design),编码(coding)和部署(deployment)一个阶段一个阶段的进行,其缺点在于不利于项目开发过程中对问题的逐步理解是随着开发过程的深入而增强的。
改进方法:快速应用工程指导原则(Guidelines for Rapid APPLication Engineering,GRAPPLE),下面作简单介绍。
grapple有一下列段:
①需求收集(requirements gathering)
A.发现领域过程(产品:捕获业务过程中的步骤和判定点的活动图)B.领域分析(产品:高层的类图和会谈记录)C.识别协作系统(产品:部署图和软件构件以及其依赖关系)D.发现系统需求(产品:包图,需要进行联合应用开发会议)E.将结果提交给客户
②分析(analysis)
A.理解系统的用法(产品:一组用例图)B.充实用例(产品:每个用例步骤的文本描述)C.细化类图(产品:细化了的类图)E.分析对象状态变化(产品:状态图)F.定义对象之间的交互(产品:顺序图和协作图)G.分析与协作系统的集成(产品:详细的系统部署图和数据模型)
③设计(design)
A.开发和细化对象图(产品:对象图和活动图)B.开发构件图(产品:构件图)C.制定部署计划(产品:部署图)D.设计和开发用户界面原型(产品:所有用例的完成)E.测试设计(产品:用测试脚本构成本动作的工作产品)F.开始编制文档(产品:文档编制员和开发人员共同编制文档,制定每个文档的高层结构)
④开发(development)
A.编制代码(产品:代码)B.测试代码(产品:单元测试,继承测试,系统测试等)C.构建用户界面和用户界面到代码的连接和测试(产品:带有用户界面的功能系统)D.完成文档(产品:所有文档)
⑤部署(deployment)
A.编制备份和恢复计划(产品:备份和恢复计划)B.在硬件上安装最终系统(产品:安全部署好的计算机系统)C.测试安装后的系统(产品:测试后的工作产品)D.庆祝(产品:新系统产生)
13.UML下篇将介绍建模工具Visio 和 Rose的简单使用,敬请关注,^_^
14.天衣有缝 原创,转载请保留完整文档,深圳南山科技园2004.12.25 18:10:00 Merry christmas!