一、主要内容;
1. 将软件划分成若干独立成分的依据。
2. 怎样表示不同的成分内得功能细节和数据结构。
3. 怎样统一衡量软件设计的技术质量。
二、模块化
模块是数据说明、可执行语句等程序对象集合,模块可以单独被命名的而且可通过名字来访问,例如:过程、函数、子程序、宏等等都可以作为模块。
三、抽象与逐步求精
软件工程过程的每一步都是对软件解法的抽象层次的一次精化。逐步求精与抽象是紧密相关的。
四、信息隐蔽和局部化
在模块内,其他某块不需要的信息是不允许访问的。
五、模块独立性
模块独立性是软件系统中米格模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。模块独立性的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
模块独立性的重要性体现在:①具有独立某块的软件比较容易开发出来。②独立的模块比较容易测试和维护。
模块的独立性可以由内聚和耦合这两个衡量标准来度量。耦合衡量不同模块彼此之间互相依赖(连接)的紧密程度,耦合是影响软件复杂程度的一个重要因素,应该采取的原则是:尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合;内聚衡量一个模块内部各个元素彼此结合的紧密程度,最理想的是功能内聚。
结果设计原则
① 显著改进软件结构提高模块独立性的原则。
② 模块规模应当适中。
③ 适当选择深度、宽度、扇出和扇入。
④ 模块的作用域应当在控制域之内。
⑤ 力争降低模块接口的复杂性程度。
⑥ 设计单入口单出的模块。
⑦ 模块功能应该可以预测。