Using the FDD feature template described in Section 3.5.5, define a feature set for a Web
browser. Now develop a set of features for the feature set.
3.5.5 Feature Driven Development (FDD) Feature Driven Development (FDD) was originally conceived by Peter Coad and his colleagues ICoa991 as a practical process model for object-oriented software engi- neering. Stephen Palmer and John Felsing [Palo2] have extended and improved Coad's work, describing an adaptive, agile process that can be applied to moderately sized and larger software projects. Like other agile approaches, FDD adopts a philosophy that (1) emphasizes col- laboration among people on an FDD team (2) manages problem and project complexity using feature-based decomposition followed by the integration of software increments, and (3) communication of technical detail using verbal, graphical, and text-based means. FDD emphasizes software quality assurance activities by encouraging an incremental development strategy, the use of design and code inspections, the application of software quality assurance audits (Chap- ter 16), the collection of metrics, and the use of patterns (for analysis, design, and construction) In the context of FDD, a feature "is a client-valued function that can be imple- mented in two weeks or less" |Coa99]. The emphasis on the definition of features provides the following benefits: Because features are small blocks of deliverable functionality, users carn describe them more easily; understand how they relate to one another more readily; and better review them for ambiguity, error, or omissions. Features can be organized into a hierarchical business-related grouping . Since a feature is the FDD deliverable software increment, the team develops operational features every two weeks. . Because features are small, their design and code representations are easier to inspect effectively. Project planning, scheduling, and tracking are driven by the feature hierarchy, rather than an arbitrarily adopted software engineering task set. Coad and his colleagues Coa991 suggest the following template for defining a feature caction> the cresult>