工程导论学习小结

软件工程(Software Engineering)在百度百科上是这样定义的:软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。

软件工程专业的产生并非同计算机科学与技术的产生发生在同一时期,而是源于早期计算机行业发展中所遇到的困难。1960年代后期,随着软件规模及开发难度的增加,软件开发周期长、成本高、质量差、维护难,导致软件危机的爆发。

这一次所发生的“软件危机”,也正是软件工程专业诞生的导火索。软件分为三大类:第一类是系统软件(System Software),用于控制和协调计算机以及外部设备、支持应用软件开发与运行的软件,如:操作系统、编译器与连接器、网络管理系统、数据库管理系统等;第二类软件是支撑软件(Support Software),是软件系统的中间层,支撑各种软件的开发、运行与维护的软件,如网络构建、中间件及软件运行平台、软件开发环境及工具、各种接口软件与工具组等;第三类软件是应用软件(Application Software),是为了满足特定应用领域、不同应用问题之需求的专用软件,如行业应用软件、文字与媒体处理软件、办公自动化软件、企业管理软件、工业控制软件各类嵌入式应用软件等。由此可见,软件重要性之大,向下关乎计算机设备的底层硬件执行,向上服务于客户,为各个领域提供帮助,解决问题。而此次软件危机的体现在于,人们在开发软件的各个过程中都出现了不专业化的问题,例如:对软件开发工作量和成本估计不准;软件开发进度难以控制;软件产品质量与可靠性差强人意等。

而这些现象的出现又是有所原因的,在20世纪60年代中期,计算机迎来了一次飞速的发展,大容量、高速度计算机的出现,使计算机的应用范围迅速扩大,软件开发急剧增长,高级语言开始出现;操作系统的发展引起了计算机应用方式的变化;大量数据处理导致第一代数据库管理系统的诞生。软件的规模越来越大,复杂程度越来越高,因而软件的可靠性也越来越突出。从前计算机刚刚投入使用的时代下,由于计算机存储容量小等,因而软件的规模也比较小,设计软件通常是个人的事,而当时个人设计、个人使用软件的方式再也不能满足高运算速度计算机,这样的严重不匹配下,软件开发整体效率低。我们都知道,在工业生产以及商业应用方面,要尽量使得成本低,收益高,生产效率高。而彼时的软件开发刚好违背了这一原则。计算机行业从事者没有经过系统科学的学习,无法对软件的开发进行良好的预估、规划,从而导致开发过程混乱、繁琐,产生重复劳动,浪费资源,工作量大。这不仅是对于开发者的负担,对于客户或者软件的使用者来说也是一种煎熬,因为由于软件开发的过程进度缓慢,时间上的浪费对于可获或者使用者来说也是一种损失,而且他们还要承担软件品质低劣的风险。于是,在“软件危机”的影响下,人们开始着重解决软件开发过程中所遇到的这一连串的问题。

附几个软件危机的实例:
1995年,Standish Group研究机构以美国境内8000个软件项目作为调查样本,调查结果显示,有84%软件计划无法于既定时间、经费中完成,超过30%的项目于运行中被取消,项目预算平均超出189%。

IBMOS/360
IBMOS/360操作系统被认为是一个典型的案例。到现在为止,它仍然被使用在360系列主机中。这个经历了数十年,极度复杂的软件项目甚至产生了一套不包括在原始设计方案之中的工作系统。OS/360是第一个超大型的软件项目,它使用了1000人左右的程序员。佛瑞德·布鲁克斯在随后他的大作《人月神话》中曾经承认,在他管理这个项目的时候,他犯了一个价值数百万美元的错误。

美国银行信托软件系统开发案
美国银行1982年进入信托商业领域,并规划发展信托软件系统。项目原订预算2千万美元,开发时程9个月,预计于1984年12月31日以前完成,后来至1987年3月都未能完成该系统,期间已投入6千万美元。美国银行最终因为此系统不稳定而不得不放弃,并将340亿美元的信托账户转移出去,并失去了6亿美元的信托生意商机。
摘自百度百科

