In this blog I will briefly examine the patterngovernancelifecycle from harvesting through to validation. Thispattern lifecycle starts with theharvesting of a pattern. The harvesting technique that we will examinehere isfield based development of an asset. In IBM Field based development ofassets areassets that are developed directly at a customer engagement, where thecustomers’requirements are the primary driving force. This is contrasted withsoftwarelab based development or specification based development which can bemoreabstract and academic in nature.
Once a potential pattern asset has been developedat anengagement, this potential pattern is then validated against similarengagements to ensure that it is indeed a pattern. Having establishedthat thisis indeed a pattern, a domain expert is identified and a patternspecificationis created. This pattern specification describes the context, theproblem, thereusable solution and the forces that guide the practitioner to usethispattern. These forces typically map to nonfunctional requirements suchasperformance, scalability, transactionality, etc.
A patterns specification can have multipleimplementations. Avalid implementation is a hand coded implementation but typicallypatternimplementations automate the tasks of applying the patterns. Eventhoughpatterns can be implemented in a variety of implementation languages,the mostflexible implementation mechanism in a model driven developmentenvironment,such as Rational Software Architect, where a pattern is applied to amodel andthis model is then transformed to language specific implementationusing aseparate transformation step, such as a UML to Java transformation.
These pattern implementations can be packaged upas reusableassets and reused repeatability on engagements and other softwaredevelopmentactivities. In the Rational Software Architect world these reusableassets areknown as RAS assets (
To come full circle in this pattern governancelifecycle thepattern needs to be validated to ensure the quality and consistencyboth of thespecification and the implementation of the pattern. Typically thiskind ofvalidation is achieved when the pattern is used successfully in thecontextoutlined in the pattern specification and consistency provides areusablesolution the problem.