




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2.1 软件生命周期的基本任务软件生命周期的基本任务2.2 瀑布模型瀑布模型2.3 快速原型模型快速原型模型2.4 增量模型增量模型2.5 螺旋模型螺旋模型2.6 喷泉模型喷泉模型2.7 Rational统一过程统一过程2.8 敏捷过程与极限编程敏捷过程与极限编程2.9 能力成熟度模型能力成熟度模型第第2章章 软件过程软件过程软件过程:软件过程:是为了获得高质量软件所需要完成的一系列任务的是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。框架,它规定了完成各项任务的工作步骤。过程定义了:过程定义了:运用方法的顺序运用方法的顺序应该交付的文档资料应该交付的文档资料
2、为保证软件质量和协调变化所需要采取的管理措施为保证软件质量和协调变化所需要采取的管理措施以及标志软件开发各个阶段任务完成的里程碑以及标志软件开发各个阶段任务完成的里程碑2.1 软件生命周期的基本任务软件生命周期的基本任务三个时期:三个时期: 八个阶段:八个阶段:软件生命周期软件生命周期软件定义软件定义软件开发软件开发软件维护软件维护问题定义问题定义可行性研究可行性研究需求分析需求分析概要设计概要设计详细设计详细设计编码和单元测试编码和单元测试综合测试综合测试运行维护运行维护系统设计系统设计系统实现系统实现1. 问题定义问题定义任务:问题是什么任务:问题是什么通过对客户的访问调查,系统分析员扼要
3、地写出关通过对客户的访问调查,系统分析员扼要地写出关于问题性质、工程目标和工程规模的书面报告。于问题性质、工程目标和工程规模的书面报告。经过讨论和必要的修改之后这份报告应该得到客户经过讨论和必要的修改之后这份报告应该得到客户的确认。的确认。结果:结果:关于系统规模和目标的报告书关于系统规模和目标的报告书 2. 可行性研究可行性研究任务:有可行的解吗任务:有可行的解吗系统分析员需要进行一次大大压缩和简化了的系统系统分析员需要进行一次大大压缩和简化了的系统分析和设计过程。分析和设计过程。研究问题的范围,探索这个问题是否值得去解,是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。否有
4、可行的解决办法。结果:结果:系统的高层逻辑模型系统的高层逻辑模型(数据流图、成本效益分析数据流图、成本效益分析)可行性论证报告可行性论证报告(立即进行立即进行/推迟进行推迟进行/不能或不值得不能或不值得进行进行)3. 需求分析需求分析任务:必须做什么任务:必须做什么主要是确定目标系统必须具备哪些功能。主要是确定目标系统必须具备哪些功能。系统分析员必须和用户密切配合,充分交流信息,系统分析员必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。以得出经过用户确认的系统逻辑模型。结果:结果:系统的逻辑模型系统的逻辑模型(数据流图、数据字典、简要的算数据流图、数据字典、简要的算法描述法
5、描述)用规格说明书准确地记录对目标系统的需求用规格说明书准确地记录对目标系统的需求4. 总体设计总体设计任务:如何解决已提出的问题任务:如何解决已提出的问题设计出实现目标系统的几种可能的方案设计出实现目标系统的几种可能的方案(低、中、低、中、高成本高成本)。用适当的表达工具描述每种方案,分析其优缺点,用适当的表达工具描述每种方案,分析其优缺点,推荐一个最佳方案,制定出实现最佳方案的详细计推荐一个最佳方案,制定出实现最佳方案的详细计划。设计程序的体系结构。划。设计程序的体系结构。结果:结果:可能的解法可能的解法(系统流程图、成本效益分析系统流程图、成本效益分析)推荐的系统体系结构推荐的系统体系结
6、构(层次图或结构图层次图或结构图)5. 详细设计详细设计任务:怎样具体实现该系统任务:怎样具体实现该系统详细地设计每个模块,确定实现模块功能所需要的详细地设计每个模块,确定实现模块功能所需要的算法和数据结构。算法和数据结构。结果:结果:每个模块的算法和数据结构每个模块的算法和数据结构(程序流程图、程序流程图、PAD图图、N-S图等图等)。6. 编码和单元测试编码和单元测试任务:得到正确的程序模块任务:得到正确的程序模块选取一种适当的高级程序设计语言选取一种适当的高级程序设计语言(必要时用汇编必要时用汇编语言语言),把详细设计的结果翻译成用选定的语言书,把详细设计的结果翻译成用选定的语言书写的程
7、序;写的程序;并且仔细测试编写出的每一个模块。并且仔细测试编写出的每一个模块。结果:结果:代码和测试报告代码和测试报告 7. 综合测试综合测试任务:得到符合要求的软件任务:得到符合要求的软件通过集成测试、验收测试、现场测试、平行运行等通过集成测试、验收测试、现场测试、平行运行等方法对目标系统进一步测试检验。方法对目标系统进一步测试检验。通过对软件测试结果的分析可以预测软件的可靠性通过对软件测试结果的分析可以预测软件的可靠性;反之,根据对软件可靠性的要求,也可以决定测;反之,根据对软件可靠性的要求,也可以决定测试和调试过程什么时候可以结束。试和调试过程什么时候可以结束。结果:结果:测试计划、详细
8、测试方案以及实际测试结果测试计划、详细测试方案以及实际测试结果完整一致的软件配置完整一致的软件配置 8. 软件维护软件维护任务:使系统持久地满足用户的需要任务:使系统持久地满足用户的需要改正性维护改正性维护,诊断和改正在使用过程中发现的软件,诊断和改正在使用过程中发现的软件错误;错误;适应性维护适应性维护,修改软件以适应环境的变化;,修改软件以适应环境的变化;完善性维护完善性维护,根据用户的要求改进或扩充软件;,根据用户的要求改进或扩充软件;预防性维护预防性维护,修改软件为将来的维护活动做准备。,修改软件为将来的维护活动做准备。每一项维护活动实质上是经历了一次压缩和简化了每一项维护活动实质上是
9、经历了一次压缩和简化了的软件定义和开发的全过程。的软件定义和开发的全过程。结果:结果:完整准确的维护记录完整准确的维护记录 各类维护工作量各类维护工作量所占比例所占比例维护工作量在软件生维护工作量在软件生命周期所占比例命周期所占比例传统的瀑布模型传统的瀑布模型实际的瀑布模型实际的瀑布模型2.2 瀑布模型瀑布模型瀑布模型的特点:瀑布模型的特点:阶段间具有顺序性和依赖性阶段间具有顺序性和依赖性前一阶段的工作完成之后,才能开始后一阶段的工作;前一阶段的工作完成之后,才能开始后一阶段的工作; 前一阶段的输出文档就是后一阶段的输入文档。前一阶段的输出文档就是后一阶段的输入文档。推迟实现的观点推迟实现的观
10、点对于规模较大的软件项目来说,往往编码开始得越早最对于规模较大的软件项目来说,往往编码开始得越早最终完成开发工作所需要的时间反而越长。终完成开发工作所需要的时间反而越长。质量保证的观点质量保证的观点每个阶段都必须完成规定的文档,是每个阶段都必须完成规定的文档,是“文档驱动文档驱动”的模的模型;型;每个阶段结束前都要对所完成的文档进行评审,尽早发每个阶段结束前都要对所完成的文档进行评审,尽早发现问题,改正错误。现问题,改正错误。瀑布模型的优点:瀑布模型的优点:可强迫开发人员采用规范的方法;可强迫开发人员采用规范的方法;严格地规定了每个阶段必须提交的文档;严格地规定了每个阶段必须提交的文档;要求每
11、个阶段交出的所有产品都必须经过质量保证要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。小组的仔细验证。瀑布模型的缺点:瀑布模型的缺点:只能通过文档了解产品,不经过实践的需求是不切只能通过文档了解产品,不经过实践的需求是不切实际的。实际的。瀑布模型适用于:瀑布模型适用于: 需求是预知的;需求是预知的; 软件实现方法是成熟的;软件实现方法是成熟的; 项目周期较短。项目周期较短。 快速原型模型快速原型模型2.3 快速原型模型快速原型模型 快速原型:快速原型:是快速建是快速建立起来的可以在计算立起来的可以在计算机上运行的程序,它机上运行的程序,它所能完成的功能往往所能完成的功能往往是最终产
12、品能完成的是最终产品能完成的功能的一个子集。功能的一个子集。 快速原型模型的特点:快速原型模型的特点:快速原型模型不带反馈环,软件产品的开发基本上快速原型模型不带反馈环,软件产品的开发基本上是线性顺序进行的。是线性顺序进行的。快速原型的本质是快速原型的本质是“快速快速”。应该尽可能快地建造。应该尽可能快地建造出原型系统,以加速软件开发过程,节约成本。出原型系统,以加速软件开发过程,节约成本。根据原型的不同作用,有三类原型模型:根据原型的不同作用,有三类原型模型:探索型原型探索型原型用于开发的需求分析阶段用于开发的需求分析阶段实验型原型实验型原型主要用于设计阶段主要用于设计阶段演化型原型演化型原
13、型用于及早向用户提交一个原型系统用于及早向用户提交一个原型系统快速原型模型的运用方式:快速原型模型的运用方式: 抛弃策略抛弃策略探索型和实验型采用此策略探索型和实验型采用此策略 附加策略附加策略演化型快速原型采用此策略演化型快速原型采用此策略 2.4 增量模型增量模型 增量模型把软件产品作为一系列的增量构件来增量模型把软件产品作为一系列的增量构件来设计、编码、集成和测试。设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能每个构件由多个相互作用的模块构成,并且能够完成特定的功能。够完成特定的功能。 第一个增量构件:提供最核心的功能;第一个增量构件:提供最核心的功能;第二个增量构件:
14、提供更完善的功能;第二个增量构件:提供更完善的功能;第三个增量构件:实现附加的功能;第三个增量构件:实现附加的功能;第四个增量构件:完成更高级的功能。第四个增量构件:完成更高级的功能。增量模型增量模型项目日历时间项目日历时间软软件件功功能能性性和和特特征征1 12 23 34 45 5第第2 2次增量发布次增量发布增量增量2 21 12 23 34 45 5第第n n次增量发布次增量发布增量增量n n1 12 23 34 45 5第第1 1次增量发布次增量发布增量增量1 15 5部署(发布,反馈)部署(发布,反馈)4 4构造(编码,测试)构造(编码,测试)3 3建模(分析,设计)建模(分析,设
15、计)2 2计划计划1 1交流交流增量模型的优点:增量模型的优点:人员分配灵活,刚开始不用投入大量人力资源。人员分配灵活,刚开始不用投入大量人力资源。 当配备的人员不能在设定的期限内完成产品时,它当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。提供了一种先推出核心产品的途径。 逐步增加产品功能可以使用户有较充裕的时间学习逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品。和适应新产品。增量模型适用于:增量模型适用于:适用于需求经常改变的软件开发过程。适用于需求经常改变的软件开发过程。如果在项目既定的商业要求期限之前不可能找到足如果在项目既定的商业要求期限之前不可
16、能找到足够的开发人员,在这种情况下,增量模型显得特别够的开发人员,在这种情况下,增量模型显得特别有用。有用。2.5 螺旋模型螺旋模型 螺旋模型的基本思螺旋模型的基本思想:想:使用原型及其使用原型及其他方法来尽量降低他方法来尽量降低风险。把它看作在风险。把它看作在每个阶段之前都增每个阶段之前都增加了风险分析过程加了风险分析过程的快速原型模型。的快速原型模型。 简化的螺旋模型简化的螺旋模型完整的螺旋模型完整的螺旋模型决定目标、决定目标、方案和限制方案和限制评价方案评价方案识别风险识别风险弱化风险弱化风险开发、验证、开发、验证、下一级产品下一级产品计划下一阶段计划下一阶段集成测试螺旋模型的优点:螺旋
17、模型的优点:主要优势在于它是风险驱动的。主要优势在于它是风险驱动的。对可选方案和约束条件的强调有利于已有软件的重对可选方案和约束条件的强调有利于已有软件的重用,也有助于把软件质量作为软件开发的一个重要用,也有助于把软件质量作为软件开发的一个重要目标;目标;减少了过多测试或测试不足所带来的风险;减少了过多测试或测试不足所带来的风险;维护只是模型的另一个周期,维护和开发之间没有维护只是模型的另一个周期,维护和开发之间没有本质区别。本质区别。螺旋模型的缺点:螺旋模型的缺点:采用螺旋模型需要具有相当丰富的风险评估经验和采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未
18、能够专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。及时标识风险,势必造成重大损失。 过多的迭代次数会增加开发成本,延迟提交时间。过多的迭代次数会增加开发成本,延迟提交时间。 螺旋模型适用于:螺旋模型适用于:特别适用于庞大、复杂并具有高风险的系统。特别适用于庞大、复杂并具有高风险的系统。适用于内部开发的大规模软件项目。适用于内部开发的大规模软件项目。2.6 喷泉模型喷泉模型 喷泉模型:喷泉模型:典型的面典型的面向对象生命周期模型。向对象生命周期模型。 “喷泉喷泉”这个词体现了这个词体现了面向对象软件开发过程面向对象软件开发过程迭代迭代和和无缝无缝的特性。的特性。为避
19、免使用喷泉模型开为避免使用喷泉模型开发软件时开发过程过分发软件时开发过程过分无序,应该把一个线性无序,应该把一个线性过程作为总目标。过程作为总目标。 喷泉模型喷泉模型喷泉模型的优点:喷泉模型的优点:该模型的各个阶段没有明显的界限,开发人员可以该模型的各个阶段没有明显的界限,开发人员可以同步进行开发。同步进行开发。多次反复地增加或明确目标系统,而不是本质性的多次反复地增加或明确目标系统,而不是本质性的改动,降低错误的可能性。改动,降低错误的可能性。喷泉模型的缺点:喷泉模型的缺点:在各个开发阶段是重叠的,因此在开发过程中需要在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,不利于项目的管
20、理。大量的开发人员,不利于项目的管理。要求严格管理文档,使得审核的难度加大,尤其是要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。面对可能随时加入各种信息、需求与资料的情况。喷泉模型适用于:喷泉模型适用于:面向对象的软件开发过程。面向对象的软件开发过程。基于构件的开发模型:基于构件的开发模型:支持软件复用。利用预先包装好的软件构件来构造支持软件复用。利用预先包装好的软件构件来构造应用系统。应用系统。领域分析领域分析构件可变性构件可变性分析分析构建构建可复用构件可复用构件领域模型领域模型领域基准领域基准体系结构图体系结构图可复用可复用构件库构件库分析分析体
21、系结构设体系结构设计计获取构件获取构件构件特化构件特化和修改和修改评价评价构件组装构件组装和测试和测试开发未找到开发未找到构件的部分构件的部分应用系统工程应用系统工程应用系统应用系统领域工程领域工程形式化方法模型:形式化方法模型:形式化方法是建立在严格数学基础上的一种软件开形式化方法是建立在严格数学基础上的一种软件开发方法。发方法。软件开发的全过程中,从需求分析、规约、设计、软件开发的全过程中,从需求分析、规约、设计、编程、系统集成、测试、文档生成、直至维护各个编程、系统集成、测试、文档生成、直至维护各个阶段,凡是采用严格的数学语言,具有精确的数学阶段,凡是采用严格的数学语言,具有精确的数学语
22、义的方法,都称为形式化方法。语义的方法,都称为形式化方法。软件需求软件需求形式化说形式化说明明 (M0)软件设计软件设计形式化说形式化说明明 (M1)(M2)(Mn)模型检查模型检查程序变换程序变换程序变换程序变换程序变换程序变换2.7.1 最佳实践最佳实践2.7.2 RUP的十大要素的十大要素2.7.3 RUP生命周期生命周期2.7 Rational统一过程统一过程2.7 Rational统一过程统一过程Rational统一过程统一过程(Rational Unified Process, RUP)是由是由Rational软件公司推出的一种完整而软件公司推出的一种完整而完美的软件过程。完美的软
23、件过程。RUP是一种迭代的是一种迭代的、以架构为中心的以架构为中心的、用例驱用例驱动的软件开发方法。动的软件开发方法。RUP是一种有明确定义和结构的软件工程过程。是一种有明确定义和结构的软件工程过程。RUP还是一个过程产品,提供了可定制的软件还是一个过程产品,提供了可定制的软件工程的过程框架。工程的过程框架。RUP被广泛应用在不同工业领域中的不同企业。被广泛应用在不同工业领域中的不同企业。2.7.1 最佳实践最佳实践迭代式开发迭代式开发管理需求管理需求使用基于组件的架构使用基于组件的架构可视化建模可视化建模验证软件质量验证软件质量控制软件变更控制软件变更2.7.2 RUP的十大要素的十大要素前
24、景前景计划计划风险风险业务案例业务案例架构架构原型原型评估评估变更请求变更请求用户支持用户支持过程过程2.7.3 RUP生命周期生命周期2.8.1 敏捷过程概述敏捷过程概述2.8.2 极限编程极限编程2.8 敏捷过程与极限编程敏捷过程与极限编程2.8.1 敏捷过程概述敏捷过程概述敏捷软件开发宣言敏捷软件开发宣言(价值观声明价值观声明):个体和交互个体和交互 胜过胜过 过程和工具过程和工具可以工作的软件可以工作的软件 胜过胜过 面面俱到的文档面面俱到的文档客户合作客户合作 胜过胜过 合同谈判合同谈判响应变化响应变化 胜过胜过 遵循计划遵循计划2.8.2 极限编程极限编程极限编程极限编程(eXtr
25、eme Programming, XP):敏捷过程中最富盛名的一个敏捷过程中最富盛名的一个广泛适用于需求模糊且经常改变的场合广泛适用于需求模糊且经常改变的场合使得敏捷过程能够较好地适应商业竞争环境下对小使得敏捷过程能够较好地适应商业竞争环境下对小型项目提出的有限资源和有限开发时间的约束型项目提出的有限资源和有限开发时间的约束极限编程的有效实践极限编程的有效实践:客户作为开发团队成员客户作为开发团队成员使用用户素材使用用户素材短交付周期短交付周期验收测试验收测试结对编程结对编程测试驱动开发测试驱动开发集体所有集体所有持续集成持续集成可持续的开发速度可持续的开发速度开放的工作空间开放的工作空间及时
26、调整计划及时调整计划简单的设计简单的设计重构重构使用隐喻使用隐喻极限编程的整体开发过程极限编程的整体开发过程极限编程的迭代过程极限编程的迭代过程2.9.1 能力成熟度模型的结构能力成熟度模型的结构2.9.2 能力成熟度等级能力成熟度等级2.9.3 关键过程域关键过程域2.9.4 应用应用CMM2.9 能力成熟度模型能力成熟度模型美国卡内基梅隆大学软件工程研究所在美国国美国卡内基梅隆大学软件工程研究所在美国国防部资助下于防部资助下于20世纪世纪80年代末建立的能力成熟年代末建立的能力成熟度模型度模型(Capability Maturity Model,CMM),是用于评价软件机构的软件过程能力成
27、熟度的是用于评价软件机构的软件过程能力成熟度的模型。模型。能力成熟度模型有助于软件开发组织建立一个能力成熟度模型有助于软件开发组织建立一个有规律的、成熟的软件过程。有规律的、成熟的软件过程。改进后的过程将开发出质量更好的软件,使更改进后的过程将开发出质量更好的软件,使更多的软件项目免受时间和费用超支之苦。多的软件项目免受时间和费用超支之苦。2.9.1 能力成熟度模型的结构能力成熟度模型的结构2.9.2 能力成熟度等级能力成熟度等级初始级初始级软件过程的特征是无序的,有时甚软件过程的特征是无序的,有时甚至是混乱的。至是混乱的。可重复级可重复级建立了基本的项目管理过程。建立了基本的项目管理过程。已定义级已定义级已经定义了完整的软件过程。已经定义了完整的软件过程。已管理级已管理级对软件过程和软件产品都建立了对软件过程和软件产品都建立了定量的质量目标定量的质量目标。优化级优化级有能力识别软件过程要素的薄弱环有能力识别软件过程要素的薄弱环节,并有足够的手段改进它们。节,并有足够的手段改进它们。2.9.3 关键过程域关键过程域除第除第1级成熟度之外,每个成熟度等级都包含几级成熟度之外,每个成熟度等级都包含几个关键过程域个关键过程域,指明了为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 红酒评鉴考试题及答案
- 荔城市工匠评选活动方案
- 自助洗衣活动方案
- 海洋经济考试题及答案
- 贵族分类考试题及答案
- 估算法考试题及答案
- 幼儿园教学教案设计:安全过斑马线
- 钢琴作品考试题及答案
- 市场营销活动效果评估分析框架
- 公益投入参与行为承诺书5篇
- 自动化模具制造行业可行性分析报告
- 房颤心电图课件
- 工地拌和站试验室培训课件建筑土木工程
- 2024年卫生院“健康促进医院”创建工作总结样本(3篇)
- 副总经理招聘面试题与参考回答(某大型集团公司)2025年
- 餐饮4D管理培训资料
- 国庆节磨豆腐活动方案
- 七年级上册生命、生态、安全教案全册
- 峥嵘岁月 课件-2024-2025学年高中音乐人音版(2019) 必修 音乐鉴赏
- 《用户体验设计导论》
- 税务法律服务行业分析报告及未来三年行业发展报告
评论
0/150
提交评论