Feature-driven development

Feature-driven development (FDD) is an iterative and incremental software development process. It is a lightweight or agile method for developing software. FDD blends several best practices into a cohesive whole. These practices are driven from the perspective of delivering functionality (features) valued by the client.[1] Its main purpose is to deliver tangible, working software repeatedly in a timely manner in accordance with the Principles behind the agile manifesto.[2]

History

FDD was initially devised by Jeff De Luca to meet the specific needs of a 15-month, 50-person software development project at a large Singapore bank in 1997. This resulted in a set of five processes that covered the development of an overall model and the listing, planning, design, and building of features. The first process is heavily influenced by Peter Coad's approach to object modeling. The second process incorporates Coad's ideas of using a feature list to manage functional requirements and development tasks. The other processes are a result of Jeff De Luca's experience. There have been several implementations of FDD since its successful use on the Singapore project.

The description of FDD was first introduced to the world in Chapter 6 of the book Java modelling in Color with UML[1] by Peter Coad, Eric Lefebvre, and Jeff De Luca in 1999. Later, in Stephen Palmer and Mac Felsing's book A Practical Guide to Feature-Driven Development[2] (published in 2002), a more general description of FDD was given decoupled from Java modelling.

Overview

FDD is a model-driven short-iteration process that consists of five basic activities. For accurate state reporting and keeping track of the software development project, milestones that mark the progress made on each feature are defined. This section gives a high-level overview of the activities. In the figure on the right, the meta-process model for these activities is displayed. During the first two sequential activities, an overall model shape is established. The final three activities are iterated for each feature.

Process model for FDD

Develop overall model

The FDD project starts with a high-level walkthrough of the scope of the system and its context. Next, detailed domain models are created for each modelling area by small groups and presented for peer review. One or more of the proposed models are selected to become the model for each domain area. Domain area models are progressively merged into an overall model.

Build feature list

Knowledge gathered during the initial modeling is used to identify a list of features by functionally decomposing the domain into subject areas. Subject areas each contain business activities, and the steps within each business activity form the basis for a categorized feature list. Features in this respect are small pieces of client-valued functions expressed in the form "<action> <result> <object>", for example: 'Calculate the total of a sale' or 'Validate the password of a user'. Features should not take more than two weeks to complete, else they should be broken down into smaller pieces.

Plan by feature

After the feature list is completed, the next step is to produce the development plan and assign ownership of features (or feature sets) as classes to programmers.

Design by feature

A design package is produced for each feature. A chief programmer selects a small group of features that are to be developed within two weeks. Together with the corresponding class owners, the chief programmer works out detailed sequence diagrams for each feature and refines the overall model. Next, the class and method prologues are written, and finally a design inspection is held.

Build by feature

After a successful design inspection for each activity to produce a feature is planned, the class owners develop code for their classes. After unit testing and successful code inspection, the completed feature is promoted to the main build.

Milestones

Since features are small, completing a feature is a relatively small task. For accurate state reporting and keeping track of the software development project, it is important to mark the progress made on each feature. FDD therefore defines six milestones per feature that are to be completed sequentially. The first three milestones are completed during the Design By Feature activity, and the last three are completed during the Build By Feature activity. To track progress, a percentage complete is assigned to each milestone. In the table below the milestones and their completion percentage are shown. At the point that coding begins, a feature is already 44% complete (Domain Walkthrough 1%, Design 40% and Design Inspection 3% = 44%).

Table 1: Milestones
Domain Walkthrough Design Design Inspection Code Code Inspection Promote To Build
1% 40% 3% 45% 10% 1%

Best practices

