一线架构师实践指南阅读笔记3
本书讲述的架构设计与传统软件工程的架构设计有一定的区别,也有很多优点,对架构设计的定位有了一定的变化,将架构设计贯穿整个产品开发过程。
传统的架构设计很片面,评定需求,根据需求确定物理架构,技术架构则到此为止了,下面的内容则是开发人员的事了。
而本书讲述的架构设计在整个产品开发过程中都有角色,将架构设计分成了3个阶段,需求阶段做前置架构设计(Pre-architecture),主要是针对需求做一些架构预言,需要提炼的内容主要有:确定关键需求,关键功能,关键质量不同的需求影响架构的不同原理,利用admems矩阵方法(需求层次-需求方面矩阵)来提取上面所提的内容;
三因素:功能,质量,约束;
四步法:需求结构化,分析约束影响,确定关键质量,确定关键功能;
通过二维需求观从业务级需求,用户级需求,开发级需求多视图来分析上面三个因素;
第二阶段就是根据关键需求,来完成概念架构的设计,概念架构的职责用于界定系统的高层组件,确定高层组件之间的关系,对系统进行适当的分解,但不关注细节。此架构面对管理人员,市场人员,用户,并不能做为开发人员架构,可用于投标或售前。
重大的需求(包含功能,质量与约束)塑造概念架构,
在做概念架构设计时,应该分三个步骤:
首先是初步设计,基于关键功能,利用鲁棒图,以发现职责为目的进行初步设计,考虑职责之间的关系;
然后对系统进行高层分割,以利于进一步的分析设计;
第三就是要考虑非功能需求,具体的方法可以采用目标-场景-决策表。
在初步设计中,注意不要关注细节,不要过分关注UI,采取增量建模的方式。
细化架构从多视图,多方位的去开展工作,
运行架构,逻辑架构,物理架构,开发架构,数据架构,我们很多时候只关注于后面三项。 主要的工作有进程、线程相关设计,接口的定义,子系统的划分,服务器的选型,结构化模块设计,考虑逻辑层,考虑物理层,源程序目录结构定义,数据分布与数据库设计,文件存储格式定义,如果针对嵌入式系统,还得进行flash存储结构设计;
多视图方法有多种,如RUP 4+1视图, SEI3视图,5视图