''This is a work-in-progress that morphs CookbookApproach into more of an assembly-centric theme for using cookbooks to make it easier to reproduce quality and consistency in non-technical component assemblers. -Phil'' ----- [ComponentDesignPatterns | CategoryPattern] '''Context''' Software developers with little or no experience with TheCraft and high-level of unfamiliarity with technologies being used to implement an application or system. ComponentBasedDevelopment approach being used, and multiple components will be reused and developed. A common support infrastructure or framework being reused or developed. '''Problem''' '''Forces''' * Each component needs to tie together several third-party tools, technologies, and core infrastructure/framework components. * Need to leverage inexperienced developers or users who are assembling components to build or aggregate components in a consistent, standard way. * Experienced component developers who need to assemble components never have identical skills, styles and habits. * Not a lot of room in the schedule for documentation. '''Solution''' Create a cookbook that contains groups of steps. After each group of steps is completed, the developer validates the results through unit testing. The result of successful completion of all groups is a fully functioning control. '''Resulting Context''' Developers iteratively test/code until a working control is built. They repeat the process several times with the same consistent level of quality. Remain aware of any refactoring and reengineering to ensure subsequent changes are reflected in the cookbook. Other software developments can reuse it. Managers buy team lots of beer for a job well done. '''Known Uses''' * Janna [1], a third-party contact management application containing several domain-specific components developed with Visual C++/MFC, Rogue Wave Tools.h++, Iona Orbix, and ProtoView DataTable. * There was an early paper written by Glenn E. Krasner and Stephen T. Pope from Parcplace called, ``A Cookbook for Using the ModelViewController User Interface Paradigm in Smalltalk-80,'' (Journal of Object-Oriented Programming, May-June 1988, pp. 26-49) that many of us relied upon in the early days of Smalltalk for a step-by-step approach to building controls with the MVC framework. * MacApp Cookbook predated the MVC one. * VisualWorks Cookbook is big and quite useful. It is also online when you use VisualWorks. '''Example''' xxx '''Related Patterns'''