首页 百科知识 软件工程过程

软件工程过程

时间:2022-06-19 百科知识 版权反馈
【摘要】:三、软件工程过程软件工程过程活动包括需求分析、设计、实现、确认及支持等,它们对应于软件开发过程的不同阶段。软件测试是指按照特定规程,发现软件错误的过程。预防性维护的目的是为了提高软件的可维护性、可靠性等,为进一步的软件维护打下良好的基础。预防性维护一般由开发单位主动进行。

三、软件工程过程

软件工程过程活动包括需求分析、设计、实现、确认及支持等,它们对应于软件开发过程的不同阶段。一般来说,软件开发都要经历从分析设计到实现确认的过程。在每个阶段按照相应的规范进行工作,并得到该阶段的成果,是保证整个开发过程成功的关键。

1.需求分析

需求分析阶段处于软件开发的前期,其基本活动是准确定义未来系统的目标,确定为了满足用户的需求必须做什么。需求分析又划分为两个阶段,即需求获取和需求规约,前者是用自然语言清楚地描述用户的要求,而后者的目的是消除获取需求的二义性和不一致性。

在软件生命周期中,一个错误发现得越晚,修复错误的费用就越高,所以,高质量的需求分析工作是软件项目得以正确、高效完成的前提。对于系统分析人员,建立需求面临着以下三个方面的困难:

(1)问题空间的理解。系统开发人员通常是计算机专业人员,难以深入理解各种业务系统所要解决的问题空间。

(2)人与人之间的通信。对于系统分析人员而言,通信主要包括与用户的通信以及同事之间的通信,由于自然语言的二义性,会给准确刻画需求造成障碍

(3)需求的不断变化。造成需求变化的原因很多,包括技术、用户方和市场等,作为分析人员,必须采用一些策略以适应变化。

面向对象的分析方法被认为是解决上述困难较好的技术方法,但是完整、准确地刻画问题空间始终是分析人员所面临的挑战。

2.系统设计

一般来说,需求分析阶段的主要任务是确定系统“做什么”,而设计阶段则要解决“怎么做”的问题。通常设计阶段又划分为总体设计和详细设计,总体设计确定系统的总体结构框架;而详细设计要具体地描述如何实现系统,通常可以依据详细设计的结果进行编码。详细设计的内容包括:详细的算法,数据表示和数据结构,实施的功能和使用数据之间的关系。详细设计过程中,采用了一些工具,以便对数据、算法等进行描述,这些工具包括流程图、PAD(Problem Analysis Diagram)、盒图(N-S图)和伪码等。

3.实现阶段

在软件实现阶段,要将设计的结果变换成用程序设计语言编写的程序。在实现阶段,首先要确定程序设计语言,其影响因素包括:开发人员对语言的熟悉程度,语言的可移植性,编译程序的效率,编译工具的支持等。目前,C++语言是普遍被采用的构造系统软件的编程语言,而Java则更多地应用于编写网络程序。

无论采用哪一种编程语言,都要求编写高质量的源程序代码,程序质量通常包含正确性、可读性、可移植性、程序效率等指标。考虑到系统的维护和演化,提高源程序的可读性是实现阶段的一个重要目标,其途径包括添加注释,规范书写格式,确定标识符命名原则,采用结构化的程序设计(不用或少用goto语句)等。

4.确认和测试活动

尽管确认活动贯穿于软件开发活动的始终,但是系统完成后的软件测试才是主要的确认活动。软件测试是指按照特定规程,发现软件错误的过程。软件测试的技术大体上可以分为两类,即白盒测试技术和黑盒测试技术,前者依据的是程序逻辑结构,后者依据的是软件行为描述。根据测试的步骤,测试活动又可以划分为单元测试、集成测试、确认测试和系统测试。其中,确认测试是为了检验软件的功能和性能是否与用户需求一致,而系统测试主要是测试软件同硬件、其他支持软件、数据等结合在一起时,在实际的运行中同用户需求的匹配程度。

5.软件维护

当软件开发完成并交付用户使用后,就进入了运行/维护阶段。在运行/维护阶段仍需要对软件进行修改,这一过程称为软件维护。软件维护活动可以分为以下几类:

(1)改正性维护。其目的是为了纠正运行阶段发现的软件错误、性能上的缺陷以及排除实施中的误用。

(2)适应性维护。随着时间的推移,软件的外部环境或者数据环境发生变化,为了使之适应这种变化而对软件的修改称为适应性维护。

(3)完善性维护。在使用过程中,用户往往会对软件提出新的功能和性能需求,为了满足这些需求,需要修改或再开发软件,这一过程称为完善性维护。

(4)预防性维护。预防性维护的目的是为了提高软件的可维护性、可靠性等,为进一步的软件维护打下良好的基础。预防性维护一般由开发单位主动进行。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