文章目录

  • 一:软件过程概念
    • (1)定义
    • (2)构成
  • 二:主要模型
    • (1)瀑布模型
      • A:定义
      • B:特点
      • C:优缺点
      • D::适用范围
      • E:实际的瀑布模型
    • (2)快速原型模型
      • A:定义
      • B:原理
      • C:优缺点
      • D:适用范围
    • (3)增量模型(了解)
      • A:定义
      • B:优缺点
      • C:风险更大的增量模型
    • (4)螺旋模型(了解)
      • A:定义
      • B:优缺点
    • (5)喷泉模型
    • (6)其他模型

一:软件过程概念

(1)定义

软件过程:是为了获得高质量软件所需要完成的一系列任务框架,它规定了完成任务的工作步骤。通常用软件生命周期模型来描述软件过程。常见模型有:

  • 瀑布模型
  • 快速原型模型
  • 增量模型
  • 螺旋模型
  • 喷泉模型
  • 其他模型

(2)构成

科学、有效的软件过程应该定义一-组适合于所承担的项目特点的任务集合。一个任务集合包括一组软件工程任务、里程碑和应该交付的产品

二:主要模型

(1)瀑布模型

A:定义

瀑布模型:将软件生命周期的各项活动规定为依照固定顺序连接的若干阶段工作,最终得到软件产品

B:特点

①阶段间具有顺序性和依懒性

  • 必须等前一阶段的工作完成之后,才能开始后一阶段的工作;
  • 前一阶段的输出文档是后一阶段的输入文档
  • 只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果

②推迟实现的观点

  • 瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。
  • 清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按照瀑布模型开发软件的一-条重要的指导思想。

③质量保证的观点

  • 为了保证所开发的软件的质量,在瀑布模型的每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。
  • 完整、准确的合格文档不仅是软件开发时期各类人员之间相互通信的媒介,也是运行时期对软件进行维护的重要依据。
  • 越是早期阶段犯下的错误,暴露出来的时间就越晚,排除故障改正错误所需付出的代价也越高。
  • 因此,及时审查,是保证软件质量、降低软件成本的重要措施。每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。

C:优缺点

优点:

  • 强迫开发人员使用规范的方法
  • 严格规定了每个阶段提交的文档
  • 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证
  • 对文档的约束,使软件维护变得容易一些,且能降低软件预算

缺点:

  • 在软件开发的初期阶段就要求作出正确的、全面的、完整的需求分析对许多应用软件来说是极其困难的
  • 在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整
  • 作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护

D::适用范围

  • 用户的需求非常清楚全面,且在开发过程中没有或很少变化;
  • 开发人员对软件的应用领域很熟悉;
  • 用户的使用环境非常稳定;
  • 开发工作对用户参与的要求很低。.

E:实际的瀑布模型

在设计阶段可能发现规格说明文档中的错误,而设计上的缺陷或错误可能在实现过程中显现出来,在综合测试阶段将发现需求分析、设计或编码阶段的许多错误。因此,实际的瀑布模型是带“反馈环”的,如下图所示(图中实线箭头表示开发过程,虚线箭头表示维护过程)。当在后面阶段发现前面阶段的错误时,需要沿图中左侧的反馈线返回前面的阶段,修正前面阶段的产品之后再回来继续完成后面阶段的任务。

(2)快速原型模型

A:定义

快速原型模型:快速建立可运行的程序,它完成的功能往往是最终产品功能的一个子集

B:原理

快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户通过实践来了解目标系统的概貌。通常,用户试用原型系统之后会提出许多修改意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用,一旦用户认为这个原型系统确实能做他们所需要的工作,开发人员便可据此书写规格说明文档,根据这份文档开发出的软件便可以满足用户的真实需求。

C:优缺点

优点:

  • 开发的软件产品通常满足用户需求
  • 软件产品开发基本是线性过程

缺点:

  • 准确原型设计困难
  • 原型理解可能不同
  • 不利于开发人员创新

D:适用范围

  • 对所开发的领域比较熟悉而且有快速的原型开发工具;
  • 项目招投标时,可以以原型模型作为软件的开发模型;
  • 进行产品移植或升级时,或对已有产品原型进行客户化工作时。

(3)增量模型(了解)

A:定义

增量模型:先完成一个系统子集的开发,再按同样的开发步骤增加功能,如此递增下去直至满足全部系统需求

  • 每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,
    第一个增量构件往往实现软件的基本需求,提供最核心的功能。把软件产品分解成增量构件时,应该使构件的规模适中。分解时唯一必须遵守的约束条件是:当把新构件集成到现有软件中时,所形成的产品必须是可测试的

B:优缺点

优点:

  • 短时间内可提交完成部分功能
  • 逐渐增加产品功能,用户适应产品快

缺点:

  • 增量构件划分以及集成困难
  • 容易退化为边做边改模型

C:风险更大的增量模型

下图是一种风险更大的增量模型。用这种方式开发软件,不同的构件将并行地构建,因此有可能加快工程进度。但是,这种方法将有构件无法集成到一起的风险,除非密切地监控整个开发过程,否则整个工程可能毁于一旦。

(4)螺旋模型(了解)

A:定义

螺旋模型:在每个阶段之前都增加了风险分析过程的快速原型模型

B:优缺点

优点:

  • 利于把软件质量作为软件的开发目标
  • 减少测试
  • 维护和开发不分开

缺点:

  • 风险估计困难

(5)喷泉模型

喷泉模型:典型的面向对象软件过程模型。体现了迭代和无缝的特性

(6)其他模型

  • Rational统一过程
  • 敏捷过程与极限编程
  • 微软过程

