极客视点
极客时间编辑部
极客时间编辑部
113245 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:05
登录|注册

如何设计和建模?

讲述:丁婵大小:6.99M时长:05:05
你好,欢迎收听极客视点。
好的设计能够提高代码质量和研发效率。近日,腾讯 WXG 应用开发工程师 borisyang 在公众号“腾讯技术工程”发文分享了设计和建模的流程及方法,供你参考。
设计和建模分为几个部分:
业务建模:关注业务,不关注具体的实现;
系统建模:关注所建设系统的边界,找准在业务中的系统的职责和约束;
分析与设计:定位核心领域,找到实际的类,厘清类的职责和类之间的关系,通过设计使得代码抽象复用。

业务建模

总体来说,业务建模主要聚焦于分析涉众利益,厘清业务流程。在工具方面,主要是用例图、流程图;在内容方面,主要是找人(利益涉众,系统执行者)、找业务实体(其余系统,相关的重要对象)。

分析涉众利益

分析涉众利益之前,需要找到涉众,一般要经历以下步骤:
找到软件产品的愿景,愿景表达了软件产品带来的核心意义;
找到利益相关的涉众和其利益诉求;
分析涉众利益需要进行详细的调研,研发人员可以根据产品的调研看到对应的涉众,及其利益。

业务用例图

知道了涉众的利益之后,就要分析业务流程,并对现有的流程进行改进。软件产品没诞生之前,业务是如何被处理的,找到原来业务的处理方式则可以梳理出业务用例。

业务流程分析

了解了涉众的利益并且画出用例之后,需要分析业务流程,找到软件系统能够改进的流程片段。完整的业务流程图可能很庞大,需要关注的是其中最有可能影响涉众利益的流程片段。
业务流程分析是一件很复杂的事情,研发人员可以利用需求中的信息,同时加上自己跟涉众的日常沟通和调研,把握核心的涉众利益、业务用例和业务流程,就可以解决大部分在需求上的理解偏差问题。

系统建模

系统建模关注的是系统与外部的边界和系统自身的职责,需要画出系统用例并写出用例规约。

系统用例图

系统用例图是业务流程中,系统执行者与系统发生的有价值的交互。系统执行者可以是人,可以是外部系统,甚至可以是时间。系统用例要体现系统的价值,系统会做很多事情来实现业务价值。有些是低层次的职责,没有体系具体价值。

系统用例规约

有了业务流程图和系统用例图,需要进一步细化系统边界上的约束,保证系统的稳定性。系统执行者与系统的交互细化了详细的约束,系统的稳定性才能提高,如果没有仔细列出约束,有可能会忽略一些边界条件,导致系统的故障。

类的分析与设计

这可能是大多数研发人员比较熟悉的领域,经典的设计模式、类之间的关系、泛化、组合等。但是类从哪里来呢?是从需求之中凭空产生?又或者突然灵光一闪,有了类的雏形?对类的进行设计与分析之前,需要做的是找到它。

识别类

大众熟知的类有三种,边界类、控制类和实体类。边界类是外部系统在系统内部的映射,借由边界类,系统和外部系统交互。所以一些接口请求,输入输出都属于边界类的职责。控制类往往是体现用例流程,一般而言,一个用例就是一个控制类。实体类则是系统的核心,实体类良好设计能够提高系统的复用程度,减低系统的复杂性。

找实体名词

知道了有这三个类还不足以让你识别具体的类,识别具体的类需要去找业务流程、系统流程、系统规约中经常出现的名词。

找到属性

类的属性也不是凭空产生的,需要对业务实现有价值,找到那些对于系统实现必不可少的属性,放到正确的类中。

找职责

从业务规则和约束中,可以找到一些实体应当有的职责,有些对象看起来信息很富裕,但是却没有什么职责,说明它是一个值对象。

状态机

找到类和对应的职责,对于一些主要的实体类,还需要设计出它的状态机,清晰的状态机能有效地厘清系统内的一些事件和状态,增强系统整体的健壮性。

总结

总而言之,在多人协作的项目中,不断提高项目质量,除了依靠代码之外的工程手段,还要依靠设计建模。从具体实践的角度来看,设计建模在不同的环境中,调整具体的流程和侧重具体的节点,也能够实现快速高效,不会导致繁琐和低效能的现象。希望今天的内容对你有所帮助。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 雪花神剑
    👍
    归属地:广东
收起评论
大纲
固定大纲
业务建模
分析涉众利益
业务用例图
业务流程分析
系统建模
系统用例图
系统用例规约
类的分析与设计
识别类
找实体名词
找到属性
找职责
状态机
总结
显示
设置
留言
1
收藏
99+
沉浸
阅读
分享
手机端
快捷键
回顶部