面向对象的程序设计质量控制方法
2011-03-31刘志强
刘志强
(科尔沁艺术职业学院,内蒙古 通辽 028000)
1.程序设计的一些准则
人们总是希望编制清晰、紧凑、高效的程序,但这些特性在编码时往往互相矛盾,一般应依次考虑下列原则:
(1)程序的正确性与可靠性
程序的价值首先在于能够运行并正确地解决问题,即在预定的条件下输入必要的数据后,能得到正确的输出结果。其次,还要求程序必须稳定可靠,在遇到意外情况时能自动进行适当的处理。例如,程序能识别由于误操作输入的不合理数据,并能采取适当的对策,以确保程序的运行不受干扰。可靠性指的是程序正常工作的能力,一般用平均无故障时间来衡量。
(2)程序的可读性
现代计算机的应用程序往往由若干人分工合作完成。某个人编写的程序不仅自己能读懂,还要使其他人也能够读懂,这样才便于整个程序系统的调试、组装。为此,应尽可能在程序中关键的位置上使用注释语句,说明程序模块的功能、变量的作用等。
(3)程序的可维护性
程序运行时可能出现故障。出现故障后检查故障的原因、确定程序中的错误位置、修正程序中的错误等操作需要一定的时间。程序可维护性的优劣就是以这类操作所需时间的长短来体现的。
(4)程序的重用
程序的重用是降低软件开发成本、提高软件质量的有效途径,尽可能编写可重用的模块,减少重复的劳动。
(5)程序的可移植性
程序的可移植性指的是在某一种型号的计算机上编写的程序,转到其它型号的计算机上运行的能力。
(6)程序的可扩充性
程序的可扩充性指的是在不改变整体结构的前提下,经过某些处理使程序的功能有所扩充。
(7)程序的效率
程序的效率主要是指程序运行时所占有的系统资源与程序本身处理功能的比率。
2.程序结构
程序结构的主要原则:
(1)使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。
(2)选用的控制结构只准许有一个入口和一个出口。
(3)复杂结构应该用基本控制结构进行组合嵌套来实现。
(4)严格控制GOTO语句。
3.良好的程序设计风格
良好的程序设计风格是软件开发人员应该具备的基本素质。良好的编写习惯,不但有助于代码的移植和纠错,也有助于软件开发人员之间的协作。
(1)源程序文档化。正确、适当地使用注释,恰当地使用标识符,完整地编制文档。
(2)数据说明的次序应标准化,对于复杂数据结构,应说明实现这个数据结构的方法和特点。
(3)语句结构应该简单而直接。如不要为了节省空间而把多个语句写在同一行。
(4)输入/输出。对所有输入输出数据都进行检验,对输入数据,说明其可用的选择或边界值;输出的内容应保持格式一致。
(5)尽可能提高程序的效率。
4.模块化
采用模块化程序设计可以使软件结构清晰,不仅容易设计,也容易阅读和理解。因为程序错误通常局限于有关的模块以及它们之间的接口之中,所以模块化程序设计使软件容易测试和调试,有助于提高软件的可靠性。
4.1 分解
根据人们解决问题的一般规律,将一个复杂的问题分解成若干个较小的问题,能够减小解题所需要的总工作量。
4.2 模块的独立性
每个模块是一个特定子功能,模块之间仅仅交换那些为完成系统功能必须交换的信息,相对于其它模块独立。模块的独立程度可以用两个定性标准来度量,一是内聚,二是耦合。
4.2.1 内聚
(1)偶然性内聚
模块内各成分在功能上互不相关,即使有关系,也很松散。
(2)逻辑性内聚
模块完成的各项任务逻辑上相关,通常由若干个逻辑功能相似的成分组成。
(3)时间性内聚
模块包含的各项任务必须在同一时间段内执行。
(4)过程性内聚
一个模块内处理的元素是相关的,而且必须按照某一特定次序执行。
(5)通信性内聚
模块内部的各成分都使用同一种输入数据,或产生同一个输出数据,它们靠公用数据联系在一起。
(6)顺序性内聚
模块内各组成部分必须顺序执行,前一部分的输出就是后一部分的输入。
(7)功能性内聚
模块内所有成分结合在一起,用于完成一个单一的功能。
内聚度越高越好,设计程序时,应该能够识别内聚度的高低,尽可能地提高模块的内聚度,从而获得较高的模块独立性。
4.2.2 耦合
(1)非直接耦合
两个模块之间任何一个都能够不依赖于其它模块而独立工作,相互之间没有信息传递。
(2)数据耦合
如果模块之间通过参数交换信息,而信息仅限于数据,则构成数据耦合。
(3)特征耦合
模块之间不仅仅交换数据,而且交换数据结构。
(4)控制耦合
模块间传递的信息中含有控制信息。
(5)外部耦合
若干个模块与同一个外部环境关联。
(6)公共耦合
若干个模块访问同一个全局性的数据结构。
(7)内容耦合
两个模块之间出现一个模块使用另一个模块内部的数据或控制信息,或者一个模块直接转移到另一个模块的内部。
在程序设计时应追求尽可能松散耦合。因为耦合松散的程序对模块的设计、测试和维护相对独立。模块间的耦合程度直接影响程序的可理解性、可测试性和可维护性。
5.结束语
质量是软件需求方最关心的问题。软件设计成功的标准是用户使用你所设计的软件可以很容易完成要完成的任务。软件的质量因素有很多,主要有以下方面:
正确性与精确性:软件开发人员要为“正确”、“精确”四个字竭尽全力。
性能与效率:用户都希望软件的运行速度高些,并且占用资源少些。
易用性:由于人们的专业领域不同、操作习惯不同等原因,对软件的感觉与要求差异很大,软件开发人员要多从用户的角度来考虑问题。
可理解性与简洁性:编程时还要注意不可滥用技巧,应该用自然的方式编程,简洁是一种美。
程序的正确性是保证程序质量的前提。软件开发人员的工作是创建正确的、完全符合要求的代码。保证代码的正确性是软件开发人员的责任,因此,软件开发人员在把代码提交给编译器之前必须彻底地检查代码的正确性。采用一个良好的定义过程是第一道防线,其次是进行检查。质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提。
[1]张忠林,王坚生,兰丽.软件项目管理思想在“软件工程”实践教学中的应用[J].计算机教育,2010,(05):157-160.
[2]王美华,张刚,丁京柱.面向对象的程序设计[J].河北工业科技.1999,(12):26-30.
[3]王华胜,王停.面向对象的软件工程方法[J].河北省科学院学报.2003,(05):103-106.