(软件工程复习核心重点)第一章软件工程概论-第四节:软件过程及相关模型相关推荐

  1. (软件工程复习核心重点)第十章面向对象设计-第二节:启发规则和软件重用

    文章目录 一:启发规则 (1)设计结果应该清晰易懂 (2)一般一特殊结构的深度适当 (3)设计简单的类 (4)使用简单的协议 (5)使用简单的服务 (6)把设计变动减至最小 二:软件重用 (1)概述 ...

  2. (软件工程复习核心重点)第一章软件工程概论-第二节:软件工程

    文章目录 一:软件工程 (1)软件工程的定义 (2)软件工程的本质特征 (3)软件工程基本原理 二:软件工程方法学 (1)概念 (2)分类 一:软件工程 (1)软件工程的定义 软件工程:采用工程的概念 ...

  3. (软件工程复习核心重点)第一章软件工程概论习题

    这一章题目主要以简答和名词解释为主 文章目录 一:选择题 二:填空题 三:名词解释 (1)必考 (2)了解 四:简答题 (1)必考 1.关于软件危机 2.关于软件工程 3. 关于软件生命周期 4.关于 ...

  4. (软件工程复习核心重点)第一章软件工程概论-第一节:软件和软件危机

    文章目录 一:软件的概念.特点与发展 (1)软件发展的三个阶段 (2)软件的概念 (3)软件的特点 二:软件危机 (1)软件危机的概念 (2)软件危机的表现 (3)软件危机产生的原因 A:主观原因 B ...

  5. (软件工程复习核心重点)第一章软件工程概论-第三节:软件生命周期

    文章目录 一:软件定义 (1)问题定义 (2)可行性研究 (3)需求分析 二:软件开发 (1)总体设计 (2)详细设计 (3)编码和单元测试 (4)综合测试 三:软件维护 一:软件定义 (1)问题定义 ...

  6. (软件工程复习核心重点)第十二章软件项目管理-第一节:软件项目管理综述、估算软件规模和工作量估算

    文章目录 一:软件项目管理综述 (1)管理 (2)软件项目管理 二:估算软件规模 (1)代码行技术 A:定义 B:方法 C:优缺点 (2)功能点技术 A:定义 B:信息域特性 C:估算功能点的步骤 ① ...

  7. (软件工程复习核心重点)第七章软件维护-第一节:软件维护的概念和特点

    文章目录 一:软件维护的概念 (1)定义 (2)分类 二:软件维护的特点 (1)结构化维护和非结构化维护差别巨大 (2)维护的代价高昂(了解) (3)维护存在很多问题(了解) 一:软件维护的概念 (1 ...

  8. (软件工程复习核心重点)第六章实现和测试-第一节:编码

    文章目录 一:定义 二 :程序设计语言的选择 (1)重要性(了解) (2)适宜的程序语言的优点 (3)程序设计语言的选择标准 A:理想标准 B:实际标准 三:编码风格 (1)程序内部的文档 A:定义 ...

  9. (软件工程复习核心重点)第四章总体设计-第一节:总体设计基本概念和设计过程

    文章目录 一:总体设计的概念 (1)定义 (2)主要任务 (3)步骤 (4)必要性(了解) 二:设计过程 (1)系统设计阶段 1:设想供选择的方案 2:选取合理的方案 3:推荐最佳方案 (2)结构设计 ...

最新文章

  1. OpenCV中的图像阈值处理算法
  2. SqlServer 中的增删改查语句的语法
  3. 算法导论-概率发生器
  4. springboot在intellij中的热部署(Hot swapping)配置
  5. 浅谈python的import
  6. arcgis java api,Java中调用ArcGIS Server REST API
  7. SUSE12Sp3安装配置.net core 生产环境-总汇(持续更新中...)
  8. [读书笔记]流畅的Python(Fluent Python)
  9. Java 方法重载简单小例子
  10. 6目摄像头照片球面投影变换拼接全景图片
  11. 苹果电脑退出ID账号的方法
  12. 使用计算机过程中 你有哪些有效措施防范计算机病毒,计算机病毒防范措施主要有什么...
  13. 三分钟了解多模光纤和单模光纤的区别-ielab
  14. 电子科技大学信息与通信工程学院考研复试总结
  15. 【每日早报】2019/08/12
  16. 知识图谱 ——知识存储与检索
  17. 计算机安全更新无法卸载,出现windows 系统补丁无法卸载该怎么解决?简单几步即可解决...
  18. 工业机器人、工艺夹具、送料机械手、电火花镗磨机床、半自动钻床、机械手、套筒、铣床升降台、精密播种机、卧式组合钻床、六自由度微动机器人、花生收获机、山茶采摘平台、车载起重机、锤式破碎机、螺旋输送机……
  19. stm32电子秤diy制作_魅力状元丨龙腾社区举办手工口红DIY活动
  20. java中所有类都是通过_Java中所有的类都是通过直接或间接地继承(   )类得到的...

热门文章

  1. 经典面试题(41):以下代码将输出的结果是什么?
  2. 三菱PLC支持哪种OPC服务器,OPC-访问三菱Q系列PLC方法
  3. rpm安装mysql5.7.16_【CentOS 6.6 RPM方式安装MySQL 5.7.16 】
  4. OpenCV中的Sobel算子
  5. ggplot2实现分半小提琴图绘制基因表达谱和免疫得分
  6. 单基因GSEA怎么做?
  7. linux查看tcp连接状态_Linux使用lsof查看打开的文件和网络连接
  8. 1261:【例9.5】城市交通路网 《信息学奥赛一本通:动态规划基础》
  9. 【ES8(2017)】String扩展 padStart / padEnd
  10. Qt笔记-解决QObject::startTimer: Timers cannot be started from another thread