编写软件过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的要求:
-
使程序呈现高内聚,低耦合的特性
耦合性: 也称块间联系,指软件系统结构中各模块间相 互联系紧密程度的一种度量。模块之间联系越紧密,其 耦合性就越强,模块的独立性则越差,也就是说当我们 改动一个模块时,有更大的概率也需要去改动其他的多 个模块。
内聚性; 又称块内联系。指模块的功能强度的度量,即一 个模块内部各个元素彼此结合的紧密程度的度量。若一 个模块内各元素(语名之间、程序段之间)联系的越紧 密,则它的内聚性就越高。 -
可维护性: 代码完成之后,当需要修改程序的某个模块 时,对其他模块的影响和修改的代价。——需要修改的地 方很少,就是容易维护。
-
可扩展性: 代码完成之后,当需要为程序添加新的功能 时,对其他模块的影响和添加的代价。——只需要添加添 加该功能的代码,不需要修改原来的代码(对之前的代码 没有影响),这就是可扩展。
-
重用性: 代码完成之后,以后开发中可以复用部分代码, 提高效率,就是复用性强。
-
灵活性: 代码完成之后,使用的地方可以通过多种方式 来调用该部分的代码,这就是灵活性好。
-
可读性: 编程规范性,便于其他程序员的阅读和理解 (命名规范、代码排版、关键注释)。
-
可靠性: 软件在一定的边缘条件下的出错机率、性能劣 化趋势等,又称稳定性。要求系统在发生硬件故障,软件 故障,或人为错误时,仍然可以正常工作。
-
可移植性: 代码完成之后,稍微修改一下就可以在另外 一个环境中使用, 也就是说可以在两个环境以上使用, 就 具备可移植性
重用性与可移植性的区别:
重用: 强调被使用的次数, 也就是通用性;
移植: 强调支持的环境的能力, 多个系统环境都可以正常 使用, 也就是兼容性。