Feature-driven development is built on a core set of software engineering best practices aimed at a client-valued feature perspective.

  • Domain object modelling. Domain object modeling consists of exploring and explaining the domain of the problem to be solved. The resulting domain object model provides an overall framework in which to add features.
  • Developing by feature. Any function that is too complex to be implemented within two weeks is further decomposed into smaller functions until each sub-problem is small enough to be called a feature. This makes it easier to deliver correct functions and to extend or modify the system.
  • Individual class ownership (code ownership). Individual class ownership means that distinct pieces or grouping of code are assigned to a single owner. The owner is responsible for the consistency, performance, and conceptual integrity of the class.
  • Feature teams. A feature team is a small, dynamically formed team that develops a small activity. Multiple minds are always applied to each design decision, and multiple design options are evaluated before one is chosen.
  • Inspections. Inspections are carried out to ensure good quality design and code primarily by the detection of defects.
  • Configuration management. Configuration management helps with identifying the source code for all features that have been completed to date and maintaining a history of changes to classes as feature teams enhance them.
  • Regular builds. Regular builds ensure there is always an up-to-date system that can be demonstrated to the client and help highlight integration errors of source code for the features early.
  • Visibility of progress and results. Managers steer a project using frequent, appropriate, and accurate progress reporting from all levels inside and outside the project based on completed work.

Metamodel (Metamodelling)

Process-Data Model for FDD

Metamodelling helps visualize both the processes and the data of a method. This allows methods to be compared, and method fragments in the method engineering process can easily be reused. The usage of this technique is consistent with UML standards.

The left side of the metadata model shows the five basic activities involved in a software development project using FDD. The activities all contain sub-activities that corresponding to sub-activities in the FDD process description. The right side of the model shows the concepts involved. These concepts originate from the activities depicted in the left side of the diagram.

See also

References

  1. ^ Cadle, James; Ahmed, Tahir; BCS, The Chartered Institute for IT, eds. (2014). Developing information systems: practical guidance for IT professionals. London: BCS, The Chartered Institute for IT. p. 99. ISBN 978-1-78017-245-3.
  2. ^ "Principles behind the Agile Manifesto". 2019-06-11.
  • 1. ^ Coad, P., Lefebvre, E. & De Luca, J. (1999). Java modelling In Color With UML: Enterprise Components and Process. Prentice Hall International. (ISBN 0-13-011510-X)
  • 2. ^ Palmer, S.R., & Felsing, J.M. (2002). A Practical Guide to Feature-Driven Development. Prentice Hall. (ISBN 0-13-067615-2)

Read other articles:

1979 studio album by Minnie RipertonMinnieStudio album by Minnie RipertonReleasedMay 9, 1979Recorded6 March – September 1978StudioA&M (Hollywood)Genre R&B soul Length35:47LabelCapitolProducer Minnie Riperton Dick Rudolph Henry Lewy Minnie Riperton chronology Stay in Love(1977) Minnie(1979) Love Lives Forever(1980) Singles from Minnie Memory Lane / I'm a WomanReleased: April 8, 1979 Lover and Friend / Return to ForeverReleased: August 26, 1979 Professional ratingsReview score...

 

Enix Co., Ltd.JenisPublik (tutup)IndustriSoftware & Pemrograman & PenerbitanDidirikanAgustus 1982KantorpusatTokyo, JepangTokohkunciKeiji Honda, PresidenProdukSeri permainan video Dragon Quest Seri permainan video Star OceanPendapatan-Karyawan-Situs webwww.square-enix.co.jpwww.square-enix.comwww.square-enix-europe.com Enix, atau yang lebih resmi Enix Co. Ltd., dulunya merupakan sebuah perusahaan yang memproduksi permainan video dan komputer dan manga Jepang. Perusahaan ini didirikan bu...

 

Daftar ini belum tentu lengkap. Anda dapat membantu Wikipedia dengan mengembangkannya. Berikut daftar tarian dari seluruh Indonesia berdasarkan abjad. Daftar mungkin belum lengkap. A Tari Andun Bengkulu Tari Angguk Yogyakarta Tari Angsa B Tari Badui Tari Baksa Kembang Tari Balean Dadas Tari Bali Tari Balumpa Tari Bambangan Cakil Tari Bangbarongan Tari Banjar Tari Banyumasan Tari Barongsai Tari Batu Nganga Tari Bedana Tari Bedhaya Tari Belian Tari Beksan Lawung Ageng Tari Bengberokan Tari Bida...

