预备架构的工具ADMEMS矩阵
矩阵,是很多著名方法的核心。例如,制定公司层战略的方法之一是"波士顿矩阵","波士顿矩阵"又称"市场增长率-相对市场份额矩阵"。
"ADMEMS矩阵",它又称为"需求层次-需求方面矩阵"。如下:
|
广义功能 |
质量 |
约束 |
|
业务级需求 |
业务目标 |
快、好、省 |
技术性约束 |
|
法规性约束 |
||||
技术趋势 |
||||
竞争因素与竞争对手 |
||||
遗留系统集成 |
||||
标准性约束 |
||||
分批实施 |
||||
用户级需求 |
用户需求 |
运行期质量 |
用户群特点 用户水平 多国语言 |
|
开发级需求 |
行为需求 |
开发期质量 |
开发团队技术水平 开发团队磨合程度 开发团队分布情况 开发团队业务知识 管理:保密要求 管理:产品规划 安装 维护 |
首先,需求是分层次的。
业务级需求:包含客户或出资者要达到的业务目标、预期投资、工期要求,以及要符合哪些标准、对哪些遗留系统进行整合等约束条件。
用户级需求:用户使用系统来辅助完成哪些工作?对质量有何要求?用户群及所处的使用环境方面有何特殊要求?
开发级需求:开发人员需要实现什么?开发期间、维护期间有何质量考虑?开发团队的哪些情况会反过来影响架构?
可以看出,需求的三个层次,是站在"不同层次的涉众提出需求所站的立场不同"的角度,将需求划分为三种类型。其次,需求还必须从不同方面进行考虑。例如,一个网上书店系统的功能需求可能包括"浏览书目"、"下订单"、"跟踪订单状态"、"为书籍打分"等,质量属性需求包括"互操作性"和"安全性"等,而"必须运行于Linux平台之上"属于约束性需求之列。实践一再表明,忽视质量属性和约束性需求,常常导致架构设计最终失败。
于是,从"需求定义了直接目标还是间接限制"的角度,把需求划分为3种类型,这就是需求的3个方面:
功能需求:更多体现各级直接目标要求。
质量属性:运行期质量 + 开发期质量。
约束需求:业务环境因素 + 使用环境因素 + 构建环境因素 + 技术环境因素。
一句话,需求是有结构的。而且,需求的结构绝对不是"List",而应该是"二维数组"。
用ADMEMS矩阵方法进行需求结构化,非常直观。作为一种思维工具,ADMEMS矩阵背后的原理是"二维需求观",这是"需求列表"这种"一维需求观"所不及的。这就好比程序设计选择了不合适的数据结构,那么功能的实现就要多费周折。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2017-08-10 2017第32周四
2016-08-10 Spring配置文件头及xsd文件版本
2015-08-10 2015第33周一
2014-08-10 第32周日
2013-08-10 专注做一件事文章摘录
2012-08-10 再用正则表达式及今日总结