过程抽象 数据抽象
为系统提供概念上完整性的方式 程序构件的结构或组织+和构件的交互形式+构件所用的数据结构
已证实的解决方案集
自顶向下的设计策略 通过连续精化层次结构的程序细节来实现程序的开发
将软件划分为独立命名的、可寻址的构件,被称为模块,把这些模块集成到一起满足问题的需求 避免过低或过高的模块化,应该遵循以下原则: 使软件开发更容易; 可以定义和交付软件增量; 更容易实施变更; 更有效地开展测试和调试
每个模块对其他所有模块都隐藏 自己的设计决策。
是模块化、抽象概念和信息隐藏的直接结果。 开发具有专一功能且避免与其他模块过多交互的模块实现功能独立
不改变代码的外部行为的情况下改进其内部结构的过程。
有助于软件产品的共同利益者相互交流 体系结构突出了早期设计决策。 体系结构构建了一个相对小的,易于理解的模型,描述了系统如何构成以及其构件如何一起工作
以数据为中心的体系结构 数据流体系结构 调用和返回体系结构 面向对象的体系结构 层次体系结构