1、关于对软件工程控制的几点体会摘要:随着软件工程技术的飞速发展,对于软件工程控制越来越受到人们的重视,本文通过对软件工程过程中所出现的问题进行分析,再根据笔者从事软件工程控制的实践经验,提出在对软件工程进行控制时需要遵循的原理,相信本文对软件工程控制的研究有着一定的指导作用。关键词:软件工程;控制;体会 Abstract: With the rapid development of software engineering technology, in software engineering control is more and more get peoples attention。 Thi
2、s paper carries on the analysis for the problems in the process of software engineering, according to the experience of the author , put forward to control the software engineering in the need to follow the principle of trust in this paper, the research of software engineering control has a certain
3、guiding role. Keywords: Software engineering; Control; Experience 中图分类号:TN711 文献标识码:A 1、前言 为了便于对软件开发工作进行计划和控制,需要对整个软件开发的工作进行划分,抽象出几个相对独立的流程,它们分别是需求、分析、设计、实施、测试、部署、项目管理、配置与变更管理、环境支持 9 个工作流程,其中前 6 个为核心工作流程,后 3 个为附加流程,为前者更好的进行提供支持服务。每个流程都分别处理不同的工作,需要不同的技能。它们之间有明显的前后顺序。每个流程结束后都应做适当的评审,需求分析结束后必须做正式而严格的评审
4、。 虽然近些年软件开发工具得到很大的发展而完善,可是在软件开发过程中还是显现出很多的问题,在这种背景下,软件开发者越来越重视软件开发,综合起来看,软件开发过程中主要有以下问题: 一是软件开发者对软件开发的成本和进度的估计不足。在实际的软件产品研发过程中,实际中所花费的成本在计划的基础上很可能高出一大截,而且在研发过程中由于某种突发情况,使得实际软件开发进度比预期中要往后拖延几个月甚至几年。这种现象产生后,对该软件开发团队的信誉是个极大的打击。当团队做出要敢抢进度和节约成本时,则必须要采取一些非常手段则会损害软件产品的质量和使用效果,这又使得用户不满。 二是用户对已经交付的软件系统由于为达到预期
5、要求而不满意。由于软件开发人员在软件开发前,在与用户的交流沟通中并不能做到完全把握,只是对客户要求能做到模糊了解,在不能确切认识用户需要解决问题的情况下,就仓促上马忙于编写程序。这未建立在充分的信息交流和沟通基础上则会造成两者信息交流不流畅,使得软件开发人员闭门造车,而这生产出来的产品必然导致于用户的实际需要不符情况的发生。 三是软件产品因为多方面原因并不能够完全靠得住。在软件开发过程中,由于对软件可靠性和软件质量保证进行定量很难做到确切,并未全过程的使用审查、复审和测试软件来进行软件质量保证,这些问题都可以导致产品出现质量问题。 四是有些软件不能够进行维护。在软件开发过程中,很多开发出来的程
6、序显示出来的错误并不能够进行改正或者改正的难度特别大,在实际应用上如果碰到新的硬件环境则这些程序不可能适用,只能根据用户新的需要另外再增加一些相对应的新功能。对于可重复使用这个软件目标是我们软件开发者积极寻求的目标,但在实际过程中依然再进行着重复开发类似或者是基本类似的软件。 五是软件成本逐年增加导致在计算机体系总成本中的比例越来越高。虽然这些年由于微电子技术的发展和软件生产自动化程度的提高,在计算机系统中硬件开发的成本逐渐呈现下降趋势,可是在软件开发过程中,依然需要花费大量的人力、物力和财力,并且这些年通货膨胀压力增大和软件开发规模扩充使得软件成本显现连年上升的趋势。 六是软件通常没有适当的
7、文档资料。计算机软件不仅仅是程序,还应该有一整套文档资料。这些文档资料应该是在软件开发过程中产生出来的,而且应该是“最新式的” (即和程序代码完全一致的) 。软件开发组织的管理人员可以使用这些文档资料作为“里程碑” ,来管理和评价软件开发工程的进展状况;软件开发人员可以利用它们作为通信工具,在软件开发过程中准确地交流信息;对于软件维护人员而言,这些文档资料更是至关重要必不可少的。缺乏必要的文档资料或者文档资料不合格,必然给软件开发和维护带来许多严重的困难和问题。 二、软件工程控制的基本原理分析 一是使用分阶段的生命周期理论严格管理。在对不成功的软件项目进行统计发现,其中有一半都是由于计划的不周
8、详而造成的,因此以后在进行软件项目开发时,首先就应当建立起完善的计划,这一条正是在总结前人的经验教训中的出来的。在软件开发和维护的生命周期中,需要软件开发者完成各项性质各异的工作。所以为保证生命周期里软件能得到最大限度的利用,则必须把软件的生命周期分为若干个阶段,对这些分好的阶段再相应的切实可行计划来完成,在工作中必须严格按照计划对软件开发和维护的工作进行管理。一半来说,根据经验软件开发的生命周期例细分为项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划着六大阶段。所有的软件开发人员各司其职,严格按照计划进行管理软件开发和维护工作,决不能因为上级或者用户的影响而去改变
9、预定的计划。 二是坚定的使用阶段评审对软件进行评价。先软件开发过程中,对软件的质量保证不能等到编码阶段结束后再进行,因为绝大多数的错误都是在编码之前就造成的,并且当错误发现得越晚,所需要付出的代价也就越大。所有要做到在每个阶段都进行严格的评审,使得我们可以尽早的发现软件开发过程中所犯的错误。 三是实行严格的产品控制。由于外部环境的变化,要求软件开发人员相应的改变用户需求,这只能够依靠科学的产品控制来顺应改变需求。当用户改变需求情况发生时,为了保持软件所属的各个配置成分一致性,则必须对产品实行严格的产品控制,而这其中最主要就是实行基准配置管理。经过阶段评审后的各个阶段产生的文档或程序代码。 四是
10、采用现代程序设计技术。在软件工程概念提出之后,软件开发人员的精力就致力于研究各种新的程序设计技术。而结构程序设计技术的提出后,陆续被绝大多数人所接受,也进一步发展出各种结构分析(SA)与结构设计(SD)技术。采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。 五是结果应当能够进行清楚的审查。由于对于软件开发的工作进展可见性差,不能够准确的进行度量,这就使得软件产品的开发过程比一般产品的开发过程更难于评价和管理,为此,为了加强对软件开发的管理,则由必要根据软件开发项目的总目标及完成期限要求,科学性的规定开发组织内成员的各项责任和所生产出来的产品标准,从而使得所得到的结果能够清楚地接受
11、审查。 六是软件开发小组人员保持精干。由于软件开发小组成员的素质水平直接影响着软件产品质量和软件产品的开发效率,为此在对软件开发小组人员的挑选上,一定要把那些素质好的选进来,当然也并不是人员越多越好,因为随着开发小组人员数目的增加,因为交流情况讨论问题而造成的通信开销也急剧增加。所以要进行总体控制。 软件工程成功地解决了软件开发中存在的许多问题。它不仅对软件开发、设计和生产有直接影响,而且对提高软件质量有显著成效。实践表明,使用软件工程方法,可达到一般的质量要求。但当软件质量要求更高时,则必须在实施软件工程的同时,采取一些专门的可靠性工程技术和方法,以保证需求的可靠性。软件工程控制的目标是保证项目以较低成本按期完成,同时还要满足用户需求。因此项目管理必须围绕着费用、工期和质量三个要素进行。合理分工和技术复用是降低开发软件成本的有效途径。工作流程划分和角色划分是合理分工的基础。成立软件工程小组、技术支持小组及客户支持小组可以对不同技能的人进行优化组合,实现有效的技 术复用。迭代式开发流程和制定开发计划是保证工期的有效途径。完善的需求分析、阶段评审、测试及统一的软件工程文档是保证软件质量的有效途径。 参考文献: 1李友仁.软件工程与软件质量分析M.电子工业出版社,1987 2张长森,王辉,雒芬.软件工程课程教学体系研究J.理工高教研究,2005,1