【软件架构篇】架构设计流程
序言
架构设计的输出就是文档,设计中的每一个流程输出为子文档。每个架构师可能有自己的一个架构设计流程,也会不断优化自己的架构设计流程。这里根据李运华的架构设计课程,我把架构设计流程分为输出备选方案文档,和详细方案设计文档,每一个步骤也有自己的一个流程。
第一步:输出备选方案文档
1、需求介绍
主要介绍需求的背景、目标、范围等。
2、需求分析
全方位地描述需求相关的信息。
可以使用5W、1H、8C来分析。
5w就是Who、When、What、Why、Where。
Who:需求利益干系人、包括开发者、使用者、购买者、决策者等。
When:需求使用时间,包括季节、时间、里程碑。
What:需求的产出是什么,包括系统、数据、文件、开发库、平台等。
Where:需求的应用场景,包括国家、地点、环境等,例如测试平台只会在测试环境使用。
Why:需求要解决的问题,通常和需求背景相关。
1w就是How,主要是给出关键设计流程。
8C指的是8个约束和限制,即Constraints,包括性能Performance、成本Cost、时间Time、可靠性Reliability、安全性Security、合规性Compliance、技术性Technology、兼容性Compatibility。
3、复杂度分析
常见的复杂度有靠可用、高性能、可扩展性、低成本、安全、规模。
4、备选方案
备选方案一般选3个左右,也就是为解决上一步识别出来的复杂度而提出的方案。这里有一个强制要求是备选方案的差异要比较大。
5、备选方案评估
从备选方案中选择出合适方案。可以用360环评表,就是纵列为质量属性,横排为每个方案,从表中可以知道每个方案的质量属性值,根据质量属性值选择合适方案。
第二步:输出详细设计文档
1、架构总览
包含架构设计图、以及一些说明。
2、核心流程
核心功能流程
3、详细设计
针对每个复杂性的设计、部署、监控。
4、架构演进规划
有可能架构设计的内容较多,不能在短期内完成所有任务。这时可以使用演进原则,分为多个阶段开发任务。