Footnotes

Chapter 1

1 Booch (2007).

2 For a look at a selection of notable software failures, refer to Charette (2005).

3 Larsen (2006).

4 Larsen (2003).

5 Alexander (1977).

6 Vlissides (1998).

7 Gamma et al. (1995).

8 IEEE Standard Glossary of Software Engineering Terminology, www2.computer.org/portal/web/seonline/glossary.

9 Ibid.

10 This definition reflects this book’s focus on the use of patterns for building software solutions. However, we could replace the term software development in this definition with enterprise architecture or operational modeling, for example. The use of patterns is applicable across many aspects of the IT domain.

11 Alexander (1977).

12 Ibid.

13 The idea that if all you have is a hammer then everything looks like a nail is referred to as Maslow’s Maxim or Maslow’s Hammer. More information regarding Abraham Maslow and Maslow’s Hammer is available at www.abraham-maslow.com/m_motivation/Maslows_Hammer.asp.

14 For another example from the software vendor realm, we encourage you to read Siddle and Draper (2008).

15 www.handbookofsoftwarearchitecture.com.

16 For additional discussion of some of the challenges regarding the use of patterns, see Manolescu et al. (2007).

17 American Heritage Dictionary of the English Language, Fourth Edition. Retrieved July 1, 2008, from http://dictionary.reference.com/browse/creativity.

18 American Heritage Dictionary of the English Language, Fourth Edition. Retrieved June 24, 2008, from http://dictionary.reference.com/browse/constraint.

19 Dictionary.com Unabridged (v 1.1). Retrieved June 24, 2008, from http://dictionary.reference.com/browse/rule.

20 WordNet 3.0. Retrieved June 24, 2008, from http://dictionary.reference.com/browse/assumption.

21 http://en.wikipedia.org/wiki/Domain-specific_language.

22 Alexander (1977).

Chapter 2

1 Gamma et al. (1995).

2 A stereotype is the formal mechanism used in UML Profiles to add vocabulary to UML and denote an element as having a specific meaning and eventually specific properties. In contrast, a keyword is used as an informal approach to adding markup to a model. Stereotypes and keywords are often represented the same in tooling but are different in meaning.

3 For more information regarding the Constraint Patterns, please consult Wahler, Ackerman, and Schneider (2008a).

4 More information about the Service Provider pattern and guidance on how to create it is available in Ackerman and Portier (2007b).

5 Johnston (2005).

6 More details about this pattern and related pattern specifications can be found in the RA902 Architecting Services with Rational Software Architect course (www-304.ibm.com/jct03001c/services/learning/ites.wss/us/en?pageType=course_description&courseCode=RA902). In addition, a version of this pattern implementation is available in Rational Software Architect.

7 For more details on this pattern implementation see DeCarlo et al. (2008).

8 For a quick introduction to JET, refer to the example section of the Model-to-Text Pattern Implementation pattern in Chapter 13.

9 For more information about the Requester Side Caching pattern and its pattern implementation, please see Srinivasan et al. (2005) and Srinivasan et al. (2008). Srivinvasan et al. (2006) provides an example of the application of the pattern implementation.

10 Srinivasan et al. (2006).

Chapter 3

1 For more information on Agile modeling please see www.agilemodeling.com/. To get an introduction to the design approach used in the case study, please see Ambler and Gonzalez (2008).

Chapter 4

1 For more information on Agile Modeling please see www.agilemodeling.com/. To get an introduction to the approach we use in the case study please see Ambler and Gonzalez (2008).

2 Koushik et al. (2001).

3 Alur et al. (2003).

4 Fowler (1997).

5 Gamma et al. (1995).

6 Hohpe and Woolf (2004).

7 Buschmann et al. (1996).

8 An actor represents a role played by a user or system that is external to the application.

9 A domain model contains the main business objects manipulated by the application.

10 For more information about the Role pattern please see www.martinfowler.com/apsupp/roles.pdf or Baumer et al. (2000).

11 Fowler (1997).

12 Buschmann et al. (1996).

13 Ibid.

14 For a good introduction to EJB 3 consult Panda et al. (2007).

15 Buschmann et al. 1996.

16 Additional details regarding JSF are provided at http://java.sun.com/javaee/javaserverfaces/.

17 Koushik et al. (2001).

18 For more details about the Stand-Alone Single Channel pattern consult www.ibm.com/developerworks/patterns/u2b/select-application-topology.html.

19 For more details about the Exposed Broker ESB pattern consult www.ibm.com/developerworks/patterns/.

20 Fowler (2003).

21 Ibid.

22 Ibid.

23 Ibid.

Chapter 5

