技术方案设计和评审是版本迭代的一个重要环节,一般情况下版本迭代交付,技术方案设计在2-3天,颗粒度大的需求或者独立项目,这一个环节的时间会适度拉长,但是整体时间还是比较紧凑。技术同学在短时间产出高质量的技术方案是相对困难的,这样评审人对技术方案设计比较难以理解到位、并给出合理建议。本文给出一种面向需求迭代交付的技术方案设计逻辑以解决这一问题,它的核心思想是采用用例驱动设计,基于“演绎法+自上而下”的逻辑来设计技术方案。
本文的技术方案设计逻辑,基于用例驱动设计。先从需求识别关键用例,接着为用例构造涉及顶层服务交互时序图,之后再自上而下的展开每一个服务接口实现的设计。
以上3点就是简单的用例驱动的设计逻辑。接下来介绍一下比较完整的设计逻辑。
注:用例驱动设计,非常重要,不仅仅可以用在设计,也在编码、CR、稳定性保障起到很重要的作用,举个例子,目前我们的CR是逐个用例进行评审,每一个用例先介绍顶层服务交互时序图,再Review代码,评审效率和结果提升很多。
架构设计的出发点是用户问题,从用户问题出发形成解决方案,最终落地变成我们的产品需求。产品需求的合理性,就会由用户问题是否准确定义、用户问题解决路径是否匹配、用户问题解决路径涉及的业务流程和规则是否合理决定。技术同学着重关注应用架构、技术架构、数据架构,这三个架构是可以遵循合理的推导逻辑来设计的。一种比较简单清晰的推导路径分成四个阶段、九个步骤, 如下图所示。
架构设计基于用例驱动设计,通过“演绎法 + 自上而下”进行推导设计的。首先,从业务需求到IT架构(应用架构、技术架构、数据架构)是层层推导设计的。其次,应用架构来自全局的用例场景及用例涉及服务交互,它是概要性的设计;技术架构和数据架构则是应用架构服务接口定义的具体实现的方案设计,需要针对服务接口实现的功能与非功能性需求进行设计;从应用架构到技术架构与数据架构是自上而下(或者由总到分)的推导。
详细的各部分设计逻辑可以参考:规范-技术方案设计,本文详细介绍了如何做需求分析、如何做应用架构设计、如何做技术架构设计、如何做数据架构设计等内容。
三部分组成:参与者、用例、参与者与用例之间的关系。
参与者:不是特指人,是指系统以外的,在使用系统或 与系统交互中所扮演的⻆色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。
用例:是对包括变量在内的一组动作序列的描述,系统 执行这些动作,并产生传递特定参与者的价值的可观察结果。
关系:参与者与用例之间的关系主要包括关联、归纳 (泛化)、包含、拓展和依赖。
用例图中的关系描述如下:
A)关联:表示参与者与用例之间的关系;
B)泛化:表示参与者与参与者之间、用例与用例之间 的关系,一个用例可以被特别列举为一个或多个子用 例,这被称为用例泛化;
C)包含:表示用例与用例之间的关系,其中一个用例 (基础用例)的行为包含了另一个用例(包含用例)的 行为。用来把一个较复杂用例所表示的功能分解成较小的步骤;
D)扩展:表示用例与用例之间的关系,用于拓展用例对基础用例的增强;拓展用例是在特定条件出现时,才会被执行的用例。
时序图是基于交互的对象行为建模,是 UML 用于描述 对象之间信息的交互过程的方法,是描述对象间协作关系的模型。
时序图用于捕获系统运行中对象之间有时间顺序的交互,是由生命线和消息组成。
时序图将交互关系表示为一个二维图。纵向是时间轴, 时间沿竖线向下延伸。横向轴代表了在协作中各独立对 象的类元⻆色。类元⻆色用生命线表示。当对象存在 时,⻆色用一条虚线表示,当对象的过程处于激活状态 时,生命线是一个双道线。消息用从一个对象的生命线 到另一个对象生命线的箭头表示。箭头以时间顺序在图 中从上到下排列。
时序图要素说明如下:
A)⻆色:用户、外部系统等。
B)对象和生命线:对象的命名可以是类名、对象名、 类 + 对象名,生命线为虚线表示对象存活的时间。
C)活动条:在生命线的虚线上可以用活动条来表示某 种行为的开始和结束,一般用矩形表示。
D)消息:对象的行为称为消息,对象调用另一个对象 的行为即完成一次消息传递。分为:简单消息、同步消 息、异步消息。此外,还有自我调用消息、消息的返回值。
E)交互框:选项 opt、抉择 alt、循环 loop、并行 par 等。
以下是出价定义的技术方案参考模板,不同的模板对设计逻辑进行裁剪和调整。对于版本迭代,大部分需求设计可以采纳V3版本的方式来设计。这里附上了相应的参考范例,供大家参考。
模板 | 逻辑结构 |
技术方案参考模板-V3:在V2基础上简化,将技术架构的内容融合到用例设计 |
|
技术方案参考模板-V2:在V1基础上简化,省略业务流程分析 |
|
技术方案参考模板-V1:从需求分析到数据架构设计的完整模板 |
|
本文探索了基于用例驱动的架构设计逻辑,核心思想是采用用例驱动设计,基于“演绎法+自上而下”的逻辑来设计技术方案,帮助开发人员理清技术方案设计思路并提升技术方案的质量和评审效率。完整的架构设计背后简单清晰的推导路径分成四个阶段、九个步骤,简单实用,如下所示。
各个阶段的产出成果如下。
*文/Lorry
关注得物技术,每周一三五晚18:30更新技术干货
要是觉得文章对你有帮助的话,欢迎评论转发点赞~
|