本文首发于个人微信公众号《andyqian》, 期待你的关注!
前言
拿破仑曾经说过:“不想当将军的士兵不是好士兵”。而在软件行业中,几乎每个程序员心里都有一个成长为架构师的梦想。程序员与架构师之间,不仅仅是角色的转变,更多的是知识的积累,以及架构,设计能力的转变。最近有幸参与了一些设计工作,系统算不上复杂,庞大。但在这过程中将自己的不足暴露的淋漓尽致,如同裸奔,有着凉飕飕的感觉。记录这篇文章,算是一次小结,同样也给自己之后系统设计时留下一丝指引。
愿景
愿景二字其字面意思是:希望看到的场景。这一词在潘加宇老师的《软件方法》中解释为:我们希望新系统 / 服务 是怎样的 ?也就是为以下几点:
-
我们为谁编写系统?也就是寻找到业务 “老大”,可以理解为解决XX的问题?这个 XX 就是老大。
-
我们编写该系统的目的是什么?
-
希望通过它能够解决什么问题?
-
没有该系统前,业务是怎样运行的?(现状)
-
有该系统后,业务会发生怎么样的变化 ?(改进后)
在愿景中,个人建议添加适量的可量化值,以及图(交互图)等更直观的表达体来体现两者之间的差异。例如:
-
改进前:TPS 是 1000,改进后:TPS 是 2000 等。
-
改进前:对接新产品需要 40天, 改进后:对接新产品只需要 20 天。
业务用例
技术人员一直有个不愿承认的事实是:技术是为业务服务的,而技术是一种业务实现的手段/工具。在这样的前提下,我们在做新系统设计时,优先需要理清业务,先做业务分析设计。在进行业务分析设计时,我们以组织为研究对象。组织提供的价值称之为业务用例,组织外部与系统交互的人或组织称之为业务执行者,组织内的人称之为业务工人,组织内非人系统称之为业务实体。
进行业务设计分析时,常用工具有:用例图, 时序图。
-
用例图:
其表达的核心价值是:业务组织向业务执行者提供哪些价值,而这些价值通常用业务用例表示。在用例图中用到的元素有:业务执行者,组织,业务用例。例如:腾讯这个组织,向微信支付用户,提供小程序支付这个价值的业务用例。如下图所示: