首页 > 其他分享 >你会使用UML完成一个设计文档吗?

你会使用UML完成一个设计文档吗?

时间:2023-03-25 16:06:22浏览次数:29  
标签:类图 用例 序列图 文档 设计 组件 UML 描述


软件建模与设计过程可以拆分成需求分析、概要设计和详细设计三个阶段。UML规范包含了十多种模型图,常用的有7种:类图、序列图、组件图、部署图、用例图、状态图和活动图,本篇笔记重点探讨如何使用这七种模型图在需求分析、概要设计、详细设计中输出合适的设计文档。

类图

类图,用来表述类的特性和类之间的静态关系。

一个类包含三个部分:类的名字、类的属性列表和类的方法列表。类之间的静态关系有6种:关联、依赖、组合、聚合、继承、泛化。把相关的一组类及其关系用一张图画出来,就是类图。

类图主要是在详细设计阶段画图,设计出类图,开发工程师就可以按照类图实现代码,只要类方法的逻辑不是太复杂,不同的工程师实现出来的代码几乎是一样的,这样就可以保证软件的规范、统一。在日常开发中,不需要画出所有的类图,把核心的、有代表性和有技术难度的类图画出来即可。

序列图

序列图主要用来描述参与者之间的动态调用关系。

每个参与者有一条垂直向下的生命线,这条线用虚线表示,而参与者之间的消息从上到下表示其调用的前后顺序关系,这正是序列图这个词的由来,每个生命线都有一个激活条,只有参与者活动的时候才是激活的。

序列图通常用于表示对象之间的交互,这个对象可以是类对象,也可以是更大粒度的参与者,比如组件、服务器、子系统等等,只要是描述不同参与者之间交互的,都可以使用序列图。

组件图

组件是比类更大的设计元素,一个组件中通常包含很多个类。组件图有的时候和包图的用途比较接近,组件图通常用来描述一个物理上的组件。在进行模块设计的时候更多的是用组件图。

组件图描述的是组件之间的静态关系,主要是依赖关系,不能描述组件之间的动态调用关系,如果要描述组件之间的调用关系可以使用序列图。

部署图

部署图描述的是软件系统的最终部署情况,比如使用多少服务器,关键组件都部署在哪些服务器上。

部署图是描述软件系统最终物理呈现的蓝图,根据部署图,可以让客户、老板、工程师清晰了解到最终运行的系统在物理上是什么样子,根据部署图,可以估算服务器和第三方软件的采购成本。部署图主要用于概要设计阶段。

用例图

用例图主要用在需求分析阶段,通过反映用户和软件系统的交互,描述系统的功能需求。

你会使用UML完成一个设计文档吗?_设计规范

图中小人形象的元素,被称为角色,角色可以是人,也可以是其他系统。对于复杂的功能系统,一张用例图只能包含其中的一小部分,所以这些功能被一个矩形框框起来,矩形框是用例的边界,框中的椭圆表示一个个功能。用例图中功能描述的比较简单,通常还需要对用例图配以文字说明,形成需求文档。用例图一般在需求分析阶段使用。

状态图

状态图是用来展示单个对象生命周期的状态变迁,业务系统中,很多重要的领域对象都有比较复杂的状态变迁,比如账号,有创建状态、激活状态、冻结状态、欠费状态等等各种状态。此外,用户、订单、商品、红包这些常见的领域模型都有多种状态。

这些状态的变迁描述可以在用例图中用文字描述,随着角色的各种操作而改变,但是用这种方式描述,状态散乱在各处,不要说开发的时候容易搞错,就是产品经理自己在设计的时候,也容易搞错对象的状态变迁。

举例门的三种状态:开 opened、关 closed 和锁 locked,用状态图展示就是:

你会使用UML完成一个设计文档吗?_类图_02

状态图在需求分析阶段画主要是描述状态变迁的逻辑关系,在设计阶段画时,状态用剧吐的枚举表示以指导具体的开发。

活动图

活动图主要是描述过程逻辑也业务流程,UML中没有流程图,活动图大多数时候都是当流程图在用。实心圆代表流程开始,空心圆代表流程结束,圆角矩形表示活动,菱形表示分支判断。活动图引入了一个重要的概念——泳道。活动图可以根据活动的范围,将活动根据领域、系统和角色等划分到不同的泳道中,使流程边界更加清晰。

