1:瀑布方法
所有软件方法的祖先是瀑布方法(waterfall methodology)。它之所以被称为瀑布方法是因为开发模块相互之间的依次流动,瀑布方法通过控制阀门的一系列活动组成。这些控制阀门决定一个给定的活动是否已经完成并且可以进入下一个活动。需求阶段处理决定了所有的软件需求。设计阶段决定整个系统的设计。代码在代码阶段编写。代码然后被测试。最后产品被发布。
对瀑布方法模型最基本的批评就是瀑布方法对于反馈事物发展状况耗时太长。软件的一些内容那个很容易被理解,而另一些内容则相反。因此,当用户对于手边出现的问题都没有很好理解的时候,开发人员试图先完成所有的需求(也就是说,将需求量化到实际的规格说明当中)是非常空难的。更进一步来说,如果在需求中出现一个错误,它将传播到设计阶段,传播到代码中等。同时一般不存在过程中返回的真正能力。因此,如果进入测试并且发现设计的一部分是无法工作的,那么就会进行修改并修补问题而交差,但是这种方法将会失去设计活动的所有上下文环境——你只是有目的地对系统权宜行事!
认识到这个问题后瀑布方法已经被修改成几种形式。例如螺旋式瀑布方法它继承并使用了多个瀑布模型。这种方法缩短了生命周期向下的时间;也就是说,为解决为题提供了迭代方案。
最终,大家无法脱离瀑布方法是因为它确实是合乎常规的方法。首先,这种方法可以决定将要构建的内容。接着,决定将要如何构建这些,下一步,世界构建这些内容。可以确保自己确实构建自己所需的东西(并且可以成功运行)。
2:统一过程
统一过程应用了基于处理系统首先考虑的最重要方面而实施的短期迭代开发。
开发一个寡欲各种用列(use case)的调查文档(也就是说,对用户与系统交互的简短描述),并且开始排除那些可能对整个系统成功造成风险的用列。只要适合,就可以在开发过程中添加或者删除用列。
统一过程的4个阶段定义如下:
初始(inception):系统仍然处于决定系统内容的阶段——系统将要完成什么以及系统的边界是什么。如果系统能够很好的理解,那么这个阶段就非常短。
细化(Elaboration):正在将体系结构的风险移至系统。一种表述该阶段的说法是,“你是否已经解决了所有难题?”或者“你知道如何完成你将要去完成的事情吗?”
构造(Construction)正在完成所有相关的用列来使系统为移交做好准备,也就是说,进入Beta版本。
移交(Transition)使系统通过它的最后发布阶段以及Beta版本。它可能包括软件的操作及维护。
这是一个关注于维护要素的敏捷过程,但是仍然采用了大量用例开发,间模等方面的传统实践。
3:极限编程:
极限编程的开发过程就是以代码为中心的方法。
让用户告知你一些有关系统是如何如用转的故事描述,基于故事相互之间的重要性来定制这些系统这样就可以为自己的团队提供一个故事集合,可以在一个给定的迭代中完成他们,大约两周时间——每周工作40个小时,你将团队划分,双人应付没一个故事,在代码被编写时提供确定数量的内建对等评审。你和你的同伴在编写自己代码的同时编写单元测试。在完成自己负责的那段代码后,将其拿到集成的机器上,放入代码基线,运行从所有人的代码中积累而成的单元测试。在完成iji负责的那段代码后,将会提供一个运行系统使用户可以评审来确保自己的工作满足他们的需要。
注意极限编程并没有将软件的设计设置成一个高级阶段。相反它认为那些最前端的设计对于整个系统开发不是很有帮助,并且随着实际开发的进行它最终还是被修改。
极限编程对于需要持续提供运行系统的软件卡发来说非常适用。当缺少用户介入或者项目规模很大时极限编程方法将会不好用,因为这时协调和设计活动实际上变得更重要了。
极限编程合理地考虑开发团体的能力,这样可以有效计划。
分享到:
相关推荐
软件开发方法软件开发方法软件开发方法软件开发方法软件开发方法软件开发方法软件开发方法
### 敏捷软件开发方法理论与实战 #### 敏捷方法概述 敏捷软件开发是一种以人为本、灵活应变的软件开发模式,旨在通过迭代和增量的方式快速交付高质量的产品。相较于传统瀑布模型等预见性的开发方法,敏捷更加注重...
随着时代的发展,人们对于信息的获取有着强烈的需求。智能手 机作为一种非常重要的...用层软件开发方法进行了深入研究。在此基础上,运用这两种开发方 法分别设计实现了Android音视频编解码软件和Android录音机软 件。
【标题】:“一种基于面向方面的统一过程软件开发方法” 【描述】:该方法结合了面向方面的编程(AO)和统一过程(UP),旨在解决传统软件开发中横切关注点分散和混乱的问题,提高代码可读性、重用性和系统可扩展性...
### 软件开发方法与技术 #### 一、软件开发方法与技术概述 - **软件的概念**:软件被理解为一系列复杂的系统,其核心功能是处理数据和提供服务。软件的发展经历了不同的阶段,从最初的面向问题的方法到现代的面向...
脚本驱动的应用软件开发方法是一种高效且灵活的开发策略,它强调使用脚本来控制和指导整个软件开发流程。这种方法能够显著提升团队合作的效率,同时增强应用软件的可定制性和交互性。以下是对这一主题的详细阐述: ...
软件开发方法概论 软件开发方法是软件开发过程中的一种方法论,它关注软件开发的组织方面,而不是技术方面。在软件开发方法中,有多种方法论,每种方法论都有其特点和优缺。了解软件开发方法论的历史发展和当前趋势...
《敏捷软件开发方法与实践》第1章阐述了敏捷软件开发方法出现的历史背景、敏捷宣言、敏捷原则及最新动态;第2章介绍了常见的敏捷软件开发方法及其相互间的简单比较;在第3章至第5章中,作者结合自己的敏捷项目开发...
敏捷软件开发方法是一种在21世纪初期被广泛采纳的软件开发模式,它的出现是对传统工程方法的一种革新,强调灵活性、适应性和以人为本的原则。本文将深入探讨敏捷软件开发方法的理论与实践,包括其核心理念、起源、...
掌握面向对象的软件开发方法。 掌握UML绘制方法并绘制各种制品。 掌握eclipse的编译与调式和编写代码的技巧。
形式化方法是一种基于坚实的数学基础的软件开发方法,它利用数学的精确性来描述软件系统的行为和属性。这种方法的目标是提高软件的质量,确保其正确性,并简化维护工作。形式化方法通常包括但不限于以下步骤: - **...
面向方面的软件开发方法 面向方面的软件开发方法是软件工程中的一种开发方法,它强调将软件系统分解为多个方面,每个方面都有其特定的功能和关注点。这种方法可以帮助开发者更好地管理软件系统的复杂性,提高系统的...
软件开发方法介绍 软件开发是信息技术领域不可或缺的一部分,它涵盖了从设计、编码、测试到维护等一系列过程。在软件开发过程中,了解软件的概念及其特征、软件危机、软件生命周期以及开发历史至关重要。 1. 软件...
内容概要:本文档全面介绍了系统架构设计与软件开发的相关知识,涵盖了系统工程方法、软件开发方法、需求管理、系统建模、系统设计、软件架构风格、基于架构的软件开发方法(ABSD)及架构评估等多个方面。...
"软件开发方法与C语言课程教学的融合" 软件开发方法和C语言课程教学的融合是现代软件开发的重要组成部分。在软件开发过程中,不仅要关心软件的开发,而更重要的是要培养学生建立运用软件开发方法的思想,并能加强...
《软件开发方法》 软件开发方法是计算机科学领域的一个核心话题,主要关注如何高效、高质量地构建和维护软件系统。本资料深入探讨了软件的基本概念、特征、分类以及开发技术的发展历程,旨在提供全面的软件开发知识...
ABC_基于体系结构_面向构件的软件开发方法_梅宏cnki最新学术研究论文