首页 理论教育 软件工程学概述

软件工程学概述

时间:2022-11-21 理论教育 版权反馈
【摘要】:软件工程有各种各样的定义。实施软件工程项目,其基本的目标就是要研制开发出具有费用低、质量好的软件产品。软件工程项目的开发必须充分认识软件需求的变动性,保证提供满足用户要求的产品。软件工程学认为,计算机软件如同人的生命要经过婴儿、幼年、少年、青年、中年和老年各阶段一样,也存在着类似的生命周期。

一、软件工程学概述

1.软件工程的定义

软件工程有各种各样的定义。1983年IEEE(国际电气与电子工程师协会)将软件工程定义为:软件工程是开发、运行、维护和修复软件的系统方法。其中,软件的定义为:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所必需的数据。

2.软件工程项目的基本目标和指导原则

实施软件工程项目,其基本的目标就是要研制开发出具有费用低、质量好的软件产品。费用低是指软件开发运行的整个开销要能满足用户要求的程度,而软件质量则是指该软件能满足明确的和隐含的需求能力的有关特征的总和,它包括功能、可靠、易使用、效率、可维护、易移植性6个评价指标。

软件工程项目的开发基础是其开发过程所要遵循的一些指导性原则,目前为止已提出了以下四条基本原则:

(1)适应变动的软件需求。软件工程项目的开发必须充分认识软件需求的变动性,保证提供满足用户要求的产品。要根据模块化、抽象化、信息隐蔽、局部化和一致性原则进行软件设计

(2)采用稳妥的设计方法。精良的开发工具与开发环境可以大大方便软件开发,达到软件工程的目标。

(3)采用高效的软件开发支持技术。软件工程项目的质量和效益取决于其支持技术的质量和效用。

(4)进行有效的过程管理。只有对软件工程开发过程进行有效的管理,才能产生有效的软件工程。

3.软件的生命周期

软件工程学认为,计算机软件如同人的生命要经过婴儿、幼年、少年、青年、中年和老年各阶段一样,也存在着类似的生命周期。这一生命周期包括了一个软件产品从立项开始,经过开发、使用和维护,直到最后该软件更新换代为止的全过程。目前,软件生命周期各阶段的划分尚不统一,但基本内涵都是一样的,基本都是由系统分析、系统设计、系统实施、系统的运行与维护等各阶段组成。

(1)系统分析阶段(System Analysis)。也称为系统逻辑设计阶段。主要任务是对原系统的会计数据内容及处理过程进行全面、系统的调查和剖析,确定系统应该做什么,具有什么功能,提出系统的业务流程图和数据词典,确定新系统的目标,并写出系统开发的可行性研究报告,提出会计信息系统的数据内容及处理流程,最后确立新系统的逻辑模型和逻辑设计说明书,以此作为下一个阶段——系统设计阶段的依据和目标。简单地说就是“了解老系统,构思新系统,论证新系统”。

(2)系统设计阶段(System Design)。也称为系统的物理设计阶段。在系统分析阶段得到的逻辑模型只是指出了系统应该“做什么”的问题,而系统设计阶段则要解决“如何去做”的问题。系统设计,就是要依据新系统的逻辑模型,设计出一个具体实现此模型的物理方案,即建立起系统的物理模型。现实中,这一阶段又可以分为总体设计和详细设计两个步骤。总体设计又称为是框架设计,它是根据上个阶段系统分析所描述的数据处理流程、数据词典等反映新系统的逻辑设计说明书,进行系统的下一级子系统和功能模块结构的划分;而详细设计又称为是算法设计,则是要给出每一模块的具体实现方法和步骤,为程序设计提供详细的设计说明书,同时还要进行代码、输入、输出及文件存储等方面的设计。

(3)系统实施阶段(Coding/Programming)。系统实施阶段是将设计的系统付诸实施的阶段。这个阶段的任务包括计算机等设备的购置、安装和调试、程序的编写与调试、人员培训、数据文件转换、系统调试与转换等。系统实施是按实施计划分阶段完成的,每个阶段应写出实施进度报告。系统测试之后写出操作手册、系统测试分析报告等。

(4)运行与维护(Running/Maintenance)阶段。首先要把已开发完成的软件系统安装到实际的工作环境中试运行,对系统进行考验,发现遗留的问题并予以改进,然后系统才能正式投入运行使用,这称为系统的试航(Piloting)。在系统的运行使用过程中可能会陆续发现一些以前未曾发现的软件错误或缺陷,也可能会发现一些对系统的新的功能需求,还可能发现一些软件的运行环境需要变更,于是对系统要进行修改和完善。这个一边运行一边维护的阶段将一直进行到软件系统报废、软件生命终结为止。

4.软件工程学体系

软件工程学作为一门专门研究和开发计算机软件的现代学科知识体系,包括了三个层次的要素,即开发模型(过程)、开发方法和开发工具。

(1)开发模型

系统开发模型描述了软件开发的工作过程,是开发软件项目的工作风格。它规定了开发过程各个阶段的划分方法,各阶段要完成的工作目标、任务和内容,要求交付的文档资料,为保证质量所需要的管理等,还定义了各阶段使用的开发方法、工具和技术,以及各个阶段之间的关系。软件工程中最常用的开发模型有生命周期模型和快速原型模型。

(2)系统开发方法

开发模型规定了各个阶段的任务,但是对于如何完成任务并没有进一步规定。由于软件开发要面临的问题非常广泛,在相同的开发阶段对不同的问题或许要采用不同的开发策略。通过对软件开发各个阶段的经验加以总结,就有了软件的开发方法。开发方法指出了非常明确的工作步骤,给出了描述软件产品的文档格式、评价标准,为开发高质量的软件产品提供了具体的解决过程。同工程上的规范一样,开发方法是软件产业所需的规则。常见的开发方法有结构化方法、面向对象法、基于构件的开发方法等。

(3)系统开发工具

开发模型和开发方法是一种工作原则和规范,应用它们开发软件,要做很多具体的工作,要花费人们大量的劳动。开发工具是用于辅助实施开发方法的;方法提出明确的工作步骤和标准的文档格式,是开发工具的基础。在相当长一段时间内,软件开发工作大部分由人们手工完成,效率低下,因此,研制相应的软件工具,用于辅助开发方法的实施,使得开发过程中的具体工作能够自动地或至少是半自动地完成,是软件工程学中的一个重要研究课题。

开发模型、开发方法和开发工具,共同构成了计算机软件工程学的学科层次体系。

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

我要反馈