赞
踩
听到「软件工程」四个字,多数人既熟悉又陌生!熟悉是因为与自己的职业息息相关,大多数公司都或多或少地在用软件工程,比如敏捷模型,单元测试、性能测试都属于软件工程范畴,为什么软件工程被各公司重视?有两点原因:
奇怪的是,虽然工作中经常接触到软件工程,为什么多数人对其感到很陌生?因为每个人接触的只是软件工程片段,比如测试同学接触的是软件工程测试部分,研发同学接触软件工程开发部分。那究竟什么是软件工程呢?软件工程是一门工程学科,涉及软件生产的各个方面,从最初的系统规格说明直到投入使用后的系统维护,都属于其学科范畴。
多数人对软件工程存在偏见,认为其过于落后跟不上互联网应用发展,并不是这样!不同的系统使用的软件工程方法各不相同,在过去的 50 多年里,软件工程也在随着系统发展变化。举个例子,汽车嵌入式控制系统,该系统十分注重安全性不允许被任意修改,因此需要烧录到 ROM 中。
不难想像,由于 ROM 的只读性,修改控制系统会十分昂贵!为避免汽车被召回,厂商需要反复检测控制系统是否完好。上述例子需要哪些软件工程呢?汽车控制系统无界面,不会与用户产生交互,该厂商使用的软件工程应该是无交互非迭代类。
再看一个反例,现在的互联网应用,大多采用交互式的 web 应用,很多公司会使用迭代开发。
控制系统和 web 系统不相同,两者使用的软件工程方法也不同,控制系统使用的是非迭代开发流程,而 web 系统使用的是迭代开发流程。因此得出一个简单结论**“只要两个系统不相同,使用的软件工程方法就不同!”**,这个结论对吗?当然不对,不能一棒子打死!软件工程也存在一些通用的研究方向,比如:
最后谈一谈与生活息息相关的互联网应用。最初的 Web 只是静态页面,简单而直接,2000 年左右web 开始崛起,浏览器越来越强悍,用户可以在页面上干更多的事!之前需要用光盘看视频,现在打开浏览器即可观看,人们越来越喜欢 web 应用,服务型系统如雨后春笋般出现。相对于个人计算机应用,服务器型应用更容易修改和升级,软件即服务的思想在 21 世纪初被提出,这一思想已成为 web 应用交付的标准方法,例如 Google 移动应用、微软的 ofice365、 Adobe 的 Creative 套件。
当 web 应用越来越多,其依赖的服务器也越来越多,维护服务器的成本也越来越高,中小型公司难以承担如此高昂的维护费用,“云”伴随而生,即由一家公司专门维护服务器,将服务器租借给其他公司,软件运行在远端云上。
不可否认,Web 应用对「软件工程」造成了巨大影响,主要有以下几点:
注意:纵然 Web 应用飞速发展,但前面讨论的软件工程思想同样适用。
「软件开发流程」是指软件开发的开发生命周期。不同的系统会采用不同的软件开发流程,但每一个开发流程都包含 4 个基本行为:
“就四个行为
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。