软件体系结构 - Parnas 模块化与信息隐藏(Lecture 3)

来源:田浩然上传 / 0B105软件体系结构 / Lecture-3 / 03parnas.ppt(olefile 提取,55KB,内容丰富)

核心主题:David Parnas 软件体系结构思想

1. KWIC 模块化案例

  • Modularization 1:每个处理步骤为一个模块
  • Modularization 2:信息隐藏——每个模块有一个或多个”秘密”,模块以其知道的设计决策为特征,对其他模块隐藏

KWIC 系统模块划分:

  • Characters:行存储方式
  • Circular Shifter:循环移位算法
  • Alphabetizer:字母排序(惰性排序)

2. Parnas 1974 IFIP 论文核心观点

“On a ‘Buzzword’: Hierarchical Structure” IFIP Congress ‘74. North Holland, 1974, pp. 336-339

  • 最早对”软件架构”概念的抽象讨论
  • 反驳”Hierarchical == good”的流行观念
  • 同一术语在不同上下文中含义不同(常在同一篇论文中混用)
  • 背景:OS 设计(T.H.E, MULTICS, RC4000)

3. 层次类型

类型说明
Program Hierarchy调用层次;仅当人类使用系统时有意义(如 inline 等价于调用)
Process Hierarchy常与其他层次混淆(如 T.H.E 中 “Give works to”)
Resource Allocation HierarchyRC4000 保护层次
Module Hierarchy模块是更高层模块的 part-of

4. 程序族(Program Families)

  • Parnas 1976 IEEE Trans. On SE. vol. SE-2, pp.1-9
  • 先研究公共属性,再确定每个成员的特有属性
  • 为变化而设计 / 重用库 / 面向对象设计的基础

5. 开发方法

  • 经典方法:顺序完成,一个成员完全开发后修改得到下一个
  • 新技术:发展到中间阶段,不同成员从中间阶段开始采用不同设计决策
    • 逐步求精(postpone implementation of operand types and operators)
    • 模块化(指定模块接口,替换不同实现)

关联