资源预览内容
第1页 / 共39页
第2页 / 共39页
第3页 / 共39页
第4页 / 共39页
第5页 / 共39页
第6页 / 共39页
第7页 / 共39页
第8页 / 共39页
第9页 / 共39页
第10页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1软件工程软件工程 2软件工程软件工程软件过程及开发模型软件过程及开发模型3主要讲解内容主要讲解内容1、软件的生命期、软件的生命期2 2、瀑布模型、瀑布模型、瀑布模型、瀑布模型3 3、增量模型、增量模型、增量模型、增量模型4 4、迭代模型、迭代模型、迭代模型、迭代模型5 5、快速原型模型、快速原型模型、快速原型模型、快速原型模型6、软件工程的目标、软件工程的目标4 软件过程及开发模型软件过程及开发模型导读:导读: 本章讨论的软件生命周期的基本任务、本章讨论的软件生命周期的基本任务、软件开发模型是软件工程研究的重点。软件开发模型是软件工程研究的重点。 软件生命周期与选择的开发模型有关,不软件生命周期与选择的开发模型有关,不同的开发模型,对应不同的生命周期。同的开发模型,对应不同的生命周期。 最常用的软件开发模型有:瀑布模型、快最常用的软件开发模型有:瀑布模型、快速原型模型、增量模型、螺旋模型和喷泉型等速原型模型、增量模型、螺旋模型和喷泉型等5 软件的生命期软件的生命期 软件的生命期:软件的生命期: 是指软件产品从考虑其是指软件产品从考虑其概念概念开始,到该软件开始,到该软件产品产品不再使用不再使用为止的整个时期。为止的整个时期。 一般包括概念阶段、需求阶段、计划阶段、一般包括概念阶段、需求阶段、计划阶段、实现阶段、测试阶段、安装阶段以及交付使用阶实现阶段、测试阶段、安装阶段以及交付使用阶段、运行阶段和维护阶段。段、运行阶段和维护阶段。 有时还有退役阶段。这些阶段可以有重复。有时还有退役阶段。这些阶段可以有重复。6 软件生命周期软件生命周期序号序号周期划分周期划分周期名称周期名称周期的主要活动周期的主要活动1受妊至分娩受妊至分娩怀孕怀孕定期检查及定期检查及O岁教育岁教育203岁岁婴儿婴儿重点看护,上婴儿室或托儿所重点看护,上婴儿室或托儿所336岁岁幼儿幼儿上幼儿园上幼儿园4612岁岁儿童儿童上小学,好好学习,天天向上上小学,好好学习,天天向上51218岁岁少年少年中考、高考,自古英雄出少年中考、高考,自古英雄出少年61830岁岁青年青年上大学,读硕士、博士,就业,结上大学,读硕士、博士,就业,结婚婚73060岁岁中年中年上班,追求成就、成功、贡献上班,追求成就、成功、贡献860 岁以上岁以上老年老年退休,老有所乐,写回忆录退休,老有所乐,写回忆录9去世去世死亡死亡长眠于地下长眠于地下人的生命周期人的生命周期7 软件生命周期软件生命周期序号序号周期名称周期名称周期的主要活动周期的主要活动1问题定义问题定义要解决什么问题要解决什么问题2可行性可行性要解决的问题是否可行要解决的问题是否可行3需求分析需求分析解决问题要作什么解决问题要作什么4概要设计概要设计总体、逻辑设计总体、逻辑设计5详细设计详细设计功能设计,流程图、用例图、活动图、数据库功能设计,流程图、用例图、活动图、数据库6程序设计程序设计在确定的硬软环境下编写程序在确定的硬软环境下编写程序7测试,文档测试,文档在确定的硬软环境下进行测试,文档资料在确定的硬软环境下进行测试,文档资料8技术支持技术支持上线调试、初始化、培训上线调试、初始化、培训9售后服务售后服务维护、解答、修改、调整维护、解答、修改、调整软件的生命周期软件的生命周期8瀑布模型瀑布模型 瀑布模型又称流水式过程模型,它可以形象地用阶梯瀑瀑布模型又称流水式过程模型,它可以形象地用阶梯瀑布描述,水由上向下一个阶梯一个阶梯地倾泻下来,最后进布描述,水由上向下一个阶梯一个阶梯地倾泻下来,最后进入风干浪静的大湖,这个大湖就是软件企业的产品库,如图入风干浪静的大湖,这个大湖就是软件企业的产品库,如图所示。所示。第第1台阶台阶/水从第水从第1台阶台阶 / /第第2台阶台阶/顺流而下顺流而下/ / 第第3台阶台阶/直到流过第直到流过第N台阶台阶 / / / / / / /第第N台阶台阶/最后一个台阶最后一个台阶/ / / / /第第M台阶台阶/9瀑布模型瀑布模型瀑布模型的原理:瀑布模型的原理:软件生命周期是将问题定义、可行性研究、需求分析、概软件生命周期是将问题定义、可行性研究、需求分析、概要设计、详细设计、编程、测试、技术支持、售后服务等每个要设计、详细设计、编程、测试、技术支持、售后服务等每个阶段当做瀑布中的一个台阶,把软件生存过程比喻成瀑布中的阶段当做瀑布中的一个台阶,把软件生存过程比喻成瀑布中的流水,软件生存过程在这些台阶中由上向下地奔流。流水,软件生存过程在这些台阶中由上向下地奔流。 瀑布模型规定了各项关键软件工程活动,自上而下、相互瀑布模型规定了各项关键软件工程活动,自上而下、相互衔接、逐级下落,如同瀑布的固定次序。当发现某阶段的上游衔接、逐级下落,如同瀑布的固定次序。当发现某阶段的上游存在缺陷时,可以通过追溯,予以消除或改进,但要付出很大存在缺陷时,可以通过追溯,予以消除或改进,但要付出很大代价,因为水要在瀑布台阶上倒过来向上流动,需要消耗很多代价,因为水要在瀑布台阶上倒过来向上流动,需要消耗很多能源或动力。能源或动力。 10瀑布模型瀑布模型只要项目经理或软件管理人员,控制好每级台阶的只要项目经理或软件管理人员,控制好每级台阶的高高度度和和宽度宽度,在每个台阶处设立,在每个台阶处设立里程碑或基线里程碑或基线,并,并组织好组织好对对基线的基线的评审与审计评审与审计,就可以控制好项目的开发成本、进度,就可以控制好项目的开发成本、进度和质量。和质量。 早期的面向过程的结构化分析、结构化设计、结构化早期的面向过程的结构化分析、结构化设计、结构化编程、结构化测试、结构化维护方法,很适合于瀑布模型。编程、结构化测试、结构化维护方法,很适合于瀑布模型。或者说,瀑布模型适合于结构方法,即面向过程的软件开或者说,瀑布模型适合于结构方法,即面向过程的软件开发方法。发方法。3811瀑布模型瀑布模型瀑布模型的特点是:瀑布模型的特点是: (1)(1)里程碑或基线驱动,或者说文档驱动。里程碑或基线驱动,或者说文档驱动。 (2)(2)过程逆转性很差或者说不可逆转,因为过程逆转性很差或者说不可逆转,因为根据上流的错误会在下流进行发散性传播的原根据上流的错误会在下流进行发散性传播的原理,所以逆转将会延误工期,增加成本,造成理,所以逆转将会延误工期,增加成本,造成重大损失。重大损失。3812瀑布模型瀑布模型选择的条件:选择的条件:不是任何软件都可以采用瀑布模型的,软件项目不是任何软件都可以采用瀑布模型的,软件项目或产品选择瀑布模型,必须满足下列条件:或产品选择瀑布模型,必须满足下列条件:(1)(1)在开发时间内需求没有或很少变化。在开发时间内需求没有或很少变化。(2)(2)分析设计人员对应用领域很熟悉。分析设计人员对应用领域很熟悉。(3)(3)低风险项目(对目标、环境很熟悉)。低风险项目(对目标、环境很熟悉)。(4)(4)用户使用环境很稳定。用户使用环境很稳定。(5)(5)用户除提出需求以外,很少参与开发工作。用户除提出需求以外,很少参与开发工作。尽管上述条件比较苛刻,但是,软件企业在开尽管上述条件比较苛刻,但是,软件企业在开发新产品或新项目时,往往还是采用瀑布模型。系发新产品或新项目时,往往还是采用瀑布模型。系统软件和工具软件,也常常采用瀑布模型。统软件和工具软件,也常常采用瀑布模型。13瀑布模型瀑布模型瀑布模型的缺点是:瀑布模型的缺点是: 瀑布只能一个个台阶地往下流,不可能倒着往上流,瀑布只能一个个台阶地往下流,不可能倒着往上流,这就是它致命的缺点。这就是它致命的缺点。 瀑布式生命周期通常会导致在项目后期,出现瀑布式生命周期通常会导致在项目后期,出现“问题问题”堆积。更可怕的是,错误的传递会采取发散扩大的方式,堆积。更可怕的是,错误的传递会采取发散扩大的方式,比如,在需求阶段中的一个错误或遗漏,在编程阶段就可比如,在需求阶段中的一个错误或遗漏,在编程阶段就可能引发几十个错误或遗漏。能引发几十个错误或遗漏。 若项目开发周期长,其进度会被严重拖延,最终导致若项目开发周期长,其进度会被严重拖延,最终导致成本和质量的失控。成本和质量的失控。 14瀑布模型瀑布模型 为了克服该模型的缺陷,微软采取严格的里为了克服该模型的缺陷,微软采取严格的里程碑管理制度。程碑管理制度。CMMCMM则采取阶段评审和不符合项的则采取阶段评审和不符合项的动态跟踪制度,只有前一阶段的不符合项全部改动态跟踪制度,只有前一阶段的不符合项全部改正后,才允许开发人员进入后一阶段的工作。正后,才允许开发人员进入后一阶段的工作。 对于这些不符合项,软件管理部门要列出表对于这些不符合项,软件管理部门要列出表格,确定责任人,限定改正时间,动态跟踪到底。格,确定责任人,限定改正时间,动态跟踪到底。15增量模型增量模型增量模型是遵循递增方式来进行软件开发的。软件产增量模型是遵循递增方式来进行软件开发的。软件产品被作为一组增量构件品被作为一组增量构件(模块模块),每次设计、实现、集成、,每次设计、实现、集成、测试和交付一块构件,直到所有构件全部实现为止。这像测试和交付一块构件,直到所有构件全部实现为止。这像搭积木一样,如图所示。搭积木一样,如图所示。第1次集成第1块积木第2次集成第1块积木第2块积木第3次集成第块积木第2块积木第3块积木第N次集成第1块积木第2块积木第3块积木第N块积木3816增量模型增量模型增量模型的原理:增量模型的原理: 要开发一个大的软件系统,先开发其中的核心模块要开发一个大的软件系统,先开发其中的核心模块( (或子系或子系统统) ),然后再开发其他模块,然后再开发其他模块( (或子系统或子系统) ),这样一个个模块,这样一个个模块( (或子或子系统系统) )地增加上去,就像搭积木一样,直至整个系统开发完毕为地增加上去,就像搭积木一样,直至整个系统开发完毕为止。当然,在每增加一个模块前,先要对该模块进行模块测试。止。当然,在每增加一个模块前,先要对该模块进行模块测试。通过后再将此模块加入到系统中,然后还要进行系统集成测试通过后再将此模块加入到系统中,然后还要进行系统集成测试( (联调联调) )。系统集成测试成功后,再增加新的模块。这样多次循。系统集成测试成功后,再增加新的模块。这样多次循环,直到系统搭建完毕为止。由此可见,这样的软件系统本身环,直到系统搭建完毕为止。由此可见,这样的软件系统本身应该是模块化的,每个模块应该是高内聚应该是模块化的,每个模块应该是高内聚( (模块内部的数据与信模块内部的数据与信息关系紧密息关系紧密) )、低耦合、低耦合( (模块之间的数据与信息联系松散模块之间的数据与信息联系松散) )、信息、信息隐蔽隐蔽( (模块包装后信息很少外露模块包装后信息很少外露) )的,这样的模块当然是可组装的,这样的模块当然是可组装的、可拆卸的。的、可拆卸的。 17增量模型增量模型增量模型的特点:增量模型的特点:(1)(1)任务或功能模块驱动,可以分阶段提交任务或功能模块驱动,可以分阶段提交产品。产品。(2)(2)有多个任务单,这些多个任务单的集合,有多个任务单,这些多个任务单的集合,构成项目的一个总构成项目的一个总任务书任务书,或总,或总用户需求用户需求报告报告需求规格说明书需求规格说明书。18增量模型增量模型选择模型的条件选择模型的条件 :(1)在整个项目开发过程中,需求都可能发生变化,客户在整个项目开发过程中,需求都可能发生变化,客户接受分阶段交付。接受分阶段交付。 (2)分析设计人员对应用领域不熟悉,很难一步到位。分析设计人员对应用领域不熟悉,很难一步到位。 (3)中等或高风险项目中等或高风险项目(工期过紧且可分阶段提交的系统或工期过紧且可分阶段提交的系统或目标、环境不熟悉目标、环境不熟悉)。 (4)用户可参与到整个软件开发过程中。用户可参与到整个软件开发过程中。 (5)软件公司自己有较好的类库、构件库。软件公司自己有较好的类库、构件库。 尽管上述条件比较苛刻,软件企业在开发大型项目时,尽管上述条件比较苛刻,软件企业在开发大型项目时,一般是采用增量模型。因为大型项目一般由多个子系统构成,一般是采用增量模型。因为大型项目一般由多个子系统构成,开发者可以根据轻重缓急次序,先进行全局需求分析和概要开发者可以根据轻重缓急次序,先进行全局需求分析和概要设计,把握好全局数据库的集成设计,然后再一个接设计,把握好全局数据库的集成设计,然后再一个接个地个地实现各个子系统。实现各个子系统。3819增量模型增量模型增量模型的缺点:增量模型的缺点: 若软件系统的组装和拆卸性不强,或开发若软件系统的组装和拆卸性不强,或开发人员全局把握水平不高人员全局把握水平不高( (没有数据库设计专家没有数据库设计专家进行系统集成进行系统集成) ),或者客户不同意分阶段提交,或者客户不同意分阶段提交产品,或者开发人员过剩,都不宜采用这种模产品,或者开发人员过剩,都不宜采用这种模型。型。3820迭代模型迭代模型迭代迭代迭代迭代模型的原理:模型的原理: 迭代是一种逼近真值的算法迭代是一种逼近真值的算法, ,要寻求某个问题的真值,可要寻求某个问题的真值,可以设计一种迭代算法,第以设计一种迭代算法,第1 1次给定一个初值,这个初值离真值次给定一个初值,这个初值离真值可能很远,误差很大,进行第可能很远,误差很大,进行第1 1次计算,得到第次计算,得到第2 2个值。第个值。第2 2个个值离真值会近一些,但误差还是不小,没关系,再把这个值值离真值会近一些,但误差还是不小,没关系,再把这个值当新的初值,再计算一次,该值离真值更近了,误差更小了当新的初值,再计算一次,该值离真值更近了,误差更小了这样循环迭代计算这样循环迭代计算N N次下去,直到第次下去,直到第N N个值和第个值和第N+1N+1个值之个值之间的误差足够小,完全满足预先设定的误差范围为止,就用间的误差足够小,完全满足预先设定的误差范围为止,就用第第N+1N+1个值当做真值的近似值。在许多问题中,没有误差的真个值当做真值的近似值。在许多问题中,没有误差的真值可能是求不出来的。这就是迭代模型思想的来源。值可能是求不出来的。这就是迭代模型思想的来源。 21迭代模型迭代模型一种较灵活的方法是:多次执行各个开发工作流程,从一种较灵活的方法是:多次执行各个开发工作流程,从而更好地理解需求,设计出更为强壮的软件构架,逐步提高而更好地理解需求,设计出更为强壮的软件构架,逐步提高开发组织能力,最终交付一系列逐步完善的实施成果,这就开发组织能力,最终交付一系列逐步完善的实施成果,这就是迭代式生命周期模型。是迭代式生命周期模型。 每次按顺序完成这一系列工作流程就叫做一次迭代,每每次按顺序完成这一系列工作流程就叫做一次迭代,每次迭代均以次要里程碑结束,按照特定的迭代成功标准,对次迭代均以次要里程碑结束,按照特定的迭代成功标准,对迭代的结果进行评估。迭代的结果进行评估。 迭代是产生可执行的产品发布的完整开发循环,所发布迭代是产生可执行的产品发布的完整开发循环,所发布的产品是开发过程最终产品的子集,它将通过一次又一次的的产品是开发过程最终产品的子集,它将通过一次又一次的迭代递增成长,最后形成最终的软件系统或产品。迭代递增成长,最后形成最终的软件系统或产品。3822迭代模型迭代模型迭代模型的特点:迭代模型的特点: 每一次迭代,均要走完初始、精化、构建、移交每一次迭代,均要走完初始、精化、构建、移交4 4个阶段。个阶段。面向对象的方法,尤其是面向对象的工具面向对象的方法,尤其是面向对象的工具RoseRose,适合于迭代,适合于迭代模型。建议以下类型的项目,可以考虑使用迭代式生命周期:模型。建议以下类型的项目,可以考虑使用迭代式生命周期: (1)(1)生命周期模型是以迭代为主要特征的。项目组的管理生命周期模型是以迭代为主要特征的。项目组的管理人员和核心成员,应对迭代的开发方式比较熟悉,并具有丰人员和核心成员,应对迭代的开发方式比较熟悉,并具有丰富的软件工程知识和实施经验。富的软件工程知识和实施经验。 (2)(2)项目组的管理人员和核心成员应对软件工程的核心过项目组的管理人员和核心成员应对软件工程的核心过程:系统建模、需求分析、系统设计、系统实现、项目管理、程:系统建模、需求分析、系统设计、系统实现、项目管理、配置管理、测试等比较熟悉。配置管理、测试等比较熟悉。 3823迭代模型迭代模型 (3) (3)面向对象技术比较适合采用迭代的开发方式来进行,面向对象技术比较适合采用迭代的开发方式来进行,采用面向对象技术采用面向对象技术( (如如OOAOOA,OODOOD等等) )的项目组,建议使用迭代的项目组,建议使用迭代式生命周期。式生命周期。 (4)(4)生命周期模型是以软件构架为中心的开发方式,项目生命周期模型是以软件构架为中心的开发方式,项目组的核心设计人员,应具备一定程度的软件架构的知识,并组的核心设计人员,应具备一定程度的软件架构的知识,并熟练掌握软件架构设计技能。熟练掌握软件架构设计技能。 (5)(5)项目组全体成员应熟悉项目组全体成员应熟悉UMLUML,并能利用建模工具,并能利用建模工具( (如如Rational RoseRational Rose等等) )进行分析、策划、设计、测试等。进行分析、策划、设计、测试等。 (6)(6)生命周期模型是以风险管理为驱动的开发方式,项目生命周期模型是以风险管理为驱动的开发方式,项目组的管理人员应具备风险管理的知识和技能。组的管理人员应具备风险管理的知识和技能。 (7)(7)拥有实施软件产品开发、组装的软件组织。拥有实施软件产品开发、组装的软件组织。3824迭代模型迭代模型迭代式生命周期分为以下迭代式生命周期分为以下4 4个阶段:个阶段:(1)(1)初始阶段。初始阶段。 本阶段主要工作是确定系统的业务用况和定义本阶段主要工作是确定系统的业务用况和定义项目的范围。为了达到这个目的,需要标识出系统项目的范围。为了达到这个目的,需要标识出系统要交互的外部实体和定义高层次的交互规律,通过要交互的外部实体和定义高层次的交互规律,通过定义所有的用况、并对个别重要的用况进行描述和定义所有的用况、并对个别重要的用况进行描述和实现。业务用况包括成功的评估、风险确认、资源实现。业务用况包括成功的评估、风险确认、资源需求和以及阶段里程碑表示的阶段计划。需求和以及阶段里程碑表示的阶段计划。3825迭代模型迭代模型(2)(2)精化阶段精化阶段 本阶段主要工作是分析问题域、细化定义,定本阶段主要工作是分析问题域、细化定义,定义系统的构架并建立基线,为设计和实施工作提供义系统的构架并建立基线,为设计和实施工作提供一个稳定的基础。为验证构架,可能要实现系统的一个稳定的基础。为验证构架,可能要实现系统的原型,执行重要的用况。原型,执行重要的用况。(3)(3)构建阶段构建阶段 本阶段主要工作是反复地开发,以完善产品,本阶段主要工作是反复地开发,以完善产品,达到用户的要求。这包括了用况的描述、完成设计、达到用户的要求。这包括了用况的描述、完成设计、完成实现和对软件进行测试等工作。完成实现和对软件进行测试等工作。(4)(4)移交阶段移交阶段 本阶段主要工作是将产品交付给用户,包括安本阶段主要工作是将产品交付给用户,包括安装、培训、交付、维护等工作。装、培训、交付、维护等工作。3826迭代模型迭代模型迭代式生命周期包含迭代式生命周期包含9 9个核心流程:个核心流程:(1)(1)业务建模业务建模 目的在于:了解目标组织的结构及机制;了解目标组织目的在于:了解目标组织的结构及机制;了解目标组织中当前存在的问题,并确定改进的可能性;确保客户、最终中当前存在的问题,并确定改进的可能性;确保客户、最终用户和开发人员就目标组织达成共识;导出支持目标组织所用户和开发人员就目标组织达成共识;导出支持目标组织所需的系统需求。需的系统需求。(2)(2)需求获取需求获取 目的在于:与客户在工作内容方面达成一致;使开发人目的在于:与客户在工作内容方面达成一致;使开发人员能够更清楚地了解系统需求;定义系统边界;为计划迭代员能够更清楚地了解系统需求;定义系统边界;为计划迭代的技术内容、估算开发系统所需成本和时间提供基础;定义的技术内容、估算开发系统所需成本和时间提供基础;定义系统的用户界面,重点是用户的需要和目标。系统的用户界面,重点是用户的需要和目标。3827迭代模型迭代模型(3)(3)分析设计分析设计 目的在于:将需求转换为未来系统的设计;逐步开发强目的在于:将需求转换为未来系统的设计;逐步开发强壮的系统构架;使设计适合于实施环境,为提高性能而进行壮的系统构架;使设计适合于实施环境,为提高性能而进行设计。设计。(4)(4)实施实施 目的在于:对照实施子系统的分层结构定义代码结构;目的在于:对照实施子系统的分层结构定义代码结构;以构件的方式实施类和对象;对已开发的构件按单元来测试;以构件的方式实施类和对象;对已开发的构件按单元来测试;将各实施成员完成的结果集成到可执行系统中。将各实施成员完成的结果集成到可执行系统中。(5)(5)测试测试 目的在于:核实对象之间的交互;核实软件的所有构件目的在于:核实对象之间的交互;核实软件的所有构件是否正确集成;核实所有需求是否已经正确实施;确定缺陷是否正确集成;核实所有需求是否已经正确实施;确定缺陷并确保在部署软件之前将缺陷解决。并确保在部署软件之前将缺陷解决。3828迭代模型迭代模型(6)(6)部署部署 目的在于:将构件部署到网络的各个节点上,使目的在于:将构件部署到网络的各个节点上,使最终用户可以使用软件产品。最终用户可以使用软件产品。(7)(7)配置管理配置管理 目的在于:始终保持工作产品完整性和一致性。目的在于:始终保持工作产品完整性和一致性。(8)(8)项目管理项目管理 目的在于:为对软件项目管理提供框架;为计划、目的在于:为对软件项目管理提供框架;为计划、人员配备、执行和监测提供实用的准则。人员配备、执行和监测提供实用的准则。(9)(9)环境环境 目的在于:为软件开发提供软件开发环境,该环目的在于:为软件开发提供软件开发环境,该环境将支持开发团队。境将支持开发团队。3829迭代模型迭代模型选择条件:选择条件:(1)(1)在项目开发早期需求可能有所变化。在项目开发早期需求可能有所变化。(2)(2)分析设计人员对应用领域很熟悉。分析设计人员对应用领域很熟悉。(3)(3)高风险项目。高风险项目。(4)(4)用户可不同程度地参与整个项目的开发过程。用户可不同程度地参与整个项目的开发过程。(5)(5)使用面向对象的语言或使用面向对象的语言或UMLUML语言。语言。(6)(6)使用使用CASECASE工具,如工具,如RoseRose。(7)(7)具有高素质的项目管理者和软件研发团队。具有高素质的项目管理者和软件研发团队。迭代模型要求的条件是最苛刻的,初学者不要随迭代模型要求的条件是最苛刻的,初学者不要随便使用。该模型一般用在中小型应用软件的开发上,便使用。该模型一般用在中小型应用软件的开发上,系统软件的开发很少采用迭代模型。系统软件的开发很少采用迭代模型。3830迭代模型迭代模型迭代模型的缺点:迭代模型的缺点: 传统的项目组织方法是按顺序完成每个工作流传统的项目组织方法是按顺序完成每个工作流程,即瀑布式生命周期。迭代模型是采取循环的工程,即瀑布式生命周期。迭代模型是采取循环的工作方式,每次循环均使工作产品更靠近目标产品一作方式,每次循环均使工作产品更靠近目标产品一次,这就要求项目组成员具有很高的水平并掌握先次,这就要求项目组成员具有很高的水平并掌握先进的开发工具。进的开发工具。 反之,就会存在较大的技术风险和技能风险。反之,就会存在较大的技术风险和技能风险。 尽管如此,该模型仍然被一些软尽管如此,该模型仍然被一些软件专件专家采用。家采用。3831原型模型原型模型原型模型原理:原型模型原理:在初步需求分析之后,马上向客户展示一个软件在初步需求分析之后,马上向客户展示一个软件产品原型,对客户进行培训,让客户试用,在试用中产品原型,对客户进行培训,让客户试用,在试用中收集客户意见,根据客户意见立刻修改原型,之后再收集客户意见,根据客户意见立刻修改原型,之后再让客户试用,反复循环几次,直到客户确认为止。让客户试用,反复循环几次,直到客户确认为止。 原型模型很适合于企业资源计划(原型模型很适合于企业资源计划(ERP)系统开)系统开发发,尽管市场上推出了许多公司的分行业,尽管市场上推出了许多公司的分行业ERPERP产品,产品,但是这些产品的产品化程度较低,都要在实施中做大但是这些产品的产品化程度较低,都要在实施中做大量的客户化开发工作。有些公司把分行业量的客户化开发工作。有些公司把分行业ERPERP产品又产品又称为称为“分行业解决方案分行业解决方案”,这个方案就是分行业的原,这个方案就是分行业的原型,即快速原型法中的原型。型,即快速原型法中的原型。 3832原型模型原型模型原型模型的特点:原型模型的特点: 开发者必须先有一个原型,至少要有一。开发者必须先有一个原型,至少要有一。 原型模型与迭代模型相同点是:反复循环几原型模型与迭代模型相同点是:反复循环几次,直到客户确认为止。次,直到客户确认为止。 不同点是:原型模型事先有一个展示性的产不同点是:原型模型事先有一个展示性的产品原型,而迭代模型可能没有。品原型,而迭代模型可能没有。 3833原型模型原型模型选择条件:选择条件:(1)(1)有产品的原型,只需客户化的工程项目。有产品的原型,只需客户化的工程项目。(2)(2)简单而熟悉的行业或领域。简单而熟悉的行业或领域。(3)(3)有快速原型开发工具。有快速原型开发工具。(4)(4)进行产品移植或升级。进行产品移植或升级。由于上述条件不太苛刻,所以凡是有软件产品的由于上述条件不太苛刻,所以凡是有软件产品的ITIT企业,企业,在他们熟悉的业务领域,当客户招标时,他们都会以原型模在他们熟悉的业务领域,当客户招标时,他们都会以原型模型作为软件开发模型,去制作标书,去讲标书。一旦中标,型作为软件开发模型,去制作标书,去讲标书。一旦中标,就用原型模型作为实施项目的指导方针,即对软件产品进行就用原型模型作为实施项目的指导方针,即对软件产品进行客户化工作,或进行二次开发。客户化工作,或进行二次开发。 3834原型模型原型模型原型模型的缺点:原型模型的缺点: 因为事先有一个展示性的产品因为事先有一个展示性的产品原型,所以在一定程度上,不利于原型,所以在一定程度上,不利于开发人员的创新。开发人员的创新。3835原型模型原型模型 在信息系统开发中,原型法又赋予新的内容:可采用以在信息系统开发中,原型法又赋予新的内容:可采用以面向数据为主的方法,在需求分析的基础上,快速建立信息面向数据为主的方法,在需求分析的基础上,快速建立信息系统的概念数据模型系统的概念数据模型CDMCDM和物理数据模型和物理数据模型PDMPDM:然后利用面向:然后利用面向对象的编程工具,在强大的类库、构件库的支撑下,快速地对象的编程工具,在强大的类库、构件库的支撑下,快速地实现需求分析、确认流程、功能、性能和接口;之后交付给实现需求分析、确认流程、功能、性能和接口;之后交付给用户试用,反复循环几次,直到客户确认满意为止。用户试用,反复循环几次,直到客户确认满意为止。原型法选择的条件是:项目组中有数据库分析和设计的原型法选择的条件是:项目组中有数据库分析和设计的专家,有面向对象编程的专家,有专家,有面向对象编程的专家,有强大的类库、构件库,强大的类库、构件库,文文档制作有成熟的模板,而且系统或项目又不是非常大。档制作有成熟的模板,而且系统或项目又不是非常大。3836 软件工程达到的目标:软件工程达到的目标: 付出较低的开发成本付出较低的开发成本 达到要求的软件功能达到要求的软件功能 取得较好的软件性能取得较好的软件性能 开发易于移植的软件开发易于移植的软件 需要较低的维护费用需要较低的维护费用 能按时完成开发能按时完成开发 及时交付使用及时交付使用软件工程的目标软件工程的目标3837小小 结结 作为项目经理、软件工程师和软件蓝领,对软件开发作为项目经理、软件工程师和软件蓝领,对软件开发模型和软件生命周期,都要有一个完整、清晰的概念,在模型和软件生命周期,都要有一个完整、清晰的概念,在进入进入ITIT企业参与软件开发或软件管理时,首先要明确:当企业参与软件开发或软件管理时,首先要明确:当前的项目或产品开发到底采用什么开发模型,由此确定软前的项目或产品开发到底采用什么开发模型,由此确定软件的生命周期和当前的软它开发进度;合理安排项目组成件的生命周期和当前的软它开发进度;合理安排项目组成员的工作。只有这样,才能迅速适应企业文化,并很快进员的工作。只有这样,才能迅速适应企业文化,并很快进入角色。入角色。 本章介绍了本章介绍了4 4个软件开发模型:瀑布模型、增量模型、个软件开发模型:瀑布模型、增量模型、迭代模型和原型模型。其中最常用的是瀑布模型和原型模迭代模型和原型模型。其中最常用的是瀑布模型和原型模型,其次是增量模型,最难掌握的是迭代模型。因为型,其次是增量模型,最难掌握的是迭代模型。因为4 4个个模型各有所长,所以它们有各自的生命空间。模型各有所长,所以它们有各自的生命空间。因为它们各有所短,所示才会产生相互竞争。只因为它们各有所短,所示才会产生相互竞争。只有通过竞争,才能推动软件开发模型研究的发展。有通过竞争,才能推动软件开发模型研究的发展。38小小 结结序号模型名称优点缺点适用范围1瀑布模型简单好学逆转性差面向过程开发2增量模型可以分阶段提交有时用户不同意系统可拆卸和组装3迭代模型克服了瀑布模型的缺点风险大有高素质软件团队4原型模型开发速度快不利于创新已有产品的原型软件开发模型比较软件开发模型比较 39思思 考考 题题1 1、如何理解、如何理解软件生命周期的各项任务?开发模型与软件生存软件生命周期的各项任务?开发模型与软件生存 周期有什么关系周期有什么关系?2 2、为什么要选择软件开发模型、为什么要选择软件开发模型? ?开发模型与软件生命周期有开发模型与软件生命周期有 什么关系什么关系? ?3 3、瀑布模型、增量模型、迭代模型、原型模型的优、缺点。、瀑布模型、增量模型、迭代模型、原型模型的优、缺点。4 4、请调查一下,你周围的软件公司采用哪几种软件开发模型、请调查一下,你周围的软件公司采用哪几种软件开发模型 进行软件开发?进行软件开发?5 5、开发模型对您今后的工作,到底具有什么指导意义、开发模型对您今后的工作,到底具有什么指导意义? ?6 6、进、销、存管理信息系统的开发选用、进、销、存管理信息系统的开发选用 什么开发模型合适什么开发模型合适? ?为什么?为什么?
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号