[拼音]:ruanjian gongcheng
[外文]:software engineering
用工程方法研制和维护软件的过程和有关技术。软件研制包括需求定义、设计、实现和测试四个阶段;软件维护指使用过程中对已有软件的修改和完善。
产生背景60年代,电子计算机已发展到第三代,硬件技术进展迅速,价格急剧下降,应用领域不断扩大。每一项新的应用,都需要研制相应的软件系统。60年代后期出现了所谓“软件危机”,其实质是人们难以控制软件的研制和维护。其具体表现为:
(1)大型软件系统十分复杂,很难理解和维护。系统不能适应运行环境的变化和用户的动态需求。
(2)研制周期过长。大型软件系统往往不能按时交付使用,实际所用的时间往往大大超出预计的时间。
(3)大型软件系统的可靠性差。各种调试程序只能发现错误,但不能保证没有错误。某些系统(如核反应堆控制系统、导d发射系统)的可靠性又极端重要,一旦失控,后果严重。
(4)软件费用上涨,研制和维护费用一再增加,往往超出预算。
面对“软件危机”,人们调查研究了软件生产的实际情况,逐步感到采用工程化的方法从事软件系统的研究和维护的必要性。于是,软件工程在1968年应运而生。
基本内容软件工程的主要对象是大型软件。软件工程研究的问题主要有:质量保证和质量评价;研制和维护的方法;工具系统、文件、用户界面的设计;软件管理等。
软件质量和质量评价技术软件工程的任务之一是提高软件质量。最初偏重可靠性和效率,后来更强调从易使用性、易维护性和易移植性等方面综合考察软件质量的整体特性。
易使用性包括可靠性、易 *** 作性和效率。可靠性指在一定的时期内软件在多次执行中不失败的概率,反映软件正确工作的程度。易 *** 作性表示系统能提供良好的用户界面,用户易学易用。效率指包括时间、空间在内的一切系统资源的有效利用程度。
易维护性包括易理解性、易修改性和易测试性。易理解性表示所研制的软件,不仅易为研制者本人所理解,而且也为别人容易理解。易修改性表示容易修正使用中发现的错误,也易于更新和扩充系统的功能,使软件能够适应环境的变化和满足用户的动态需求。测试是一个程序的执行过程,目的是为了寻找遗留的错误。
易移植性指将软件从一种环境移植到另一种环境的难易程度。
在明确了软件质量应具备的各种特性之后,还需要有各种评价软件质量特性的技术。
软件研制与维护技术在研制和维护的每个阶段,软件工程师都必须从实际情况出发,选用最适当的技术和方法。软件研制的每个阶段,都把前一阶段研制活动的结果作为本阶段的规格说明,并以此规格说明作为验证本阶段研制活动结果的根据。软件工程必须考虑如何对每个阶段进行充分的论证和检查,以防止错误传递到下一阶段。作为最早阶段的需求定义,是分析和记述用户的实际需要。获得一个正确的需求定义相当困难。然而,在包含有错误的需求定义的基础上研制软件,又会造成人力物力的极大浪费。因此,需求定义技术在软件工程中占有重要的地位。
维护有三类:第一是校正性的,即修正编码、设计乃至需求定义中的错误;第二是适应性的,这是系统运行环境改变所要求的;第三是完善性的,是用户要求增加新的功能而引起的。在一个实际的系统中,维护总是不可避免的。因此,在研制系统时,必须考虑到系统应是易维护的,以求尽量减少维护的工作量。计算机系统的大部分费用花在软件上,而软件的大部分费用又花在维护上。因此,软件工程要重视维护。
在软件研制和维护过程中,文件起着重要的作用。文件记载了软件生存周期各阶段产生的规格说明、各种决策,以及决策的依据,使软件研制和维护过程有章可循,有据可查。文件是软件的重要组成部分,是理解、使用、维护软件所不可缺少的资料。文件的标准化、形式化,以及文件的自动管理,也是软件工程的研究课题。
软件管理包括制订软件研制和维护计划,准备支援环境,监督实施,检查进度,协调人员之间的关系等。它的基本目的是在给定的研制维护费用和工程限期下,研制出符合用户功能要求和质量要求的软件系统。软件管理包括工程管理、质量管理、费用管理和人员组织管理等内容。为实现良好的软件管理,必须有完备的管理体制、正确的管理方针和有效的管理支援系统。
软件支援环境人们致力创造合适的软件支援环境,以提高软件生产率。各种高级语言、编辑程序、程序库和调试程序等软件工具,都在一定程度上改善软件支援环境。但是,早期的软件支援环境只支援编码实现、测试等阶段的某些工作,并不能为需求定义和设计等阶段提供适当的工具。较完备的软件支援环境,为从需求定义到维护的各个阶段工作提供适宜的环境和整体化的工具组,包括环境数据库、计算机辅助设计系统、接口软件、目标系统的模拟软件等。
软件工程的最终目的,是摆脱手工生产软件的状况,实现软件研制和维护的自动化。
- 参考书目
- 宫本勳,《ソフトゥェァエンジニァリング,现状と展望》,TBS出版会,東京,1982。I.Sommerville,Software Engineering,Addison-Wesley,London,1982.
参考文章
- 简述计算机软件工程动态测试中的白盒法。信息技术简述计算机软件工程中需求分析的基本任务和基本工作。信息技术简述计算机软件工程中软件结构设计的具体方法。信息技术简述计算机软件工程动态测试中的黑盒法。信息技术阐述计算机软件工程中详细设计的基本任务。信息技术简述计算机软件工程结构化分析(SA)方法的步骤。信息技术阐述计算机软件工程可行性研究的具体步骤。信息技术阐述计算机软件工程可行性研究的内容。信息技术
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)