软件工程1-3.过程模型.ppt
《软件工程1-3.过程模型.ppt》由会员分享,可在线阅读,更多相关《软件工程1-3.过程模型.ppt(91页珍藏版)》请在三一办公上搜索。
1、软件工程,第一部分 软件过程 第3章 惯例过程模型Chapter 3 Prescriptive Process ModelsPrescriptive:giving directives or rulesprescriptive a.规定的,指示的;约定俗成的,1968 年正式提出“软件工程”这一术语之后,软件工程围绕计算机科学、工程和管理三个方面,做了很多研究,建立了早期关于软件工程管理的一些基本准则,从中,我们可以看出早期软件工程的一些思路与出发点。其中最著名的是著名软件工程专家B.W.Boehm 在1983 年的一篇论文中,提出的软件工程7 条基本原理,反映了作为软件工程应该关注和考虑的若
2、干本质问题:,软件工程的基本原理,(1)用分阶段的生命周期计划严格管理经统计表明,不成功的软件项目中有一半左右是由于计划不周造成的。Boehm认为,在软件的整个生命周期中应制定并严格执行六类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。(2)坚持进行阶段评审大部分错误是在编码之前造成的错误发现与改正得越晚,所需付出的代价越高。因此,在每个阶段都进行严格的评审,以便尽早发现在软件开发过程的错误,软件工程的基本原理,(3)实行严格的产品控制在软件开发过程中不要随意改变需求,因为改变某项需求往往需要付出较高的代价,但在实践中用户往往会提出需求变更,因此需要采取科
3、学的产品控制技术。目前主要实行基准配置管理:基准配置是指经过阶段评审后的软件配置成分,如各个阶段产生的文档或程序代码。对涉及基准配置的修改,必须经过严格的评审,通过后才能实施修改。(4)采用现代程序设计技术实践表明:采用先进的技术既可提高软件开发的效率,又可提高软件维护的效率。80年代及之前:结构化分析、设计技术90年代:面向对象分析、设计技术,软件工程的基本原理,(5)结果应能清楚地审查软件产品是看不见、摸不着的逻辑产品,开发过程难以评价和管理。根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,使所得的结果能够清楚地审查(6)开发小组的人员应该少而精开发小组人员的素质和数量是
4、影响软件产品质量和开发效率的重要因素。开发小组人员数目的增加,使相互交流复杂、费用增加。(7)承认不断改进软件工程实践的必要性遵循前6条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产,但不能保证赶上时代前进的步伐。积极主动采纳新的软件技术,且不断总结经验。,软件工程的基本原理,惯例过程模型通常称为“传统的”过程模型回顾通用过程框架(包含哪些框架活动?)下面我们要讨论一些惯例过程模型,3.1 惯例过程模型,模型应用背景:在可以相当清楚地了解问题的需求,从沟通到部署,工作可按线性的方式进行。在对一个已有系统进行明确的调整或增强时(如税法修改了起征点,财务软件需要进行相应修改);需求能
5、准确定义并且相对稳定的新项目(如老师布置的大作业)。,3.2 瀑布模型,3.2 瀑布模型,基于通用过程框架的瀑布模型,沟通项目启动需求获取,策划项目估算进度计划项目跟踪,建模分析设计,构建编码测试,部署交互支持反馈,The Waterfall Model,3.2 瀑布模型,瀑布模型的另一个图示传统的生命周期模型70年由Royce提出典型瀑布模型具有顺序性和依赖性,瀑布模型的特征从上一项活动中接受该项活动的工作成果(工作产品),作为输入。利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,作为输出传给下一项活动对该项活动实施的工作进行评审。若其工作得到确认,则继续下一项活动。,3.2 瀑
6、布模型,瀑布模型的优点:1.强调开发的阶段性;2.强调早期计划及需求调查;3.强调产品测试。,3.2 瀑布模型,瀑布模型的缺点:从认识论角度看,人的认识是一个多次反复循环的过程,不可能一次完成。但瀑布模型中划分的几个阶段,没有反映出这种认识过程的反复性。特别是瀑布模型过于依赖早期进行的唯一一次需求调查,不能适应需求的变化;软件开发是一个知识密集型的开发活动,需要相互合作完成,但瀑布模型没有体现这一点。特别是由于瀑布模型是单一流程,开发中的经验教训不能反馈应用于本产品的过程。,3.2 瀑布模型,瀑布模型造成软件错误的积累和放大效应,思考:1、我们的日常生活中,有哪些活动是符合瀑布模型的?2、为什
7、么有时候我们的小型开发团队连瀑布模型都不能坚持做到?客观因素是什么?3、瀑布模型的实用之地在哪里?,3.2 瀑布模型,模型应用背景:在许多情况下,初始的软件需求有明确的定义,但整个开发过程却不宜单纯运用线性模型。同时,可能迫切需要为用户迅速提供一套功能有限的软件产品,然后在后续版本中再细化和扩展功能。两种增量过程模型:增量模型、RAD模型,3.3 增量过程模型,增量模型以迭代的方式运用瀑布模型。随着时间的推移,增量模型在每个阶段运用线性序列。每个线性序列生产出一个软件的可交付增量。增量模型又称产品改进模型(Incremental Model)当使用增量模型时,第一个增量往往是核心的产品,即实现
8、了基本的需求,但很多补充的特性(其中一些是已知的,另外一些是未知的)还没有发布。核心产品交用户使用(或进行更详细的复审),使用和/或评估的结果是下一个增量的开发计划。该计划包括对核心产品的修改,使其能更好地满足用户的需要,并发布一些新增的特点和功能。这个过程在每一个增量发布后不断重复,直到产生最终的完善产品。,3.3.1 增量模型,3.3.1 增量模型,项目时间,软件功能和特征,增量模型,例如,使用增量模型开发的字处理软件,可能在第一个增量中发布基本的文件管理、编辑和文档生成功能;在第二个增量中发布更加完善的编辑和文档生成能力;第三个增量实现拼写和文法检查功能;第四个增量完成高级的页面布局功能
9、。,3.3.1 增量模型,增量模型特点增量模型融合了线性顺序模型的基本成分(重复地应用)和原型的迭代特征。增量模型采用随着日程时间的进展而交错的线性序列。每一个线性序列产生软件的一个可发布的“增量”。应该注意:任何增量的过程流均可以使用原型范型。增量过程模型,像原型和其他演化方法一样,具有迭代的特征。但与原型不一样,增量模型强调每一个增量均发布一个可操作产品。早期的增量是最终产品的“可拆卸”版本,但它们确实提供了给用户服务的功能,并且提供了给用户评估的平台。,3.3.1 增量模型,增量模型应用举例如果在项目既定的商业要求期限之前不可能找到足够的开发人员,这种情况下增量模型显得特别有用。早期的增
10、量可以由较少的人员实现。如果核心产品的口碑不错,可以为下一个增量投入更多的人力(如果需要的话)。此外,增量能够有计划地管理技术风险,例如,一个系统需要用到某个正在开发的新硬件,而这个新硬件的交付日期不确定。因此可以在早期的增量中避免使用这个硬件,这样,就可以保证部分功能按时交付给最终用户,不至于造成过分的延期。,3.3.1 增量模型,RAD模型RAD(快速应用开发)模型是一个增量型的软件开发过程模型,强调极短的开发周期。该模型是瀑布模型的一个“高速”变种,通过大量使用可复用构件,采用基于构件的建造方法赢得了快速开发。如果正确地理解了需求,而且约束了项目的范围,利用这种模型可以很快创建出功能完善
11、的信息系统。其流程从业务建模开始,随后是数据建模、过程建模、应用生成、测试及反复。,3.3.2 RAD模型,RAD模型,3.3.2 RAD模型,RAD模型与瀑布模型相比,RAD模型不采用传统的第3代程序设计语言来创建软件,而是采用基于构件的开发方法复用已有的程序结构(如果可能)或使用可复用构件和或创建可复用的构件(如果需要)。在所有情况下,均使用自动化工具辅助软件创造。很显然,加在一个RAD模型项目上的时间约束需要“一个可伸缩的范围”。如果一个业务能够被模块化使得其中每一个主要功能均可以在不到3个月的时间内完成,则其是RAD的一个候选者。每一个主要功能可由一个单独的RAD组来实现,最后集成起来
12、形成一个整体。,3.3.2 RAD模型,RAD模型RAD模型通过大量使用可复用构件加快了开发速度,对信息系统的开发特别有效。但是与所有其他软件过程模型一样,RAD方法有如下缺陷。并非所有应用都适合RAD。RAD模型对模块化要求比较高,如果有哪一个功能不能被模块化,那么建造RAD所需要的构件就会有问题。如果高性能是一个指标且该指标必须通过调整接口使其适应系统构件才能赢得,RAD方法也有可能不能奏效。开发人员和客户必须在很短的时间内完成一系列的需求分析,任何一方配合不当都会导致RAD项目失败。RAD只能用于信息系统开发,不适合技术风险很高的情况。当一个新应用要采用很多新技术或当新软件要求与已有的计
13、算机程序的高互操作性时,这种情况就会发生。,3.3.2 RAD模型,模型应用背景:在开发过程中,业务和产品需求经常发生变化,直接导致最终产品难以实现;严格的交付时间使得开发团队不可能圆满地完成软件产品,但是必须交付功能有限的版本以应对竞争或商业压力;很好地理解了核心产品和系统需求,但是产品或系统扩展的细节问题却没有定义。演化模型是迭代的过程模型。三种增量过程模型:原型开发、螺旋模型、协同开发模型。,3.4 演化过程模型,3.4.1 原型开发,模型应用背景:客户提出了软件的一些基本功能,但是没有详细定义输入、处理和输出需求;开发人员可能对算法的效率、操作系统的兼容性和人机交互的形式等情况不确定。
14、在这些情况下,原型开发模型是不错的解决办法。虽然原型开发模型可以作为一个独立的过程模型,但是更多时候是作为一种技术应用在其他过程模型中。当用户需求模糊时,原型开发模型帮助软件工程师和客户更好地理解究竟需要做什么。,快速建立原型的目的,是获取需求,3.4.1 原型开发,沟通,策划快速策划,建模快速分析设计,构建构建原型,部署部署交付品及反馈,原型开发模型,快速建立原型的目的,是获取需求,3.4.1 原型开发,communication,Quickplan,ModelingQuick design,Constructionof prototype,Deploymentdelivery&feedba
15、ck,快速建立原型的目的,是获取需求,3.4.1 原型开发,应用原型开发模型需要注意:在“需求分析”阶段,开发团队和用户一起为想象中的系统的某些主要部分,定义需求和规格说明,并由开发团队在规格说明级用原型描述语言构造一个系统原型,它代表了部分系统,包括哪些为满足用户需求的必要属性。该原型可用来帮助分析和设计工作,而不是一个软件产品。通过演示原型,用户可以根据他所期望的系统行为来评价原型的实际行为。如果原型不能满意地运行,用户能立刻找出问题和不可接受的地方,并与开发团队重新定义需求。,3.4.1 原型开发,该过程一直持续到用户认为该原型能成功地体现想象中的系统的主要部分功能为止。在这期间,用户和
16、开发团队都不要为程序算法或设计技巧等枝节问题分心,而是要确定开发团队是否理解了用户的意思,同时试验实现它们的若干方法。有了满意的系统原型,同时也积累了使用原型的经验,用户常会提出新目标,从而进一步重新原型周期。新目标的范围要比修改或补充不满意的原型大。,3.4.1 原型开发,原型开发模型的特点软件原型是软件的最初版本,以最少的费用、最短的时间开发出的、反映最后软件的主要特征的系统。它具有以下特征:(1)它是一个可实际运行的系统。(2)它没有固定的生存期。一种极端是扔掉原型(以最简便方式大量借用已有软件,做出最后产品的模型,证实产品设想是成功的,但在产品中并不使用这些模块);另一种极端是最终产品
17、的一部分即增量原型(先做出最终产品的核心部分,逐步增加补充模块),演进原型居于其中(每一版本扔掉一点,增加一点,逐步完善至最终产品)。,3.4.1 原型开发,(3)从需求分析到最终产品都可作原型,即可为不同目标作原型。(4)它必须快速、廉价。(5)它是迭代过程的集成部分,即每次经用户评价后修改、运行,不断重复双方认可。,3.4.1 原型开发,5.对原型法的评价优点任何功能一经开发就能进入测试以便验证是否符合产品需求。帮助导引出高质量的产品要求。如果没有可能在一开始就弄清楚所有的产品需求,它们可以分批取得。而对于已提出的产品需求,则可根据对现阶段原型的试用而做出修改。风险管理可以在早期就获得项目
18、进程数据,可据此对后续的开发循环做出比较切实的估算。提供机会去采取早期预防措施,增加项目成功的机率。大大有助于早期建立产品开发的配置管理,产品构建(build),自动化测试,缺陷跟踪,文档管理。均衡整个开发过程的负荷。,3.4.1 原型开发,开发中的经验教训能反馈应用于本产品的下一个循环过程,大大提高质量与效率。如果风险管理发现资金或时间已超出可承受的程度,则可以决定调整后续的开发,或在一个适当的时刻结束开发,但仍然有一个具有部分功能的,可工作的产品。心理上,开发人员早日见到产品的雏型,是一种鼓舞。使用户可以在新的一批功能开发测试后,立即参加验证,以便提供非常有价值的反馈。可使销售工作有可能提
19、前进行,因为可以在产品开发的中后期取得包含了主要功能的产品原型去向客户作展示和试用。,3.4.1 原型开发,主要缺点客户看到了软件的工作版本,但不知道整个软件是用“口香糖和包装带”搭成的,也不知道为了尽快完成软件,开发者没有考虑整体软件质量和长期的可维护性。当开发者告诉客户整个系统需要重建以提高软件质量的时候,客户会不满意,并且要求对软件稍加修改使其变成一个可以运行的产品。因此,软件开发管理往往陷入失效。开发者为了使一个原型快速运行起来,往往在实现过程中采用折衷的手段。他们经常使用不合适的操作系统或程序设计语言,仅仅是因为当时可用、熟悉。他们也经常采用一种低效的算法,仅为了证明系统的能力。时间
20、长了,开发者可能使用折中选择,而忽略了这些选择其实并不适合的理由,造成并不完美的选择变成了系统的组成部分。,3.4.1 原型开发,尽管原型开发有一些缺点,但仍是一个有效的模型。关键是要在游戏开始的时候制定规则:客户和开发者必须认同原型是为定义需求服务的;要丢弃原型(至少是部分丢弃),实际的软件系统以质量为第一目标。,3.4.1 原型开发,问题:请举例一个适合采用原型开发模型的软件项目。,3.4.1 原型开发,3.4.1 原型开发,螺旋模型 最早由Boehm提出,是一种演进示软件过程模型。结合了原型的迭代特性和普遍模型的系统性和可控性特点。在原型基础上,进行多次原型反复并增加风险评估,形成螺旋模
21、型。具有快速开发越来越完善软件版本的潜力。Boehm这样描述螺旋模型:,3.4.2 螺旋模型,3.4.2 螺旋模型,基于通用框架活动的螺旋模型,3.4.2 螺旋模型,五、螺旋模型 英文版。,3.4.2 螺旋模型,五、螺旋模型 英文版。,3.4.2 螺旋模型,螺旋模型分析其他过程模型在软件交付后就结束了。螺旋模型则不同,它应用在计算机软件的整个生命周期。螺旋上的第一圈表示“概念开发项目”,它起始于螺旋的中心,经过多个迭代,直到概念开发结束。如果这个概念将被开发成实际的产品,过程模型将继续沿着螺旋向外伸展,此时成为“新产品开发项目”。新产品可能沿着螺旋通过一系列的迭代不断演进。最后,可以用一圈螺旋
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 过程 模型
链接地址:https://www.31ppt.com/p-6610823.html