软件工程2:软件过程
一、软件过程
软件过程是为了获得高质量软件所需要完成的一系列任务的框架,他规定了完成各项工作任务的工作步骤、运用方法的顺序、文档资料、管理措施、各个阶段的里程碑。
生命周期模型(过程模型):规定了把生命周期互粉成哪些阶段及各个阶段的执行顺序。
常见软件生命周期模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型、统一过程及敏捷过程及极限编程。
二、常见软件的过程模型
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:软件过程相关推荐
- 软件工程之软件过程结构
第二章:软件工程 什么是软件工程? 软件过程是工作产品构建时所执行的一系列活动.动作和任务的集合.活动( activity)主要实现宽泛的目标(如与利益相关者进行沟通),与应用领域.项目大小.结果复杂 ...
- 软件工程---2.软件过程
三个模型 瀑布模型 增量模型 集成和配置模型 没有适用于所有不同类型软件开发的过程模型. 瀑布模型 需求定义 系统和软件的设计 实现与单元测试 集成与系统测试 运行与维护 瀑布模型的特征 从上一项活动 ...
- L1软件工程与软件过程
What is Software Engineering? "Software engineering is an engineering discipline that is concer ...
- 【软件工程】-软件过程
软件过程 思考题如下 一.概念区别 1.软件过程 2.软件生存周期 3.软件过程模型 4.区别 二.软件过程和软件开发过程 三.软件过程模型 1.瀑布模型 2.增量模型 3.螺旋模型 四.瀑布模型与其 ...
- 【软件工程】软件过程各种模型的理解[ 瀑布模型 快速原型模型 增量模型 螺旋模型 喷泉模型 ]
什么是软件过程? 软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤. 软件生命周期 瀑布模型 瀑布模型优点 : 1.为项目提供了按阶段划分的检查点 2.当前活动 ...
- 《个体软件过程》—第1章1.1节什么是软件工程
本节书摘来自异步社区<个体软件过程>一书中的第1章1.1节什么是软件工程,作者[美]Watts S. Humphrey,更多章节内容可以访问云栖社区"异步社区"公众号查 ...
- 软件开发模型和软件过程模型_什么是软件和软件过程?
软件开发模型和软件过程模型 软件 (Software) Software is a set of instructions which instructs the computer for perfo ...
- 软件工程详细设计说明书_软件设计师
软件设计师是指能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档的实用性人才.还能够组织和指导程序员编写.调试程序,并对软件进行优化和集 ...
- 软件工程导论期末复习整理
软件工程导论 第1章 软件工程学概述 复习小结 1.识记概念:软件,程序.数据,文档.软件危机.软件工程,软件过程, 软件生命周期 2.理解软件工程的本质特性6个和基本原理7条 3.掌握软件工程的三个 ...
- 考研复试——软件工程笔记归纳+思维导图
考研复试的软件工程重点归纳 原文记录在我的幕布https://mubu.com/doc/3C3pXXIGg0上 里面查看观感更好 思维导图在最后,较为庞大.同样推荐到链接里面查看.点击查看思维导图即可 ...
最新文章
- Spring Boot 2.x基础教程:Swagger静态API文档的生成
- 学霸君袁荣喜:K12一对一辅导,这是一个收割的时代| MCtalk教育访谈摘录
- canvas反向裁剪技巧
- 架构师软技能之协商(上)
- PhpSpreadsheet使用
- java js 汉字对应拼音码,五笔码转换
- C#RSACryptoServiceProvider加密
- 计算机画图怎样更改文字,一招教你利用画图工具修改图片上的文字
- 鹏业安装算量软件8.0.0.41 升级内容
- 关于Tungsten Fabic版本问题,这一篇文章说清了
- 用v-modle做一个简单的计算器
- 虚拟机VMware安装苹果系统macOS,超级详细教程,附文件下载,真教程!!
- 扭转二战战局的密码系统 | 历史上的今天
- 如何看待 Java 大厂 P6+ 这一岗位能力要求?
- 使用jQuery的基于DOM的数据存储和检索
- 计算机专业英语完形填空,英语专业四级完形填空练习附答案
- 图文介绍——NC使用笔记
- 如何选择我们的损失函数 - 连接统计推断和问题所在领域的桥梁
- 北京理工大学计算机学院研究生培养方案,2018北京理工大学非全日制研究生专业学位培养方案...
- 【区块链技术工坊22期实录】王登辉:BANCOR算法详解及代码实现
热门文章
- 页面链接检查工具及一些好用的浏览器拓展插件
- 一线:阿里云不做SaaS,那这件事会交给谁?
- 预测贷款用户是否会逾期
- Android手机游戏摇杆
- PDF怎么转换成JPG图片?大家赶快学起来!
- Unable to chmod /system/build.prop.: Read-only file system
- ios开发: APNS消息推送实现
- matlab设置坐标轴/字体/颜色
- 可爱鱼os go语言环境 搭建+ goland安装激活
- 【DRF+Django】微信小程序入门到实战_day03(下)