一、软件过程

软件过程是为了获得高质量软件所需要完成的一系列任务的框架,他规定了完成各项工作任务的工作步骤、运用方法的顺序、文档资料、管理措施、各个阶段的里程碑。

生命周期模型(过程模型):规定了把生命周期互粉成哪些阶段及各个阶段的执行顺序。

常见软件生命周期模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、统一过程及敏捷过程及极限编程。

二、常见软件的过程模型

1.典型的过程模型:

  • 瀑布模型
  • 快读原始开发模型
  • 增量模型
  • 螺旋模型

2.其他模型

  • 喷泉模型
  • 极限编程
  • RUP
  • 修造-修补模型

三、瀑布模型

在20世纪80年代之前,是唯一被广泛采用的生命周期模型,现在仍然是软件工程中应用最广泛的过程模型。

主要用于描述传统软件工程方法学的软件过程

3.1模型图

3.2基本思想

“分而治之”

3.3 特点

  • 相邻阶段依赖性
  • 推迟实现的观点
  • 质量保证的观点(文档与评审)

3.4 优点

  • 迫使开发人员采用规范的方法
  • 严格规定了每阶段必须提交的文档
  • 要求各阶段的产品必须经过质量验证

3.5 缺点

  • 需求男开始就完全确定
  • 文档驱动,风险太大
  • 开发期长,一旦修改,则损失惨重
  • 不支持软件复用和集成技术

3.6 适用范围

  • 结构化方法,面向过程的软件开发方法
  • 需求变化少
  • 开发人员熟悉领域
  • 低风险项目
  • 使用环境稳定

瀑布模型一般适用于功能、性能明确、完整、无重大变化的软件系统的开发。

四、快速原型模型

快速原型模型:快速构建起一个可在计算机上运行的原型系统,让用户适用原型并收集用户反馈意见的办法,获取用户的真实需求。

4.1模型图

4.2基本思想:

系统的需求定义贯穿于真个开发过程,逐步精确与完善

4.3与瀑布模型的比较

瀑布模型视图题词就获得了正确的产品。快速原型平凡变化然后放弃。

4.4 原型分类

1.废弃型

也称为快速建立需求规格原型RSP法

2.追加型

也称快速建立渐进原型RCP法

4.5快速原型开发过程

  • 快速分析
  • 构造原型
  • 运行和评价原型
  • 修正与改进

4.6 快速开发原型的途径

  • 模拟软件系统的人机界面和人机交互方式
  • 开发工作原型,实现软件系统的部分功能
  • 找来正在运行的类似软件

4.7特点

  • 线性开发模型(不带反馈)
  • 减少开发活动的盲目性和需求不确定
  • 开发的系统能满足需求,修改较小

4.8 优点

  • 处理模糊需求
  • 用户参与
  • 快速

4.9 缺点

  • 快速(弱功能)
  • 资源规划和管理较为困难
  • 对开发环境要求高

4.10 适用范围

  • 已有产品(原型)
  • 简单而熟悉的领域
  • 有快速原型开发工具
  • 进行产品移植或升级

用户需求不完全或不准确,有快速的原型开发工具项目投标时,可以以原型模型作为软件的开发模型,产品移植或升级或对已有产品原型进行客户化工作

4.11 软件开发的风险

产品交付给用户后用户可能不满意

到了预定的交付日期软件可能还未开发出来

实际的开发成本可能超预算

产品完成前一些关键的开发人员可能“跳槽”了

产品投入市场之前竞争对手发布了一个功能相近、价格更低的软件…

五、增量模型

软件模块化,把软件产品作为一系列增量组(构)件来设计、编码、继承和测试。

组(构)件:代码块,代码块来自多个相互作用的模块,完成特定的功能。

5.1 模型

5.2 基本思想

递增式开发,先提供基本核心功能的增量组件,创建一个具备基本功能的子系统,然后对其完善。

5.3 特点

系统模块化和组件化

5.4 优点

  • 系统模块化,分批次地提交软件产品,使用户可以及时了解软件项目的进展
  • 已组建为单位进行开发降低了软件开发的风险
  • 开发顺序灵活

5.5 缺点

要求待开发的软件系统可以被模块化

5.6 使用范围

