4、软件工程原理
(1)什么是软件工程?
软件工程是指导计算机软件开发和维护的一门学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
以下是NATO和IEEE给出的软件工程定义:
- NATO(1968):为了经济地获得可靠的且能在实际机器上运行的软件,而建立和使用完善的工程原理。
-
IEEE(1993):1)把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,即把工程应用于软件;2)研究1)中的途径。软件工程是开发、运行、维护和修复软件的系统方法。
(2)软件工程的本质特性
从前面的定义可以看出,软件工程从本质上就是为了解决软件危机。具体可总结为如下几条:
- 软件工程关注于大中型程序的构造。大中型程序相对比较复杂,因此有必要采用系统的工程理论与方法,规范软件的开发和维护过程,以保障软件的质量。
-
软件工程的中心课题是控制复杂性。软件所解决的问题十分复杂,以致于不能把问题作为一个整体通盘考虑,只能采用模块化分解的方法解决。模块化方法并不能降低问题的整体复杂性,但是却使它变成可以管理的。许多软件的复杂性主要不是由问题的内在复杂性造成的,而是由必须处理的大量细节造成的。
-
提高开发软件的效率。现实世界在不断的变化,软件为了不被很快的淘汰,必须随着所模拟的现实世界一起变化。如何更快的适应需求的变化,是软件工程面临的重要挑战。
-
注重团队合作。软件处理的问题十分庞大,必须许多人协同工作才能解决这类问题。纪律是成功地完成软件开发项目的一个关键,良好的团队合作有利于项目的成功。软件开发人员必须学会合作与沟通,才能保证软件的质量和开发效率。
-
充分了解用户需求。在软件工程领域中是由具有一种文化背景的人为另一种文化背景的人创造产品。缺乏应用领域的相关知识,是软件开发项目出现问题的常见原因。软件工程师不仅缺乏应用领域的实际专业知识,还缺乏该领域的文化知识。因此有必要通过访谈、阅读书面文件等方法了解用户组织的工作流程,然后用软件实现。
(3)Boem软件工程原理
著名的软件工程专家巴利.玻姆(Barray W. Boehm)总结了七条软件工程基本原理并指出这七条原理是保证软件产品质量和开发效率的原理的最小集合。
|
注:巴利.玻姆(1935-2022)是一位美国计算机科学家和软件工程师,曾在多家知名机构工作,包括IBM、美国国家航空航天局和南加州大学(USC)。他对软件工程领域做出了重大贡献(开发软件工程经济学模型、螺旋模型等),并因其工作获得了许多奖项,包括软件工程研究所的史蒂文斯奖和IEEE哈兰·D·米尔斯奖。详细介绍可参阅百度百科。
(4)二八定律(帕雷托法则)
二八定律是一种经济学原理,也被称为帕累托定律。该定律认为,在一个系统中,大约80%的结果是由20%的原因所决定。这个原则也可以应用于软件工程领域,即:
- 对软件项目进度和工作量的估计:一般主观上认为已经完成了80%的,往往实际上只完成了20%;
- 对程序中存在的问题的估计:80%的问题往往存在于20%的程序之中;
- 对模块功能的估计:20%的模块实现了80%的功能;
- 对人力资源的估计:20%的人解决了软件中80%的问题;
- 对投入资金的估计:企业信息系统中80%的问题,可以用20%的资金来解决。
注:帕累托定律又称帕累托分析法或巴雷托分析法、柏拉图分析、主次因分析法 、ABC分析法、分类管理法、物资重点管理法、ABC管理法、abc管理、巴雷特分析法,平常我们也称之为“80对20”规则是由意大利经济学家维尔弗雷多·帕累托首创的。帕雷托通过长期的观察发现:美国80%的人只掌握了20%的财产,而另外20%的人却掌握了全国80%的财产,而且很多事情都符合该规律。于是他应用此规律到生产上。详细介绍可参阅百度百科。