IEEE Std 1471-2000 软件架构描述标准
官方标准原文,29页,约7.2万字符。 与 Rich Hilliard 讲座解读版互补:讲座版是通俗讲解,本标准是权威规范文本。
标准概述
- 标准号:IEEE Std 1471-2000
- 全称:IEEE Recommended Practice for Architectural Description of Software-Intensive Systems(软件密集型系统架构描述推荐实践)
- 发布:2000年9月21日 IEEE-SA 标准委员会批准
- 发起:IEEE 计算机学会软件工程标准委员会
- 定位:推荐性实践规范(Recommended Practice),非强制性标准
- 核心贡献:首次在国际标准层面统一了软件架构的术语、概念框架和描述规范
十大核心定义(第3章)
| 编号 | 术语 | 定义 |
|---|---|---|
| 3.1 | acquirer(采购方) | 从供应商处获取系统、软件产品或服务的组织 |
| 3.2 | architect(架构师) | 对系统架构负责的个人、团队或组织 |
| 3.3 | architecting(架构活动) | 定义、记录、维护、改进和认证系统架构正确性的一系列活动 |
| 3.4 | architectural description (AD)(架构描述) | 用于记录架构的一组产品的集合 |
| 3.5 | architecture(架构) | 系统的基本组织,体现在其组件、组件之间以及组件与环境的关系,以及指导系统设计和演进的原则中 |
| 3.6 | life cycle model(生命周期模型) | 涵盖软件从需求定义到终止使用全过程的开发、运行和维护框架 |
| 3.7 | system(系统) | 为完成特定功能而组织起来的组件集合 |
| 3.8 | system stakeholder(系统涉众) | 对系统有利益关系或关注点的个人、团队或组织 |
| 3.9 | view(视图) | 从一组相关关注点的视角对整个系统的表示 |
| 3.10 | viewpoint(视点) | 构建和使用视图的规范。是一种模式或模板,通过确立视图的目的和受众以及创建和分析技术来开发单个视图 |
关键区分:viewpoint 是模板/类,view 是实例/对象。类比:
viewpoint : view = class : object
概念框架(第4章)
4.1 架构描述语境(核心概念模型)
标准定义了一组核心概念及其关系:
Mission(使命)
│
│ fulfills 1..*
▼
Environment(环境) ── influences ──► System(系统)
│
│ has an
▼
Architecture(架构)
│
│ is recorded by
▼
Architectural Description(架构描述)
│
│ is organized into
▼
Views(视图)
│
│ conforms to
▼
Viewpoints(视点)
核心要点:
- 系统范围极广:包括单个应用、传统意义上的系统、子系统、系统之系统(SoS)、产品线、产品族、整个企业等
- 每个系统都有架构:无论是否被描述出来,架构客观存在
- 架构 vs 架构描述:标准严格区分——架构是概念性的,架构描述是具体的产品/制品
- 多视图原则:架构描述由一个或多个视图组成,每个视图处理涉众的一组关注点
- 库视点(library viewpoint):在架构描述之外预定义的视点,可被引用复用
4.2 涉众及其角色
- 主要涉众类型:客户(client)、用户(user)、架构师(architect)、开发者(developer)、评估者(evaluator)
- 两个关键角色:
- 采购方(acquirer/client):可以由买方、客户、所有者、用户或购买者担任
- 架构师(architect):为满足采购方而开发和维护系统架构,可以从需求出发工作,也可以负责引出和开发需求
4.3 生命周期中的架构活动(四种场景)
架构活动贯穿系统从初始概念到退役的完整生命周期,不是单点活动。
| 场景 | 描述 | 特点 |
|---|---|---|
| 4.3.1 单系统架构 | 新建系统,用户=采购方,架构响应单一愿景 | AD 用于预测适用性,随生命周期演进,评估变更影响 |
| 4.3.2 演化式系统迭代架构 | 架构、交付系统、涉众三者共同演化 | 更强调灵活性和适应性,AD 迭代式版本化,产品线架构 |
| 4.3.3 已有系统架构 | 系统已存在但缺少架构描述 | 通过逆向工程重建 AD,用于指导维护/演化/迁移 |
| 4.3.4 架构评估 | 评估架构描述的质量和预测系统质量 | 两维度:AD 本身质量(可理解性/一致性/完整性/可分析性)+ 系统质量预测(可行性/效率/可靠性) |
4.4 架构描述的用途
架构描述在整个生命周期中服务于多种涉众的多种用途,包括但不限于:
- 验证系统是否满足使命
- 指导系统开发和实现
- 评估系统质量属性
- 管理系统变更和演化
- 支持系统间集成和互操作
架构描述实践(第5章·核心要求)
第5章是标准的核心,规定了架构描述(AD)必须满足的要求。
5.1 架构文档(8项整体信息)
每个 AD 作为整体必须包含:
- a) 发布日期和状态
- b) 发布组织
- c) 变更历史
- d) 摘要
- e) 范围
- f) 语境/上下文
- g) 术语表
- h) 参考文献
5.2 涉众与关注点识别
必选涉众(至少4类):
- a) 系统用户
- b) 系统采购方
- c) 系统开发者
- d) 系统维护者
必选关注点(至少5类):
- 系统的目的或使命
- 系统完成使命的适当性
- 构建系统的可行性
- 系统开发和运行对用户/采购方/开发者的风险
- 系统的可维护性、可部署性和可演化性
具体含义因系统而异,AD 必须在特定系统语境中进一步细化这些关注点。
5.3 视点选择
每个视点必须说明5个要素:
- a) 视点名称
- b) 该视点服务的涉众
- c) 该视点处理的关注点
- d) 构建视图所用的语言、建模技术或分析方法
- e) 库视点的来源(作者、日期、引用文档)
视点规范还可附加:
- 一致性和完整性检查
- 评估或分析技术
- 启发式规则、模式、设计指南
关键要求:
- AD 必须说明每个视点的选择理由,论证其覆盖了 5.2 要求的涉众和关注点
- 每个涉众和每个关注点必须至少被一个视点覆盖
- 标准不规定必须选哪些视点,只要求有选择理由
- 视点可以引用其他标准或实践(如 RM-ODP 的5个视点)
5.4 架构视图
- AD 必须包含一个或多个架构视图
- 每个视图严格对应一个视点
- 每个视图必须符合对应视点的规范
- 每个视图包含3项:
- a) 标识符和介绍信息
- b) 用视点规定的语言/方法构建的系统表示
- c) 配置信息
- 一个视图可由一个或多个架构模型组成
- 一个架构模型可参与多个视图
5.5 视图间一致性
- AD 必须记录已知的视图间不一致之处
- AD 应该包含跨所有视图的一致性分析
标准不强求完全一致,但要求记录已知的不一致。
5.6 架构基本原理(Rationale)
- AD 必须包含所选架构概念的基本原理/决策理由
- AD 应该提供对备选架构概念的考虑证据,以及选择的理由
- 对于已有系统的 AD,如果已知遗留系统架构的理由,应呈现
附录B:术语深度辨析
Architecture(架构)
定义涵盖了该术语的多种用法,识别了底层共同元素:理解和控制系统设计中那些决定系统效用、成本和风险的要素。这些要素可能是物理组件及其关系,也可能是逻辑组件,还可能是创造持久性组织结构的原则或模式。
View vs Viewpoint(视图 vs 视点)
标准引入两个独立术语的原因:
- 现有实践中架构通过模型集合来表示,模型按内聚性分组
- 需要一种机制来形式化这些分组——这就是 viewpoint 的角色
- view 是特定系统的实际表示(实例)
- viewpoint 是构造视图的模式/模板,独立于特定系统(类)
为什么需要多视图:因为不可能用单一视角的一组模型来充分描述架构,也不可能用单一建模方法满足所有涉众和关注点。这是标准的核心洞见之一。
附录C:视点示例(4种典型视点)
C.1 结构视点(Structural Viewpoint)
源自 Perry & Wolf (1992) 以及 Shaw & Garlan 的软件架构研究。
关注点:
- 系统的计算元素及其组织
- 系统由哪些软件元素组成
- 它们的接口是什么
- 如何互连
- 互连机制是什么
语言元素:
- 组件(Components)—— 计算单元,有端口(接口)
- 连接件(Connectors)—— 表示组件间的通信和协调,有角色(roles)
- 组件和连接件都可以有类型、有属性
分析方法:
- 连接检查(连接件是否正确连接组件)
- 类型一致性(类型使用是否与连接和约束一致)
C.2 行为视点(Behavioral Viewpoint)
关注系统的动态行为、交互和状态变化。
C.3 物理互连视点(Physical Interconnect Viewpoint)
关注系统的物理部署和连接拓扑。
C.4 链路误码率视点(Link Bit Error Rate Viewpoint)
关注通信链路的质量和可靠性属性。
附录D:与其他标准的关系
D.1 与 IEEE/EIA 12207.0-1996(软件生命周期过程)
12207 是软件生命周期过程标准,1471 的架构描述可作为 12207 中架构设计活动的产出物。
D.2 与 RM-ODP(开放分布式处理参考模型)
RM-ODP 定义了5个标准视点,可直接在 1471 框架下使用:
| 视点 | 关注点 | 语言核心概念 |
|---|---|---|
| 企业视点(Enterprise) | 系统的目的、范围、策略;角色;活动;政策声明 | 企业对象社区 + 角色 + 策略(许可/义务/禁止)+ 环境契约 |
| 信息视点(Information) | 系统中信息和信息处理的语义 | 三种模式:不变式模式 / 静态模式 / 动态模式 |
| 计算视点(Computational) | 系统功能分解为在接口处交互的对象 | 计算对象 + 绑定对象 + 交互 + 接口 |
| 工程视点(Engineering) | 支持分布式对象交互的机制和功能 | 节点结构 + 通道 + 接口 + 绑定 + 重定位/迁移 + 集群 + 失败类型 |
| 技术视点(Technology) | 技术选择;实现方式;相关技术规范;测试支持 | 可实现的标准和实现技术 |
RM-ODP 的5视点是最著名的多视点架构框架之一,1471 与之一致并兼容。
与讲座解读版的对比
| 维度 | 标准原文(IEEE1471.pdf,29页) | Rich Hilliard 讲座(IEEE 1471-2000.pdf,28页) |
|---|---|---|
| 性质 | 正式标准文本,规范语言 | 讲座幻灯片,通俗解读 |
| 结构 | 5章 + 4附录,完整严谨 | 幻灯片结构,重点突出 |
| 深度 | 每个要求都有 shall/should 分级 | 概念解释为主,案例辅助 |
| 附录 | 含术语辨析、视点示例、标准间关系 | 可能不含完整附录 |
| 互补性 | 权威规范,查原文依据 | 入门理解,把握核心思想 |
两者搭配使用:讲座版入门 → 标准原文查细节和规范性要求。
关键洞见
- 架构是客观存在的:每个系统都有架构,不管你知不知道它
- 描述与架构分离:AD 是架构的表示,不是架构本身(地图不是领土)
- 多视图是必然的:单一视角无法满足所有涉众的所有关注点
- 视点优先于视图:先选视点(为什么选、覆盖什么),再建视图
- 理由和决策同等重要:架构不仅是”是什么”,更是”为什么这样选”
- 全生命周期视角:架构活动贯穿从概念到退役,不是前期一次性活动
- 标准不 prescribe,只 describe:不强制规定选哪些视点,只要求有选择依据