联系我们contact

电 话:13902182895
联 系 人:张经理
地  址:天津市开发区第三大街豪威大厦1602
 

首页 > 新闻中心 > 软件工程的诞生

新闻中心

软件工程的诞生

    时间:2019-04-26

  在计算机发展初期,程序设计是少数聪明人干的事。他们的智力与技能超群,编写的程序既能控制计算机,又能让别人看不懂、不会用。那个时期编程就跟捏泥巴一样随心所欲,于是他们很过分地把程序的集合称为软件,以便自己开心或伤心时再把程序捏个面目全非。

  人们就在这种美滋滋的感觉下热情地编程。日积月累,不知不觉产生了一堆问题:程序质量低下,错误频出,进度延误,费用剧增……这些问题统称为“软件危机”。

  发生“软件危机”最突出的案例是IBM公司在1963年至1966年开发的IBM360操作系统。该项目花了5000人年的工作量,得到的结果却非常糟糕。据统计,这个操作系统的每个新版本都是从上个版本中找出上千个错误而修正后的结果。该项目负责人Brooks在其1975年著作《The Mythical Man-Month》(人月神话)中这样描述:“……正像一群逃亡的野兽落到泥潭里做垂死挣扎,越挣扎陷得越深,最后无法逃脱灭顶之灾……谁也没有料到会陷入如此的困境”。

  在1968年,计算机科学家与工业界人士聚在一起共商对策。通过借鉴传统工业的成功做法,他们主张用工程化的方法开发软件以图解决软件危机,并冠以“软件工程”这一术语。三十年余年来,尽管软件的一些毛病如人类的感冒一样无法根治,但软件的发展速度超过了任何传统工业,这的确是前辈们的先见之明。

  1969年的NATO会议上给软件工程下了非常模糊的定义:软件工程是为了经济地获得可靠的和能在实际机器上高效率运行的软件而建立和使用的好的工程原则。看了这样的定义,几乎每个软件工程学者都忍不住要加点什么。

  1993年的IEEE文献给出了更加综合的定义,软件工程是:(1)将系统化的、规范化的、可度量的方法应用于软件的开发、运行和维护的过程;(2)对上述方法的研究。

  很难给出软件工程的完美定义,很多学科如数学、物理等都遇到类似的问题。对于应用者来说,大家只要理解软件工程的内涵就行了,不必在定义上纠缠。

  不是说搞软件开发的人都很聪明吗,聪明人怎么会发生像“软件危机”所描述的那些问题呢?

  至少有两个理由可以说明人们不得不采用软件工程方法来解决软件开发中存在的一些弊病,即“技术发展的需要”和“软件工业化生产的需要”。这与软件开发人员是否聪明没有太大的关系。

  一、技术发展的需要

  随着计算机应用领域的不断拓广,软件的规模与复杂性急剧膨胀。现代软件开发与早期的程序设计已经不是同一回事了,确切地说,编程只是软件开发过程中的一个环节而已。再聪明的程序员也不太可能独自把复杂软件系统的开发工作全部做完。

  与我同龄的程序员们都能亲身感受到软件的发展速度。在20世纪90年代初期,我们去机房编程时,随身总是带着几张装有DOS操作系统、Turbo C、Turbo Pascal等开发工具的软盘。那时候感觉整个软件世界似乎就装在口袋里,自己是主人,编程的确很有成就感,甚至托着磁盘盒在校园里晃悠都有一股得意劲儿。

  到了90年代后期,PC机操作系统、开发工具都是上百兆字节的容量。过了2000年,PC操作系统的容量居然要用千兆字节(GB)来度量。尽管我们天天搞开发,积累了不少经验,但总觉得懂得的越来越少,学都学不及。等我读完博士到大型电信企业工作,发现PC机应用软件的开发与电信领域的相比简直是小巫见大巫。电信领域的某些产品线可能需要成百上千的开发人员,维护队伍也非常庞大。我所在的公司就有数千名研发人员,那些在学校里尚能自命不凡的编程高手一到企业就被“开发大军”给淹没了。

  如果把编程技术比作工匠的盖房技术,那么软件工程就可比作一整套建筑规范。一群会盖房子的能工巧匠并不能建造摩天大楼。同样,只懂得编程的人们远远不能胜任大型软件系统的开发。我们需要包括需求分析、设计、编程、测试、维护在内的一整套方法与技术,即软件工程。

  二、软件工业化生产的需要

  很多国家纷纷把软件业列为支柱产业之一。为什么?归根结底是软件业的效益(包括经济效益和社会效益)远远高于其他行业。举个例子,如今农民和工人劳碌一年的平均收入可能只有高级程序员一个月的工资,不用细比谁都知道哪个行业好。在当前的国际形势下,如果一个国家不发展信息产业(涵盖了软件业),那么它的经济就无出头之日。据说日本前首相森喜朗在开大会时把IT (Information Technology的缩写)念成it,成为笑柄。但森喜朗知错就改,请了家教学电脑。不久后在西方八国首脑会议中,森喜朗谈IT比美国前总统克林顿还要热切。

  先看看硬件工业化生产的特征:用规范化的方法和技术,大批量地生产相同规格的硬件产品。

  那么用生产线大批M地生产相同规格的软件产品算不算是软件的工业化生产?例如光盘制作。

  当然不算。否则以我国盗版光盘制造业之发达,我们岂非早就成了软件大国!

  软件工业化生产的特征应该是:用规范化的方法和技术,快速地开发出各种用途的软件产品。

  可见实现“软件的工业化生产”绝不是靠某一项技术突破所能解决的。毫无疑问,软件业发达的国家一定是软件工程方法应用得很好的国家,如美国和印度。

  由于美国的科技全面发达,反倒看不出软件工程有什么了不起的。而印度这样的第三世界国家竟然能成为全球排名第二的软件大国,不禁让人惊叹而又眼红,可见软件工程实在是功不可没。


 

上一篇:研发团队的文化——拒绝平庸

下一篇:软件工程模型介绍——瀑布模型

天津红翔吉瑞是天津市一家正规的天津软件开发公司,从事专业的软件开发业务

首页 公司简介 新闻中心 案例中心 联系我们
天津红翔吉瑞网络科技发展有限公司 版权所有 津ICP备16005209号-2   电话:13902182895 联系人:张经理   地址:天津市开发区第三大街豪威大厦1602