2.1. 案例:KWIC
是Keyword in context
的缩写,这是一个讲单词循环移位的系统,后面很多架构风格都将用这个作为案例。
功能需求(他是干什么的)
- 接收一组包含单词的文本行
- 对文本行按单词进行循环移位
- 对文本行进行字母序排序
非功能需求
- Modifiable 可修改性
- 算法变化
- 数据表示方式的变化
- 可拓展型
- 性能:时空复杂性
- 可复用性
2.2. 主程序-子过程风格
早期:非结构化程序,所有程序代码包含在一个主程序文件中
结构化设计:自上而下的设计
(有点像树结构的分解)
逐步分解
主程序的正确性依赖于子程序
主程序-子过程更个的结构
- 构件
- 连接器
- 拓扑结构:层次化结构
硬件基础:寄存器、跳转指令、栈操作指令
四大分解原则
- 模块独立性:高聚合、低耦合(模块之间的依赖降低)
- 规模适中
- 模块复用性(高扇入、低扇出)
- 作用域与控制域适当性:作用域包含在控制域之中
- 控制域:这个模块底下调用的模块
- 作用域:?
应用:将主程序-子过程应用到KWIC
优点:
- 模块之间数据共享
- 不同的计算功能被隔离在不同的模块中
缺点:
- 对数据存储格式个变化将会影响几乎所有的模块
- 很难对处理流程作出改变,也很难对系统功能增强;依赖于来控制模块的内部调用次序
- 难以复用
评论区