Lev Tolstoy approaching the Port of Naples on 9 September 1988 Class overview BuildersStocznia Szczecinska im Adolfa Warskiego Warskiego,[2] Szczecin, Poland Built1980–1986[1] Planned7 Completed7 Active2 Retired5 General characteristics TypeRo-pax ferry Tonnage 9,878 GT[2] 1,445 DWT Length133.15 m (437 ft)[2] Beam21.0 m (68.9 ft)[2] Depth5.6 m (18.4 ft)[2] Decks9 total, 6 passenger decks Installed power...

 

Dalam nama Korean ini, nama keluarganya adalah Kim. Kim Yoon-seoLahirKim Ga-eun28 Maret 1986 (umur 38)Seoul, Korea SelatanPendidikanUniversitas Dankook - Architectural EngineeringPekerjaanAktrisTahun aktif2009-sekarangAgenPan Stars Company Nama KoreaHangul김윤서 Alih AksaraGim Yun-seoMcCune–ReischauerKim Yun-sŏNama lahirHangul김가은 Alih AksaraGim Ga-eunMcCune–ReischauerKim Ka-ǔn Kim Yoon-seo (lahir Kim Ga-eun lahir 28 Maret 1986) adalah aktris Korea Selatan. Ia memulai ...

 

Fastest known animal and common bird of prey Peregrine falcon Male in Toronto, Ontario, Canada Conservation status Least Concern  (IUCN 3.1)[1] CITES Appendix I (CITES)[2] Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Chordata Class: Aves Order: Falconiformes Family: Falconidae Genus: Falco Species: F. peregrinus Binomial name Falco peregrinusTunstall, 1771 Subspecies 17–19, see text Global range of F. peregrinus   Breeding su...

Административное деление Афганистана Топонимия Афганистана — совокупность географических названий, включающая наименования природных и культурных объектов на территории Афганистана. Структура и состав топонимии страны обусловлены её географическим положением, �...

 

Lightweight Japanese sports car This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Suzuki Cappuccino – news · newspapers · books · scholar · JSTOR (June 2020) (Learn how and when to remove this message) Motor vehicle Suzuki CappuccinoOverviewManufacturerSuzukiProduction1991–1998AssemblyKosai, Shizuoka, JapanBody and chassi...

 

Disambiguazione – Se stai cercando altri significati, vedi Arcore (disambigua). Arcorecomune Arcore – VedutaLa parrocchiale di Sant'Eustorgio LocalizzazioneStato Italia Regione Lombardia Provincia Monza e Brianza AmministrazioneSindacoMaurizio Bono (centro-destra) dal 18-10-2021 TerritorioCoordinate45°38′N 9°19′E / 45.633333°N 9.316667°E45.633333; 9.316667 (Arcore)Coordinate: 45°38′N 9°19′E / 45.633333°N 9.316667�...

Сурожская епархия Diocese of Sourozh Собор Успения Божией Матери и Всех Святых в Лондоне Страна  Великобритания Ирландия Церковь Русская православная церковь Митрополия Патриарший экзархат Западной Европы Дата основания 10 октября 1962 года Управление Главный город Лондон ...

 

Chevrolet SparkInformasiProdusenGeneral MotorsFSOJuga disebutChevrolet MatizDaewoo MatizMasa produksi1998–2020Bodi & rangkaKelasCity carBentuk kerangkahatchback 5 pintuTata letakmesin depan, penggerak roda depanKronologiPendahuluDaewoo TicoPenerusWuling Air EV (Indonesia) Chevrolet Spark EV (Mesir) Wikimedia Commons memiliki media mengenai Chevrolet Spark. Chevrolet Spark atau di Korea selatan dikenal dengan nama Deawoo matiz merupakan city car yang diproduksi oleh Chevrolet d...

 

Place in SingaporeMarsilingName transcription(s) • Chinese马西岭 • MalayMarsiling • Tamilமார்சிலிங்A notice board in a Housing and Development Board (HDB) estate in MarsilingMarsilingLocation of Marsiling within SingaporeCoordinates: 1°25′57.14″N 103°46′26.65″E / 1.4325389°N 103.7740694°E / 1.4325389; 103.7740694CountrySingaporeGovernment • Ruling partiesPeople's Action Party[1...

