电子科技大学软件工程期末复习笔记(二):软件过程

2023-11-13

目录

前言

重点一览

软件过程模型的定义

软件工程的中心与三要素

软件生存期模型

瀑布模型

快速原型模型

增量模型

螺旋模型

如何选择过程模型

能力成熟度模型的五个级别

过程和产品的关系 

本章小结 


前言

本复习笔记基于王玉林老师的课堂PPT与复习大纲,供自己期末复习与学弟学妹参考用。


重点一览


软件过程模型的定义

软件过程模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。软件过程模型也常称为:
软件开发模型
软件生存周期模型
软件工程范型

常见的软件过程模型

  • 瀑布模型(经典的生命周期模型)
  • 演化过程模型
    • 原型模型
    • 并行开发模型
  • 增量过程模型
    • 增量模型
    • RAD
    • 螺旋模型
  • 其他过程模型
    • 基于构件模型
    • 智能模型
    • 敏捷过程模型

软件工程的中心与三要素

软件工程的中心:质量

软件工程三要素:方法、工具、过程

方法是完成软件开发的各项任务的技术方法,为软件开发提供技术;

工具是为运用方法而提供的自动或半自动的软件工程的支撑环境;

过程是为了获得高质量软件而所需要完成的一系列任务的框架。


软件生存期模型

瀑布模型

软件生命周期:软件产品或软件系统从设计、投入使用到被淘汰的全过程

瀑布模型:软件开发过程与软件生命周期是一致的,也称经典的生命周期模型。它规定了各项软件工程活动,以及它们自上而下,相互衔接的固定次序,如同瀑布流水,逐级下落,是一种使用广泛,以文档为驱动的模型。

优点

  • 简单,过程透明性高,过程可管理性高
  • 推迟实现,软件实现前必须进行系统分析和设计工作
  • 以阶段评审和文档控制为手段进行质量控制,能够及时发现并纠正软件缺陷,能够达到预期质量要求

缺点

  • 模型灵活性差,不适合需求不明确或准确的场合
  • 模型风险控制能力弱
  • 过多的文档增加了工作量,当技术具有不确定性情况下完全以文档来评估项目进度时会产生错误的结论

适用场合

  • 瀑布模型适用于系统需求明确、技术成熟、工程管理较严格的场合。

快速原型模型

快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。快速原型模型是增量模型的另一种形式,在开发真实系统之前迅速建造一个可以运行的软件原型 ,以便理解和澄清问题,在该原型的基础上,逐渐完成整个系统的开发工作。

它允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。

优点

  • 克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险
  • 适合预先不能确切定义需求的软件系统的开发

缺点

  • 所选用的开发技术和工具不一定符合主流的发展;
  • 快速建立起来的系统结构加上连续的修改可能会导致产品质量低下
  • 使用前提是要有一个展示性的产品原型,一定程度上可能会限制开发人员的创新

运用方式

由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策略。

  • 抛弃策略是将原型用于开发过程的某个阶段,促使该阶段的开发结果更加完整、准确、一致、可靠,该阶段结束后,原型随之作废。探索型和实验型就是采用此策略的。
  • 附加策略是将原型用于开发的全过程,原型由最基本的核心开始,逐步增加新的功能和新的需求,反复修改反复扩充,最后发展为用户满意的最终系统,演化型快速原型就是采用此策略。

采用何种形式、何种策略运用快速原型主要取决于软件项目的特点、人员素质、可供支持的原型开发工具和技术等,这要根据实际情况的特点来决定。

增量模型

增量模型结合了原型模型的基本要素和迭代的特征,采用了基于时间的线性序列,每个确定线性序列都会输出该软件的一个“增量”

在前面增量的基础上开发后面的增量,每个增量的开发可用瀑布或快速原型模型和迭代的思路

优点

  • 引入增量包概念,不需要提供完整的需求。只要有一个
  • 增量包出现,开发就可以进行。
  • 在项目的初始阶段不需要投入太多的人力资源。
  • 增量可以有效地管理技术风险,降低系统失败风险。
  • 有利于增加客户信心,提高系统可靠性、可维护性和稳定性。

