您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 第3章 软件过程模型
第3章软件过程模型3.1.瀑布模型系统需求设计集成与系统测试实现与单元测试运行与维护需求分析按照传统瀑布模型开发软件的特点各项活动按自上而下,相互衔接的固定次序,如同瀑布逐级下落。每项活动均处于一个质量环(输入-处理-输出-评审)中。阶段间具有顺序性和依赖性。推迟实现的观点。每个阶段必须完成规定的文档;每个阶段结束前完成文档审查。3.2.增量模型增量模型是迭代和演进的过程。增量模型把软件产品分解成一系列的增量构件,在增量开发迭代中逐步加入。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。早先完成的增量可以为后期的增量提供服务。增量开发方法的新演进版本叫做“极限程序设计(eXtremeProgramming)”。定义基本需求将需求对应到各增量设计系统架构开发其中一个增量检验和确认该增量将增量集成到系统中确认集成后的系统日历时间分析增量1增量1交付客户设计编码测试分析增量2增量2交付客户设计编码测试分析增量3增量3交付客户设计编码测试分析增量4增量4交付客户设计编码测试系统和信息工程3.3.演化模型需求的采集与细化客户评价原型快速设计建造原型加工原型产生样品停止开始演化模型的特点演化模型是迭代的。因为软件与所有的复杂系统一样,必须经过不断演化才能完善。演化模型先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。业务和产品需求在变化中,采用线性开发方式是不实际的。快速实现和提交一个有限的版本,可以应付市场竞争的压力,3.4螺旋模型螺旋模型将瀑布模型与演化模型结合起来,并且加入两种模型均忽略了的风险分析。螺旋模型沿着螺线旋转,自内向外每旋转一圈便开发出更完善的一个新版本。制定计划确定软件目标,选定实施方案,弄清项目开发的限制条件;风险分析分析所选方案,考虑如何识别和消除风险;实施工程实施软件开发客户评估评价开发,提出修正建议。决定目标、方案和限制评价方案、识别风险、弱化风险开发、验证、下一级产品计划下一阶段集成测试3.5.喷泉模型体现了迭代和无间隙的特性。系统某个部分常常重复工作多次,相关对象在每次迭代中随之加入演进的软件成分。无间隙是指在各项开发活动,即分析、设计和编码之间不存在明显的边界。喷泉模型是对象驱动的过程。需求阶段分析阶段设计阶段编程阶段集成与测试阶段维护与演进阶段3.6.智能模型智能模型是基于知识的软件开发模型,它把瀑布模型和专家系统综合在一起。该模型在各个开发阶段都利用了相应的专家系统来帮助软件人员完成开发工作。为此,建立各个阶段的知识库,将模型、相应领域知识和软件工程知识分别存入数据库。以软件工程知识为基础的生成规则构成的专家系统与包含应用领域知识规则的其他专家系统相结合,构成该应用领域的开发系统。用户要求需求分析概要设计详细设计程序编码测试维护支持需求分析的专家系统支持软件设计的专家系统支持测试的专家系统支持维护的专家系统3.7.变换模型变换模型是一种基于形式化规格说明语言及程序变换的软件开发模型。它采用形式化的软件开发方法,对形式化的软件规格说明进行一系列自动的或半自动的程序变换,最终映射成为计算机系统能够接受的程序系统。多步程序变换过程的重要性质是:每一步程序变换的正确性仅与该步变换所依据的规范Mi以及对变换后的假设Mi+1有关。软件需求形式化说明(M0)软件设计形式化说明(M1)(M2)(Mn)……模型检查程序变换程序变换程序变换在此意义上,变换步骤独立于其他变换步骤。这称为变换的独立性。该模型只适合于软件的形式化开发方法;需要严格的数学理论和形式化技术支持;需要一整套开发环境(如程序变换工具、定理证明工具等)的支持。3.8.快速应用开发(RAD)模型快速应用开发模型是一种增量开发模型,强调极短的开发周期。该模型开发软件大量使用了可复用的构件。每一个增量的开发经历五个阶段:业务建模对业务功能的信息流建模。数据建模对业务的数据对象和关系建模。过程建模描述完成业务功能的数据变换。应用生成应用构件和自动化工具建造。测试与反复对新构件和接口进行测试。业务建模数据建模过程建模应用生成测试及反复小组1#业务建模数据建模过程建模应用生成测试及反复小组2#业务建模数据建模过程建模应用生成测试及反复小组3#60~90天3.10.Rational统一过程•最佳实践1.迭代开发2.管理需求3.使用基于构件的体系结构4.可视化建模5.验证软件质量6.控制软件变更Rational统一过程•RUP软件开发生命周期由四个阶段,九个工作流组成四个阶段:初始、精化、构建、移交九个工作流(6+3)6:业务建模、需求、分析与设计、实现、测试、部署3:配置与变更管理、项目管理、环境软件工程需要解决的问题:软件成本、软件可靠性、软件维护、软件生产率和软件复用。软件工程需要达到的基本目标:付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发,及时交付使用软件工程的目标与原则在软件开发过程中必须遵循的软件工程原则有:1)抽象与自顶向下、逐层细化采用分层抽象的方法,有效控制软件开发的复杂性。2)模块化把问题分解为若干较小的较易解决的模块,有助于信息隐蔽和抽象。3)信息隐蔽和数据封装将模块中的软件设计决策封装在模块内部,使得模块实现与使用分离,有助于控制修改局部化。软件工程原则4)局部化在一个物理模块内集中逻辑上相互关联的计算机资源,促使聚合具有特定目的的事物。5)一致性整个软件系统的模块使用一致的设计策略、编程风格,保持程序内部接口的一致性、软件与硬件接口的一致性、系统规格说明与系统行为的一致性。6)完备性软件系统中不丢失任何成分。7)可验证性系统分解应当遵循易检查、易测试和易评审的原则,以便保证系统的正确性。软件工程的基本原理有:1)按软件生存期分阶段制定计划并认真实施把整个软件开发过程视为一项工程,把工程划分为若干阶段,分别制定每个阶段的计划,逐个实施。2)坚持进行阶段评审前一阶段的结果将成为下一阶段的依据。坚持阶段的评审才能保证错误不传播到下一阶段。软件工程的基本原理3)坚持严格的产品控制将影响软件质量的因素在整个过程中置于严格控制之下。4)使用现代程序设计技术先进的程序设计技术带来的是生产率和质量的提高。使用合适的开发模式和工具可以有效地建立功能强大的系统。5)明确责任,使得工作结果能够得到清楚的审查开发组织严格划分责任并制定产品的标准,使得每个成员的工作有据可依,确保产品的质量。6)用人少而精开发组织不在人多,在于每个人的技能适合要求。同时用人少而精,可减少沟通路径,提高生产率。7)不断改进开发过程在开发的过程中不断总结经验,改进开发的组织和过程,有效地通过过程质量的改进提高软件产品的质量。软件开发范型(Paradigm)范型又称为风范。通常认为范型就是开发模型(Model)或开发模式(Pattern),实际上它与方法(Methodology)一样,都被视为一种开发技术。范型支配了设计方法、编码语言、测试和检验技术的选择。过程性范型把软件视为处理流,定义成由一系列步骤构成的算法。每一步骤都是带有输入和输出的一个过程,把这些步骤串联在一起可产生贯通于整个程序的控制流。面向对象范型把标识和模型化问题领域中的实体做为系统开发的起点,面向对象系统中的对象是数据抽象与过程抽象的综合。逻辑性范型是基于规则的,它把有关问题的知识分解成一组具体规则(如prolog语言)。面向进程范型把一个问题分解成独立执行的模块。让不只一个程序同时运行。这些进程互相配合,解决问题。面向存取范型是一种在构造用户界面方面很有用的技术。函数型范型是基于规则的,它把有关问题的知识分解成一组具体规则,用语言的“if_then”等结构来表示这些规则。说明性范型。每种开发范型都有它的支持者和用户:每种开发范型都特别适合于某种类型的问题或子问题;每种开发范型都用不同的方式考虑问题;每种开发范型都使用不同的方法来分解问题每种开发范型都导致不同种类的块、过程、产生规则。系统开发时通常把大型问题分解成一组子问题。对于每个子问题采用适当的软件开发范型。3.1瀑布模型
本文标题:第3章 软件过程模型
链接地址:https://www.777doc.com/doc-3244292 .html