前面我们提到,迭代式开发最重要的两项前期分析就是工作量评估和优先级评估。工作量评估不仅能够确定整个项目的开发周期、成本预算,而且能够确定每项工作的开发周期,为工作的时间分配提供了依据。
但是,如此多的工作,谁先做谁后做,如何安排它们的先后顺序,则是由工作优先级来决定的。
迭代式开发的特点就是持续集成,也就是首先开发最重要、最基本的功能,而暂时忽略掉分支的、次要的功能。正因为如此,迭代式开发需求将优先级最高的功能放到前面最先完成,然后安排次优先级的,依此类推。总之,优先级评估决定了迭代式开发的工作安排。
那么,如何决定每个功能,每项工作的优先级呢?其决定因此很多,但通常来说,有两个因素是最基本的:是否靠近主营业务,以及用户使用是否频繁。
一个组织想上线一套管理系统,我们首先要分析它的主营业务。一个医院的主营业务是门诊系统,一个ERP的主营业务是进销存。越靠近这些主营业务的功能优先级越高。
同时,我们在需求分析过程中还应考察用户对各项功能的使用频率。一般来说,一个事物处理系统中,完成各项业务操作的功能必然使用频率最高,对各项业务操作的查询次之,而那些各种各样的统计分析报表则是频率最低的。频率高的功能优先级高,频率低的功能优先级低。
当然,决定优先级的因素还有很多,比如每项功能的成本与收益、紧急程度、战略意义等。我们可以绘制一个优先级表,一边罗列出所有影响因素,一边罗列出所有的功能,一项一项地分析,最终综合评估各项功能的优先级。
优先级评估的最重要的作用就是排列各项功能的开发先后顺序。前面我们提到,迭代式开发的最大特点就是迭代。整个软件开发过程被划分为数个迭代期,每个迭代期结束时应当提交一份可独立运行的程序,向用户演示。按照这样的思路,当软件开发第一个迭代期结束的时候,我们提交的是一套完整的程序,只是不够健壮,操作不方便,没有那些辅助的、次要的功能而已。这些剩余的功能,我们将在之后的迭代期逐渐完成。
根据这样的思路我们就明白了为什么我们需要进行优先级评估。将主营业务的、使用频繁的功能首先开发出来。在开发时,也主要考虑主流程而忽略分支流程。经过第一次迭代,一个可运行的、主要功能都有的软件雏形就出来了。之后,再在此基础上继续丰富、完善,直到整个项目的完成。
- 浏览: 145997 次
- 性别:
- 来自: 广州
最新评论
-
lvliang169:
码农通常会被亲戚、家人、朋友认为是修电脑的
深有同感啊、、、、 ...
关于程序猿,你不知道的15件事
相关推荐
### 软件工程实践中的敏捷开发与迭代开发模式 #### 第1章 软件工程实践与敏捷开发 **软件工程与敏捷开发简介** - **软件工程**:旨在研究和应用有效管理软件开发项目的科学。它涉及软件设计、开发、测试、维护等...
### 软件工程实践中的敏捷开发与迭代开发模式 #### 第1章:软件工程实践与敏捷开发 **软件工程概述:** 软件工程是一门综合性的学科,它结合了计算机科学、项目管理学等多个领域的知识,旨在提高软件开发的质量与...
敏捷软件开发是一种以人为核心、迭代、增量的开发方法论,旨在提高开发团队的响应能力,确保软件产品能够快速适应变化。"敏捷软件开发原则、模式与实践"这个主题涵盖了敏捷开发的核心理念、常用模式以及如何在实际...
敏捷迭代方法是近年来广泛应用的一种开发模式,尤其在操作系统(OS)的开发和维护中更为常见。本资料主要针对“系统分析与设计敏捷迭代方法”课程的课后习题提供了答案,旨在帮助学生深入理解和应用相关知识点。 1. *...
总体而言,敏捷开发模式强调的是人的重要性、团队合作、适应变化和持续改进,它通过一系列实践和框架来实现快速迭代和交付高质量的产品,适应快速变化的市场需求。敏捷开发与传统开发方式相比,更加灵活、响应迅速,...
### RUP大讲堂——业务驱动开发的关键知识点 #### 一、引言 RUP(Rational Unified Process)是一种面向对象且基于网络的程序开发方法论。它强调以业务为核心,通过规范化的流程管理和迭代式的开发策略来提高软件...
在互联网行业中,快速迭代和敏捷开发模式使得测试环境的构建与优化、覆盖率的设定以及优先级的划分显得尤为重要。通过科学的测试策略,可以有效提高软件质量,降低上线风险,提升用户满意度。同时,测试人员的专业...
在这样的开发模式下,测试用例的优先级和选择技术可以帮助项目团队在频繁合并代码的同时,快速有效地识别问题,保障软件质量。 本文还提到了评估指标(Evaluation Metrics),这在衡量测试用例优先级划分和选择技术...
迭代开发的一个显著优势是它的灵活性。传统的瀑布模型要求所有需求在项目开始时就完全确定,但现实情况往往是需求会随着项目的进展而变化。迭代模式允许团队在每次迭代中适应这些变化,确保最终产品更加符合实际需求...
- **软件开发生命周期**包括瀑布模型、敏捷开发、迭代开发等多种模型。每种模型都有其适用的场景和特点。 - **软件质量管理体系**确保软件质量符合标准并能够持续改进。这一体系贯穿于软件开发的全过程,对于保证...
2. 迭代开发:每次迭代产出一部分功能,逐步完善软件。 3. 持续集成:频繁集成代码,避免集成难题和代码冲突。 4. 回顾与改进:定期评估团队表现,找出改进点,不断优化流程。 总结,敏捷软件开发是一种灵活、...
这种模式强调迭代开发、频繁反馈和团队协作,以提高项目效率和客户满意度。 **一、敏捷原则与价值观** 敏捷宣言是敏捷项目管理的核心,它由四条价值声明和十二条原则组成。这些声明体现了敏捷方法的哲学: 1. **...
- 迭代开发:每个迭代解决一部分功能,例如第一轮实现基本的邮件收发,第二轮加入分类与搜索,后续迭代逐步完善其他特性。 - 团队协作:开发、设计和测试人员紧密合作,快速响应用户需求变更,通过每日站会讨论...
根据提供的文件信息,本文将详细探讨软件架构评估的相关知识点,特别是基于场景的架构评估方法,如ATAM(Architecture Tradeoff Analysis Method)、SAAM(Scenario-based Architecture Analysis Method)和CBAM...
敏捷开发与传统的瀑布模型开发模式不同,敏捷开发模式不将开发过程分割成明确的阶段,而是将开发过程划分为若干迭代周期,通常称为Sprint。 Scrum过程中的关键组件包括: 1. 产品待开发项(Product Backlog):产品...
失效模式及后果分析(FMEA)是一种系统性的风险管理工具,主要应用于品质管理和产品开发过程,以预测和防止潜在的问题。FMEA的全称是Potential Failure Mode and Effect Analysis,虽然在缩写时省略了"潜在的"和...
在软件行业中,敏捷开发已经成为许多团队首选的开发模式,因为它能够提高效率,缩短产品上市时间,并确保团队能够及时调整方向以满足客户需求。本资料包中的"软件敏捷开发过程文档"提供了一个全面的框架,帮助开发者...
这种开发模式与传统的瀑布模型不同,它更注重团队协作、持续改进和灵活应对需求变更。 2. **核心特性**: - **迭代开发**:项目被划分为多个短周期的迭代,每个迭代都产生一个可工作的软件版本。 - **用户故事**...
5. 企业内部产品研讨会:组织内部员工、产品经理、交互设计师等参与产品功能的讨论和评估。 文章还讨论了如何将用户需求转化为产品需求。这一过程涉及到需求的评估、筛选和优先级排序。在这一阶段,设计团队需要...
故障模式分析(Failure Modes and Effects Analysis,简称FMEA)是一种预防性的质量管理工具,常用于识别、评估和控制可能发生的故障模式,以减少产品或过程中的潜在缺陷。在IT行业中,FMEA广泛应用于软件开发、系统...