论软件工程开发和维护中的重要性.docx

上传人:b****4 文档编号:1225287 上传时间:2022-10-19 格式:DOCX 页数:7 大小:127.94KB
下载 相关 举报
论软件工程开发和维护中的重要性.docx_第1页
第1页 / 共7页
论软件工程开发和维护中的重要性.docx_第2页
第2页 / 共7页
论软件工程开发和维护中的重要性.docx_第3页
第3页 / 共7页
论软件工程开发和维护中的重要性.docx_第4页
第4页 / 共7页
论软件工程开发和维护中的重要性.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

论软件工程开发和维护中的重要性.docx

《论软件工程开发和维护中的重要性.docx》由会员分享,可在线阅读,更多相关《论软件工程开发和维护中的重要性.docx(7页珍藏版)》请在冰豆网上搜索。

论软件工程开发和维护中的重要性.docx

论软件工程开发和维护中的重要性

论软件工程开发和维护中的重要性

计算机软件技术基础论文

 

论文题目:

论软件工程开发和维护中的重要性

班级:

信息学院硕研2011级八班

学号:

S1*******012

姓名:

胡国辉

 

信息学院

2011年12月

摘要

软件工程是软件领域为解决已经出现的“软件危机”问题而发展起来的新的领域。

软件工程是指导计算机软件开发和维护的工程科学。

随着软件工程的日臻完善,使软件的开发有了一套完整的科学方法,从而提高了软件系统的可靠性、可理解性和可维护性,提高了软件生产率,降低了开发成本。

       软件工程强调使用生存周期方法学和各种结构分析及结构设计技术。

软件生存周期每个阶段的工作都和软件可维护性有密切关系。

在软件生存周期的每个阶段都采用科学的管理技术和良好的技术方法,而且在每个阶段结束前都从技术和管理两个方面进行严格的审查,合格之后才开始下一阶段的工作,这就使软件开发工程的全过程以一种有条不紊的方式进行,保证了软件的质量,特别是提高了软件的可维护性。

本文先介绍软件工程的形成与与产生,再介绍软件工程控制的重要作用,然后通过下结合软件维护工作的实践探讨一下软件生存周期的各个阶段对软件可维护性的影响,从而指出了软件工程开发和维护中的重要性,特别强调了维护的重要作用。

关键词:

软件工程,开发,维护

软件工程开发和维护中的重要性

一、软件工程的形成与产生

软件工程的出现不是一个偶然的现象,而是软件领域为解决已经出现的“软件危机”问题而发展起来的新的领域。

早期的软件开发没有系统的方法可以遵循,基本是一个个体化的过程。

但随着软件的数量不断增长,需求日趋繁多,开发成本急剧提高,维护难度也越来越大,而失败的软件开发项目却屡见不鲜,导致大量的财产流失。

“软件危机”就这样被提出来了:

1968年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提出了“软件危机”(softwarecrisis)这个名词。

概括地说,软件危机包含两方面问题:

(1)如何开发软件,以满足不断增长,日趋复杂的需求;   

 

(2)如何维护数量不断增长的软件产品。

具体地说,软件危机主要有以下表现:

    

(1)对软件开发成本和进度估计不准,成本超出预算、进度严重超期的项目时有所见;   

 

(2)开发的软件系统无法满足用户的要求;    

(3)质量不可靠,Bug一大堆,Patch一个接一个;  

(4)可读性差,不利于修改扩充;    

(5)软件的维护跟不上硬件环境和用户需求的变化,可维护程度非常低,产品退化速度快;    

(6)软件开发需要投入大量、高强度的脑力劳动,成本非常高;   

(7)软件开发生产率的提高赶不上硬件的发展和应用需求的增长。

 

为了探寻摆脱“软件危机”的对策,北约的科技委员会提出了“软件工程”的概念,并在之后的几十年中不断完善和提高,以下是“软件工程”的定义:

 

软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。

  

软件工程包括两方面内容:

软件开发技术和软件项目管理。

  