增量模型适用于具有以下特征的软件开发项目:

  • 软件可以分批次的进行交付
  • 待开发的软件系统能够被模块化
  • 软件开发人员对应用领域部署需,难以一次性地进行系统开发
  • 项目管理人员把握全局的水平较高

六、螺旋模型

6.1基本思想

使用原型及其他方法来尽量降低,在每个阶段之前都增加了风险分析过程的快速原型模型。

每个螺旋周期可分为4个工作步骤:制定计划、风险分析、实事工程、客户评估。

6.2 优点

  • 风险驱动
  • 质量保证
  • 利于维护

6.3 缺点

  • 风险驱动
  • 对开发人员要求高
  • 要求客户参与阶段评价,对用户来说比较困难,不以取得好的效果

6.4 适用范围

  • 庞大、复杂、高风险的系统

  • 内部开发的大规模软件项目

七、其他模型

7.1 喷泉模型

1.基本思想

软件开发过程自下而上周期的各阶段是相互重复和多次反复的,可以并行工作。

2.特点

迭代、演进、无缝

7.2 统一过程模型

1.基本思想

根据时间和RUP的核心工作划分为二维空间

7.3 构件组装模型

利用模块化思想将整个系统模块化,并在一定构建模型的支持下复用构建库中一个或多个软件构建,同组装高效率、高质量的构造软件系统。构建组装模型本质上是演化的,开发过程是迭代的。

1.优点

  • 充分利用软件复用,提高了软件开发的效率
  • 允许多个吸纳灌木同时开发,降低了费用,提高了可维护性,可实现分布提交软件产品。

2.缺点

  • 缺乏通用的构建组装结构标准,风险较大
  • 构建可重用性和系统高效性之间不易协调
  • 由于过分依赖于构建,构建质量影响着最终产品的质量

7.4 快速应用开发

侧重于短开发周期增量过程模型,是批捕模型的高速变体,通过基于构件的构建方法实现快速开发。

多个团队并行开发,但启动时间又先后,县启动的团队的提交物将作为后启动团队的输入

八、软件生存周期模型的选择

  • 模型因符合软件本身的性质(规模、复杂性)
  • 模型应满足软件应用系统整体开发进度要求
  • 模型应有可能控制并消除软件开发风险
  • 模型应有可用的计算机辅助工具(如快速原型工具)的支持
  • 模型应与用户和软件开发人员的知识和技能相匹配
  • 模型应有利于软件开发的管理与控制

九、软件生存周期模型的剪裁

程模型,是批捕模型的高速变体,通过基于构件的构建方法实现快速开发。

多个团队并行开发,但启动时间又先后,县启动的团队的提交物将作为后启动团队的输入

八、软件生存周期模型的选择

  • 模型因符合软件本身的性质(规模、复杂性)
  • 模型应满足软件应用系统整体开发进度要求
  • 模型应有可能控制并消除软件开发风险
  • 模型应有可用的计算机辅助工具(如快速原型工具)的支持
  • 模型应与用户和软件开发人员的知识和技能相匹配
  • 模型应有利于软件开发的管理与控制

九、软件生存周期模型的剪裁

在一个成俗和的IT企业或软件组织内部,通常需要根据各种软件开发模型的忒安,结合本单位的开发经验和行业特点的具体实际,还需要定制适合本单位的“生存周期模型裁剪指南”,有正对性的对选定的软件开发模型中定义的生存周期,进行适当裁剪,使他完全适合于本单位的需求。所谓裁剪,就是对元模型中定义的内容进行增、改、删,去掉对本单位不适用的内容,同时进一步细化,从而构成了完全适合本单位的“软件生存周期模型裁剪指南”。该指南在软件组织内部,专门供高层经理和项目经理在软件策划中选取软件开发模型时使用。