1 As will be discussed in Chapter 8, three roles often come together to create a pattern implementation: the Pattern Author/Subject Matter Expert (SME), the Pattern Specification Author, and the Pattern Implementation Author.

2 The Session Façade and DAO patterns are specified in the Core J2EE patterns. For more details see Alur et al. (2003).

3 Gamma et al. (1995).

4 Arsanjani et al. (2007).

5 From the “Solution” section of the Exemplar Analysis pattern specification.

6 The format of some of the code listings has been altered to fit the book pages.

7 What Jordan will do with Exemplar Authoring could be done using the JET Eclipse tooling. However, it would be a manual effort and take longer as only basic text editors are available. The JET runtime is available in Eclipse; however, no specialized authoring tools are provided.

8 As a rule of thumb, when dealing with Eclipse projects, you usually are better off creating a derived attribute. The reason is that some of the Eclipse metadata files also use the name of the project.

9 In this listing and all the remaining ones in this chapter, bold text is used to denote dynamic content and normal text denotes static content.

10 For more information about EMF see www.eclipse.org/modeling/emf/.

11 To make the reading of the chapter easier, we first tackle building the DSL, then the creation of the model mapping, but in real life those two activities are usually done simultaneously.

12 A custom extractor is a feature provided by RSA Model Mapping Authoring which enables the user to write a custom method to extract the elements that are passed to the submap.

Chapter 6

1 A feature is a mechanism used in Eclipse to package a set of related plug-ins.

Chapter 8

1 More information on these tools can be found in Appendix C, “PBE Tooling Options.”

Chapter 9

1 A set of graphics depicting the collection of PBE Patterns and Guidelines is provided in Appendix D.

2 EPF Composer is open-source and a free download. There are two options for working with the practice: download EPF Composer, or download a published version of the PBE Practice. Details on downloading the practice are provided in the Preface. The goal is to make this content easy to acquire and work with regardless of tooling preferences.

3 Larsen (2003).

Chapter 10

1 Data used to generate the figure was sourced from Royce (2009).

2 Jacobson et al. (1997).

3 In this and the following chapters, an asterisk after the pattern or guideline name indicates that the pattern or guideline is discussed in the current chapter.

4 For additional guidance on calculating ROI, asset value, and associated checklists, refer to Chapter 6 of DeCarlo et al. (2008).

5 Based on information in Schneider and Lexvold (2008).

6 Koushik et al. (2001).

7 Fowler (1997).

8 For a more detailed description please see Gonzalez and Lane (2008).

9 Hillside pattern catalog: www.hillside.net/patterns/onlinepatterncatalog.htm.

10 Grady Booch’s pattern catalog: www.handbookofsoftwarearchitecture.com/index.jsp?page=Patterns. To access this section you need to be registered. Registration is free.

11 Rising (2000).

Chapter 11

1 See Appendix B for a discussion of the relationship between PBE and other software development approaches.

2 www.antipatterns.com/whatisapattern/.

Chapter 12

1 For additional background on compound patterns, consult Riehle (1997) and Buschmann et al. (2007).

2 Gamma et al. (1995).

3 Riehle (1997).

4 Alexander (1977).

5 The idea of the Long Tail comes into play here. For more discussion on the Long Tail, refer to Anderson (2006) and Kraus (2005).

6 Details on extending Eclipse and working with Extension Points can be found in D’Anjou et al. (2004).

7 Marquardt (2006).

Chapter 13

1 Full tutorials describing how to create model-to-model pattern implementations are available via Ackerman, Portier, and Gerken (2008b) and DeCarlo et al. (2008).

2 We can also use platforms other than JET to build model-to-text pattern implementations. Additional related platforms that can be used include AndroMDA, XPand, and RSA’s API-based transformation engine.

3 Buschmann et al. (1996).

4 Examples of this approach are provided in Chapters 2 and 5.

5 A full tutorial describing how to create a UML pattern implementation is available in Ackerman and Portier (2007b).

6 The GoF template is explained and used in Gamma et al. (1995).

7 Al-Sabt et al. (2003).

8 Guidance on pattern writers’ workshops can be found at www.cs.wustl.edu/~schmidt/writersworkshop.html.

9 http://c2.com/cgi/wiki?WritersWorkshopPatterns and http://users.rcn.com/jcoplien/Patterns/WritersWorkshop/.

10 Meszaros and Doble (1998).

11 Al-Sabt et al. (2003).

12 http://hillside.net/index.php/pattern-writing-checklist.

Chapter 14

1 More details on the features provided by Composite Cheat Sheets as well as guidance on how to construct them are provided in Tiedt (2006).

2 Further information about pattern catalogs and pattern languages is provided in Appendix A.