在1968年10月,北大西洋公约组织(NATO)召开计算机科学会议,会上首次提出“软件工程”概念及克服“软件危机”的策略,强调按照工程化原则和方法组织软件开发工作。软件工程技术领域由此应运而生。
从这之后,人们在制做软件时开始工程化,专业化,用更加科学的方法编写软件。

我认为,软件工程它的工作方向是具有应用性的。由上面“软件工程”这一概念产生的历史背景可以知道,软件工程专业的研究领域必然是和计算机科学与技术专业是不一样的。计算机科学与技术研究的是计算机的本质问题,就像其学科课程设置的那样,更多的是一种追本溯源,更加注重计算机领域的基础问题,或者说就是在研究计算机的的每一个部位,具体到程序员的世界就是操作系统、编译原理、计算可行性、计算机原理、数字逻辑等等。而软件工程则是一种工程理论应用,考虑的是软件的整体,关注的是其所要应用解决的实际问题。

了解一门学科的发展历史,是有助于我们对于行业的明细认识的,也是有助于我们自身的。了解清楚专业的研究领域,才能帮助我们选择出适合我们发展的道路,才能使我们在自身发展、职业发展的每一个时间段,做出正确的、有利于我们未来发展的选择。

如果说,把软件工程专业比作一棵树,那么其应用方向就是它繁茂的树枝,树枝肆意地伸展、生长,逐渐粗壮,并在风雨的考验下,会在某个阳光明媚的日子里结出果实,给人们享用。那么树的四通八达的根就是支撑其成形的丰富的学科体系。

让我们先来了解一下软件学科正式成为独立学科的过程。其萌芽阶段是在1970s末期,美国制定研究生计划时采纳了IEEE/CS提出的制定软件工程教程的建议。酝酿阶段是在1980s末期,美国卡内基-梅隆大学软件工程研究所(CMU SEI)开始研究软件工程教育,组织软件工程教育研讨会,出版正式的教程并建立软件工程说是教育计划。准备阶段是在1993年,IEEE CS和ACM成立了软件工程协调委员会(SWECC),提出了“软件工程职业道德规范”、“本科软件工程教育计划评价标准”和“软件工程知识体系”(SWEBOK),全面描述软件工程实践所需要的知识,为软件工程教育发展打下坚实基础。而软件工程其真正的产生则是在距今不远的2004年8月,世界500余位大学、研究所和企业界教授专家推出了软件工程知识体系、软件工程教育知识体系(SEEK)两个文件的最终版本,标志着软件工程学科在世界范围的正式确立,并成为计算机学科领域的独立学科。

附中国软件工程专业学科的发展:

2001年,教育部建立35所国家示范性软件学院,并批准新增“软件工程”本科专业。现已又400多所高校设有软件工程专业

2011年,国务院学位委员会批准新增“软件工程”以及学科博士点与硕士点。现已经有100多所高校设有软件工程博士/硕士点

2013年,教育部成立独立的“软件工程专业教学指导委员会”

软件工程是在计算机科学与技术之上发展开来,但又自身学科着重点的应用学科。我认为软件工程其学科的独特魅力就在于软件工程这棵“树”的“根”。

软件工程成为一门独立学科这条路走了将近三十年。而自软件工程这一概念的提出到其正式成为独立学科经历的约五十年的光阴。正所谓慢工出细活,软件工程需要计算机科学的知识理论基础,而又不限于计算机的知识,更多的是使得人们更多的去考虑如何用已有的计算机知识、工具去设计软件,关注软件制做的每一个环节、每一个影响因素(其中所要注意的东西远比想象的要多)。话又说回到上面关于对计算机科学与技术和软件工程的不同之处了,软件工程比计算机科学专业更具有方向性和应用性,虽然在计算机方面的强调略有放松,但同时也有注入的新鲜血液。

这些新鲜的血液使软件工程的“根”充满了活力。只有四通八达,粗壮的根才能使得大树屹立在大地、绝壁、甚至是荒漠之中。而软件工程的“根”就是其丰富而全面的学科知识体系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值