预备架构的工具ADMEMS矩阵
矩阵,是很多著名方法的核心。例如,制定公司层战略的方法之一是"波士顿矩阵","波士顿矩阵"又称"市场增长率-相对市场份额矩阵"。
"ADMEMS矩阵",它又称为"需求层次-需求方面矩阵"。如下:
|
广义功能 |
质量 |
约束 |
||
|
业务级需求 |
业务目标 |
快、好、省 |
技术性约束 |
|
|
法规性约束 |
||||
|
技术趋势 |
||||
|
竞争因素与竞争对手 |
||||
|
遗留系统集成 |
||||
|
标准性约束 |
||||
|
分批实施 |
||||
|
用户级需求 |
用户需求 |
运行期质量 |
用户群特点 用户水平 多国语言 |
|
|
开发级需求 |
行为需求 |
开发期质量 |
开发团队技术水平 开发团队磨合程度 开发团队分布情况 开发团队业务知识 管理:保密要求 管理:产品规划 安装 维护 |
|
首先,需求是分层次的。
业务级需求:包含客户或出资者要达到的业务目标、预期投资、工期要求,以及要符合哪些标准、对哪些遗留系统进行整合等约束条件。
用户级需求:用户使用系统来辅助完成哪些工作?对质量有何要求?用户群及所处的使用环境方面有何特殊要求?
开发级需求:开发人员需要实现什么?开发期间、维护期间有何质量考虑?开发团队的哪些情况会反过来影响架构?
可以看出,需求的三个层次,是站在"不同层次的涉众提出需求所站的立场不同"的角度,将需求划分为三种类型。其次,需求还必须从不同方面进行考虑。例如,一个网上书店系统的功能需求可能包括"浏览书目"、"下订单"、"跟踪订单状态"、"为书籍打分"等,质量属性需求包括"互操作性"和"安全性"等,而"必须运行于Linux平台之上"属于约束性需求之列。实践一再表明,忽视质量属性和约束性需求,常常导致架构设计最终失败。
于是,从"需求定义了直接目标还是间接限制"的角度,把需求划分为3种类型,这就是需求的3个方面:
功能需求:更多体现各级直接目标要求。
质量属性:运行期质量 + 开发期质量。
约束需求:业务环境因素 + 使用环境因素 + 构建环境因素 + 技术环境因素。
一句话,需求是有结构的。而且,需求的结构绝对不是"List",而应该是"二维数组"。
用ADMEMS矩阵方法进行需求结构化,非常直观。作为一种思维工具,ADMEMS矩阵背后的原理是"二维需求观",这是"需求列表"这种"一维需求观"所不及的。这就好比程序设计选择了不合适的数据结构,那么功能的实现就要多费周折。
预备架构的工具ADMEMS矩阵的更多相关文章
- .Net架构必备工具列表
★微软MSDN:每个开发人员现在应该下载的十种必备工具 点此进入 ★网友总结.Net架构必备工具列表 Visual Studio 这个似乎是不言而喻的,只是从严谨的角度,也列在这.实际上,现在也有一个 ...
- mysql对比表结构对比同步,sqlyog架构同步工具
mysql对比表结构对比同步,sqlyog架构同步工具 对比后的结果示例: 执行后的结果示例: 点击:"另存为(S)" 按钮可以把更新sql导出来.
- 【转】【UML】使用Visual Studio 2010 Team System中的架构师工具(设计与建模)
Lab 1: 应用程序建模 实验目标 这个实验的目的是展示如何在Visual Studio 2010旗舰版中进行应用程序建模.团队中的架构师会通过建模确定应用程序是否满足客户的需求. 你可以创建不同级 ...
- Ignite(二): 架构及工具
1.集群和部署 Ignite集群基于无共享架构,所有的集群节点都是平等的,独立的,整个集群不存在单点故障. 通过灵活的Discovery SPI组件,Ignite节点可以自动地发现对方,因此只要需要, ...
- 新.Net架构必备工具列表
N多年前微软官网曾发了.Net下必备的十种工具,N多年过去了,世异时移,很多东西都已经变化了,那个列表也似乎陈旧了.而且,该文也只是对十种工具独立的介绍,显得有些罗列的感觉,是不是每个工具都是同等重要 ...
- MHA介绍和基础、原理、架构、工具介绍
一.MHA简介 软件简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebo ...
- 免费的容器架构可视化工具 | 阿里云应用高可用服务 AHAS 发布重大新特性
工具下载链接:点这里.活动发布链接:点这里. 采用容器服务后,了解容器之间的关系及依赖是一个比较有挑战的问题.容器化改造后的实际架构模型可能与预想的架构存在较大的差异,架构师或系统运维人员需要精确地了 ...
- Ubuntu安装ARM架构GCC工具链(ubuntu install ARM toolchain)最简单办法
一.安装ARM-Linux-GCC工具链 只需要一句命令: sudo apt-get install gcc-arm-linux-gnueabi 前提是你的Ubuntu系统版本是官网支持的最新的版本, ...
- 【转】Ubuntu安装ARM架构GCC工具链(ubuntu install ARM toolchain)最简单办法
原文网址:http://www.cnblogs.com/muyun/p/3370996.html 一.安装ARM-Linux-GCC工具链 只需要一句命令: sudo apt-get install ...
随机推荐
- 【Flask】Flask-Sqlalchemy使用笔记
### 安装:```shellpip install flask-sqlalchemy``` ### 数据库连接:1. 跟sqlalchemy一样,定义好数据库连接字符串DB_URI.2. 将这个定义 ...
- OWASP十大攻击类型详解
随着WEB应用技术的不断进步与发展,WEB应用程序承载了越来越多的业务,而随之而来的也是WEB应用所面临的越来越复杂的安全问题.而WEB日志作为WEB安全中的一个重要组成部分,不但可在事后起到追踪和溯 ...
- Cocos2d-x项目移植到WP8系列之四:文件操作
原文链接: http://www.cnblogs.com/zouzf/p/3972457.html 读写文件Cocos已经用fopen fwrite来做好了,这里说的主要是文件和文件夹的创建.删除.判 ...
- INSPIRED启示录 读书笔记 - 前言
好的产品具备三个基本条件 价值.可用性.可行性,三者缺一不可 产品经理日常工作 1.人员是指负责定义和开发产品的团队成员的角色和职责 2.流程是指探索.开发富有创意的产品时,反复应用的和成功的实践经验 ...
- linux内核调试+qemu+eclipse【转】
本文转载自:https://blog.csdn.net/WANG__RONGWEI/article/details/54922727 一.调试环境: 在ubuntu16.04下,在虚拟机里边运行的ub ...
- RHCE学习笔记 管理1 (第三~五章)
第三章 红帽企业linux 获取帮助 (略) man .pinfo. 第四章 编辑文件 1.输出重定向到文件和程序 >file 定向文件(覆盖) >>file 定向文件(附 ...
- 关于Json如何转换成对象及获值问题!
var result = eval('('+result+')'); result为Json 转换成var result对象,可以 if(result.success){ window.locatio ...
- processing学习整理---Image
1.Load and Display(加载与显示) Images can be loaded and displayed to the screen at their actual size or ...
- 初探MyBatis之HelloWorld(一)
官方地址:https://github.com/mybatis/mybatis-3 准备: 官方中文文档地址:http://www.mybatis.org/mybatis-3/zh/getting-s ...
- js代理模式
代理模式的关键是,当客户不方便直接访问一个对象或者不满足需要的时候,提供一个替身对象来控制对这个对象的访问,客户实际上访问的是替身对象.替身对象对请求做出一些处理之后,再把请求转交给本体对象. 代理模 ...