当前位置: 首页 > news >正文

软件工程(5)--喷泉模型

前言 

这是基于我所学习的软件工程课程总结的第五篇文章。

        迭代是软件开发过程中普遍存在的一种内在属性。经验表明,软件过程各个阶段之间的迭代或一个阶段内各个工作步骤之间的迭代在面向对象范型中比在结构化范型中更常见

        一般说来,使用面向对象方法学开发软件时,工作重点应该放在生命周期中的分析阶段。这种方法在开发的早期阶段定义了一系列面向问题的对象,并且在整个开发过程中不断充实和扩充这些对象。由于在整个开发过程中都使用统一的软件概念"对象",所有其他概念(例如功能、关系、事件等)都是围绕对象组成的,目的是保证分析工作中得到的信息不会丢失或改变,因此,对生命周期各阶段的区分自然就不重要、不明显了。分析阶段得到的对象模型也适用于设计阶段和实现阶段。由于各阶段都使用统一的概念和表示符号,因此,整个开发过程都是吻合一致的,或者说是"无缝"连接的,这自然就很容易实现各个开发步骤的多次反复迭代,达到认识的逐步深化。每次反复都会增加或明确一些目标系统的性质,但却不是对先前工作结果的本质性改动,这样就减少了不一致性,降低了出错的可能性

        喷泉模型就是典型的面向对象的软件过程之一。 (摘自 《软件工程导论》第六版   张海藩 牟永敏 著,有删改)

正文

1.喷泉模型(Fountain model)

  • 喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程.
  • 软件开发早期定义对象,整个开发过程充实和扩充对象.
  • 为了避免使用喷泉模型开发软件时开发过程过分无序,应该把一个线性过程作为总目标。
  • 各个阶段使用统一的概念和表示方法,生命周期各阶段无缝连接(面向对象方法在概念和表示方法上的一致性,保证了各项开发活动之间的无缝连接).
  • 各个开发步骤多次反复迭代 
  • 传统软件过程模型

2.喷泉模型的优点

  • 喷泉模型的各个阶段没有明显的界限,开发人员可以同步进行开发可以提高软件项目开发效率,节省开发时间适应于面向对象的软件开发过程。

3.喷泉模型的缺点 

  • 由于喷泉模型在各个开发阶段是重叠的,在开发过程中需要大量的开发人员,因此不利于项目的管理。
  • 喷泉模型要求严格管理文档,使得审核的难度加大尤其是面对可能随时加入的各种信息、需求与资料的情况。

4.使用场合

面向对象开发(喷泉模型较好地体现了面向对象软件开发过程无缝迭代的特性,是典型的面向对象的软件过程模型之一) 。

http://www.lryc.cn/news/6029.html

相关文章:

  • SM2数字签名
  • RPA+保险后台部门擦出不一样“火花” | RPA案例
  • 设备树相关概念的理解
  • ubuntu20.04下配置深度学习环境GPU
  • 用egg.js来写一个api管理系统(一)
  • 企业数字化转型和升级:架构设计方法与实践
  • 【LeetCode】环形链表 II [M](链表)
  • Unity之如何实现一个VR任务(剧情)系统
  • k8s核心概念与kubectl命令行工具的使用
  • 【零基础入门前端系列】—无序列表、有序列表、定义列表(四)
  • 为什么重写equals还要重写hashcode方法
  • 电子技术——电流镜负载的差分放大器
  • go面试题
  • 攻防世界-Confusion1
  • 机器学习实战--梯度下降法进行波士顿房价预测
  • 黑马】后台管理-项目优化和上线
  • Web 框架 Flask 快速入门(三)数据库-MySQL
  • 牛客网Python篇数据分析习题(六)
  • Ansible的安装及部署
  • 链表题目总结 -- 递归
  • 重写-linux内存管理-伙伴分配器(一)
  • 为什么要用springboot进行开发呢?
  • 设备树信息解析相关函数
  • LeetCode-1124. 表现良好的最长时间段【哈希表,前缀和,单调栈】
  • vue-router路由配置
  • 中国计算机设计大赛来啦!用飞桨驱动智慧救援机器狗
  • 嘉定区2022年高新技术企业认定资助申报指南
  • 【C++】关键字、命名空间、输入和输出、缺省参数、函数重载
  • 【一道面试题】关于HashMap的一系列问题
  • 论文笔记: Monocular Depth Estimation: a Review of the 2022 State of the Art