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

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

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

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

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

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

计算机软件技术基础论文

 

论文题目:

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

班级:

信息学院硕研级八班

学号:

姓名:

胡国辉

 

信息学院

年月

摘要

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

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

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

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

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

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

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

关键词:

软件工程,开发,维护

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

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

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

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

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

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

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

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

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

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

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

    

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

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

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

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

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

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

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

 

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

 

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

  

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

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

  

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

二、软件工程的三段论

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

软件工程活动是“生产一个最终满足需求且达到工程目标的软件产品所需要的步骤”。

这些活动主要包括开发类活动,管理类活动和过程类活动,在这里将它定义为“软件工程的三段论”或者“软件工程的三线索”。

一段论是“软件项目管理论”,二段论是“软件项目过程论”,三段论是“软件过程的改进论”。

这三段可以用一个三角形表示,他们类似于相互支撑的三角形的三个边。

我们知道三角形是最稳定的,要保持三角形的稳定性,三角形的三个边必不可少,而且要保持一定的相互关系。

其中开发过程是软件人员生产软件的过程,例如需求分析,设计,编码,测试等,相当于生产线上的生产过程。

管理过程是项目管理者规划软件开发,控制软件开发的过程,相当于生产线上的管理过程,管理过程是伴随开发过程进行的过程。

过程改进,也就是维护,相当于对软件开发和管理过程的“工艺流程”进行管理和改进,如果没有好的生产不出好的产品,它包括对开发过程和管理过程的定义和改进。

为了保证软件管理,软件开发过程的有效性,应该保证这些过程的高质量和过程的持续性改进和维护。

二、软件工程控制的重要性

软件工程的七条基本原理:

 

1、用分阶段的生命周期计划严格管理   

有人经统计发现,在不成功的软件项目中有一半左右是由于计划不周造成的,可见把建立完善的计划作为第一条基本原理是吸取了前人的教训而提出来的。

  在软件开发与维护的漫长的生命周期中,需要完成许多性质各异的工作。

这条基本原理意味着,应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。

认为,在软件的整个生命周期中应该制定并严格执行六类计划,它们是项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划。

    不同层次的管理人员都必须严格按照计划各尽其职地管理软件开发与维护工作,绝不能受客户或上级人员的影响而擅自背离预定计划。

  

2、坚持进行阶段评审   

 当时已经认识到,软件的质量保证工作不能等到编码阶段结束之后再进行。

这样说至少有两个理由:

第一,大部分错误是在编码之前造成的,例如,根据等人的统计,设计错误占软件错误的,编码仅占;第二,错误发现与改正得越晚,所需付出的代价也越高。

因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。

 

3、实行严格的产品控制   

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

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

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

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

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

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

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

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

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

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

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

 

5、结果应能清楚地审查 

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

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

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

  

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

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

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

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

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

当开发小组人员数为时,可能的通信路径有(>)条,可见随着人数的增大,通信开销将急剧增加。

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

 

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

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

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

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

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

四、可维护性

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

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

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

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

、问题定义阶段

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

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

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

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

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

 、可行性研究阶段

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

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

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

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

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

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

 、需求分析阶段

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

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

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

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

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

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

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

、  一般设计阶段

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

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

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

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

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

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

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

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

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

  、详细设计阶段

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

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

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

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

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

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

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

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

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

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

使用单入口、单出口的控制结构,使得程序的静态结构和它的动态执行情况比较一致,有利于阅读理解,开发时比较容易保证程序的正确性,即使出现错误也比较容易诊断和纠正。

这些因素对软件可维护性的影响是显而易见的。

  、 编码阶段

 在编码阶段,程序设计语言的特性和编码途径都会对软件的可维护性产生深远影响。

在选择程序设计语言时,除考虑使用环境及语言本身特点等因素外,还要特别注重它对软件可维护性的影响。

在一般情况下,编码选用高级语言,而不用汇编语言。

所选高级语言是否具有理想的模块化机制,是否具有可读性好的控制结构和数据结构等,都会对软件的可维护性产生影响。

编程风格、程序设计方法同样也影响到软件的可维护性,这些都是在编码阶段应该特别注意的。

选择适当的程序设计语言,培养良好的编程风格,采用恰当的程序设计方法,都是提高软件可维护性的有效途径。

  、测试阶段

 测试阶段的任务是发现并改正软件中的错误。

通过测试,要保证软件能满足所有功能要求,能达到每个性能要求,并且文档资料是准确而完整的,这些无疑会对软件的可维护性产生影响。

文档资料是软件维护的重要依据,测试阶段必须对所有文档资料进行验证,在测试过程中应严格遵循用户指南以及其它操作规程,从而检验这些使用手册的完整性和正确性。

必须仔细记录所发现的遗漏或错误,并且适当地补充和改正,以利于软件的正确使用和维护。

测试计划、测试方案和测试结果是软件配置的重要成分,它们对软件的可维护性影响很大,因此必须仔细记录和保存。

  .、 维护阶段

  维护阶段是软件生存周期的最后一个阶段。

这一个阶段,也是持续时间最长、代价最大的一个阶段。

这一阶段的工作同样对软件的可维护性产生影响,不恰当地维护可能增加以后维护工作的难度。

维护过程本质上是修改和压缩了的软件定义和开发过程,要严格按照有关规程进行维护,建立一个适用于维护活动的记录保管过程。

在完成每项维护工作之后,都应该对软件维护本身进行仔细认真的复审,以保证维护后的软件仍具有较好的可维护性。

在维护过程中,要注意减少维护的副作用。

修改软件是危险的,每当在一个软件系统中引进一个变动,发生错误的可能性就增加一分。

要采取有效措施避免和减少修改编码、修改数据可能带来的副作用。

文档是影响软件可维护性的决定性因素。

维护应该针对整个软件配置,不应该只修改源程序代码。

当对源程序代码的修改没有反应在设计文档或用户手册中时,就会产生文档的副作用。

每当对数据、软件结构、模块过程或任何其它软件特点做了改动时,必须立即修改相应的技术文档。

不能准确反应软件当前状态的文档可能比完全没有文档更坏。

因为在以后的维护工作中很可能因文档不完全符合实际而不能正确理解软件,从而给维护工作带来混乱。

因此,在维护工作中注意始终保持文档的完整与准确,对以后理解和维护程序来说是极其重要的。

五、总结

本文简单介绍了软件工程来源于人们试图解决“软件危机”的过程中,软件工程正不断完善和发展中,已经形成一门方法学。

软件工程对软件生产的控制,起着不可替代的作用  ,软件工程开发和维护中各方面相互关联,均有重要作用,而这里着重 解释了可维护性的重要。

软件的可维护性是在软件开发的各个阶段形成的,所以,必须将提高软件的可维护性贯穿在软件开发的各个环节。

了解和掌握软件生存周期的各个阶段对软件可维护性的影响,对软件开发人员及广大软件维护人员的实际工作大有裨益。

参考文献

[]邓迎春《软件工程面向对象和传统的方法》[].北京:

机械工业出版社.

[]邢春晓,张勇.《项目管理》[].机械工业出版社

[]王峰《软件测试基础教程》)[].北京:

机械工业出版社.

[](英)《软件测试》[].人民邮电出版社

 

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

当前位置:首页 > 医药卫生 > 基础医学

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

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