软件工程概述

本文最后更新于:2023年2月28日 下午

软件工程概述

概念:用工程化的思想指导软件开发

软件危机

软件危机的出现是由于软件的规模越来越大,复杂度不断增加,软件需求量增大。

主要表现:

  • 质量差
  • 效率低,不满足需求

软件开发模型

参考软件过程模型-过程改进 (uml.org.cn)

软件过程模型是描述软件开发过程中各种活动如何执行的模型,也叫软件过程模型或软件生命周期。

瀑布模型

瀑布模型是一种线性的过程,瀑布模型要求有明确的需求分析,而要达到这一点在现实开发中几乎不可能。这种模型是最早也是应用最广泛的软件过程模型。

瀑布模型的优缺点

优点

  • 简单易行
  • 可以进行阶段检查,能够及时发现问题
  • 较好的分工协作,不同阶段不同职位,架构师,项目经理,开发工程师,测试工程师,运维工程师
  • 对质量有一定的保障,因为每个阶段有详细的文档

缺点

  • 难以响应需求的变更
  • 工作量分配不均匀
  • 前期阶段受阻压缩后期进展

https://www.cnblogs.com/lanjianhappy/p/11934284.html

增量模型

融合了瀑布模型的基本成分和原型实现的迭代特征。增量模型强调每一个增量均发布一个可操作的产品。增量模型在各个阶段并不交付一个可运行的完整产品,而是交付满足客户需求的一个子集的可运行产品。

优点:

  1. 人员分配灵活

  2. 第一个可交付版本所需要的成本和时间很少

缺点:

  1. 软件具备开放式体系结构

  2. 容易退化为边做边改,使软件过程的控制失去整体性。

  3. 至始至终开发者和客户纠缠在一起,直到完全版本出来。

速成原型模型

最大特点就是它采用了一种动态定义需求的方法。即不需要有明确的需求。被开发的原型应交付客户使用,并收集客户的反馈意见,可在下一轮中对原型进行改进。

是一种循环模型

优点:能够快速、低成本地构建原型

缺点:没有考虑软件的整体质量和长期的可维护性

适用对象:开发初期用户需求是不完整、不准确的

螺旋模型

将瀑布模型和原型化模型结合起来,并加入风险分析

螺旋模型(Spiral model) 大项目+需求不明确+明确的风险管理_沐雨金鳞-CSDN博客_需求不明确用什么模型

优点:支持用户需求的动态变化。

缺点:

  1. 需要开发人员具有相当丰富的风险评估经验和专门知识。
  2. 增加开发成本和延迟提交时间。
  3. 支持用户需求的动态变化

使用对象:庞大、复杂且具有高风险的系统。

喷泉模型

以用户需求为动力,已对象作为驱动的模型。适用面向对象的开发过程,最核心的特点是迭代性和无间隙性。所有的开发活动没有明显的边界,允许各种开发活动同步进行。

4个阶段

  • 分析
  • 系统设计
  • 软件设计
  • 实现

特点:各阶段相互重叠,反映了软件过程并行的特点

优点:提高软件项目的开发效率,节省开发时间。

缺点:

  1. 需要大量的开发人员,不利于项目的管理。
  2. 要求严格管理文档,使得审核的难度加大。

软件开发方法

结构化开发方法

大问题分解为小问题,逐一解决。

特点:自顶向下,逐步求精

快速,自然,方便,容易理解。

具体分为

  • 结构化程序设计方法 SP
  • 结构化设计方法 SD
  • 结构化分析方法 SA

面向对象方法(OOSD)

特点:封装,继承,多态

具体组成

  • OOA 面向对象的分析
  • OOD 面向对象的设计
  • OOP 面向对象的程序设计

软件工程概述
http://yorick.love/2023/02/14/软件工程概述/
作者
Yorick
发布于
2023年2月14日
许可协议