UML:Unified Modeling Language 统一建模语言

目的:提供一套综合的表示法系统,表达系统的需求、体系结构、实现、部署和状态

在面向对象的语言中,程序员需要创建类,每个类定义了许多相似对象的行为和结构,然后,需要编写代码来创建并操作那些行为类实例的对象。

质量特性:

封装Encapsulation:只公布模块和子系统的部分内容,使得其他模块能利用该模块即可。

松散耦合Loose coupling:表示系统的一个部分依赖于另一个部分的细节所使用的方法和程度。

强内聚Strong cohesion:指子系统中的元素组成单独统一的概念的程度,没有任何额外的元素。

OO编程中的核心概念:

类:系统中一个或多个对象的行为和属性的定义,类将对象的数据(属性)绑定到它可以执行的行为(操作)上。

属性:描述对象的数据值或状态,帮助区别相同类中的不同对象。(也叫:特性、成员变量、成员数据)

操作:对象可以执行的行为或函数。(方法或成员函数、消息)。

对象:类的实例或特定范例。类的属性在类的不同对象中具有特定的值,并且该类的操作根据不同对象的特定属性来执行特定操作。

继承:一个类(超类)提供由一个或多个特定类(子类)继承的通用行为或一般行为。UML称之为泛化(generalization),超类为子类提供泛化的行为。

组件:组件是相关类的集合,这些类共同提供一个大的服务集。系统中的组件可能包括应用程序、库、ActiveX控件、JavaBeans、后台程序和服务。

接口:接口是组件或类提供的一组服务的定义。接口允许程序进行更进一步的封装。

分析:研究并定义所要解决问题的过程。OOA是根据对象来定义问题的过程

设计:定义解决方案的过程。OOD是定义组件、接口、对象、类、属性和操作的过程,以满足各种需求。

模型:OOAD过程的核心产物。分析模型,体系结构模型,组件(设计)模型,业务模型,域模型。

通过建模,可以在前期就捕获具有很大开销的bug;并且前期检测和修正可以节省用于修复bug所占用的开销和时间,节省的比例大约为50%~200%。提纲效应。交流。

UML是一种用于提取OOAD过程的产物的图形化语言。OOAD工具:Rational ROSE

提纲过程

受控迭代

完整OO过程

统一过程

Rational XDE

银弹?

UML由9个不同类型的图组成:

用例图显示了系统的外部可视行为

活动图显示了系统行为的详细描述。

组件图显示了系统的体系结构。

顺序图显示了对象随着时间的交互。

协作图显示了对象的交互,其中强调了对象之间的关系。

类图显示了类定义和关系。

状态图显示了响应时间的状态改变。

部署图显示了系统的物理体系结构。

包图显示了设计的层次结构。

UML的一切实际上就是为了交流!

用例图:描述了系统外的人员和系统的动作,以及系统的响应。该类型的图可用于描述系统的功能需求。

活动图:描述了单个功能需求内部的细节行为,包括基本的场景和一些可选的场景。该图用于确保彻底理解给定的功能。

组件图:描述了系统的可部署单元(可执行文件、组件、数据存储和其他的一些内容)以及一些接口,可部署单元通过这些接口进行交互。该图可用于研究系统的体系结构。

顺序图:描述了某个功能需求的路径或场景内相对时间的详细行为。该图用于理解系统元素之间的消息流程。

类图:描述了系统设计中的类和接口,以及他们之间的关系。该图可用于定义内部的、面向对象的代码结构。实线描述关联,虚线描述依赖。

状态图:描述了系统如何改变状态以响应内部的和外部的事件,该图可用于确保每个事件都被适当地处理,不管系统当前可能出于什么状态。

部署图:描述了系统的可部署单元(应用、组件、数据存储等)如何被赋予不同的节点、这些节点如何互相通信,以及这些节点如何与设备进行通信。该图可用于系统映射,也可用作研究系统负载。

包图:描述了设计的相关元素如何按组结合在一起,以及这些组如何相互依赖。该图可用于将复杂的设计划分为多个更易于管理的较小设计。

数据库建模:实体关系图ERD,数据流程图DFD

在UML中,虚线箭头表明了控制的方向。

记住:先编码后修复是糟糕的,先设计再纠错是优秀的!!

 

 

 

 

版权声明:本文为joesphos原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/joesphos/archive/2012/08/15/2640129.html