传统方法学也称为生命周期方法学或结构化范型。
把数据和对数据的操作紧密结合起来的方法,模拟人类认识世界解决问题的方法和过程。
特点:
降低了软件产品的复杂性,提高了软件的可理解性,简化了软件的开发和维护工作。面向对象方法特有的继承性和多态性,进一步提高了面向对象软件的可重用性。
软件定义期,包括问题定义、可行性研究、需求分析;软件开发期,包括概要设计、详细设计、实现、测试;运行维护期,即运行维护阶段。
软件过程:为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
目标:开发出客户满意的软件
生命周期模型规定了把生命周期划分成哪些阶段及各阶段执行顺序,也叫过程模型。
• 迫使开发人员采用规范的方法;
• 每个阶段必须提交的文档;
• 每个阶段的产品都必须经过质量验证。
• 需求难开始完全确定;
• 文档驱动、风险大;
• 灵活性差,一旦修改损失惨重;
• 不支持软件复用和集成技术。
瀑布模型适用于功能、性能明确,完整无变化的软件系统开发,比如 操作系统、财务系统等。
快速原型模型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成功能的一个子集。
展示待开发软件的部分功能和性能,用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求,开发人员据此对软件进行修改完善.
不带反馈环开发的系统能够满足用户真实的需求
• 快速构建、容易修改;
• 取代规格说明阶段,容易适应需求的变化;
• 用户参与;
• 能够处理模糊需求
• 快速构建(弱功能);
• 资源规划和管理较为困难;
• 对开发环境要求高
把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。
系统模块化和构建化
• 能在较短时间内向用户提交可完成部分工作的产品;
• 逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品
• 开发顺序灵活。
• 在把每个新的增量构件集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。
• 软件体系结构必须是开放的
• 待开发系统能够被模块化
• 软件产品可以分批次交付
• 软件开发人员对应用领域不熟悉,或一次性开发的难度很大
• 项目管理人员把握全局的水平很高
可把它看作在每个阶段之前都增加风险分析的快速原型模型。
• 风险驱动
• 风险分析
• 质量保证
• 风险分析
• 对开发人员要求高。
螺旋模型适用于复杂的、高风险的大型软件项目
喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。“喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。
实现软件的每项功能反复求精的过程,是从模糊到清晰的开发过程。不知道用户需要什么
• 迭代
• 无间隙
• 提高软件项目开发效率;
• 节省开发时间
• 难以管理项目。
RUP是Rational司提出的基于UML一种面向对象软件开发过程模型。它解决了螺旋模型的可操作性问题,采用迭代和增量的开发策略,以用例为驱动,集成了多种软件开发过程模型的特点。
RUP重复一系列组成软件生命周期的循环。每次循环都经历一个完整的生命周期,每次循环结
束都向用户交付产品的一个可运行的版本。
• 可裁剪定制的软件开发过程模型;
• 为如何适用项目提供了指导;
• 能够有效提高开发效率;
适用于大型软件项目。