什么是Feature:
The unit of development and thus an increment in an FDD project - a feature - is tiny; … Features (tiny, granular pieces of client-valued function) are being completed every week in an FDD project。特性Feature作为一个开发单位,也是FDD项目中的一个增量,是指“用户眼中最小的有用的功能”, 可以在1周内实现。
特征驱动开发定义:
特征驱动开发(FDD)方法是敏捷软件开发过程中的一种,是由Jeff de Luca 、Eric Lefebvre、Peter Coad共同开发的。它强调特性驱动,快速迭代,即能保证快速开发,又能保证适当文档和质量,非常适合中小型团队开发管理。它提出的每个功能开发时间不超过两周,为每个用例user case限定了粒度,具有良好可执行性,也可以对项目的开发进程进行精确及时地监控。它抓住了软件开发的核心问题领域,即正确和及时地构造软件。FDD还打破了传统的将领域和业务专家/分析师与设计者和实现者隔离开来的壁垒。 分析师被从抽象的工作中解脱出来,直接参与到开发人员和用户所从事的系统构造工作中。
FDD过程:
FDD是一个模型驱动( model-driven)、短期迭代(short-iteration)的过程。 注意,FDD是一个开发过程,过程总是有起点和终点,FDD的起点是起源于创建一个全局的模型轮廓(不要求很精确,大概模样就可以),然后是周期低于两周的一系列的"design by feature, build by feature"的迭代,逐渐丰富模型功能内容。一个FDD开发过程如附件1图所示。
其由5个活动组成:
1. 开发一个全局的模型 (Develop an Overall Model)
2. 建立特征列表(Build Feature List)
3. 依据特征规划(Plan by Feature)
4. 依据特征设计(Design By Feature)
5. 依据特征构建(Build By Feature)
FDD中的角色
1. Domain expert(s)
2. Chief Architect(s)
3. Chief Programmer(s)
Feature Team一般由Domain expert ,Chief Programmers,Class Owners组成,一个Chief Programmers可以带领多个Class Owners。
FDD相关的度量
采用FDD方式进行开发时,各阶段成本的分配大致如下所示:
1. 开发一个全局的模型 (Develop an Overall Model)10% Initial, 4% on-going
2. 建立特征列表(Build Feature List) 4% initial, 1% on-going
3. 依据特征规划(Plan by Feature) 2% initial, 2% on-going
4. 依据特征设计和依据特征构建 77%(2周迭代一次)
FDD的最佳实践
• 持续集成Continuous Integration.
• 对领域(业务)对象建模Domain Object Modeling.
• 按特性开发Developing By Feature.
• 类的所有者Individual Class ownership.
• 按特性组织团队Feature Teams.
• 源代码控制Source Control.
• 汇报/结果可见性Reporting/Visibility of results
- 描述: FDD开发过程
- 大小: 707.2 KB
- 描述: FDD相关的度量
- 大小: 1.4 MB
分享到:
相关推荐
总的来说,脚本驱动的应用软件开发方法是现代软件工程的一个重要组成部分,它通过脚本语言的灵活性和自动化特性,提高了开发效率,增强了软件的可定制性和用户交互性。而软件皮肤和XML的使用进一步丰富了用户体验和...
【嵌入式系统驱动软件开发】是嵌入式系统...总的来说,嵌入式系统驱动软件开发是连接硬件和软件的关键环节,涉及硬件特性理解、操作系统接口设计和应用需求满足等多个方面,是构建高效、稳定嵌入式系统的核心技术之一。
标题中的“大恒图像MER系列CCD驱动软件程序”指的是由大恒图像公司开发的一套专用于控制和驱动MER系列CCD(Charge Coupled Device,电荷耦合器件)相机的软件程序。CCD相机广泛应用于工业检测、生物医学、天文观测、...
### 组态王软件驱动程序开发指南 #### 一、概述 组态王软件是一款广泛应用于工业自动化领域的软件平台,其强大的数据采集能力和灵活的配置功能使其成为许多工程师的首选工具。为了更好地与各种硬件设备进行通信,...
嵌入式系统驱动软件开发是嵌入式微处理器系统中不可或缺的一部分,主要目的是为了实现操作系统与硬件之间的交互,为上层应用提供稳定、高效的运行环境。驱动软件通常分为三类:板级初始化程序、与系统软件相关的驱动...
比如,WDK(Windows Driver Kit)是微软提供的用于开发Windows驱动程序的官方软件开发工具包。早期的驱动开发工具包括VxD(虚拟设备驱动程序)和DDK(设备开发工具包),但自Windows 2000开始,微软引入了WDM...
这款开发包包含了所有必要的组件,使得软件工程师能够轻松地进行硬件设备的驱动程序开发,从而让这些设备能够在组态王平台上无缝运行。 首先,我们来了解一下“组态王”。组态王是中国自动化领域广泛使用的监控系统...
本文探讨了在VxWorks操作系统下,为GPU和FPGA芯片原型设计和实现驱动软件的过程。驱动软件对于GPU而言是其性能...通过该驱动软件的设计与实现,可以更好地理解GPU和FPGA的硬件特性,进一步推动硬件与软件的融合和创新。
驱动程序是操作系统与硬件设备之间的桥梁,它理解设备的特性和指令集,并将其转化为操作系统可理解的语言。接口驱动程序主要处理设备的输入输出操作,确保数据正确高效地在硬件和软件之间传输。理解设备的工作模式、...
总结来说,开发Linux下的数据采集卡驱动软件涉及了硬件特性的理解、需求分析、驱动程序的架构设计以及Java接口的实现。通过合理的架构设计,可以实现高效、稳定且具有良好移植性的驱动软件,以适应不断变化的硬件...
领域驱动设计(Domain-Driven Design,简称DDD)是一种软件开发方法论,它强调紧密围绕核心业务领域构建软件模型,并将系统设计的复杂性化解于业务模型的构建之中。领域驱动设计涉及一系列的原则和实践,旨在提高...
总的来说,组态王软件驱动程序开发涉及到COM组件技术、VC++编程、硬件通讯协议的理解以及针对不同硬件特性的驱动设计。通过提供的开发工具和向导,开发者能够更高效地构建驱动程序,实现组态王与硬件设备的无缝连接...
Linux操作系统以其跨平台、开源以及支持众多应用软件和网络协议等优点,已成为当今应用最为广泛的开发平台之一。本书的出版,正是为了满足那些对Linux设备驱动程序开发有深入需求的中高级开发人员的需要,不仅帮助...
Linux操作系统因其跨平台、开源、支持众多应用软件和网络协议等特性,已成为最广泛的应用开发平台。Linux设备驱动程序开发是操作系统开发中的一个重要分支,涉及硬件设备与Linux内核之间的交互,以及不同硬件平台的...
- 驱动签名:确保驱动来源于受信任的源,防止恶意软件。 - 兼容性:驱动必须适应各种硬件配置和系统更新,遵循微软的兼容性指南。 了解以上知识后,你就可以着手开发Windows 2000的驱动程序了。《Windows 2000...
4. Wind River:Wind River是一家专注于嵌入式系统的软件公司,其产品包括Wind River Workbench,这是一套集成开发环境(IDE),专为开发嵌入式设备驱动和系统软件而设计。Workbench提供了调试器、配置工具、性能...
WDM驱动程序允许硬件制造商为他们的硬件设备编写软件,以便与Windows系统无缝交互。本指南将深入探讨WDM驱动开发的核心概念、架构以及实现方法。 **一、WDM驱动程序的基础知识** 1. **驱动程序层次结构**:WDM驱动...
在现代的IT行业中,驱动程序开发是计算机系统底层软件开发的重要组成部分。随着技术的不断进步,开发工具也在持续更新以适应新的操作系统和硬件环境。在本文中,我们将深入探讨使用Visual Studio 2010(VS2010)进行...
驱动开发主要涉及与这些硬件接口交互的软件层,如Linux kernel模块、用户空间库和设备驱动程序。理解这些硬件组件的特性是编写高效驱动的基础。 二、Linux内核驱动开发 1. 内核模块编译:介绍如何配置内核源码,...