软件过程续

过程模型介绍

瀑布模型:在需求明确确定的情况下很有用;

增量过程模型:增量模型以迭代的方式运用瀑布模型,即每个增量都是一个瀑布,随着每个版本交付,逐步为用户提供更多的功能;

RAD模型,Rapid App Dev。RAD是瀑布模型的“Rapid”变体,通过基于构件的构建方法实现快速开发;

演化过程模型:每次迭代产生软件的一个更完整的版本;

原型开发:当需求很模糊的时候,原型开发泛型帮助软件工程师和客户更好地理解究竟需要做什么。如果你的客户有一个合理的需求,但是对细节没有思路, 那么不妨先开发一个原型。注意,客户和开发者必须承认原型是为定义需求服务的。

螺旋模型:它结合了原型的迭代性质和瀑布模型的系统性和可控性特点。是一种风险驱动型过程模型生成器。两个特点:逐步加深系统定义和确定一系列 里程碑。 螺旋模型是开发大型系统和软件的理想方法。但它依赖大量的风险评估专家来保证成功。如果有较大的风险没有被发现和管理,肯定会发生问题。

协同开发模型:协同模型更适合不同的工程团队共同开发的系统工程项目。 软件过程应该侧重于灵活性和可扩展性,而不是高质量。这种说法听起来很惊人。但是,我们必须优先追求开发速度,而不是零缺陷。可是,很多广为人们尊重的软件工程专家都这样建议。

专用过程模型: a. 基于构件的开发模型,具有许多螺旋模型的特点,它本质上市演化模型,需要以迭代方式构件软件。不同在于,基于构件开发模型采用预先打包的软件构件开发程序。 b. 形式化方法模型,主要活动是生成计算机软件形式化的数学规格说明。意义在于可以提供无缺陷的软件。 c. 面向方面的软件开发,

统一过程(UP,Unified Process):用例驱动,以架构为核心,迭代并且增量的软件过程。和UML是一对孪生兄弟。 细化阶段扩展了起始阶段定义的用例,并扩展体系结构以包括了软件的五种视图——用例模型、分析模型、设计模型、实现模型和部署模型。

敏捷视角下的过程

敏捷软件过程推崇让客户满意和软件尽早增量发布;小而高度自主的项目团队;最小化软件产品以及整体精简开发。

在敏捷与软件工程之间做选择不是必须的。自定义一个敏捷软件工程方式是最好的选择。即使在敏捷学派内部也有不同的敏捷方式

有效的软件团队,其成员必须具备哪些显著特点?

敏捷过程中人的因素:基本能力、共同目标、精诚合作、决策能力、模糊问题解决能力、相互信任和尊重、自我组织。

敏捷过程模型

极限编程XP

XP是基于简洁、交流、反馈和勇气的软件开发原则。“story”、CRC卡,重构,KIS。测试驱动开发,在story设计完之后,团队并不直接开始编码,而是开发一系列的包括所有story的单元测试,一旦建立起单元测试,开发者就可以更集中精力于必须实现的内容以通过单元测试。不需要加任何额外的东西(KIS)。一旦编码完成,便可立即完成单元测试,可及时反馈。 XP最关键的概念之一是结对编程

自适应软件开发

即ASD,Adaptive,着眼于人员协作和团队自我组织。Highsmith给ASD“生命周期”的定义包含思考、协作和学习三个阶段。 值得一提的是,ASD中的协作的本质就是现在最流行的JAD。只有在抛弃了“我们和他们”的观念后,有效的协作才会出现

动态系统开发方法

DSDM,核心理念是,80%的应用系统可以用20%的时间交付。像XP和ASD一样,DSDM建议使用迭代软件过程。

Scrum

由一系列强调项目优先级、分离的工作单元、沟通、频繁的客户反馈等过程模式组成。

- 待定项(backlog,本质是优先级列表);

- 冲刺(sprint),必须在预定时间内完成(一般为30天),冲刺过程中不允许有变更。给开发团队提供一个短期但稳定的环境。

- Scrum例会,上次例会后做了什么?遇到什么困难?下次例会前做些什么?

- 演示——向客户交付软件增量。

特征驱动开发

FDD(和目前我司的FO比较像),特征是可以在2周或更短时间实现的具有客户价值的功能。

敏捷建模,Agile Modeling,AM是一种用于对软件系统有效建模和文档化的实践方法学。 AM独具特色的是:

有目的的模型,在构建模型之前,使用AM模型的开发者心中应当有明确的目标; 使用多个模型,AM建议从需要的角度看,每一种模型应当表达系统的不同侧面; 前进灯,是用于所有软件工作的理念,即仅仅构建能提供价值的模型——不多也不少;

代表性工具

Actif Extreme,由Microtool开发(www.microtool.com),提供对各种技术活动的敏捷过程管理支持;

Ideogramic UML,由Ideogramic开发(www.ideogramic.coom),是特别为敏捷过程开发的UML工具集;

Together Tool Set,提供支持XP和其他敏捷过程中许多技术活动的工具包。

你可能感兴趣的:(软件过程续)