论软件工程在软件开发与维护过程的指导意义和实际作用
软件工程既涉及到工程技术,也涉及到系统方法,是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的观念技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效维护它。软件工程本质特性:1.软件工程关注与大型程序的构造;2.软件工程额中心课题是控制复杂性;3.软件经常变化;4.开发软件的效率非常重要;5.和谐的合作是开发软件的关键;6.软件必须有效地支持它的用户。7.在软件工程领域中是由一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程的目标是提高软件的质量与生产率,最终实现软件的工业化生产。质量是软件需求方最关心的问题,用户即使不图物美价廉,也要求个货真价实。生产率是软件供应方最关心的问题。质量与生产率之间有着内在的联系,高生产率必须以质量合格为前提。如果质量不合格,对供需双方都是坏事情。从短期效益看,追求高质量会延长软件开发时间并且增大费用,似乎降低了生产率。从长期效益看,高质量将保证软件开发的全过程更加规范流畅,大大降低了软件的维护代价,实质上是提高了生产率,同时可获得很好的信誉。质量与生产率之间不存在根本的对立,好的软件工程方法可以同时提高质量与生产率。
软件工程在软件开发和维护过程中有重要的指导意义。 软件开发是根据用户要求建造出软件系统或者系统中的软件部
分的过程。软件开发是一项包括需求分析、设计、实现和测试的系统工程。在软件开发需要经过若干个过程,而软件工程的思想在其中起到了指路明灯的作用。在项目开始,要保证风险承担者对于他们如何判断项目是否成功有统一的认识从而定义项目成功的标准。每个项目需要平衡它的功能性,人员,预算,进度和质量实现识别项目的驱动、约束和自由程度。在项目早期决定用什么标准来确定产品是否准备好发布了。可以把发布标准基于:还存在有多少个高优先级的缺陷、性能度量、特定功能完全可操作、或其他方面表明项目已经达到了它的目的。做好需求分析与用户及时沟通从而减少项目实施后期带来的不必要的错误。还需要进行任务分解,可以更加精确的进行估计,从而暴露出没有预想到的可能发生的意外情况,有计划的进行项目开发可以有效的控制质量活动,在测试和评审中有效的发现缺陷提高性能。在管理项目的风险方面,如果不去识别和控制风险.那么它们会控制你。在项目计划时花一些时间集体讨论可能的风险因素,评估它们的潜在危害,并且决定如何减轻或预防它们。更重要的是根据工作计划而不是日历来作估计人们通常以日历时间作估计,但是倾向于估计与任务相关联的工作计划(以人时为单位)的数量,然后把工作计划转换为日历时间的估计。这个转换基于每天可以有多少有效的小时花费在项目任务上,可能碰到的任何打断或突发调整请求,会议,和所有其他会让时间消失的地方。
软件维护是软件生命周期中的最后一个阶段也是最重要的历时最长的一个阶段,处于系统投入生产运行以后的时期。而软件维护又与
普通的商品维护不一样,因为软件产品在重复使用的过程中不会像车辆、电器那样有磨损,所谓软件维护,就是指软件系统交付使用以后,为了改正软件运行错误,或者为了满足新的需求而加入新功能的修改软件的过程。在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。 软件维护活动类型总起来大概有四种:纠错性维护(校正性维护)、适应性维护、完善性维护或增强、预防性维护或再工程。除此四类维护活动外,还有一些其它类型的维护活动,如:支援性维护(如用户的培训等)。一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。
对软件而言,“维护”是个不太直观的术语,因为软件产品在重复使用时不会被磨损,并不需要进行像对车辆或电器那样的维护。软件维护是人们对既丰富多彩又会令人心酸的活动的统称。其中丰富多
彩的活动是指哪些永无休止,并且改了旧错又出新错让人欲哭无泪的工作,从此看来软件工程具有其重要且不可或缺的作用。 在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。软件工程在软件开发和维护过程中不可代替,只有将其运用其中,才能使项目的实现变得简洁,简单,方便,更易实现!