《软件方法》2023版第1章(11)1.4.3 具体工作步骤

DDD领域驱动设计批评文集

做强化自测题获得“软件方法建模师”称号

《软件方法》各章合集


1.4 应用UML的建模工作流

1.4.3 使用UML建模的工作流步骤

图1-17中“工件形式”一列所列出的图就是本书推荐的在建模工作流ABCD中的UML用法,我用活动图进一步表示建模的步骤如图1-20。本书的内容就是按照图1-20的顺序讲述。

图片

图1-20 使用UML的ABCD建模工作流步骤

从图1-17和图1-20可以看出,本书重点使用的UML图形只有4种:用例图、类图、序列图和状态机图。

图1-21列出了其他可选的用法。

图片

图1-21 可选和推荐的建模元素用法(●表示推荐使用,√表示可以使用 )

从图1-17和图1-21可以看出,设计工作流的建模,推荐做法是不用UML表达,而是用相应实现平台的表示法表达,即所谓的“源代码”(目前大多是文本形式)。考虑了具体平台实现的类图、序列图、状态机图等,其中包含的信息和“源代码”差不多,没有必要花费精力去画设计工作流的UML图再编码,因为这样做没有带来任何增值。

建模过程中,我们写的每一个字,画的每一张图,都应该能带来增值,否则就没有必要写它或者画它。这一点,本书后面还会不断提到。

更合理的做法是,做好分析工作流,把领域逻辑放进分析模型中,然后再结合实现平台的特点,选定一条分析和设计之间有规律的映射套路,通过建模工具或者人力搬砖把分析按照套路映射到设计。

这时,即使要画设计的类图、序列图等,也只需要挑选典型的类、典型的用例来展示映射的套路,不需要把分析模型的内容都结合实现平台画一遍。

像Rhapsody(全名IBM Engineering Systems Design Rhapsody)这样的建模工具,可以和各种开发环境集成,配置好后就可以通过正向工程从类图、状态机图生成可执行的代码。开发人员甚至可以做到只需要编辑和调试UML模型,不需要在编码环境中编辑和调试。图1-22是用Rhapsody工具绘制的某个模型(洗碗机)的运行时状态机图,粉红色标出了当前的状态。类图和状态机图的背后有真实的C++代码。

图片

图1-22 Rhapsody下的运行时状态机图

同样,如果需要设计工作流的UML图来搞形式主义充场面,可以通过建模工具对源代码或数据库做逆向工程,生成设计工作流的各种UML图。如图1-23,就是用建模工具UModel对某个C#类的某个操作做逆向工程生成的序列图。可以看到,这张序列图涉及到很多类的协作。图的右侧放大了一个小片段,勉强让读者能够阅读。

图片

图1-23 从代码逆向工程得到的UML序列图

以上提到的选择映射套路、正向逆向工程等内容,本书在设计工作流的章节再详述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值