缺点

  • 增量粒度难以选择:每个增量必须提供一些系统功能,这使得开发者很难根据客户需求给出大小适合的增量。
  • 确定所有的基本业务比较困难。

 适用场合

  • 进行已有产品升级或新版本开发,增量模型是非常适合的;
  • 对完成期限严格要求的产品,可以使用增量模型;
  • 对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。

螺旋模型

最早由Boehm提出,该模型结合了瀑布模型和原型模型的特点

螺旋模型沿着螺线旋转,在笛卡尔坐标的四个象限上分别表达了四个方面的活动

制定计划
-确定软件目标,选定实施方案,弄清项目开发的限制条件

风险分析
-分析所选方案,考虑如何识别和消除风险

实施工程
-实施软件开发

客户评估
-评价开发工作,提出修正建议

优点

  • 支持用户需求的动态变化
  • 原型可看作可执行的需求规格说明书,易于用户和开发人员共同理解,可作为继续开发的基础,为用户参与关键决策提供了方便
  • 螺旋模型特别强调原型的可扩充性和可修改性,原型的进化贯穿整个软件生存周期,这将有助于目标软件的适应能力
  • 螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险

缺点

  • 如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提交时间;
  • 使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高

适用场合

支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型


如何选择过程模型

  • 软件开发模型是不断发展的
  • 各种软件开发模型各有优缺点
  • 选用时不必拘泥与某种模型
    • 可组合多种模型
    • 也可根据实际创建新的模型

能力成熟度模型的五个级别


过程和产品的关系 

软件过程决定了软件产品的质量,不同的项目需要不同的过程模型或者过程模型的组合。


本章小结 

  • 软件工程是以质量为中心,过程、方法和工具为三要素
  • 过程定义了谁在做什么,何时以及如何达到一定的目标
  • 软件过程决定了软件产品的质量,不同的项目需要不同的过程模型或者过程模型的组合
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

电子科技大学软件工程期末复习笔记(二):软件过程 的相关文章

