对ADMEMS架构设计方法论的一点随笔

今天翻出了温昱老师的《一线架构师实践指南》老书,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、在项目实现阶段,对开发人员提供规范指引和技术支持。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 05:44:03

对ADMEMS架构设计方法论的一点随笔的相关文章

架构设计的方法论

作者 田伟宇 发布于 2015年4月17日 | 注意:QCon全球软件开发大会(北京)2016年4月21-23日,了解更多详情!7 讨论 分享到:微博微信FacebookTwitter有道云笔记邮件分享 稍后阅读 我的阅读清单 摘要:iOS客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答iOS应用架构中的种种问题,本文是其中的第一篇,主要讲架构设计的通识和方法论等,同时还讨论了大家关心的架构分层.是否要有common文件夹等问题. 缘由 之前安居客iOS app

iOS 浅谈架构 架构设计的方法论

摘要:iOS客户端应用架构看似简单,但实际上要考虑的事情不少.本文作者将以系列文章的形式来回答iOS应用架构中的种种问题,本文是其中的第一篇,主要讲架构设计的通识和方法论等,同时还讨论了大家关心的架构分层.是否要有common文件夹等问题. 缘由 之前安居客iOS app的第二版架构大部分内容是我做的,期间有总结了一些经验.在将近一年之后,前同事zzz在微信朋友圈上发了一个问题:假如问你一个iOS or Android app的架构,你会从哪些方面来说呢? 当时看到这个问题正好在乘公车回家的路上

iOS应用架构谈(一):架构设计的方法论

当我们讨论客户端应用架构的时候,我们在讨论什么? 其实市面上大部分应用不外乎就是颠过来倒过去地做以下这些事情: 简单来说就是调API,展示页面,然后跳转到别的地方再调API,再展示页面. 那这有什么好架构的? 非也,非也. ---- 包不同 <天龙八部> App确实就是主要做这些事情,但是支撑这些事情的基础,就是做架构要考虑的事情: 调用网络API.如何让业务开发工程师方便安全地调用网络API?然后尽可能保证用户在各种网络环境下都能有良好的体验? 页面展示.页面如何组织,才能尽可能降低业务方代

SOA架构设计经验分享—架构、职责、数据一致性

阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DDD+GRASP进行分析和设计(防止主观的判断导致错误的假设) 5.SOA分布式下的数据一致性 5.1.分布式事务(基于DTC的分布式事务) 5.2.事务补偿(提供正向或反向的操作来让数据在业务上是一致的) 5.3.异步EDA(基于异步事件流来实现柔性的分布式事务) 6.总结 1.背景介绍 最近一段时

[转]SOA架构设计经验分享&mdash;架构、职责、数据一致性

阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DDD+GRASP进行分析和设计(防止主观的判断导致错误的假设) 5.SOA分布式下的数据一致性 5.1.分布式事务(基于DTC的分布式事务) 5.2.事务补偿(提供正向或反向的操作来让数据在业务上是一致的) 5.3.异步EDA(基于异步事件流来实现柔性的分布式事务) 6.总结 1.背景介绍 最近一段时

架构/设计

随笔分类 -架构/设计 软件架构设计模式简述 2014-03-25 20:33 by 破狼, 2465 阅读, 收藏, 编辑 在软件开发设计中我们经常会面对业务分析,提取领域问题,从而实现软件架构设计.关于 软件架构设计Martin Fowler在2004出版的<企业应用架构模式>中 概括了四种方式的架构模式.它们分别为事务性脚本,表驱动模式,活动记录模式,领域驱动设计.前两者事务性脚本,表驱动模式作为 面向过程方式架构设计,后两者为面向对象架构设计.它们适合于不同的业务场景,它们也各有长短.

架构设计的方法学

约公元前25年,古罗马建筑师维特鲁威说:"理想的建筑师应该既是文学家又是数字家,他还应通晓历史,热衷于哲学研究,精通音乐,懂得医药知识,具有法学造诣,深谙天文学及天文计算."(好难哪,软件构架设计师的要求呢?大家好好想想吧.)   本文目录   一.与构架有关的几个基本概念:   二.构架设计应考虑的因素概揽:   三.程序的运行时结构方面的考虑:   四.源代码的组织结构方面的考虑:   五.写系统构架设计文档应考虑的问题   六.结语   一.与构架有关的几个基本概念:   1.模

数字化转型之如何做好企业中台的架构设计

产业互联网时代,企业数字化转型将成为一种趋势.全球知名调研机构IDC此前的一项调查显示,到2018年,全球1000强企业中的67%.中国1000强企业中的50%都将把数字化转型作为企业的战略核心:到2020年,中国GDP的20%将来自业务数字化转型的增加值,数字化转型将上升到宏观经济层面,在改变企业运营方式的同时重塑经济面貌. 数字化转型其实是将数字技术应用集成到企业内部的管理领域和外部变化的商业环境中去,从而对整个业务价值链产生决定性的改变.那么数字技术如何帮助企业进行数字化转型呢?那就要从中

微信红包的架构设计简介

@来源于QCon某高可用架构群整理,整理朱玉华. 背景:有某个朋友在朋友圈咨询微信红包的架构,于是乎有了下面的文字(有误请提出,谢谢) 概况:2014年微信红包使用数据库硬抗整个流量,2015年使用cache抗流量. 微信的金额什么时候算? 答:微信金额是拆的时候实时算出来,不是预先分配的,采用的是纯内存计算,不需要预算空间存储.. 采取实时计算金额的考虑:预算需要占存储,实时效率很高,预算才效率低. 实时性:为什么明明抢到红包,点开后发现没有? 答:2014年的红包一点开就知道金额,分两次操作