软件开发阶段应遵循的七个原则

更新时间:2019-10-17 来源:工程论文 点击:

【www.rjdtv.com--工程论文】

摘要

  1 概述

  随着计算机不断普及,作为计算机重要组成部分之一的软件,也成为当今热门话题,其开发及过程也得到人们重视。在软件开发过程中,为了使软件项目能够按照预定的成本、进度、质量顺利完成,就必须对 People(人员)、Product(产品)、Proces(s过程)和 Projec(t项目)进行计划、组织、指导、控制,这一系列活动我们把它称之为软件项目管理。

  追寻它的历史,它开始于项目组的产生,并贯穿于软件的整个生命周期。其活动包含测度和度量、估算、风险分析、进度安排和跟踪、质量保证、配置管理等环节。其主要内容包括如下几个方面:人员的组织与管理,软件度量,软件项目计划,风险管理,软件质量保证,软件过程能力评估,软件配置管理等。

  软件项目管理的对象是软件工程项目。它涉及的范围覆盖了整个软件工程开发的过程。为使软件项目开发成功,我们要对软件项目的工作范围、可能风险、需要资源(人、硬件/软件)、要实现的任务、经历的阶段、花费的工作量(成本)、进度安排等等都要做到心中有数,否则将是一场徒劳的行动。软件项目管理是 20 世纪 70 年代中由美国首先提出。

  当时美国国防部专门研究了软件开发不能按时提交,预算超支和质量达不到用户要求的原因,结果发现 70%的项目是因为管理不善引起的,而非技术原因。于是软件开发者开始重视起软件开发中的各项管理。长期实践证明,软件项目管理应包括软件配置管理、项目跟踪和控制管理、软件风险管理及项目策划活动管理四方面内容,其根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期、按质的完成软件并交付用户使用。

  20 世纪 90 年代中,软件研发项目管理不善的问题仍然存在。据美国软件工程实施现状的调查,软件研发的情况仍然很难预测,大约只有 10%的项目能够在预定的费用和进度下交付。随着我国软件行业快速发展,软件开发越来越得到重视并成为热门。但就目前现状,开发行业普遍缺乏完善的项目管理理念与模式,从而导致各项管理工作难以达到预期的效果,严重影响了软件开发的成本、质量、进度等。因此笔者就开发阶段应该遵循哪些原则,做一些探讨。

  2 七条基本原则

  从软件工程的角度讲,软件开发主要分制定计划、需求分析段、概要设计、详细设计、编码、测试、安装及维护七个阶段,而应该重点将软件配置管理、项目跟踪和控制管理、软件风险管理及项目策划活动管理四方面内容导入软件开发的整个阶段。从实际来看,无论是单独的作坊式开发,还是团队协作的集体式开发,这七个阶段都是不可缺少的。为了有效地开发软件,在 20 世纪 80 年代初,着名软件工程专家B.W.Boehm曾总结出了软件开发时需遵循的七条基本原则。但是后来人们在总结经验时,发现在进行软件项目管理时,也应该遵循这七条原则。

  2.1 分阶段严格管理

  这是吸取前人的教训提出来的。随着用户需求的多样化,软件系统越来越复杂,而复杂性带来的结果是软件开发管理越来越困难。许多软件开发团队没有适时地改变其管理模式,越来越多的软件开发项目也就呈现出管理失控和混乱的迹象。

  什么是软件开发生命周期?同世界上任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡的过程,这被称为软件生命周期。而软件开发生命周期(SDLC)则是指软件开发的全部过程、活动和任务的结构框架。许多软件开发商提出过各种软件生命周期的方法论,有人将“SDLC”解释为一组步骤或者里程标。“SDLC”一般步骤必须经过这样的过程:确定问题、可行性分析与开发计划、收集需求、分析与设计、编码开发、测试、安装、维护。这里笔者要说的是,在整个软件生命周期中,应分阶段地严格管理生命周期计划,这些计划有六个,即项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。只有管理好这些计划,软件项目或产品在整个软件生存周期之内才能保障其进度,提高质量,降低成本。

  2.2 阶段评审

  无论新开发或正在开发的软件系统还是子系统,根据《软件可靠性和可维护性管理GB/T14394-2008》,在软件开发各阶段都要求进行评审。评审时,要按照 GB 8566(计算机软件开发规范)的规定认真进行定期或阶段性各项评审工作。这些评审与软件可靠性、可维护性有关,如需求评审和设计(包括概要和详细两种)评审,还包括概念评审、测试评审、安装和验收评审、管理评审(软件用户手册评审)等。

  评审不是一次就能完成,根据实际情况,应该是多次。有成功人士的经验时有了三次。第一次是对软件需求、概要设计以及验证与确认方法进行评审。第二次是对详细设计、功能测试与演示进行评审,并对第一次评审结果进行复核。第三次是进行功能检查、物理检查和综合检查。这些评审会应在集成测试阶段结束后进行。

  2.3 严格控制产品

  软件项目的立项,应由软件的需求单位根据自身业务的工作需要,向信息技术管理部门提出软件项目的立项建议,对立项目的、业务需求范围、技术经济指标、开发周期要求等方面做简要概述,由信息技术管理部门组织业务专家和信息技术专家组成联合专家组,进行项目立项的可行性论证。

  在软件开发过程中,不应随意改变需求,因为改变一项需求往往需要付出很高的代价。但是实践告诉我们,需求的改动往往是不可避免的。这就要求我们要采用科学的产品控制技术来顺应这种要求,采用变动控制,又叫基准配置管理。当改变需求时,为了保持软件各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。当需求变动时,其它各个阶段的文档或代码随之相应变动,以保证软件的一致性。

  2.4 现代程序设计

  从 20 世纪 60、70 年代的结构化软件开发技术,到今天的面向对象程序设计,从第一代的机器语言,第二代的汇编语言,第三代的高级语言(算法语言),到第四代的非过程化语言直到今天的第五代的智能性语言,人们已经充分认识到这样一个道理,那就是“方法大于气力”.采用先进的技术既可以提高软件开发的效率,也可以减少软件维护的成本。

  2.5 结果能审查

  软件是一种看不见、摸不着的东西。软件开发者的工作进展情况可见性差,难于评价和管理。为了提高软件开发过程的可见性,更好地进行管理,应根据软件开发的总目标及完成期限,尽量明确地规定开发者的责任和产品标准,从而使所得到的标准能清楚地审查。

  2.6 开发人员少而精

  该原则意味着,软件开发项目的组成人员素质应该好,而人数则不宜过多。开发者的素质和数量是影响软件产品质量和开发效率的重要因素。素质高的人的开发效率比素质低的人员的开发效率可能高几倍至几十倍,而且素质高的人所开发的软件中的错误明显少于素质低的人所开发的软件。当开发者为 N人时,可能的通讯信道为 N(N-1)/2,可见随着人数 N的增大,通讯开销将急剧增大。此外,随着开发小组人员数目增加,因交流问题而造成的沟通成本也急剧增加。构建和维持少而精的开发团队甚至标杆团队是软件工程的一条基本原理。

  2.7 不断改进软件工程

  一般说来遵从了上述六条原则,就能较好地实现软件的工程化生产。但它们只是对现有的经验的总结和归纳,并不能保证赶上技术不断发展的步子。因此,美国着名的软件工程专家巴利·玻姆提出了应把承认不断改进软件工程实践的必要性作为第七条原则。

  根据这条原则,不仅要积极采纳新软件开发技术,还要注意不断总结经验,收集进度和消耗等数据,进行出错类型和问题报告统计。这些数据既可用来评估新软件技术的效果,也可用来指明必须着重注意的问题和应该优先进行研究的工具和技术。

  随着人们对计算机软件的不断深入和了解,以及市场上对于这些软件需求,要做好软件开发,就得建立一支高素质的队伍,而这支高素质的队伍,一定要遵循以上的七条原则,这样才能使软件项目更加贴近用户需求,更加满足市场需要。

  参考文献:

  [1] 康一梅。软件项目管理[M].清华大学出版社,2010.

  [2] 瞿中等。软件工程[M].机械工业出版社,2011.

本文来源:http://www.rjdtv.com/gongchenglunwen/1649.html