随机推荐

  • 计算机自顶向下WireShark实验2:DNS

    前言 本博客仅记录我自己做实验所用 在码云上看到一份比较好的自顶向下的实验记录 大家可以参考计算机自顶向下实验 实验内容 1 运行nslookup获取亚洲一个Web服务器的IP地址 那台服务器的IP地址是什么 答 对自己的学校采用即可 2
  • win10下web漏洞扫描工具:AWVS安装教程

    01 AWVS安装 windows上安装其实很简单 以安装AWVS12版本为例子 具体步骤如下 01 双击exe安装 02 点击 Next 03 选择我同意 04 设置用户名和密码 这里用户名是以邮箱为准的 密码需要复杂点 不然会提示密码太
  • 八、Linux编程之递归遍历目录

    八 Linux编程之递归遍历目录 目录 八 Linux编程之递归遍历目录 一 步骤分析 二 isFile 函数 三 isDir 函数 int sprintf char str const char format 四 main 主函数 五 运
  • linux audit 日志 查看用户_一项一项教你测等保2.0——Linux安全审计

    一 前言 前边我们已经讲了windows系统下的安全审计 现在我们讲讲Linux系统下的安全审计 其实两个系统下的测评项都是一样的 不一样的就是不同的系统查看系统配置的方法不一样 windows系统使用的都是图形交互界面 而且我们平时使用w
  • 荣誉加冕!八方锦程再次荣获招聘与任用价值大奖

    智享会ALL IN 2023 人力资源服务展汇聚了全国32个省市地区 21个行业的HR从业者 上下游客户 9月19 20日齐聚上海跨国采购会展中心 共同见证ALL IN 2023的盛大开幕 作为人力资源行业的奋进者 八方锦程与智享会同行走过
  • 【C语言机器学习】

    C语言机器学习
  • Java--JDBC编程练习题

    1 下面选项中 能够将游标从当前位置向下移一行的方法是 单选 A next B absolute introw C previous D last 参考答案 A 答案说明 absolute int row 将游标移动到此 ResultSet
  • 解决Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for

    解决Clipping input data to the valid range for imshow with RGB data 0 1 for floats or 0 255 for integers 报错描述 img plt imre
  • sarscape 将dem文件转化成stl_从STL文件生成有限元FEA网格

    随着计算机图形 硬件 以及3D打印技术的发展 基于面片网格的图形渲染及其格式变得越来越普及 有限元分析 FEA 中 工程师们也常常拿到基于面片网格的几何文件 如STL文件等 并进行后续的分析工作 由于面片网格和有限元实体网格有着根本性的区别
  • opencv中人脸识别算法的基本原理

    opencv中人脸识别算法的基本原理 一 使用opencv中自带的三种人脸识别算法进行实验后 特意去了解学习了一下其基本原理 在这里记录下 opencv人脸识别 关于如何使用opencv实现人脸识别的过程可以参考 http blog csd
  • 一文带你走完Nginx的配置方法(Nginx+Flask)

    作为一个南方人 我每天都洗澡 一年四季 从不间断 甚至我在北京读书的7年 都这么过来的 除开几次喝醉的情况 洗澡是一件很舒服的事情 你可以完全放松 听着music 哼着小曲 多么惬意 阿基米德也是在洗澡的时候发现了浮力 以此证明 洗澡是件好
  • kafka安装

    1 安装版本 链接 https pan baidu com s 1NgJKs6WMKZdfaqS8WTqiWA 提取码 0103 安装包 kafka 2 12 2 6 0 tgz 注意 为保证下面命令正确执行 请将该安装包放到 opt 目录
  • 解决MyEclipse编写properties文件时,中文注释显示为Unicode码问题

    在编写properties文件时 注释中的中文显示为Unicode码 并且在Properties窗口下也无法显示注释 如下图 解决方案如下 在Source窗口下编写 先在注释前的 号前加上一个 然后在这行注释的最后一个位置的后面加上一个 同
  • 踏浪点神:5.21 恒指黄金原油早盘分析及最新资讯

    恒指最新资讯 周三美国三大股指集体收涨 道指收涨近370点 纳指涨2 08 标普500指数涨1 67 港股ADR指数按比例计算 收报24 443点 涨43 90点或0 94 美国7月原油期货收涨4 88 报33 52美元 桶 创3月10日以
  • [hive]分区表

    一 分区表的技术与意义 1 分区表技术 1 建表时通过partitioned by col name col type hive的分别区字段使用的是外字段 2 hive的分区 区分大小写 3 hive的分区本质是在表目录下面创建目录 但是该
  • WebAPI规范

    WebAPI规范 一 协议 通常使用HTTPs协议 二 域名 API较简单 可将API放在主域名下 以固定prefix开头 例如 https example com api xxxx API内容丰富 复杂多样 可将API部署在专属域名下 例
  • systemverilog的timescale作用域

    参考文献1 https www chipverify com verilog verilog timescale scope 在数字电路仿真过程中 如果没有模块本身没有指定timescale 则编译器本身可能插入一个默认的timescale
  • 什么是死亡之 Ping 攻击?

    死亡之 Ping 攻击是一种拒绝服务 DoS 攻击 攻击者旨在通过发送大于最大允许大小的数据包来破坏目标计算机 从而导致目标计算机冻结或崩溃 原始的死亡之 Ping 攻击如今并不常见 称为 ICMP 洪水攻击的相关攻击更为普遍 死亡之 Pi
  • AD PCB 封装 快速放置等间距焊盘的方法

    这个问题经常会用到 所以有必要总结一下 下面以制作29个焊盘为例 其实你可以随便设置的 划重点 先按E然后按A快捷键 设置数量和间距大小 先说一种通用的吧 用特殊粘贴来处理 具体的方法为 1 先放一个焊盘 选中后剪切掉 2 依次按下键盘上的
  • 电子科技大学软件工程期末复习笔记(二):软件过程

    目录 前言 重点一览 软件过程模型的定义 软件工程的中心与三要素 软件生存期模型 瀑布模型 快速原型模型 增量模型 螺旋模型 如何选择过程模型 能力成熟度模型的五个级别 过程和产品的关系 本章小结 前言 本复习笔记基于王玉林老师的课堂PPT