3 Numerous different types of artifacts could be included in the package, such as pattern implementations, pattern specifications, documentation, installation instructions, samples, DSLs, templates, licenses, and source files.

Chapter 15

1 Johnston (2005).

2 Ibid.

Chapter 16

1 Based on information in Schneider and Lexvold (2008).

2 Buschmann et al. (2007).

3 Ibid.

4 Alexander (1977).

5 Buschmann et al. (2007).

6 Neftzger, T. (2005). “The role of silence in music: All about jazz.” February. www.allaboutjazz.com/php/article.php?id=16481.

7 Fowler (1999).

8 Ibid.

9 Alexander (1977).

10 Additional details regarding pattern categories are found in Appendix A

11 Koushik et al. (2001).

12 Ibid.

13 For an overview of SPQR you can read Smith and Stotts (2003). See also www.cs.unc.edu/~smithja/SPQR.html.

Chapter 17

1 For a more detailed discussion about the benefits of design reuse over code reuse, please see Biggerstaff and Richter (1987).

2 Gamma et al. (1995).

3 Buschmann et al. (1996).

4 Alexander (1979).

5 Booch (2007).

6 Alexander (1979).

Chapter 18

1 Sowell, Thomas (2007). Basic Economics: A Common Sense Guide to the Economy, Third Edition (New York: Basic Books).

2 Gamma et al. (1995).

3 Coverage of PBE tooling options is provided in Appendix C.

4 For a more detailed description please see Gonzalez and Lane (2008).

Chapter 19

1 Vlissides (1998).

2 Data used to generate the figure was sourced from Royce (2009).

3 Note that assessment is roughly equivalent to testing and that the environment encompasses configuration and change management.

4 Information for the figure is from Schneider and Lexvold (2008).

5 Kerievsky (2004).

6 A debate about the value of UML modeling is outside the scope of this book; this section touches upon the subject as some associate pattern usage with UML modeling approaches.

Appendix A

1 Miller and Mukerji (2003).

2 http://en.wikipedia.org/wiki/Domain-specific_language.

3 Kelly and Tolvanen (2008).

4 Additional information on EMF can be found at www.eclipse.org/modeling/emf/.

5 Additional information on GMF can be found at www.eclipse.org/modeling/gmf/.

6 American Heritage Dictionary of the English Language, Fourth Edition. Retrieved June 30, 2008, from http://dictionary.reference.com/browse/exemplar.

7 www.antipatterns.com/whatisapattern/.

8 Kovari (2007).

9 http://c2.com/cgi/wiki?PatternCatalog.

10 Buschmann et al. (1996).

11 Gamma et al. (1995).

12 Buschmann et al. (1996).

13 Buschmann et al. (2007).

14 Larsen (2006).

Appendix B

1 Additional details regarding assets and the Reusable Asset Specification are available via Reusable Asset Specification, OMG Available Specification Version 2.2 formal/05-11-02, Object Management Group. November 2005. www.omg.org/cgi-bin/doc?formal/2005-11-02.

2 Jacobson et al. (1999).

3 Kelly and Tolvanen (2008).

4 Miller and Mukerji (2003).

5 Greenfield and Short (2004).

6 Demir (2004).

7 American Heritage Dictionary of the English Language, Fourth Edition. Retrieved July 2, 2008, from http://dictionary.reference.com/browse/archetype.

Appendix C

1 More information is available at the Eclipse Modeling Project home page: www.eclipse.org/modeling/.

2 More information is available at the Rational Software Architect home page: www-01.ibm.com/software/awdtools/swarchitect/websphere/.

3 More information can be found at the AndroMDA homepage: www.andromda.org/.

4 The home page for Visual Studio is www.microsoft.com/visualstudio/en-us/default.mspx.

5 Microsoft MSDN (2009). “Microsoft patterns & practices: Proven practices for predictable results.” http://msdn.microsoft.com/en-us/library/ms998572.aspx.

6 Microsoft MSDN (2008). “Domain-specific languages.” July. http://msdn.microsoft.com/en-us/library/bb126259.aspx.

7 Microsoft MSDN (2007). “Generating artifacts by using text templates.” November. http://msdn.microsoft.com/en-us/library/bb126445.aspx.

8 For an introduction to software factories, consult Greenfield and Short (2004).

9 The home page for Sparx Enterprise Architect is www.sparxsystems.com.au/.

10 More information about RMC can be found at www-01.ibm.com/software/awdtools/rup/.

Appendix E

1 For more details about the Session Façade and the Data Access Object patterns please refer to Alur et al. (2003).

Appendix F

1 Larsen (2006).

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset