3-3.2软件设计、测试与维护
1.软件设计
软件设计是“定义一个系统或组件的架构、组件、接口和其他特征的逆程”,并得
到“这个过程的结果M。作为过程看待时,软件设计是一种软件生命周期活动,在这个活
动中,要分析软件需求,以产生一个软件内部结构的描述,并将其作为软件构造的基础。
更精确地说,软件设计必须描述软件架构和这些组件之间的接口,也必须在详细的层次
上描述组件,以便能构造这些组件。
软件设计在软件开发中起着重要作用,通过它形成要实现的各种不同模型。分析和
评价这些模型,以确定它们能否实现各种不同的需求,在各种不同的候选方案中进行权
衡,确定最终方案。最后,将其作为构造和测试的输入和起始点,并用来规划后续的开
发活动。
软件设计由两个处于软件需求和软件构造之间的活动组成。
·软件架构设计(有时叫做高层设计):描述软件的结构和组织,标识各种不同的
组件。
·软件详细设计:详细地描述各个组件,使之能被构造。
软件架构是“一个描述软件系统的子系统和组件,以及它们之间相互关系的学科”。
架构试图定义软件的内部结构。通过视图可以从不同角度描述软件结构,主要包括逻辑
视图(满足功能需求)、过程视图(并发问题)、组件视图(实现问题)、部署视图(分布
问题)。
模式提供了架构设计的某些方法。模式是“给定上下文中普遍问题的普遍解决方
案”,主要涉及设计模式(微观架构模式)和架构模式(宏观架构)。
2.软件测试
测试是为评价和改进产品质量、识别产品的缺陷和问题而进行的活动。
软件测试是针对一个程序的行为,在有限测试用例集合上,动态验证是否达到预期
的行为,需要选取适当的测试用例。
测试不再只是一种仅在编码阶段完成后才开始的活动。现在的软件测试被认为是一
种应该包括在整个开发和维护过程中的活动,它本身是实际产品构造的一个重要部分。
测试不仅是检查预防措施是否有效的主要手段,而且是识别由于某种原因预舫措施
无效而产生的错误的主要手段。需要注意的是,在广泛的测试活动成功完成后,软件可
能仍包含错误,交付后出现的软件失效的补救措施是由软件维护达成的。
软件测试随开发和维护过程,通常在不同的级别上进行,可以在概念上区分三个大
的测试阶段:单元测试、集成测试和系统测试。
3.软件维护
软件开发工作的结果是交付满足用户需求的软件产品。相应地,软件产品必然存在
变更和演化。一旦投入运行,就可能发现缺昭,运行环境可能会变化,用户会提出新的
需求。软件维护是坐命周期的一个完整部分。
可以将软件维护定义为需要提供软件支持的全部活动。这些活动包括在交付前完成
的活动,以及交付后完成的活动。交付前完成的活动包括交付后运行的计划和维护计划
等。交付后的活动包括软件修改、培训、帮助资料等。
软件维护包括如下类型。
(1)更正性维护:软件产品交付后进行的修改,以更正发现的问题。
(2)适应性维护:软件产品交付后进行的修改,以保持软件产品能在变化后或变化
中的环境中可以继续使用。
(3)完善性维护:软件产品交付后进行的修改,以改进性能和司‘维护性。
(4)预防性维护:软件产品交付后进行的修改,以在软件产品中的潜在错误成为实
际错误前,检测和更正它们。
各省软考办 | ||||||||||