今天翻出了温昱老师的《一线架构师实践指南》老书,Review了一下,虽然书是2009年发行的,而且其思想也是作者09年以前的经历和总结,升华到方法论,但时到今日,其架构思想依然是可圈可点的。随笔记下阅后几点,以作小结。
什么是ADMEMS?
ADMEMS是Architecture Design Method has been Extended to Method System的简称,是由CSAI顾问团架构设计专家组于2009年11月在第六届中国软件大会上公开发布的一个软件架构设计方法。作为方法体系,ADMEMS通过3个阶段和1个贯穿环节,来覆盖“需求进,架构出”的架构设计完整工作内容。其中“3个阶段”是指预备架构阶段(PA阶段:把握需求特点,确定架构驱动力)、概念架构阶段(CA阶段:根据重大需求,确定概念架构)、细化架构阶段(RA阶段:细化架构设计,关注不同视图),“1个贯穿环节”是指对非功能目标的考虑。
PA阶段的任务是全面理解需求,从而把握需求特点,进而确定架构设计驱动力。其中,ADMEMS矩阵居于方法的核心;CA阶段必须考虑包括功能、质量、约束在内的所有方面的需求,ADMEMS方法有自己的概念架构设计步骤和做法;RA阶段的总体方法为5视图方法,涉及逻辑架构、物理架构、开发架构、运行架构和数据架构。
参见百度百科。
需求驱动架构?
书中提到架构设计毫无疑问是需求驱动的,但需求驱动并不传神,缺少人的因素,架构师的因素,作者提出了质疑驱动架构设计过程的思想。
So,笔者小结下:
需求驱动架构:从事的角度,有什么样的需求,就会产生什么样的架构来应对,不同行业,不同复杂度,不同要求的需求,也决定了架构不能千篇一律,必须应对变化,对症下药,不断调整。
质疑驱动架构:从人的角度,架构师对不明确的需求、对质量属性、对特殊功能场景产生质疑,来驱动他后续架构工作的开展。将质疑贯穿到ADMEMS方法体系(3个环节1个贯穿)的全过程。
ADMEMS方法论和现实工作场景的联系
笔者稍微将ADMEMS方法论中3个阶段1个贯穿和现实工作场景联系了一下,将理论知识带入工作场景,知行合一,可能更便于理解。
可能有理解不到位的偏差,希望抛砖引玉。
ADMEMS方法体系 | 现实工作场景联系 | ||
3个阶段 | 1个贯穿 | 工作内容 | |
预备架构阶段 | 对非功能目标的考虑 | 目标:全面理解需求;摒弃“需求列表”,建立二维需求观(ADMEMS矩阵)。
如何做:使用ADMEMS矩阵方法,捋清需求间关系和发现衍生需求。 |
1、与人:与项目经理、需求分析师等内部需求人员了解需求;与客户了解需求(不建议架构师做需求分析师角色)。
2、与物:了解《需求规格说明书》等需求文档。" 3、对需求有什么问题,反馈给售前或销售,可能会参与拜访客户或电话会议。 4、销售或售前有时会要求提供一个大致的工作量,以便他们初步评估项目可行性。 |
概念架构阶段 | 目标:考虑包括功能、质量、约束在内的所有需求,对系统进行适当分解,而不陷入细节。
如何做: 1、初步设计,基于关键功能,借助鲁棒图进行以发现职责为目的的初步设计(不是必须)。 2、高层分割,将复杂系统切分为多个二级系统或多个子系统。 3、考虑非功能需求,采用ADMEMS推荐的目标-场景-决策表。 |
1、参与内部讨论:项目可行性分析、讨论,从需求、技术、人力、风险等角度提供建议。
2、项目投标准备:参与投标团队的技术方案编写,编写系统架构章节,解决招标书上技术问题的问答。 3、参与项目讲标:作为讲标团队成员参与项目讲标,负责技术问答环节的应对。 |
|
细化架构阶段 | 目标:对概念架构的细化,非详细设计,而是按照ADMEMS方法论的多视图方式进行架构细化工作。
如何做:遵循ADMEMS方法论的5视图法,进行逻辑架构、物理架构、开发架构、运行架构、数据架构5个方面的细化架构设计。 |
1、在项目设计阶段,进行架构设计,制定规范和约定,为详细设计提供指导。
2、在项目实现阶段,对开发人员提供规范指引和技术支持。 |
版权声明:本文为博主原创文章,未经博主允许不得转载。