软件架构设计三步迭代法(软件架构小白读有一种豁然开朗的赶脚)

软件架构设计需要考虑的东西很多,最忌讳的是将静态的结构、动态的行为、质量的优化混为一谈,导致思维混乱,典型错误如下:

软件架构设计三步迭代法(软件架构小白读有一种豁然开朗的赶脚)

一、三步迭代法概述

三步迭代法是指架构设计应从结构、行为和优化三个角度,采用由外而内、逐步求精的方法反复淬炼解决方案架构,建议初学者按以下步骤进行:

步骤一:基于三个维度(业务的合成分解维、技术的职责划分维、应用的通专维),初步切分系统(结构思维模式)
软件架构设计三步迭代法(软件架构小白读有一种豁然开朗的赶脚)

步骤二:基于应用场景,串联参于的功能块(行为思维模式)

软件架构设计三步迭代法(软件架构小白读有一种豁然开朗的赶脚)

步骤三:通过质疑(性能等质量场景),优化架构设计(优化思维模式)

软件架构设计三步迭代法(软件架构小白读有一种豁然开朗的赶脚)

步骤四:迭代重复。

二、三步迭代法在概要设计中的应用

一般采用UML模型(有时也会采用E-R模型等其他模型作为补充)逐步细化设计架构的各个方面。(架构知识要点详见文章最后,推荐阅读1)。

1、先结构思维。一般采用包图、组件图、部署图、E-R图等描述架构中的系统组成、网络硬件和数据关系。

软件架构设计三步迭代法(软件架构小白读有一种豁然开朗的赶脚)

 

2、再行为思维。采用交互图(鲁棒图、协作图)、时序图、状态图描述架构中的各组成单元的消息通讯。详见文章最后,推荐阅读4.

软件架构设计三步迭代法(软件架构小白读有一种豁然开朗的赶脚)

3、最后优化思维。从关键质量场景(如性能场景:反应时间小于1秒;可靠性场景:支持断点续传等)和主要设计约束(如必须采用国产数据库;经费大约200万等)角度,调整上述设计。

软件架构设计三步迭代法(软件架构小白读有一种豁然开朗的赶脚)

 

4、如此反复,由外而内、逐步求精的方法反复淬炼架构;

三、三步迭代法在详细设计中的应用

在详细设计时,一般从关键用例开始,逐个采用领域模型和交互模型逐步细化设计,最终获得类图和函数,过程如下图所示。

软件架构设计三步迭代法(软件架构小白读有一种豁然开朗的赶脚)

1、先结构思维,一般先对关键用例(如上图预定房间)采用领域模型描述。

领域模型又称概念模型、领域对象模型、分析对象模型。一般采用UML中的类图来描述。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。方法详见推荐阅读2。

2、再行为思维,对关键用例(如上图预定房间)采用交互模型描述订房间过程。

交互模型描述的是一组对象之间的交互过程。一般采用UML中的时序图、交互图(协作图、鲁棒图)来描述。在详细设计中,实际上是描述一个方法调用过程。

3、再针对另一个关键用例(如上图结账离开)重复1、2步骤,逐步细化明确图中的类和相应的函数。

4、最后根据性能等质量场景,参考设计模式等思想,优化设计如下。更多类关系及建模详见推荐阅读3。

软件架构设计三步迭代法(软件架构小白读有一种豁然开朗的赶脚)