关于过程模型分析
2011-10-20 09:57
183 查看
在软件开发过程中,软件开发者必须综合出一个开发策略,该策略应该覆盖软件工程层次中的过程、方法和工具三个层次。过程模型的选择应该是基于项目和应用的特点、方法和工具,以及需要的控制和交付的产品。一般包括下列几种。
一、线性顺序模型
线性顺序模型又称“传统生命周期”或“瀑布模型”。它由winstonRoyce最早提出。该模型阐述了软件开发中系统化的。顺序的方法。借鉴传统的工程周期,从系统级开始,然后是分析、设计、编码、测试和维护。虽然线性顺序模型是最早的,也是应用最广泛的软件工程范例,但它存在着如下的不利因素:
(1)实际项目很难按照该模型给出的顺序进行。
(2)用户常常难以清楚地给出所有线性顺序模型所要求的所有需求。
(3)用户必须有耐心,运行版本直到最后才能得到。
(4)开发者常常被不必要的情况所阻碍,不得不推延工期。
虽然这些问题都是存在的,但它在软件工程中仍占有肯定的和重要的位置,比起随意的软件开发状态要好得多。
二、原型模型
原型模型适用于用户只知软件的一般目标,而不能详细的标识出输入、处理和输出的需求,或者不能确定算法的有效性、操作系统的适应性或人机交互的形式等。原型范型从需求收集开始,开发者和用户一起定义软件的总体目标,标识出已知的需求,并规划进一步定义的区域,然后进行快速设计,创建最原始的原型。首先是将原型交用户进行评估,给出进一步的软件需求,然后逐步调整原型以满足客户的要求,直至达到最终目标。该过程是一个迭代的过程。理想上。原型可以作为标识软件需求韵一种机制。虽然开发者和用户对具有可部分实现功能的原型模型方法都非常感兴趣,但它仍存在下述问题:(1)用户看到的只是软件的工作版本,没有有效地考虑软件质量。真正的产品必须重新建立。(2)开发者常常需要实现上的折衷,以使原型能尽快工作。虽然操作系统或程序设计语言并不十分适合,算法效率很低,但只因为它们是通用的或可以方便使用的。长此以往,这些不理想的选择由于习惯而成为了真正产品的一部分。虽然有上述问题,原型仍是软件工程中的一个有效范型。只要坚持原则,用户与开发者达成共识,即原型被建造仅是为了定义需求,实际的软件只有在充分考虑了质量和可维护之后再开发。使用原型模型应该是能成功地开发出质量可靠
的软件产品的。
三、螺旋模型
螺旋模型是由Boehm最早提出的,它是一个演化软件过程模型。它将原型的迭代特征与线性J顷序模型中控制的和系统化的方面结合起来,使得软件的增量版本的快速丌发成为可能。在增量模型中,软件开发是一系列的增量发布。它被划分为若干个框架活动,一般有三到六个任务区(如图1.2所示),随着软件演化过程的开始,软件工程项目组从核心开始按顺时针方向沿螺旋移动。螺旋的第一圈可能产生产品的规格说明书;再下面的螺旋可能用于开发~个原型;随后可能是软件的更完善的版本。与传统的过程模型不同,它不是当软件交付时就结束了,螺旋模型能够适用于计算机软件的整个生命周期。本质上,螺旋是一直运转直到软件退役,只不过它有时是处于休眠状态而已。像其它范型一样,螺旋模型也存在着一定缺限。它可能难以使用户相信演化方法是可控的,它需要相当的风险评估锕专门技零,‘且其成功与否依赖于这种专在软件工程中,’还有很多其它的过程模型,如RAbi模型,增量模型,构件组装横型Im,并发开发模型I啪及形式化方法模型l秘等,每蜘个模型都有其优点和弱点,都是对软件产生过程肫一种手段或方法。过程模型的选择必须符合软件项目的实际问题和项目组的使用.其实所定义的软件详绩构生产细节,是项目组采用的一系列的研究、开发活动,也就是赁穿于整个软件生产活动的软件工程方法。这些方法中最具影响韵包括:传统韵结构化设计方法;面向对象的方法,
形式化方法等。在这些方法中,每~种方法的产生,使用和成功都推动着软件工程技术的前进和软件生产的质量提高。这些方法的具体内容如下。
1. 传统软件过程的方法
对于软件工程的实现方法是这样理解的,软件工程是系统工程理论的一个实例。它不仅仅着重于软件,系统工程还关注于一系列元素,关注于如何按系统分析的方法,设计和组织元素。该系列元素可以是信息的变换(软件作用),控制产品,服务或技术。系统工程从整体视图开始,分析业务域或产品,建立所有的基本需求。然后,关注点缩小到“领域视图”,以便单独地分析每个系统元素,给每个元素分配一个或多个工程构件,并由相关的工程方法处理。例如,高技术系统包含一系列构成成份(构件):软件、硬件、人员、数据库、文档和过程。系统工程帮助将客户的需求映射到使用一个或多个构件的系统中。系统工程要求在客户和信息或系统工程师间存在密切地联系。客户必须了解系统目标,并能清楚地说清它们。工程师必须知道问什么问题,给什么建议,以及做什么研究。如果通信(沟通)成功;并且创建了完整的系统模型,则就建立起构造系统的坚固基石。传统的软件工程方法包含了下述几种的设计要求。
传统的软件工程方法可分为;需求分析.分析建模,软件设计,软件测试和软件维护几部分。
具体的就不再介绍了
一、线性顺序模型
线性顺序模型又称“传统生命周期”或“瀑布模型”。它由winstonRoyce最早提出。该模型阐述了软件开发中系统化的。顺序的方法。借鉴传统的工程周期,从系统级开始,然后是分析、设计、编码、测试和维护。虽然线性顺序模型是最早的,也是应用最广泛的软件工程范例,但它存在着如下的不利因素:
(1)实际项目很难按照该模型给出的顺序进行。
(2)用户常常难以清楚地给出所有线性顺序模型所要求的所有需求。
(3)用户必须有耐心,运行版本直到最后才能得到。
(4)开发者常常被不必要的情况所阻碍,不得不推延工期。
虽然这些问题都是存在的,但它在软件工程中仍占有肯定的和重要的位置,比起随意的软件开发状态要好得多。
二、原型模型
原型模型适用于用户只知软件的一般目标,而不能详细的标识出输入、处理和输出的需求,或者不能确定算法的有效性、操作系统的适应性或人机交互的形式等。原型范型从需求收集开始,开发者和用户一起定义软件的总体目标,标识出已知的需求,并规划进一步定义的区域,然后进行快速设计,创建最原始的原型。首先是将原型交用户进行评估,给出进一步的软件需求,然后逐步调整原型以满足客户的要求,直至达到最终目标。该过程是一个迭代的过程。理想上。原型可以作为标识软件需求韵一种机制。虽然开发者和用户对具有可部分实现功能的原型模型方法都非常感兴趣,但它仍存在下述问题:(1)用户看到的只是软件的工作版本,没有有效地考虑软件质量。真正的产品必须重新建立。(2)开发者常常需要实现上的折衷,以使原型能尽快工作。虽然操作系统或程序设计语言并不十分适合,算法效率很低,但只因为它们是通用的或可以方便使用的。长此以往,这些不理想的选择由于习惯而成为了真正产品的一部分。虽然有上述问题,原型仍是软件工程中的一个有效范型。只要坚持原则,用户与开发者达成共识,即原型被建造仅是为了定义需求,实际的软件只有在充分考虑了质量和可维护之后再开发。使用原型模型应该是能成功地开发出质量可靠
的软件产品的。
三、螺旋模型
螺旋模型是由Boehm最早提出的,它是一个演化软件过程模型。它将原型的迭代特征与线性J顷序模型中控制的和系统化的方面结合起来,使得软件的增量版本的快速丌发成为可能。在增量模型中,软件开发是一系列的增量发布。它被划分为若干个框架活动,一般有三到六个任务区(如图1.2所示),随着软件演化过程的开始,软件工程项目组从核心开始按顺时针方向沿螺旋移动。螺旋的第一圈可能产生产品的规格说明书;再下面的螺旋可能用于开发~个原型;随后可能是软件的更完善的版本。与传统的过程模型不同,它不是当软件交付时就结束了,螺旋模型能够适用于计算机软件的整个生命周期。本质上,螺旋是一直运转直到软件退役,只不过它有时是处于休眠状态而已。像其它范型一样,螺旋模型也存在着一定缺限。它可能难以使用户相信演化方法是可控的,它需要相当的风险评估锕专门技零,‘且其成功与否依赖于这种专在软件工程中,’还有很多其它的过程模型,如RAbi模型,增量模型,构件组装横型Im,并发开发模型I啪及形式化方法模型l秘等,每蜘个模型都有其优点和弱点,都是对软件产生过程肫一种手段或方法。过程模型的选择必须符合软件项目的实际问题和项目组的使用.其实所定义的软件详绩构生产细节,是项目组采用的一系列的研究、开发活动,也就是赁穿于整个软件生产活动的软件工程方法。这些方法中最具影响韵包括:传统韵结构化设计方法;面向对象的方法,
形式化方法等。在这些方法中,每~种方法的产生,使用和成功都推动着软件工程技术的前进和软件生产的质量提高。这些方法的具体内容如下。
1. 传统软件过程的方法
对于软件工程的实现方法是这样理解的,软件工程是系统工程理论的一个实例。它不仅仅着重于软件,系统工程还关注于一系列元素,关注于如何按系统分析的方法,设计和组织元素。该系列元素可以是信息的变换(软件作用),控制产品,服务或技术。系统工程从整体视图开始,分析业务域或产品,建立所有的基本需求。然后,关注点缩小到“领域视图”,以便单独地分析每个系统元素,给每个元素分配一个或多个工程构件,并由相关的工程方法处理。例如,高技术系统包含一系列构成成份(构件):软件、硬件、人员、数据库、文档和过程。系统工程帮助将客户的需求映射到使用一个或多个构件的系统中。系统工程要求在客户和信息或系统工程师间存在密切地联系。客户必须了解系统目标,并能清楚地说清它们。工程师必须知道问什么问题,给什么建议,以及做什么研究。如果通信(沟通)成功;并且创建了完整的系统模型,则就建立起构造系统的坚固基石。传统的软件工程方法包含了下述几种的设计要求。
传统的软件工程方法可分为;需求分析.分析建模,软件设计,软件测试和软件维护几部分。
具体的就不再介绍了
相关文章推荐
- 关于设备模型、设备与驱动关联的过程分析 - linux设备/驱动
- 关于设备模型、设备与驱动关联的全过程分析
- Xen前后端分离设备驱动模型通信过程分析(包括事件通道、授权表、环缓冲区)
- 设备模型、设备与驱动关联的全过程分析 platform_device platform_driver driver bus关系
- 设备模型、设备与驱动关联的全过程分析 platform_device platform_driver driver bus关系
- 《火球——UML大战需求分析》(第3章 分析业务模型-类图)——3.7 关于对象图
- 关于Java中几种方法块的执行过程分析
- SPSS统计分析过程包括描述性统计、均值比较、一般线性模型、相关分析、回归分析、对数线性模型、聚类分析、数据简化、生存分析、时间序列分析、多重响应等几大类
- 关于SQL分页存储过程的分析
- 分析与设计数据库模型的简要过程
- 设备模型、设备与驱动关联的全过程分析 platform_device platform_driver driver bus关系
- 学习java过程中关于生产者消费者模型的一些心得
- 关于Ext3.0中按条件查询并重新加载Grid中的数据的实现过程及store.load的分析
- 关于springmvc执行的流程和处理过程分析
- 关于Spreadsheet对象模型分析
- [转]关于SQL分页存储过程的分析
- 关于Kotlin和java的编译过程异同的分析
- 思甜雅--关于qq的NABCD模型分析
- 关于Ext3.0中按条件查询并重新加载Grid中的数据的实现过程及store.load的分析
- 关于epoll的IO模型是同步异步的一次纠结过程