第5章 信息系统工程-软件实现

5.1.4 软件实现

    1.软件配置管理

    软件配置管理通过标识产品的组成元素、管理和控制变更、验证、记录和报告配置信息,来控制产品的演进和完整性。软件配置管理与软件质量保证活动密切相关,可以帮助达成软件质量保证目标。

    软件配置管理活动包括软件配置管理计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与交付等活动。

    软件配置管理计划的制订需要了解组织结构环境和组织单元之间的联系,明确软件配置控制任务。软件配置标识活动识别要控制的配置项,并为这些配置项及其版本建立基线。软件配置控制关注的是管理软件生命周期中的变更。软件配置状态记录标识、收集、维护并报告配置管理的配置状态信息。软件配置审计是独立评价软件产品和过程是否遵从已有的规则、标准、指南、计划和流程而进行的活动。软件发布管理和交付通常需要创建特定的交付版本,完成此任务的关键是软件库。

    2.软件编码

    目前,人和计算机通信仍需使用人工设计的语言,也就是程序设计语言。所谓编码就是把软件设计的结果翻译成计算机可以“理解和识别”的形式一一用某种程序设计语言书写的程序作为软件工程的一个步骤,编码是设计的自然结果,因此,程序的质量主要取决于软件设计的质量。但是,程序设计语言的特性和编码途径也会对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。

    (1)程序设计语言。编码的目的是实现人和计算机的通信,指挥计算机按人的意志正确工作。程序设计语言是人和计算机通信的最基本工具,程序设计语言的特性不可避免地会影响人的思维和解决问题的方式,会影响人和计算机通信的方式和质量,也会影响其他人阅读和理解程序的难易程度。因此,编码之前的一项重要工作就是选择一种恰当的程序设计语言。

    (2)程序设计风格。在软件生存周期中,开发者经常要阅读程序。特别是在软件测试阶段和维护阶段,编写程序的人员与参与测试、维护的人员要阅读程序。因此,阅读程序是软件开发和维护过程中的一个重要组成部分,而且读程序的时间比写程序的时间还要多。20 世纪 70年代初,有人提出在编写程序时,应使程序具有良好的风格。程序设计风格包括4 个方面:源程序文档化、数据说明、语句结构和输入/输出方法。应尽量从编码原则的角度提高程序的可读性,改善程序的质量。

    (3)程序复杂性度量。经过详细设计后,每个模块的内容都已非常具体,因此可以使用软件设计的基本原理和概念仔细衡量它们的质量。但是,这种衡量毕竟只能是定性的,人们希望能进一步定量度量软件的性质。定量度量程序复杂程度的方法很有价值,把程序的复杂度乘以适当的常数即可估算出软件中故障的数量及软件开发时的工作量。定量度量的结构可以用于比较两个不同设计或两种不同算法的优劣;程序的定量的复杂程度可以作为模块规模的精确限度。

    (4)编码效率。编码效率主要包括:①程序效率。程序的效率是指程序的执行速度及程序所需占用的内存空间。一般说来,任何对效率无重要改善,且对程序的简单性、可读性和正确性不利的程序设计方法都是不可取的。②算法效率。源程序的效率与详细设计阶段确定的算法的效率直接相关。在详细设计翻译转换成源程序代码后,算法效率反映为程序的执行速度和存储容量的要求。③存储效率。存储容量对软件设计和编码的制约很大。因此要选择可生成较短目标代码且存储压缩性能优良的编译程序,有时需要采用汇编程序,通过程序员富有创造性的努力,提高软件的时间与空间效率。提高存储效率的关键是程序的简单化。④I/O 效率。输入/输出可分为两种类型:一种是面向人(操作员)的输入/输出;另一种是面向设备的输入/输出。如果操作员能够十分方便、简单地输入数据,或者能够十分直观、一目了然地了解输出信息,则可以说面向人的输入/输出是高效的。至于面向设备的输入/输出,主要考虑设备本身的性能特性。

    3.软件测试

    软件测试是在将软件交付给客户之前所必须完成的重要步骤。目前,软件的正确性证明尚未得到根本的解决,软件测试仍是发现软件错误(缺陷)的主要手段。根据国家标准GB/T15532《计算机软件测试规范》,软件测试的目的是验证软件是否满足软件开发合同或项目开发计划、系统/子系统设计文档、SRS、软件设计说明和软件产品说明等规定的软件质量要求。通过测试发现软件缺陷,为软件产品的质量测量和评价提供依据。

    软件测试方法可分为静态测试和动态测试。①静态测试是指被测试程序不在机器上运行而采用人工检测和计算机辅助静态分析的手段对程序进行检测。静态测试包括对文档的静态测试和对代码的静态测试。对文档的静态测试主要以检查单的形式进行,而对代码的静态测试一般采用桌前检查 (Desk Checking)、代码走查和代码审查。经验表明,使用这种方法能够有效地发现30%~70%的逻辑设计和编码错误。②动态测试是指在计算机上实际运行程序进行软件测试,一般采用白盒测试和黑盒测试方法。白盒测试也称为结构测试,主要用于软件单元测试中。它的主要思想是,将程序看作是一个透明的白盒,测试人员完全清楚程序的结构和处理算法,按照程序内部逻辑结构设计测试用例,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试方法主要有控制流测试、数据流测试和程序变异测试等。另外,使用静态测试的方法也可以实现白盒测试。例如,使用人工检查代码的方法来检查代码的逻辑问题,也属于白盒测试的范畴。白盒测试方法中,最常用的技术是逻辑覆盖,即使用测试数据运行被测程序考查对程序逻辑的覆盖程度。主要的覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试中。黑盒测试将程序看作是一个不透明的黑盒,完全不考虑(或不了解)程序的内部结构和处理算法,而只检查程序功能是否能按照 SRS 的要求正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息 (例如,文件和数据库等)的完整性等。黑盒测试根据 SRS 所规定的功能来设计测试用例,一般包括等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错法和正交试验法等。

posted on 2023-12-16 12:31  欢笑一声  阅读(44)  评论(0)    收藏  举报

导航