软件开发技术包括软件开发方法学、软件工具和软件工程环境。

二、软件工程的三段论

如上所说软件工程是客服软件危机而提出的一种概念,并在实践中不断的探索它的原理,技术和方法,在此过程中,人们研究和借鉴了工程学的某些原理和方法,

实行严格的产品控制   

 在软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价,但是,在软件开发过程中改变需求又是难免的,由于外部环境的变化,相应地改变用户需求是一种客观需要,显然不能硬性禁止客户提出改变需求的要求,而只能依靠科学的产品控制技术来顺应这种要求。

也就是说,当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。

所谓基准配置又称基线配置,它们是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。

基准配置管理也称为变动控制:

一切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。

绝对不能谁想修改软件(包括尚在开发过程中的软件),就随意进行修改。

1、采用现代程序设计技术    

从提出软件工程的概念开始,人们一直把主要精力用于研究各种新的程序设计技术。

60年代末提出的结构程序设计技术,已经成为绝大多数人公认的先进的程序设计技术。

以后又进一步发展出各种结构分析(SA)与结构设计(SD)技术。

实践表明,采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。

 

2、结果应能清楚地审查 

 软件产品不同于一般的物理产品,它是看不峥摸不着的逻辑产品。

软件开发人员(或开发小组)的工作进展情况可见性差,难以准确度量,从而使得软件产品的开发过程比一般产品的开发过程更难于评价和管理。

为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查。

  

3、开发小组的人员应该少而精    

这条基本原理的含义是,软件开发小组的组成人员的素质应该好,而人数则不宜过多。

开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。

素质高的人员的开发效率比素质低的人员的开发效率可能高几倍至几十倍,而且素质高的人员所开发的软件中的错误明显少于素质低的人员所开发的软件中的错误。

此外,随着开发小组人员数目的增加,因为交流情况讨论问题而造成的通信开销也急剧增加。

当开发小组人员数为N时,可能的通信路径有N(N?

/FONT>1)/2条,可见随着人数N的增大,通信开销将急剧增加。

因此,组成少而精的开发小组是软件工程的一条基本原理。

 

4、承认不断改进软件工程实践的必要性  

  遵循上述六条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但是,仅有上述六条原理并不能保证软件开发与维护的过程能赶上时代前进的步伐,能跟上技术的不断进步。

因此,Boehm提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原理。

按照这条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验,例如,收集进度和资源耗费数据,收集出错类型和问题报告数据等等。

这些数据不仅可以用来评价新的软件技术的效果,而且可以用来指明必须着重开发的软件工具和应该优先研究的技术。

四、可维护性

 软件工程强调使用生存周期方法学和各种结构分析及结构设计技术。

软件生存周期每个阶段的工作都和软件可维护性有密切关系。

在软件生存周期的每个阶段都采用科学的管理技术和良好的技术方法,而且在每个阶段结束前都从技术和管理两个方面进行严格的审查,合格之后才开始下一阶段的工作,这就使软件开发工程的全过程以一种有条不紊的方式进行,保证了软件的质量,特别是提高了软件的可维护性。

下面结合软件维护工作的实践探讨一下软件生存周期的各个阶段对软件可维护性的影响。

1、问题定义阶段

 问题定义阶段的关键任务,是确切地定义用户要求解决的问题,也就是确定问题的性质、工程的目标和规模。

在软件定义阶段就使开发人员、用户及使用单位的管理人员对问题的性质、工程的目标和规模取得完全一致的看法,这对确保开发工程的成功是至关重要的,同时也有利于使用中的维护。

如果对问题定义不准确,最终开发出来的系统就不适用,就会给维护带来困难,甚至使系统失去价值。

在软件开发的第一步,清楚简洁地提出问题,使软件开发人员与应用部门都有个清晰、正确的认识,对后续的开发和应用工作有重要的指导作用。

