大家都使用UML来指导项目的研发,项目一开始都信心十足地画UML图,但是当项目进行一定时间后,随着各种各样的UML图越来越多的时候,随之而来的维护问题越来越严重,特别是现代的项目采用Agile, XP等开发模式,需求的迭代在逐步推进,这种模式下项目文档的维护也显得越来越不堪重负,最后导致代码,文档之间不匹配越来越多,也使得UML文档渐渐地丧失了其开发的指导性地位,大家都知道UML的九种基本图形:用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、配置图,可是实际应用起来的时候为何经常出现UML文档与代码不匹配呢?
根据我个人的经验,出现UML文档与代码不匹配而且导致其难以维护的原因主要有2个:
管理者过于片面的认为代码是首要任务,疏忽对文档的管理,另外对UML文档的要求定位不太合理再加上参与人员的不合理使用,最后导致了UML大量应用,由于进度以及成本的原因不得不忽略对UML文档的维护,造成上述的种种问题。
本文重点谈谈定位不太合理这个问题,大家都知道UML的9种图形以及应用场合,理论上大家都可以说得头头是道,可是到实际中应用的时候往往是度把握得很不合适,哪怕一个很简单的逻辑都是时序图、状态图等等一起上,表面上看起来是很“正规化”地建模了,可是到后面由于“量大”、“工期紧”、“代码优先”等众多的因素导致了不尽合理的、无法维护的UML文档的大量出现,错误的、过量的文档比没有文档更加可怕,在这里我觉得如何正确合理地使用UML建模工具是非常重要的,我认为有如何不过度地使用UML文档至关重要,正如本文标题提到的,Use case, Activity, Class Diagram 的协同使用是主要的,另外需要把握重要的地方,项目组理解有问题、出偏差的地方等需要使用UML图来予以阐述,其他的地方应该避免
使用UML图,特别反对的是过度使用Sequence, Collaboration, State Diagram,个人认为应该使用Use case简要地描述客户需求的全貌,适当
配合文字,表格较为简洁地反应客户的需求,然后使用带有Swim Lane的Activity Diagram描述系统的活动,实现Use case逐步向可运行的计算机
系统的设计迭代,在泳道的基础之上逐步产生Class Diagram, 设计系统的各组件以及组件协作的接口,并且逐步细化方法,在类图以及活动图的
交互演绎下逐步完善系统的设计定义,最后演绎出完整的类图,包图,即可进入到设计编码阶段,在交互演绎阶段需要特别注意的是UML图形的层次
对应以及组成、关联关系,确保设计的完整性。
有关设计的具体例子在以后的文章中再独立讨论。
分享到:
相关推荐
UML use case diagram, class diagram, package diagram, object diagram, composite structure diagram, interaction diagram, sequence diagram, communication diagram, interaction overview diagram, activity ...
《UML建模-面向对象设计》系列文章描述了常见的一些UML图,主要包括了用例图(Use Case Diagram)、类图(Class Diagram)、活动图(Activity Diagram)、时序图(Sequence Diagram)、状态图(Statechart Machine ...
资源分类:Python库 所属语言:Python 资源全名:protobuf-uml-diagram-0.7.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
C# and UML class diagram,这是有关C#和UML class diagram的一个详细讲解和比较应用
UML建模之活动图介绍(Activity Diagram) 一、活动图的组成元素 Activity Diagram Element 1、活动状态图(Activity) 2、动作状态(Actions) 3、动作状态约束(Action Constraints) 4、动作流(Control Flow) ...
UML class diagram
UML簡介_Class Diagram 学习ERD的
construct the Automatic Teller Machine with the help of ‘Use-case diagram’, where you show the following things: Customer uses ATM machine:- for balance inquiry Cash Deposit/withdrawal/...
class-diagram-test-1” 输出文件名 一字串 输出png文件的文件名。 该文件将与第二个参数中指定的路径在同一文件夹中创建。 不包括扩展名和文件名,程序将生成一个PNG文件。 防爆–图表 示例:-生成类图 java -jar ...
UML课程设计详细的用例图 类图 开发视图 用况模型 比较详细
这个工具集提供以下结构化分析和UML分析中所用的图形化绘图工具:ER-diagrams, data and event flow diagrams and state-transition diagrams,class-diagram editor, a use-case diagram editor and an activity ...
A Couple of Thoughts on Use Case Templates. . . . . . . . . . . . . . . . . . 74 Use Case or Algorithm?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Use Case Modeling in...
《2024年手把手带你学UML建模用例图(Use Case Diagram)详解》是一篇面向初学者的全面指南,以易懂的语言介绍了用例图的基础知识。文章从UML的基本概念讲起,逐步引导读者学习用例图的基本元素(如参与者、用例、关系...
UML Class Diagram Tutorial and tutorial for dia software
图书管理案例 有详细的用例图,时序图等等
3.1 UML 2 Use Case Diagram 21 3.1.1 Use Case Model 21 3.1.2 Use Case Definition 22 3.2 UML 2 Activity Diagram 24 3.2.1 Activity Diagrams 24 3.3 UML 2 State Machine Diagram 30 3.3.1 State Machine ...
UML知识之二:类图的设计
活動框圖(Activity Diagram)簡介 活動圖顯示了活動被分解為多個組成部分的情況。
EXT JS 3.0 Core Class Diagram ext js的核心代码类图
ATM高级开发用例图设计文档ATM use case diagram advanced development design documents