预备架构的工具ADMEMS矩阵
矩阵,是很多著名方法的核心。例如,制定公司层战略的方法之一是"波士顿矩阵","波士顿矩阵"又称"市场增长率-相对市场份额矩阵"。
"ADMEMS矩阵",它又称为"需求层次-需求方面矩阵"。如下:
广义功能 |
质量 |
约束 |
||
业务级需求 |
业务目标 |
快、好、省 |
技术性约束 |
|
法规性约束 |
||||
技术趋势 |
||||
竞争因素与竞争对手 |
||||
遗留系统集成 |
||||
标准性约束 |
||||
分批实施 |
||||
用户级需求 |
用户需求 |
运行期质量 |
用户群特点 用户水平 多国语言 |
|
开发级需求 |
行为需求 |
开发期质量 |
开发团队技术水平 开发团队磨合程度 开发团队分布情况 开发团队业务知识 管理:保密要求 管理:产品规划 安装 维护 |
首先,需求是分层次的。
业务级需求:包含客户或出资者要达到的业务目标、预期投资、工期要求,以及要符合哪些标准、对哪些遗留系统进行整合等约束条件。
用户级需求:用户使用系统来辅助完成哪些工作?对质量有何要求?用户群及所处的使用环境方面有何特殊要求?
开发级需求:开发人员需要实现什么?开发期间、维护期间有何质量考虑?开发团队的哪些情况会反过来影响架构?
可以看出,需求的三个层次,是站在"不同层次的涉众提出需求所站的立场不同"的角度,将需求划分为三种类型。其次,需求还必须从不同方面进行考虑。例如,一个网上书店系统的功能需求可能包括"浏览书目"、"下订单"、"跟踪订单状态"、"为书籍打分"等,质量属性需求包括"互操作性"和"安全性"等,而"必须运行于Linux平台之上"属于约束性需求之列。实践一再表明,忽视质量属性和约束性需求,常常导致架构设计最终失败。
于是,从"需求定义了直接目标还是间接限制"的角度,把需求划分为3种类型,这就是需求的3个方面:
功能需求:更多体现各级直接目标要求。
质量属性:运行期质量 + 开发期质量。
约束需求:业务环境因素 + 使用环境因素 + 构建环境因素 + 技术环境因素。
一句话,需求是有结构的。而且,需求的结构绝对不是"List",而应该是"二维数组"。
用ADMEMS矩阵方法进行需求结构化,非常直观。作为一种思维工具,ADMEMS矩阵背后的原理是"二维需求观",这是"需求列表"这种"一维需求观"所不及的。这就好比程序设计选择了不合适的数据结构,那么功能的实现就要多费周折。
最新文章
- laravel实现数据库多库配置,读写分离配置或者多读写分离配置
- sass的四种css编译风格
- 决策树Decision Tree 及实现
- XidianOJ 1120 Gold of Orz Pandas
- Canvas 获取颜色值
- PL/SQL Developer 使用中文条件查询时无数据的解决方法
- 系统调用表 linux 2.6.32
- php100视频教程解压密码
- codevs 访问艺术馆
- HDU 5806 - NanoApe Loves Sequence Ⅱ (BestCoder Round #86)
- B/S状态(同步)AJAX技术(异步)
- EasyUI - 要引入的JS文件
- gdb的多线程调试
- ACM入门之OJ~
- [Swift]LeetCode703. 数据流中的第K大元素 | Kth Largest Element in a Stream
- redhat7 配置使用centos的yum源
- 使用 Cglib 实现多重代理
- micro-template改造
- Appium-We wanted {";required";:[";value";]} and you sent [";text";,";sessionId";,";id";,";value";]
- 20155318 《网络攻防》Exp5 MSF基础应用
热门文章
- libsvm+eclipse(java)的配置以及开发需要设置的内容
- bex5部署后不更新
- verilog FAQ(zz)
- 谈Swift中的访问控制
- oracle创建表空间 扩展表空间文件 修改表空间自动增长
- relativePath
- hive学习8(小案例1练习)
- org.apache.flume.ChannelException: Take list for MemoryTransaction, capacity 100 full, consider committing more frequently, increasing capacity, or increasing thread count
- 搭建confluence参考文献
- Linux嵌入式 -- 内核 - 内核定时器