Agile Model–Driven Development (AMDD)

Scott W. Ambler · Cambridge University Press eBooks · 2004

Are you agile or are you fragile? Modeling and documentation are critical aspects of any software project. Modeling is the act of creating an abstraction of a concept, and documentation is a permanent record of information. In traditional software processes, such as the IEEE 12207 (http://www.ieee.org), modeling is included as one or more serial phases. Modern prescriptive processes, such as the rational unified process (RUP) (Kruchten 2000) or the enterprise unified process (EUP) (http://www.enterpriseunifiedprocess.info), which describe in specific detail the activities required to develop software, include modeling disciplines that you work through in an evolutionary manner. Agile software processes, such as feature-driven development (FDD) (Palmer and Felsing 2002) and extreme programming (XP) (Beck 2000), also include evolutionary modeling efforts, although in FDD, modeling is an explicit activity, whereas in XP it is implicit. The point is that modeling and documentation are important parts of software development, so it makes sense to want to be as effective and efficient at it as possible. This chapter describes agile model–driven design (AMDD), an approach to software development where your implementation efforts are guided by agile models that are just barely good enough. This chapter addresses the following topics: Modeling philosophies; Project stakeholders; What is agile modeling (AM)?; The values of AM; The principles of AM; The practices of AM; Easing into agile modeling; Agile model–driven development (AMDD); Fundamental information gathering skills; Agile documentation; Making whiteboards work for software development; AMDD and other agile methodologies; and AMDD and test-driven development (TDD).

Read the paper · More papers on PaperTik