同时,由于有些业务的处理方法本身不够成熟、稳定,需要解决的问题也不可能考虑得很全面、完善,又没有一套完整的手工处理系统可供参考,这就要求系统易于补充、完善和增加新的功能,也就是说要具备较好的可维护性。

 2、可行性研究阶段

可行性研究就是要看对所定义的问题是否有行得通的解决办法,其目的不是解决问题,而是确定问题是否值得去解。

要通过大量的调查研究和客观分析,判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度,并对推荐的系统方案进行仔细的成本效益分析,因此,可行性研究实质上是要进行一次压缩了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行系统分析和设计的过程,这个过程必然会对未来系统的可维护性产生影响。

首先,推荐的系统方案应具备较好的可维护性;

其次,使用的技术应该是成熟的并足以实现这个系统的功能,同时还要求这些技术有较强的维护手段;

第三,要具备良好的人机界面,用户较容易掌握系统的操作方法,既方便用户,也有利于系统维护人员与用户之间的交流、协作。

总之,在系统的可行性研究阶段就要考虑系统的可维护性,提供良好的维护环境。

 3、需求分析阶段

 需求分析是软件工程的一个重要阶段,这个阶段的任务是准确地确定目标系统必须做什么,也就是要确定目标系统必须具备哪些功能。

同时,需要确定系统的运行环境,并且预测系统发展的前景。

需求分析阶段要求提出完整准确的系统逻辑模型,它是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。

系统逻辑模型必须经过用户确认之后才能进入下一个阶段,这就可以有效地防止和克服急于着手进行具体设计的倾向。

如果这一阶段考虑不周,遗漏了某些应有的功能,就会增加软件完善性维护的工作量和难度。

另外,在需求分析阶段还要考虑将来可能提出的要求。

这样做的目的,是在设计过程中对系统将来可能的扩充和修改预先做准备,以便一旦需要时能比较容易地进行扩充和修改,从而提高系统的可维护性。

4、  一般设计阶段

一般设计阶段的基本目的是用比较抽象概括的方式确定系统如何完成预定的任务,要从若干个合理方案中选择一个最佳方案,确定系统的物理配置方案以及组成系统的每个程序的结构。

这个过程的每一步都会对未来系统的可维护性产生影响。

在制定备选方案时,要考虑组成系统的各个物理元素(如程序、文件、数据库、人工过程和文档等)对系统可维护性有何影响,并在选择最佳方案的过程中注意改善系统的可维护性。

本阶段所设计的软件结构对可维护性影响极大。

功能模块化是容易维护的一个关键因素,开发具有独立功能而且和其他模块之间没有过多相互作用的模块,对维护极为有利,否则维护就困难,甚至无法维护。

耦合和内聚是衡量模块独立程度的两个定性标准。

模块间的耦合越低越易维护。

因此在设计时力争做到高内聚,并且能够辩认出低内聚的模块,通过修改设计来提高模块的内聚程度,降低模块间的耦合程度,获得较高的模块独立性,从而提高软件的可维护性。

软件的结构设计合理,就可提高软件的可理解性、可测试性和可靠性,对软件的维护工作极为有利。

  5、详细设计阶段

 详细设计阶段的目标是确定应该怎样具体地实现所要求的系统。

经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。

这一阶段的设计,基本上决定了最终程序代码的质量。

详细设计的目标不仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程尽可能简明易懂、容易阅读和理解。

结构程序设计技术是实现上述目标的关键技术,因此是详细设计的逻辑基础。

结构程序设计是一种设计程序的技术,它采用自顶向下逐步求精的设计方法和单入口、单出口的控制结构。

使用这项技术,创立了一种新的程序设计思想、方法和风格,显著地提高了软件的生产率,降低了软件的维护代价。

在软件开发过程中能否充分体现结构程序设计的基本原理,对软件的可维护性有直接的影响。

采用自顶向下逐步求精的方法,符合人类解决复杂问题的普遍规律。

用先全局后局部、先整体后细节、先抽象后具体的逐步求精过程,开发出的程序有清晰的层次结构,容易阅读理解。

使用单入口、单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致,有利于阅读

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1