软件工程2:软件过程相关推荐

  1. 软件工程之软件过程结构

    第二章:软件工程 什么是软件工程? 软件过程是工作产品构建时所执行的一系列活动.动作和任务的集合.活动( activity)主要实现宽泛的目标(如与利益相关者进行沟通),与应用领域.项目大小.结果复杂 ...

  2. 软件工程---2.软件过程

    三个模型 瀑布模型 增量模型 集成和配置模型 没有适用于所有不同类型软件开发的过程模型. 瀑布模型 需求定义 系统和软件的设计 实现与单元测试 集成与系统测试 运行与维护 瀑布模型的特征 从上一项活动 ...

  3. L1软件工程与软件过程

    What is Software Engineering? "Software engineering is an engineering discipline that is concer ...

  4. 【软件工程】-软件过程

    软件过程 思考题如下 一.概念区别 1.软件过程 2.软件生存周期 3.软件过程模型 4.区别 二.软件过程和软件开发过程 三.软件过程模型 1.瀑布模型 2.增量模型 3.螺旋模型 四.瀑布模型与其 ...

  5. 【软件工程】软件过程各种模型的理解[ 瀑布模型 快速原型模型 增量模型 螺旋模型 喷泉模型 ]

    什么是软件过程? 软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤. 软件生命周期 瀑布模型 瀑布模型优点 : 1.为项目提供了按阶段划分的检查点 2.当前活动 ...

  6. 《个体软件过程》—第1章1.1节什么是软件工程

    本节书摘来自异步社区<个体软件过程>一书中的第1章1.1节什么是软件工程,作者[美]Watts S. Humphrey,更多章节内容可以访问云栖社区"异步社区"公众号查 ...

  7. 软件开发模型和软件过程模型_什么是软件和软件过程?

    软件开发模型和软件过程模型 软件 (Software) Software is a set of instructions which instructs the computer for perfo ...

  8. 软件工程详细设计说明书_软件设计师

    软件设计师是指能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档的实用性人才.还能够组织和指导程序员编写.调试程序,并对软件进行优化和集 ...

  9. 软件工程导论期末复习整理

    软件工程导论 第1章 软件工程学概述 复习小结 1.识记概念:软件,程序.数据,文档.软件危机.软件工程,软件过程, 软件生命周期 2.理解软件工程的本质特性6个和基本原理7条 3.掌握软件工程的三个 ...

  10. 考研复试——软件工程笔记归纳+思维导图

    考研复试的软件工程重点归纳 原文记录在我的幕布https://mubu.com/doc/3C3pXXIGg0上 里面查看观感更好 思维导图在最后,较为庞大.同样推荐到链接里面查看.点击查看思维导图即可 ...

最新文章

  1. Spring Boot 2.x基础教程:Swagger静态API文档的生成
  2. 学霸君袁荣喜:K12一对一辅导,这是一个收割的时代| MCtalk教育访谈摘录
  3. canvas反向裁剪技巧
  4. 架构师软技能之协商(上)
  5. PhpSpreadsheet使用
  6. java js 汉字对应拼音码,五笔码转换
  7. C#RSACryptoServiceProvider加密
  8. 计算机画图怎样更改文字,一招教你利用画图工具修改图片上的文字
  9. 鹏业安装算量软件8.0.0.41 升级内容
  10. 关于Tungsten Fabic版本问题,这一篇文章说清了
  11. 用v-modle做一个简单的计算器
  12. 虚拟机VMware安装苹果系统macOS,超级详细教程,附文件下载,真教程!!
  13. 扭转二战战局的密码系统 | 历史上的今天
  14. 如何看待 Java 大厂 P6+ 这一岗位能力要求?
  15. 使用jQuery的基于DOM的数据存储和检索
  16. 计算机专业英语完形填空,英语专业四级完形填空练习附答案
  17. 图文介绍——NC使用笔记
  18. 如何选择我们的损失函数 - 连接统计推断和问题所在领域的桥梁
  19. 北京理工大学计算机学院研究生培养方案,2018北京理工大学非全日制研究生专业学位培养方案...
  20. 【区块链技术工坊22期实录】王登辉:BANCOR算法详解及代码实现

热门文章

  1. 页面链接检查工具及一些好用的浏览器拓展插件
  2. 一线:阿里云不做SaaS,那这件事会交给谁?
  3. 预测贷款用户是否会逾期
  4. Android手机游戏摇杆
  5. PDF怎么转换成JPG图片?大家赶快学起来!
  6. Unable to chmod /system/build.prop.: Read-only file system
  7. ios开发: APNS消息推送实现
  8. matlab设置坐标轴/字体/颜色
  9. 可爱鱼os go语言环境 搭建+ goland安装激活
  10. 【DRF+Django】微信小程序入门到实战_day03(下)