计算机软件可维护性方法,在设计计算机系统时,必须全局考虑软件与硬件的结合,以及用户的要求和软件的要求。
1 建立明确的软件质量目标和优先级
一个可维护的程序应是可理解的、可靠的、可测试的、可修改的、可移植的、效率高的和可使用的。但要实现这所有的目标,需要付出很大的代价,而且也不一定行得通。因为某些质量特性是相互促进的,例如可理解性和可测试性、可理解性和可修改性。但另一些质量特性却是相互抵触的,例如效率和可移植性、效率和可修改性等。因此,尽管可维护性要求每一种质量特性都要得到满足,但它们的相对重要性应随程序的用途及计算环境的不同而不同。
2 使用提高软件质量的技术和工具
模块化是软件开发过程中提高软件质量,降低成本的有效方法之一,也是提高可维护性的有效的技术。它的优点是如果需要改变某个模块的功能,则只要改变这个模块,对其他模块影响很小;如果需要增加程序的某些功能,则仅需增加完成这些功能的新的模块或模块层;程序的测试与重复测试比较容易;程序错误易于定位和纠正;容易提高程序效率。使用结构化程序设计技术,提高现有系统的可维护性。采用备用件的方法,当要修改某一个模块时,用一个新的结构良好的模块替换掉整个模块。这种方法要求了解所替换模块的外部(接口)特性,可以不了解其内部工作情况。它有利于减少新的错误,并提供了一个用结构化模块逐步替换掉非结构化模块的机会。采用自动重建结构和重新格式化的工具(结构更新技术)。采用如代码评价程序、重定格式程序、结构化工具等自动软件工具——把非结构化代码转换成良好结构代码。改进现有程序的不完善的文档。改进和补充文档的目的是为了提高程序的可理解性,以提高可维护性。采用结构化小组程序设计的思想和结构文档工具。软件开发过程中。建立主程序员小组,实现严格的组织化结构,强调规范,明确领导以及职能分工,能够改善通信、提高程序生产率;在检查程序质量时,采取有组织分工的结构普查,分工合作,各司其职,能够有效地实施质量检查。同样,在软件维护过程中,维护小组也可以采取与主程序员小组和结构普查类似的方式,以保证程序的质量。
3 进行明确的质量保证审查
质量保证审查对于获得和维持软件的质量,是一个很有用的技术,还可以用来检测在开发和维护阶段内发生的质量变化。一旦检测出问题来,就可以采取措施来纠正,以控制不断增长的软件维护成本,延长软件系统的有效生命期。为了保证软件的可维护性,有4种类型的软件审查。
在检查点进行复审。保证软件质量的最佳方法是在软件开发的最初阶段就把质量要求考虑进去,并在开发过程每一阶段的终点,设置检查点进行检查。检查的目的是要证实已开发的软件是否符合标准,是否满足规定的质量需求。在不同的检查点,检查的重点不完全相同。如图1所示。
验收检查。验收检查是一个特殊的检查点的检查,是交付使用前的最后一次检查,是软件投入运行之前保证可维护性的最后机会。它实际上是验收测试的一部分,只不过它是从维护的角度提出验收的条件和标准。
周期性地维护审查。软件在运行期间,为了纠正新发现的错误或缺陷,为了适应计算环境的变化,为了响应用户新的需求,必须进行修改。因此会导致软件质量有变坏的危险,可能产生新的错误,破坏程序概念的完整性。因此,必须像硬件的定期检查一样,每月一次或二月一次,对软件做周期性的维护审查,以跟踪软件质量的变化。周期性维护审查实际上是开发阶段检查点复查的继续,并且采用的检查方法、检查内容都是相同的。为了便于用户进行运行管理,适时提供维护工具以及有关信息是很重要的。
维护审查的结果可以同以前的维护审查的结果、以前的验收检查的结果和检查点检查的结果相比较,任何一种改变都表明在软件质量上或其他类型的问题上可能起了变化。对于改变的原因应当进行分析,例如,如果使用的是复杂性度量标准,则应当随机地选择少量模块,再次测量其复杂性。
对软件包进行检查。软件包是一种标准化了的,可为不同单位、不同用户使用的软件。软件包卖主考虑到他的专利权,一般不会提供给用户他的源代码和程序文档。因此,对软件包的维护采取以下方法。使用单位的维护人员首先要仔细分析、研究卖主提供的用户手册、操作手册、培训教程、新版本说明、计算机环境要求书、未来特性表,以及卖方提供的验收测试报告等,在此基础上,深入了解本单位的希望和要求,编制软件包的检验程序。该检验程序检查软件包程序所执行的功能是否与用户的要求和条件相一致。为了建立这个程序,维护人员可以利用卖方提供的验收测试实例,还可以自己重新设计新的测试实例。根据测试结果,检查和验证软件包的参数或控制结构,以完成软件包的维护。 4 选择可维护的程序设计语言
程序设计语言的选择,对程序的可维护性影响很大。低级语言,即机器语言和汇编语言,很难理解,很难掌握,因此很难维护。计算机软件可维护性方法,高级语言比低级语言容易理解,具有更好的可维护性。但同是高级语言,可理解的难易程度也不一样。第四代语言,例如查询语言、图形语言、报表生成器等,有的是过程化的语言,有的是非过程化的语言。不论是哪种语言,编制出的程序都容易理解和修改,而且,其产生的指令条数可能要比用COBOL语言或用PL/1语言编制出的少一个数量级,开发速度快许多倍。有些非过程化的第四代语言,用户不需要指出实现的算法,仅需向编译程序或解释程序提出自己的要求,由编译程序或解释程序自己做出实现用户要求的智能假设,例如自动选择报表格式,选择字符类型和图形显示方式等。总之,从维护角度来看,第四代语言比其他语言更容易维护。
相关推荐:
计算机软件论文软件工程选课系统
相关推荐:
下一篇:关于计算机系统集成的发展趋势探析