软件设计原则: 软件设计的原则对提高软件的设计质量有很大的帮助。
◆ 抽象
抽象是指忽视一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。过程抽象和数据抽象是常用的两种主要抽象手段。
◆ 模块化
模块化是指将一个待开发的软件分解成若干个小的简单的部分——模块,每个模块可独立地开发、测试、最后组装成完整的软件。这是一种复杂问题的“分而治之”的原则。
模块是指执行某一特定任务的数据结构和程序代码。一个模块有它的外部特征和内部特征。
◆ 信息隐蔽
信息隐蔽是开发整体程序结构时使用的法则,即将每个程序的成分隐蔽或封装在一个单一的设计模块中,定义每一个模块时尽可能少地显露其内部的处理。信息隐蔽原则对提高软件的可修改性、可测试性和可移植性都有重要的作用。
◆ 模块独立
模块独立是指每个模块完成一个相对独立的子功能,并且与其他模块之间的联系简单。衡量模块独立程度的度量标准有两个:耦合和内聚。
耦合是指模块之间联系的紧密程度。耦合度越高则模块的独立性越差。
按耦合度从低到高依次有7种耦合方式。
非直接耦合(独立运行)
数据耦合(用参数表传递简单数据)
标记耦合(传递数据结构或者一部分)
控制耦合(传递的信息包括控制模块的信息)
外部耦合(模块与软件之外的环境有关)
公共耦合(多个模块引用同一全局的数据区)
内容耦合(访问内部数据,代码重叠或者多个入口)
内聚是指模块内部各元素之间联系的紧密程度,内聚度越低模块的独立性越差。
按内聚度从低到高依次有7种内聚种类。
偶然内聚(模块完成的多个任务,任务之间的关系松散)
逻辑内聚(模块完成逻辑相关的一组任务)
瞬时内聚(模块的所有任务必须在同一时间间隔内执行)
过程内聚(模块的处理元素相关而且按照特定的次序执行)
通信内聚(模块的所有元素集中在一个数据结构区域上)
顺序内聚(模块的处理元素相关,必须顺序执行)
功能内聚(模块完成单一的功能,各个部分协调工作,而且不可缺少)