软件过程框架与软件过程模型.ppt
《软件过程框架与软件过程模型.ppt》由会员分享,可在线阅读,更多相关《软件过程框架与软件过程模型.ppt(88页珍藏版)》请在三一文库上搜索。
1、第三讲 软件过程框架与软件过程模型,2,软件过程框架,什么是过程? 针对一个给定目标的一系列操作步骤。 例如 - 目标:去火车站 - 操作步骤:去南门/东门公共汽车站,乘50/17路汽车, 每个过程都有明确的目的以及具体的操作步骤,操作步骤说明了有哪些操作以及按照什么样的方式来执行操作。,3,什么是软件开发过程? 按照项目的进度、成本和质量限制,开发和维护满足用户需求的软件所必需的一组有序的软件开发活动集合。 软件开发活动的例子 - 需求分析 - 体系结构设计 开发活动的顺序例子 - 先做需求分析,然后再做体系结构设计 ,4,在按任务性质,软件开发活动可分为二种形式 技术活动 - 对软件项目实
2、施开发,产生软件产品 - 例如,需求分析,概要设计,编码,单元测试等等 管理活动 - 对软件项目中的人、产品和过程等实施管理的活动 - 例如,制订软件项目计划,软件配置等等,5,如何定义软件开发活动? - 名称 - 任务 - 输入: 开始所必需满足的条件 - 输出: 完成时所必须满足的条件以及结果 - 实施: 做什么,怎么做(详细的步骤),或者如何从输入产生输出,6,软件活动例子: - 名字: 单元测试 - 任务 对软件基本单元模块进行测试,判断是否有错 - 输入 有一个已完成、被文档化和批准的软件单元测试计划 供测试的软件单元模块代码 - 实施 遵循单元测试计划,运行所有的测试用例 撰写单元
3、测试报告 - 输出 单元测试报告,7,为什么需要软件过程? - 明确了软件开发的过程和步骤,促进工程化软件开发 - 便于制定软件项目计划 - 为软件开发提供了可视性,便于对软件开发过程进行管理和控制 - 便于细化和安排任务,使得每个人员明确各自的工作,8,软件开发过程模型,软件开发过程模型 - 软件开发过程模型是软件开发全过程、软件开发活动以及它们之间关系的结构框架 - 指导软件开发以及软件开发过程的定义 常用的软件开发过程模型 - 瀑布模型 - 原型模型 - 增量模型 - 迭代模型 - 螺旋模型,9,软件过程分类 - 基本过程类 是构成软件生存周期主要部分的那些过程, 包括:定义、构建、维护
4、等过程. - 支持过程类 可穿插到基本过程中提供支持的一系列过程, 包括:文档开发、 配置管理、 质量保证、验证、确认、联合评审、审计、问题解决等程. - 组织过程类 一个组织用来建立、实施一种基础结构, 并不断改进该基础结构的过程, 包括:管理、计划、改进、培训等过程.,10,公共软件过程框架,11,一个公共过程框架,是通过定义若干框架活动来建立的,如果不考虑其规模和复杂性,这些活动适用于所有软件项目。 任务集合每一个集合都由软件工程工作任务、项目里程碑、软件工程产品和交付物以及质量保证点组成使得框架活动适应于不同软件项目的特征和项目组的需求。 支持性活动如软件质量保证,软件配置管理和测度,
5、它们贯穿于整个过程模型之中。支持性活动独立于任何一个框架活动,且贯穿于整个过程。,12,管理性活动,- 软件项目跟踪和控制 允许项目组根据计划来评估项目进度,并且采取必要的措施保证项目按进度计划进行。 - 风险管理 评估可能对项目成果或者产品质量产生影响的风险。 - 软件质量保证 确定和执行用以保证软件质量的活动。 正式技术评审: 评估软件工程产品,尽量在错误传播到下一个动作或活动之前,发现并清除错误。 V&V(Verification and Validation):验证与确认。,13,- 测量 定义和收集过程、项目和产品的度量,以帮助团队在发布软件的时候满足客户要求。同时,测量还可与其它框
6、架协同使用。 - 软件配置管理 管理整个软件过程中变更所带来的影响。 - 可复用管理 定义产品复用的标准(包括软件构件),并且建立构件复用机制。 - 工作产品(Work Product)的准备和生产 包括了创建产品所必须的活动如建模、文档、日志、表格和列表等。,14,主要的开发和支持过程 1、软件需求分析 任务:收集、分析、理解、确定用户的要求;然后把用户的要求精确、完整地描述表达出来。 目的:要回答“要解决什么问题?”, 既系统“做什么?”。 输入:系统需求文档/问题陈述、本过程相关工作计划 步骤:可行性研究、需求分析、制定相关开发计划 输出:可行性报告、需求规范、下一过程开发计划 需求说明
7、书是让用户理解:“什么是他们真正需要的”; 让开发者理解“什么是他们真正的开发目标”。,15,Review Item Discrepancy,16,任务:给出实现系统的实施蓝图。 目的:要回答“如何解决该问题?”, 既系统“怎样做?”。 输入:软件需求规范、本过程相关计划 步骤: 概要设计:解决系统的子系统/模块划分、子系统/模块的层次结构及数据库设计; 详细设计:解决每个模块/类内部算法和数据结构; 制定下一过程相关计划。 输出:体系结构设计说明书、详细设计说明书、下一过程相关计划,2、软件设计,17,18,19,3、软件构造,任务:根据设计说明书中每个模块的控制流程编写出相应的源程序。 目
8、的:写出高质量的代码和相应的文档。 - 构造要注意使系统更易于使用和系统的可重用性。 - 选择合适的开发工具及系统软件、数据库软件、中间件等。制定编程规范。 输入:软件设计文档、本过程相关计划 步骤:编程、单元测试、制定下一阶段相关计划、编制用户文档 输出:源程序和相关文档、下一过程相关计划,20,4、软件测试,任务:检查、发现程序中的错误,提高系统可靠性。 目的:保证系统的正确性、可靠性和可用性。 回答:“该系统是否能实现规定的操作?”。 输入:已经完成的代码、本过程相关的计划 步骤:集成测试、系统测试、确认测试 输出:测试报告和软件修改报告等。,21,5、软件维护,任务:改正软件系统在使用
9、过程中发现的隐含错误,扩充在使用过程中新的功能要求。 目的:维护软件系统的正常运行。 回答:系统是否满足用户的应用要求。 输入:问题报告 步骤:问题报告审批、问题修改、审核 输出:软件修改报告。,22,6.软件配置管理,软件修改后会发生什么呢? - 同步更新当两个或两个以上的角色各自工作在同一产物上时,最后一个修改者会破坏前者的工作。 - 通知不达当被若干开发者共享的产品中的问题被解决时,修改未被通知到一些开发者。 - 多个版本软件修改与文档不一致。 - 新版本公布的管理和监控。 配置和变更管理提供了准则管理演化系统中的多个变体,跟踪给定软件创建过程中的版本。,23,SRD,24,7.软件工程
10、管理,项目管理是过程管理的主要体现: (1)建立与客户的沟通渠道; (2)制订计划,定义资源、时限、落实到开发组; (3)风险分析,评估所采用的技术和管理带来的风险; (4)技术过程监控; (5)客户评审,获得客户的反馈。,25,26,27,8.软件质量保证,软件质量保证SQA活动,贯穿于软件过程始终。开发单位成立SQA小组负责全面质量管理。在开发项目计划时就要做出SQA计划。其工作: - 各种测试:测试软件是否满足规格说明要求。 - 各种评审/审计:为多种人员参与的讨论会,以规格说明或各种标准、规范为准评价各项软件工作。 - 报告和记录:所有测试、评审、审计都要详细记录并写出报告,报告和记录
11、均要整理、归档。 以上活动均应在软件质量保证计划中列出。,28,29,传统软件生命周期模型,1. 瀑布模型 Winston Royce在软件生命周期概念的基础上,于1970年提出了著名的“瀑布模型”(waterfall model)。,30,瀑布模型中的每一个开发活动具有下列特征: - 本活动的工作对象来自于上一项活动的输出,这些输出一般是代表本阶段活动结束的里程碑式的文档。 - 根据本阶段的活动规程执行相应的任务。 - 产生本阶段活动相关产出软件产品,作为下一活动的输入。 - 对本阶段活动执行情况进行评审。,31,瀑布模型的优缺点,32,2. V模型和W模型,1980年代后期Paul Roo
12、k提出了V模型,33,Evolutif公司在V模型的基础上提出了W模型,34,3. 原型方法,原型方法的产生 - 瀑布模型、V模型和W模型都将软件生命周期划分成独立串行的几个阶段,前一个阶段没有完成便无法开始下一阶段的工作。 - 然而完整而准确的需求规格说明是很难得到的,因为: 在开发早期用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求 随着开发工作的推进,用户可能会产生新的要求 开发者又可能在设计与实现的过程中遇到一些没有预料到的实际困难,需要以改变需求来解脱困境,35,原型方法指在获得一组基本需求后,通过快速分析构造出一个小型的软件系统原型,满足用户的基本要求。 用户通
13、过使用原型系统,提出修改意见,从而减少用户与开发人员对系统需求的误解,使需求尽可能准确。 原型方法主要用于明确需求,但也可以用于软件开发的其它阶段。,36,原型的三种作用类型: (1)探索型:弄清用户对目标系统的要求,确定所期望的特性;探讨多种实现方案的可行性。主要针对需求模糊、用户和开发者对项目开发都缺乏经验的情况。 (2)实验型;用于大规模开发和实现之前,考核技术实现方案是否合适。 (3) 进化型:在构造系统的过程中能够适应需求的变化,通过不断地改进原型,逐步将原型进化成最终的系统。它将原型方法的思想扩展到软件开发的全过程,适用于需求经常变动的软件项目。,37,原型方法的特点: (1)从认
14、知论的角度看,原型方法遵循了人们认识事物的规律,因而更容易为人们所普遍接受,这主要表现在: 人们对任何事物的认知都不可能一蹴而就、尽善尽美; 认识和学习的过程都是循序渐进的; 对于事物的描述,往往都是受环境的启发而不断完善的; 人们批评指责一个已有的事物,要比空洞地描述自己的设想容易得多,改进一些事物要比创造一些事物容易得多。,38, 原型方法将模拟的手段引入分析的初期阶段,沟通了人们的思想,缩短了用户和开发人员之间的距离。这主要表现在: 所有问题的讨论都是围绕某一个确定原型而进行的,彼此之间不存在误解和答非所问的可能性,为准确认识问题创造了条件。 有了原型才能启发人们对原来想不起来或不易准确
15、描述的问题有一个比较确切的描述; 能够及早地暴露出系统实现后存在的一些问题,促使人们在系统实现之前就加以解决。,39,原型法的适用范围和局限性: - 对于一个大型系统,如果不经过系统分析得到系统的整体划分,而直接用原型来模拟是很困难的。 - 对于原有应用的业务流程、信息流程混乱的情况,原型构造与使用有一定的困难。 - 对于一个批处理系统,由于大部分活动是内部处理的,因此应用原型方法会有一定的困难。,40,原型方法存在的问题: - 文档容易被忽略。 - 建立原型的许多工作会被浪费掉 。 - 项目难以规划和管理。,41,原型方法可以支持软件生命周期的不同阶段,42,4. 迭代模型(Iterativ
16、e),使用瀑布模型人们认识到,由于需求很难调研充分,所以很难一次性开发成功。 迭代模型提倡两次开发: - 第一次是试验开发,得到试验性的原型产品,其目标只是在于探索可行性,弄清软件需求; - 第二次在此基础上获得较为满意的软件产品。,43,迭代模型分类: - 探索式迭代模型 - 进化型迭代模型 迭代模型的特点: - 优点:明确用户需求、提高系统质量、降低开发风险; - 缺点:难于管理、结构较差、技术不成熟; 迭代模型适用范围: - 需求不清楚; - 小型或中小型系统; - 开发周期短,44,5. 增量模型,Mills等人于1980年提出 ,指首先对系统最核心或最清晰的需求进行分析、设计、实现、
17、测试并集成到系统中。再按优先级逐步对后续的需求进行上述工作,逐步建设成一个完整系统的开发方法。,45,46,增量模型的优点: - 有利于增加客户对系统的信心; - 降低系统失败风险; - 提高系统可靠性; - 提高了系统的稳定性和可维护性; 增量模型的缺点: - 增量粒度难以选择; - 确定所有的基本业务服务比较困难 。,47,6. 螺旋模型,Boehm于1988年提出,主要针对大型软件项目的开发。 大型软件项目的特点: (1)需求功能复杂,无法一开始就明确;开发周期长,中途需求经常变化; (2)往往存在诸多风险因素,在不同程度上损害软件开发过程和软件产品的质量,所以必须对风险进行管理。 螺旋
18、模型最大特点就是引入了明确的风险管理。,48,49,制定计划:确定软件项目目标;明确对软件开发过程和软件产品的约束;制定详细的项目管理计划;根据当前的需求和风险因素,制定实施方案,并进行可行性分析,选定一个实施方案,并对其进行规划。 风险分析:明确每一个项目风险,估计风险发生的可能性、频率、损害程度,并制定风险管理措施规避这些风险。 实施工程:针对每一个开发阶段的任务要求执行本开发阶段的活动。 客户评估:客户使用原型,反馈修改意见;根据客户的反馈,对产品及其开发过程进行评审,决定是否进入螺旋线的下一个回路。,50,7. 喷泉模型,喷泉模型认为软件开发过程的各个阶段是相互重叠和多次反复的,就象喷
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 过程 框架 模型
链接地址:https://www.31doc.com/p-2161055.html