软件工程学习3软件如何而来

江枫思渺然 提交于 2019-12-05 16:32:15

1  软件怎么被创造出来的

  软件的出现,一般都是某个人或者某些人有想法有意图,想做个什么东西方便自己方便他人。张小龙的微信,乔布斯的IOS。这些伟大的软件需要很多人来协同完成。

比如微信,2010年立项,2011第一版上线,当时只能发送文本消息和照片,之后一个版本一个版本更新。

  像这样有计划有步骤有人参与的产品------->工程。

2 软件危机是什么?

  工程的本质就是要做出有用的产品。造房子的建筑工程,造火箭的航天工程。同样,软件领域,也就是软件工程。不按照建筑工程去造房子是会出事故甚至死人的。

  咋们看看建筑工程。设想一下建一座房子:首先要先立项、设定预算,然后画设计图,再是施工,施工完成后,有专业人士进行质量检查,质检合格后入住。

  OS/360(上世纪60年代的大型软件项目)------->开发人员(1000)----->最终无法运行------><人月神话>详细的说明了此次事故。

  当计算机才发明出来的时候,计算机的能力非常有限,不需要软件工程也可以开发简单的软件。但是随着项目越来越复杂,规模越来越大,软件项目开发维护过程中问题就出来了------>

  软件产品质量低劣、软件维护工作量大、成本不断上升、进度不可控、程序人员无限度地增加。所以在 60 年代,“软件危机”的概念被提出来。

3 软件工程的历史

(1)软件工程几个阶段

  整个软件开发过程也被分成了几个阶段:需求定义与分析、设计、实现、测试、交付和维护,这也就是我们常说的软件项目生命周期。

  对应不同的阶段,就是不同的职位。项目经理、产品经理、架构师、程序员、测试工程师、运维工程师。而对这整个过程的管理,我们通常称之为“项目管理”。这个时候出现了瀑布模型

(2)瀑布模型

  瀑布模型的诞生,在当时让软件开发从无序到有序,让大家更好的分工协作,同时每个阶段又衍生出各自的方法学和工具,例如需求分析、软件测试等等。

  然而瀑布的特性决定了它只能从上往下流,而且从上到下走完整个周期很长,所以一旦出现了需求的变更,将会非常痛苦,很多事情需要重头再来。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(3)瀑布模型缺点

 瀑布模型的特点是从上到下,而且周期相对比较长,如果中途某个环节出了问题需要从头再来。所以当时为了缩短项目周期,相继推出了基于瀑布模型,又衍生出 V 模型、原型设计、增量模型、螺旋模型等模型。

(4)目前的敏捷开发

  云计算、微服务这些新技术的产生,也对软件工程产生了影响。云服务让分工更细,很多企业可以将运维、服务器维护、DBA、甚至某些独立服务交给云服务商;微服务让大团队变成小团队,每个小团队可以更专注于细分领域,减少相互之间的依赖。

4 总结

  那么现在看软件工程是什么,就是用一定的过程,采用科学的方法,借助工具来开发软件。有个表达式,软件工程 = 过程 + 方法 + 工具。软件过程不是搞科研,不是搞艺术,而是解决多人合作将一个想法落地的学科,其中包括严谨的过程步骤、规范,用于提高效率或防范风险的工具。

软件工程的主体是工程,这就要求我们具备基本的工程思维:模块化思维、抽象思维;具备一些关键的意识:质量意识、风险意识、交付意识。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!