Framework Process Patterns: A Case Study
In this case study we define a neutral domain and a set of requirements for that domain. This provides a common basis from which we can explore and provide examples for each of the patterns. This neutral domain needs to have the characteristics of a business domain so that we can explore some of the unique situations, such as the split between domain and technical knowledge, that occur when developing application frameworks. It needs to be a neutral domain so that we can focus on the problems specific to frameworks and not to a particular domain. All nonfrivolous domains bring lots of baggage with them. This baggage consists of issues and practices that usually take years for experts to grasp. If we were to pick any specific, existing domain, we would have to either spend many pages teaching you the domain or ignore those important issuesmuch to the frustration of anyone familiar with that domain. Instead, we have picked a "frivolous" domain that we believe everyone can quickly understand and that still allows us to demonstrate and focus on the issues of developing a framework and not of a particular domain.
The Clothing Management Domain
We've chosen the family of clothing management applications from the near future as our domain. These future applications will take over the tedious task of selecting clothing to wear, keeping it clean and repaired, and replacing it when worn out or obsolete. This domain is one that everyone should understand. We all deal with clothing. Whether it's fig leaves, togas, or blue jeans, we all manage clothes in one form or another.
Your first response may be that this isn't an interesting problem because it isn't complex enoughit is easy for you to do these things. If you are looking at one particular set of requirements, we agree. However, we need to create a framework from which we can fulfill many different sets of requirements, building applications for a variety of individuals. For example, one individual might have a very limited set of clothing (such as seven identical sets of clothing, one for each day of the week), so they need only a simple application. However, fashion models need a much more complex application since they always have to look their besttheir jobs depend on it. Our framework needs to be able to support building either of these applications.
This case study focuses on requirements. The individual patterns use these requirements as a starting point for their examples and approaches.