活动图可以在需求分析阶段描述业务流程,也可以在概要设计描述子系统和组件的交互,在详细设计阶段描述一个类方法内部的计算流程等待,比较具有普适性。

使用合适的UML模型构建一个设计文档

UML模型图单拆开看都比较简单,难的是在合适的场合使用正确的UML模型表达设计意图,形成一套完整的软件设计模型,进而组织成一个层次分明即可指导开发,又可以在团队内外达成共识的设计文档。

梳理各个阶段如何使用正确的模型进行软件建模,根据系统具体分析,也每次设计也不是需要把所有的模型都给用一遍,能清晰表达出要设计思想即可。

  • 需求分析阶段,可以使用用例图来描述系统的功能与使用场景;可以通过活动图来描述关键的业务流程;可以用时序图来描述新系统和原来子系统的调用关系;可以用简化的类图来进行领域模型抽象并描述核心领域对象间的关系;可以用状态图来描述对象内部的复杂状态变化。
  • 概要设计阶段:通过部署图描述系统最终的物理蓝图;通过组件图以及组件时序图设计软件主要模块及其关系;可以用组件活动图描述组件间的流程逻辑。
  • 详细设计:主要输出类图和类的时序图,来指导最终的代码开发,如果类的方法内部有很复杂的逻辑,可以画出方法的活动图进行描述。

总结

主要学习了UML建模中7中模型图具体是什么,怎么用,用在哪些阶段解决哪些问题,搞好系统设计。

此文章为2月Day01学习笔记,


标签:类图,用例,序列图,文档,设计,组件,UML,描述
From: https://blog.51cto.com/u_15056519/6149516

相关文章

  • O形圈结构设计
    (一)O型圈的概述与密封原理O型橡胶圈密封圈简称O型圈,是一种截面形状为圆形的橡胶圈。O型密封圈是液压、气动系统中使用最广泛的一种密封件。O型圈有良好的密封性能,既可用于......
  • 一种RK3399+MIPI+FPGA的高速工业相机的设计方案(二)
    图像采集模块电路设计  3.4图像处理模块电路设计Spartan6芯片采用45nm制造工艺,内部一共有43661的LogicCells资源,同时含有丰富的DSP48A1Slice......
  • 一种RK3399+MIPI+FPGA的高速工业相机的设计方案(一)
    目前,嵌入式相机逐渐代替了传统相机进入大众的视野,应用在公安刑侦、生物医学和文物保护等诸多领域。但是随着人们对......
  • java学习日记20230325-模版设计模式
    模版设计模式利用多态的动态绑定,将通用的方法设计为模版抽象类,通过子类继承重写抽象方法实现模版调用。 父类抽象类abstractpublicclassTemplate{......
  • DP 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)勤奋的杨老师
    链接:https://www.nowcoder.com/acm/contest/116/C来源:牛客网时间限制:C/C++1秒,其他语言2秒空间限制:C/C++32768K,其他语言65536K64bitIO......
  • 设计模式相关 小题
    10.当对一个对象的改变需要同时改变其它对象,但它不知道其它对象是谁,并且也不知道具体有多少对象有待改变时,我们应该使用()A、责任链(ChainofResponsibility)B、观察者(......
  • 算法分析与设计——冒泡排序,选择排序,STL自带sort函数性能比较实验
    实验环境:Win11,Devc++5.11实验方法:生成不同数据量的随机数后使用三种排序方法分别排序,比较每种方法所耗时长。实验结果:数据量为1000时,冒泡排序平均用时为0.015s,选择排序平......
  • 若依框架---权限管理设计
    前言若依权限管理包含两个部分:菜单权限 和 数据权限。菜单权限控制着我们可以执行哪些操作。数据权限控制着我们可以看到哪些数据。菜单是一个概括性名称,可以细分为目录、......
  • 数据库设计
    一、用户登录信息表(Sys_UserLogOn)序号列名数据类型长度小数位标识主键外键允许空默认值说明1F_Idvarchar500 是 否 用户登录主键2F_UserIdvarchar500   是 用户主键3......
  • 谈如何设计一个秒杀系统(重点)
    概述并发读写秒杀要解决的主要问题是:并发读与并发写。并发读的优化理念是尽量减少用户到服务端来读数据,或者让他们读更少的数据;并发写的处理原则一样,要求我们在数据库层......