【UML】UML的九种建模图总结

烂漫一生 提交于 2019-11-30 19:24:57

    UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及在软工文档的各个阶段都需要什么UML图。文档中图的出现往往就会减少冗余的文字,所以图是软件工程文档中必不可少的核心内容,UML图就像是软件工程师的“建筑蓝图”,是我们“入行”的必不可少的一课。


一、基本概念


    如上图所示,我按照4+1视图用例视图,设计视图,进程视图,实现视图,拓扑视图 将⑨种图分开。还可以分为静态图和动态图两类。静态图分为:用例图,类图,对象图,包图,构件图,部署图。动态图分为:状态图,活动图,协作图,序列图。


1、用例图(UseCase Diagrams):
    用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。


2、类图(Class Diagrams):

    用户根据用例图,通过抽象得到类,包括类的内部结构和类之间的关系,是一种静态结构图。


3、对象图(Object Diagrams):

    对象图是类图的一个实例,描述了系统在具体时间点上包含的对象以及各个对象之间的关系。描述的是交互的静态部分。


4、状态图(Statechart Diagrams):

    是一种由状态、变迁、事件和活动组成的状态机,用来描述类的对象所有可能的状态以及时间发生时状态的转移条件。


5、活动图(Activity Diagrams):

    是状态图的一种特殊情况,这些状态大都处于活动状态。本质是一种流程图,它描述了活动到活动的控制流。


6、序列图(Sequence Diagrams):

    交互图的一种,描述了对象之间消息发送的先后顺序,强调时间顺序。


7、协作图(Collaboration Diagrams):

    交互图的一种,描述了收发消息的对象的组织关系,强调对象之间的合作关系。


8、构件图(Component Diagrams):

    描述了一组代码构件的物理结构之间的组织和依赖关系。


9、部署图(Deployment Diagrams):

    描述了系统运行时进行处理的结点以及在结点上活动的构件的配置。强调了物理设备以及之间的连接关系。



二、图与图对比


1、序列图VS协作图

    序列图和协作图都是交互图。二者在语义上等价,可以相互转化。但是侧重点不同:序列图侧重时间顺序,协作图侧重对象间的关系。


2、状态图VS活动图

    状态图和活动图都是行为图。状态图侧重从行为的结果来描述,活动图侧重从行为的动作来描述。状态图描述了一个具体对象的可能状态以及他们之间的转换。在实际的项目中,活动图并不是必须的,需要满足以下条件:1、出现并行过程&行为;2、描述算法;3、跨越多个用例的活动图。


3、活动图VS交互图

    二者都涉及到对象和他们之间传递的关系。区别在于交互图观察的是传送消息的对象,而活动图观察的是对象之间传递的消息。看似语义相同,但是他们是从不同的角度来观察整个系统的。



三、UML图与软件工程


    了解了UML图,我把它和之前学过的软件工程进行了结合,UML图是软件工程的组成部分,软件工程从宏观的角度保证了软件开发的各个过程的质量。而UML作为一种建模语言,更加有效的实现了软件工程的要求。

    如下图,在软件的各个开发阶段需要的UML图。



    这个表是UML图的使用人员总结,每种颜色代表一种图,如黄色代表用例图,用例图是用户,分析人员,测试人员会使用的。




四、小结


    通过基本概念的了解,到图之间的对比。再到图在软件工程中的应用,已经对UML图进行了初步的了解。要想熟悉几个图,必须要实践。UML图的理论基础挺少的,能不能画出一个系统的几种图,就看我们的实践了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!