ADMEMS架构方法 (2) – Pre architecture

我们需要知道,哪些因素构成了架构设计的约束性需求?或者说,哪些因素约束着架构设计?

有人说:“错”的一半是“金”,“败”的一半是“贝”。如何在失败中求“贝”呢?

总论

功能需求、质量属性以及约束共同决定了架构。对这三类需求的把我是否到位、涉及决策是否对路,是架构设计成败的关键。

而业内的现状是:

  • 许多架构师不知道业务级需求、用户级需求、开发级需求
  • 也不知道要基于业务背景、系统规模、技术趋势、开发团队现状等现实情况,对需求进行例行的、有针对性的权衡

ADMEMS为Pre-architecture阶段指定了一个“四步法”

  1. 需求结构化
  2. 分析约束影响
  3. 确定关键质量
  4. 确定关键功能

需求应该被分为重大需求、特色需求、高风险需求

架构前要明确的问题:

  • 业务需求:投资、工期标准,系统目标
  • 用户需求:系统能帮助用户做什么,不能做什么。可以用Use case diagram来描述。
  • 行为需求:用例规约

需求=功能+质量+约束 * 功能:发现职责,设计软件各部分的职责协作链,将职责分配到子系统,界定接口,确定交互机制 * 质量:质量要求,可对设计中间结果进行细化、调整 * 约束 * 直接约束(例如,系统运行在Unix上) * 功能需求的约束(例如“银行系统执行现行利率”引出“利率调整”功能) * 质量需求的约束(例如“柜员计算机平均水平不高”引出易用性需求)

ADMEMS倡导“二维需求观”

需求结构化

根据二维需求观,将需求分为9类。

二维需求观的工具又叫做“需求层次-需求方面矩阵”。

确定关键质量目标

人之所以痛苦,很多时候是因为追求着错误的东西。

确定关键质量目标的5个原则:

  1. 分类合适+必要补充
  2. 考虑多方涉众
  3. 检查性思维
  4. 识别矛盾+划定优先级
  5. 严格程度符合领域与规模特点

确定关键功能

4个原则:

  1. 核心功能:能通过业务层的接口反应的功能
  2. 必做功能:根据客户方的背景而定
  3. 高风险功能:比如为网上书店系统提供全库搜索功能,可能需要提供一个只读式数据库来加快搜索速度
  4. 独特功能:以上3类功能没有涉及的职责的功能

Share this article