UML之总结

来源:互联网 发布:广东电信 网络测速 编辑:程序博客网 时间:2024/06/18 05:05

UML,Unified Modeling Language,统一建模语言,为软件工程所有阶段提供模型化和可视化支持,由需求分析到规格,到构造和配置。

         UML绘制文档所需要的图,其中最常用的是用例图、静态图、行为图和实现图。其中,用例图指用例图,静态图指对象图和类图,行为图指状态图和活动图,交互图指时序图和协作图实现图指构件图和部署图,共九种,有时还包含包图(包图属于静态图)。

      用例图 User Case

 描述用户/需求/系统功能单元间的关系,如功能模型图,其作用是可视化理解系统的功能需求,获取需求,知道测试,和其它工作流的指导作用。用例图许哟啊在需求分析阶段完成,写入需求规格说明书。

在用例图中包含以下关系:包含关系泛化关系扩展关系

包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。基用例控制与包含用例的 关系,以及被包含用例的事件流是否会插入到基用例的事件流中。基用例可以依赖包含用例执行的结果,但是双方都不能访问对方的属性。

             扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(Extension Point)上进行扩展,从而使基用例行为更简练和目标更集中。扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此它能根据基用例中扩展点的当前状态来判断是否执行自己。但是扩展用例对基用例不可见。 

泛化关系:子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。在实际应用中很少使用泛化关系,子用例中的特殊行为都可以作为父用例中的备选流存在。  

     对象图 Object Diagram

说明对象之间的关系,说明数据结构,类图中类或组件的静态快照,类图的实例化,在需求分析阶段完成。

我的对象图把所有对象都写入了,看着好像不对似的,但是我不太了解那里明白,如果有人明白,可以和我说说哦。

     类图 Class Diagram

描述类/接口/协作以及他们之间的关系,有时候也可以包含包、对象、链等,是对象图的抽象化。一般都是从词汇中发现类,然后找到它们的责任。类图在需求分析阶段、概要设计阶段完成,写入需求说明书和概要设计说明书中。类的属性和方法存在权限,其中+表示public,-表示private,#表示protected,这种权限在类图中有时会发现。

对象图和类图老是混为一谈,有时候画着画着就不知画的是什么了,希望有人可以各处理解哦。

类图中包含四种关系,有依赖关系关联关系泛化关系实现关系

依赖关系是指一个类依赖另一个类,被依赖的一方为局部变量,表示方式:虚线+箭头,指向被依赖一方

关联关系指两个类存在一般的联系,表示方式:实现+箭头。其中如果只有一方联系另一方,则是单箭头,如果是两方互相联系则是双箭头。关联关系还分为聚合关系和组合关系。聚合关系表式两个类不通层次,是整体与个体的层次,则表示为:空心菱形+实线+箭头,箭头指向部分。组合关系则是同一层次的,不能共享,例如火车一节节车厢

,表示方式:实心菱形+实线+箭头,箭头指向靠近整体开始的地方(例如火车车头)。

泛化关系是一般元素和特殊元素的分类关系,也是反向继承关系,表示方式:空心箭头+实线。箭头指向父类;空心箭头+虚线,箭头指向父类(父类是接口)

实现关系是类与接口的实现,表示方式:空心箭头和实现,箭头指向父类;空心箭头+虚线,如果父类是接口

     包图 Package Diagram

描述包与包之间的关系,由包和类组成,表示系统分层结构。包图属于静态图,需求分析阶段和概要设计阶段完成。

状态图 Statechart Diagram

描述状态和状态控制流,动态特种性建模,侧重行为的状态,一般在详细设计阶段完成,写入详细设计说明书中。

活动图 Activity Diagram

与状态图相类似,只不过活动图侧重的是行为的动作,描述业务实现用例的工作流程。

时序图 Sequence Diagram

对象之间的动态合作关系,强调对象发消息顺序(时序),同时显示对象间的交互。一般在需求分析阶段和详细设计阶段完成。

协作图 Communication Diagram

又称合作图,是描述对象之间的协作关系,强调发消息和接收消息的对象

部署图  Deployment Diragram

需求阶段的技术解决方案,描述系统中物理体系结构。与构件图相对。

构件图  Component Diragram

描述系统中软件体系结构,例如运行程序需要的构件等。构件包含执行文件(源码编译)/文件/库/表/文档等等。

0 0
原创粉丝点击