تي كي إس تانكت بولندية كارو فيلوتشي 35 تانكت إيطالية تانكت (بالإنجليزية: Tankette)‏ هي مدرعة قتالية مجنزرة [1] وتعد نوع من الدبابات الصغيرة التي تكون أصغر من الدبابات الخفيفة[2]، وتتميز دبابات التانكت بخفة تدريعها وصغر حجمها. وهي تستخدم بشكل أساسي لدعم قوات المشاة أو لأغر...

 

Joseph Louis François Bertrand Existence of a prime number between any number and its double In number theory, Bertrand's postulate is the theorem that for any integer n > 3 {\displaystyle n>3} , there exists at least one prime number p {\displaystyle p} with n < p < 2 n − 2. {\displaystyle n<p<2n-2.} A less restrictive formulation is: for every n > 1 {\displaystyle n>1} , there is always at least one prime p {\displaystyle p} such that n < p < 2 n . {\di...

 

Division of the Canadian Broadcasting Corporation CBC NewsLogo used since 2020Company typeDepartment of the CBCIndustryMediaFoundedJanuary 1, 1941HeadquartersCanadaArea servedSpecific services for Canada and rest of worldKey peopleBrodie Fenlon, general manager and editor in chief, CBC NewsServicesRadio and television broadcastsOwnerCBCWebsitecbc.ca/news CBC News is a division of the Canadian Broadcasting Corporation responsible for the news gathering and production of news programs on the co...

BBC radio programme This article may rely excessively on sources too closely associated with the subject, potentially preventing the article from being verifiable and neutral. Please help improve it by replacing them with more appropriate citations to reliable, independent, third-party sources. (August 2021) (Learn how and when to remove this message) Radio show John Finnemore's Souvenir ProgrammeCD cover showing the cast, l-r: Carrie Quinlan, Simon Kane, John Finnemore, Lawry Lewin, Margaret...

 

Species of flowering plant that produces cucumbers For other uses, see Cucumber (disambiguation). Cucumber Cucumbers growing on vines A single cucumber fruit Scientific classification Kingdom: Plantae Clade: Tracheophytes Clade: Angiosperms Clade: Eudicots Clade: Rosids Order: Cucurbitales Family: Cucurbitaceae Genus: Cucumis Species: C. sativus Binomial name Cucumis sativusL. The cucumber (Cucumis sativus) is a widely-cultivated creeping vine plant in the family Cucurbitaceae that bears...

 

For other uses, see Losing Control (disambiguation). 2011 American filmLosing ControlTheatrical release posterDirected byValerie WeissWritten byValerie WeissProduced byRobert A. JohnsonMatthew MedlinAlyssa WeisbergValerie WeissCinematographyJamie UrmanEdited byRobin KatzMusic byJohn SwihartProductioncompanyPh.D. ProductionsRelease date April 2, 2011 (2011-04-02) (Vail Film Festival) Running time91 minutesCountryUnited StatesLanguageEnglish Losing Control is a 2011 American ...

Minh họa cấu trúc 3D của protein myoglobin cho thấy cấu trúc bậc 2 của xoắn alpha (màu ngọc lam). Đây là protein đầu tiên được phân giải cấu trúc bằng kỹ thuật tinh thể học tia X. Về phía bên phải tâm giữa các sợi xoắn có một nhóm ngoại (prosthetic group) gọi là nhóm hem (màu xám) liên kết với một phân tử oxy (đỏ). Protein (phát âm theo tiếng Anh: /ˈproʊˌtiːn/, phát âm tiếng Việt: prồ-tê-i...

 

اقتصاد الجزائرعامالدولة الجزائرعملة دينار جزائري (DZD، دج)المنظمات الاتحاد الأفريقي، منطقة التجارة الحرة القارية الأفريقية (اتفاقية موقعة)، أوبك، منتدى الدول المصدرة للغاز، وغيرهاالإحصائياتالناتج الإجمالي ▲ 266.78 بليون دولار (تقديرات الصندوق الدولي 2024)[3] ▲ 768,108 بليون ...