zoukankan      html  css  js  c++  java
  • 软件工程学习3软件如何而来

    1  软件怎么被创造出来的

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

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

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

    2 软件危机是什么?

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

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

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

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

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

    3 软件工程的历史

    (1)软件工程几个阶段

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

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

    (2)瀑布模型

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

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

    (3)瀑布模型缺点

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

    (4)目前的敏捷开发

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

    4 总结

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

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

  • 相关阅读:
    Redis总结(六)Redis配置文件全解
    Thrift总结(二)创建RPC服务
    Thrift总结(一)介绍
    C#总结(三)DataGridView增加全选列
    C#总结(二)事件Event 介绍总结
    Quartz.NET总结(六)了解Jobs 和 Triggers
    C#总结(一)AutoResetEvent的使用介绍(用AutoResetEvent实现同步)
    Redis总结(五)缓存雪崩和缓存穿透等问题
    C#类和成员的修饰符
    sqlserver 修改替换text,ntext类型字段的两种方案
  • 原文地址:https://www.cnblogs.com/lanjianhappy/p/11933386.html
Copyright © 2011-2022 走看看