Aug 6, 2008

UML基础

Uml的基本概念unified modeling language

  通用可视化建模语言,能与所有的开发方法一起使用,可用于软件开发的整个生命周期

  能表达系统的静态结构和动态信息,能管理复杂的系统模型

  Uml不是编程语言:支持uml语言的工具可以提供从UML到各种编程语言的代码生成,提供从现有程序你想构建UML模型

  Uml是一种离散的建模语言。

  Uml的另一个目标是:能尽量简介的表达系统的模型

  UML的概念范围:系统需求,静态结构,动态行为,交互行为,物理实现,各种图之间的关系,模型组织,扩展机制。

  系统需求:用例视图:从外部用户的角度来秒素系统的行为,它将系统划分为对用于有意义的事务。

  静态结构:静态视图,一个模型必须先定义各种事务的内部特征和相互之间的关系。

  动态行为:状态机视图:对每个类的对象的生命周期进行建模,秒素对象时间上的动态行为。活动视图:利用状态机对运算和工作流进行建模的特殊形式

  交互行为:交互视图:对象通过交互来实现行为,通过协作来进行建模。协作有结构和行为两方面

  物理实现:物理视图。

  各种图间的关系:静态视图(类图,对象图)物理视图(实现视图,部署视图)是描述系统的静态结构

   用例图是描述系统的外部结构;活动图是描述系统的内、外部视图

   交互视图(顺序图,协作图)描述系统的内部视图

   状态图:描述单个类的动态行为

   扩展机制:包括约束,标签值和原型。这些扩展机制可以用来为特定领域剪裁UML的配置。根据自身需要来使用建模语言。

 

静态建模:一个模型必须先定义各种事务的内部特征和相互间的联系。基本的模型元素:

   分类:类,接口,子系统(Sub System),执行者,用例(Use cases),组件(Component)结点,注释(Comment)

   关系:关联(Association),泛化(Generalization,依赖(dependecy),实现,约束(constraint

   静态视图:类图,对象图

  

   类:具有相同属性,操作和关系的对象集合的总称。通常在UML中画成矩形,包括三个部分:名称:每个类必须有一个名字,属性:类可以有任意多个属性,也可以没有属性,操作:操作是类的任意一个实例对象都可以调用的,并可能影响对象行为的实现

   接口:为给出实现对象行为的描述。接口包含操作,但没有属性。一个或多个类可以实现接口的操作

   子系统:任何大的系统都必须划分为较小的单元。包可以包含各种模型元素和其他的包,包之间还可能存在一定的依赖。子系统是具有独立的说明和实现部分的包:代表了与系统其他部分具有清晰接口的清晰单元。通常代表了系统在功能或实现范围上的划分

   执行者是与系统,子系统或类交互的外部人员,进程或事务。

   用例是系统提供的外部可感知的功能单元。

   组件:可重用的系统片段,具有良好定义接口的物理实现单元,每个组件包含系统设计中某些类的实现

组件设计的原则:良好的组件不直接依赖与其他组件而是依赖于其他组件所支持的接口,好处是系统中的组件可以被支持相同接口的组件所取代

一个组件可能是源代码,动态链接库或可执行程序

结点代表系统运行时的物理对象,通常拥有运算能力,它可以容纳对象和组件实例

注释用于解释设计的思路,便于理解

关联:描述了系统中对象和其他实例之间的离散的连接

聚集:用来表达整体-部分关系的关联

组合:是一种聚集,是关联更强的形式

泛化是一般化和具体化之间的关系

多重继承:可能存在冲突。最好显示解决冲突问题

依赖:指明两个或两个以上模型元素之间的关系

实现:是依赖的一种,但有特殊的意义。实现是连接说明和实体间的关系

约束:用来表述各种限制

静态视图表现为类图,主要描述类和类之间的关系,是UML的基础

对象图是系统在某一时刻的快照

动态建模:状态机图:对单个类的对象的生命周期进行建模。

    用例图:描述各个执行者在各个用例中的参与情况,描述系统为用户所感知的外部视图。

用例图的功能:捕获系统用户需求,描述系统边界,指明系统外部行为,指导系统开发者的功能开发,系统建模的起点指导所有的类图和交互图的设计;产生测试用例,用户文档;估计项目大小和进度。

活动图:用状态机对工作流进行建模的特殊形式,支持并发控制

交互视图:对象行为是通过交互来实现的,交互是对象间为完成某一目的而进行的一系列消息交换

协作图:包含分类角色和关联角色。

物理架构:实现视图:描述可重用的系统组件及组件之间的依赖

部署视图:描述系统资源在运行时的物理分布,系统资源成为结点

 

UML是一种建模语言而不是方法,这是因为UML中没有过程的概念,而过程正是方法的一个重要组成部分。UML本身独立于过程,这一味这用户在使用UML进行建模时可以选用任何适合的过程

 

建模步骤:一般的建模过程有:瀑布式开发模型,迭代递增开发模型

基于UML的系统开发采取增量迭代开发的模型:

    1 需求:最初需求规格说明应当由代表系统最终用户的人员提供,内容包括系统基本功能需求和对计算机系统的需求

    2分析:分析的任务是找出系统的所有需求并加以描述,同时建立模型以定义系统中的关键领域类。应由系统用户和开发人员合作完成。 

    3设计:设计阶段任务是通过综合考虑所有的技术限制,以扩展和细化分析阶段的模型,分为结构设计和详细设计

    结构设计:一个设计良好的系统结构是系统可扩充和可变更的基础。

详细设计:目的是通过创建新的类图,状态图和动态图,描述新的技术类,并扩展和细化分析阶段的对象类、 

4实现:构造或实现阶段是对类进行编程的过程。

5测试和配置:完成系统编码后,需要对系统进行测试,包括单元测试,集成测试,系统测试和验收测试

 

    RoseRational公司的产品,有一系列。可能你指的是Rose建模工具,它支持UML用来画用例图,序列图,状态图,类图等。可根据设计的类生成代码(包括多种语言)。还可以从代码反向生成类。如果你会UMLRose则使你如虎添翼。Rose建模的图形可以帖到文档里,另外有一点,它比VISIO简单易学,显然功能不如VISIO强大。所以结论是:它是系统分析和设计的工具,也支持一点编码,用好ROSE的关键还是在于其它方面的功力。

   

 

No comments:

Powered By Blogger