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图的理论基础挺少的,能不能画出一个系统的几种图,就看我们的实践了。
来源:CSDN
作者:我是周洲
链接:https://blog.csdn.net/u012904383/article/details/38467715