软件工程起源于上个世纪70年代,由于当时的软件开发没有一个类似于规范的步骤,致使很多软件项目的开发时间大大超过了规划的时间。面对软件功能和需求的日益复杂化以及维护难度的上升,人们开始意识到仅凭个人甚至单个小组来开发一款软件的难度的巨大的。终于在1968年,北大西洋公约组织举办了首次软件工程学术会议,并在会中提出了要将软件开发当做工程活动来看待。[1]这可以看做是传统软件工程发展的开端。传统软件工程的出现很大程度上解决了软件开发中诸多问题,然而时间迈入21世纪,在云计算大行其道的今天,传统的软件工程又将会面临机遇与挑战呢?接下来我将会就云计算对传统软件工程的影响,谈谈我自己的看法。

什么是云计算

云计算(Cloud Computing)是一种基于互联网的计算方式。这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。[2]简单地说,在互联网时代,我们所能够使用的计算资源将不再局限于我们所拥有的。我们可以通过租用云服务的方式来满足我们的某些计算需求,从而节省大量的硬件资源开销。

云计算的服务模式可分为三种,分别是:IaaS、PaaS和SaaS。

IaaS(基础设施即服务)指消费者可以总完善的计算机基础设施获得服务。有了IaaS,你可以选择将公司运营所需要的服务器、储存器和网络硬件外包给别的公司,以节省日常维护的成本以及办公场地。一般的IaaS公司会帮你日常维护硬件,并可以满足一定的弹性需求。比如当公司需要进行业务扩展,需要更多的计算能力的时候,可以轻松地通过IaaS获取更多的机器,当网站访问人数较少时,可以减少部署的机器以节约成本。

PaaS(平台即服务)提供了用户可以访问的应用程序开发平台。公司中所有的开发环境都可以在这个环境下进行,从而达到节省时间、资源的目的。PaaS的强大之处在于它能够涵盖软件开发的各个阶段,提供了从开发工具、中间件到数据库软件等开发所需的所有功能,原本分散的工作室之间的合作也变得更加容易。例如微软的Azure服务平台就包含了Windows Azure;Microsoft SQL数据库服务、Microsoft .Net服务;用于分享、储存和同步文件的Live服务;针对商业的Microsoft SharePoint和Microsoft Dynamics CRM服务等,使得开发组之间的合作能够更加的紧密。

SaaS(软件及服务)提供了完整的可以直接使用的应用程序。这一层面上的应用大多数通过网页浏览器进行接入,包括了我们日常所使用的电子邮件,网盘等等。用户一般只需要进行简单的操作即可完成自己的需求,免去了很多不必要的麻烦。

我尝试在Amazon注册了AWS服务,从下面的截图我们可以看出AWS平台给我们提供的服务也是按照IaaS、PaaS、SaaS来进行划分的。使用现有的服务可以实现程序的快速部署,大大节省我们开发软件所需要的时间。

 

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式