软件工程笔记:什么是软件工程
什么是软件工程?
随着软件规模越来越大,复杂度不断增加,在软件项目开发和维护的过程中逐渐暴露出来了一些问题,如:软件产品质量低劣、维护工作量大、成本不断上升,进度不可控、程序人员无限度的增加(增加人员并没有按时交付),“软件危机”这一概念被提了出来。而软件工程是为了研究和克服软件危机而产生的学科。
软件工程的本质是用工程化的方法去规范软件开发,让项目可以按时完成、成本可控、质量有保证。
核心是围绕软件项目开发,对开发过程的组织,对方法的运用,对工具的使用。
我们所说的工程是指有人参与、有计划、有步骤的造出一件有用的产品。前提条件是有用,造出来的是无用的产品,我们不能称为工程。
有人参与,产生了各种角色:项目经理、产品经理、程序员(客户端开发人员、服务端开发人员)、设计师、测试、运维。
有计划、有步骤,软件开发的过程参考了建筑工程,被分成了几个阶段:需求定义与分析、设计、实现、测试、交付和维护,这些组成了软件项目的生命周期。对参与的人及整个过程的管理,我们称之为“项目管理”。
对上述阶段进一步演化,衍生出了一套最基础的过程模型:瀑布模型。
因瀑布模型不能很好的应对需求的变更,又衍生出了 V 模型、快速原型模型、增量模型、螺旋模型,试图改善瀑布模型存在的一些缺陷。
基于软件过程,我们有了角色分工,有了对过程的管理和工具,对过程中每个阶段细分的方法学和工具。
简单总结:软件工程就是用工程化的方法来开发维护软件。也就是用一定的过程,采用科学的方法,借助工具来开发软件。
用公式表达就是:软件工程=工具+方法+过程。
版权声明: 本文为 InfoQ 作者【风翱】的原创文章。
原文链接:【http://xie.infoq.cn/article/fbd9400e76657f5067722361c】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论