软件工程的七条基本原理

原创 2005年03月03日 19:56:00
软件工程的七条基本原理
选自:松耦合空间制作组

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

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

在软件开发与维护的漫长的生命周期中,需要完成许多性质各异的工作。这条基本原理意味着,应该把软件生命周期划分成若干个阶段,并相应地制定出切实可行的计划,然后严格按照计划对软件的开发与维护工作进行管理。Boehm 认为,在软件的整个生命周期中应该制定并严格执行六类计划,它们是项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划。

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

2、坚持进行阶段评审

当时已经认识到,软件的质量保证工作不能等到编码阶段结束之后再进行。这样说至少有两个理由:第一,大部分错误是在编码之前造成的,例如,根据Boehm 等人的统计,设计错误占软件错误的63%,编码仅占37%;第二,错误发现与改正得越晚,所需付出的代价也越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。

3、实行严格的产品控制

在 软件开发过程中不应随意改变需求,因为改变一项需求往往需要付出较高的代价,但是,在软件开发过程中改变需求又是难免的,由于外部环境的变化,相应地改变 用户需求是一种客观需要,显然不能硬性禁止客户提出改变需求的要求,而只能依靠科学的产品控制技术来顺应这种要求。也就是说,当改变需求时,为了保持软件 各个配置成分的一致性,必须实行严格的产品控制,其中主要 是实行基准配置管理。所谓基准配置又称基线配置,它们是经过阶段评审后的软件配置成分(各个阶段产生的文档或程序代码)。基准配置管理也称为变动控制:一 切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都必须按照严格的规程进行评审,获得批准以后才能实施修改。绝对不能谁想修改软件(包括尚在开 发过程中的软件),就随意进行修改。

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

从 提出软件工程的概念开始,人们一直把主要精力用于研究各种新的程序设计技术。60年代末提出的结构程序设计技术,已经成为绝大多数人公认的先进的程序设计 技术。以后又进一步发展出各种结构分析(SA)与结构设计(SD)技术。实践表明,采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。

5、结果应能清楚地审查

软 件产品不同于一般的物理产品,它是看不峥摸不着的逻辑产品。软件开发人员(或开发小组)的工作进展情况可见性差,难以准确度量,从而使得软件产品的开发过 程比一般产品的开发过程更难于评价和管理。为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任 和产品标准,从而使得所得到的结果能够清楚地审查。

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

这 条基本原理的含义是,软件开发小组的组成人员的素质应该好,而人数则不宜过多。开发小组人员的素质和数量是影响软件产品质量和开发效率的重要因素。素质高 的人员的开发效率比素质低的人员的开发效率可能高几倍至几十倍,而且素质高的人员所开发的软件中的错误明显少于素质低的人员所开发的软件中的错误。此外, 随着开发小组人员数目的增加,因为交流情况讨论问题而造成的通信开销也急剧增加。当开发小组人员数为N时,可能的通信路径有N(N?/FONT> 1)/2条,可见随着人数N的增大,通信开销将急剧增加。因此,组成少而精的开发小组是软件工程的一条基本原理。

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

遵 循上述六条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但是,仅有上述六条原理并不能保证软件开发与维护的过程能赶上时代前进的步 伐,能跟上技术的不断进步。l因此,Boehm提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原理。按照这条原理,不仅要积极主动地 采纳新的软件技术,而且要注意不断总结经验,例如,收集进度和资源耗费数据,收集出错类型和问题报告数据等等。这些数据不仅可以用来评价新的软件技术的效 果,而且可以用来指明必须着重开发的软件工具和应该优先研究的技术

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

细说软件工程的七条基本原理

细说软件工程的七条基本原理 ChinaItLab  2005-4-4 16:27:00  保存本文  推荐给好友  QQ上看本站  收藏本站 ...

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

软件工程的七条基本原理:经典 软件工程的七条基本原理 (本文从AKA杂志转载)   自从1968年提出“软件工程”这一术语以来,研究软件工程的专家学者们陆续提出了100多条...

基本原理配套工程

  • 2014-03-05 11:53
  • 256KB
  • 下载

《软件工程-原理、方法、工具》观后总结之一

一、面向过程的软件工程      1、需求分析方法:    数据流图->数据字典->加工逻辑描述                 1) ...

通过一个简单控制台的实现来漫谈软件工程基本概念

之前我曾写过同样内容的文章并发表在我的CSDN博客。我让我的同学过目,但他似乎并没有看懂。然后我就卸下来了。因为我感觉我的文笔确实不够好,很多道理阐述的过于冗杂,让别人无所适从。在此,又重写之,估计已...

关于软件工程的一些基本概念

一直对软件工程中的很多概念都混淆不清,因此查找了相关资料,对很多概念进行了总结,现在脑子终于清楚了! 1.软件生命周期(SDLC,Software Devlopment Life Cycle)  ...

软件工程基本知识

(1)什么是软件工程: 软件工程是指通过工程化的概念、概念和方法来开发和维护软件。把经过时间考验证明正确的管理技术与当前最新的技术方法相结合。 (2)软件工程的原则: 抽象、信息隐藏、模块化、局...

软件工程之——各个阶段的基本任务和结束标准

1问题定义、2可行性研究 、3需求分析 、4总体设计(概要设计)、5详细设计、6编码和单元测试、7综合测试、8软件维护 1问题定义 问题定义阶段必须回答的关键问题:“要解决的问题是什么?”如果...
  • statdm
  • statdm
  • 2011-04-11 13:44
  • 1335

软件工程基础与数据库基础(基本的概念)

一、软件工程基础

哈希(Hash)与加密(Encrypt)的基本原理、区别及工程应用

0、摘要       今天看到吉日嘎拉的一篇关于管理软件中信息加密和安全的文章,感觉非常有实际意义。文中作者从实践经验出发,讨论了信息管理软件中如何通过哈希和加密进行数据保护。但是从文章评论中也...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)