View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Matt Plowden

The Portland Form is a design template that is organized in a paragraph type form. This differs from other patterns with their template-like design templates. The Portland Form is designed this way because its designers believed this approach more closely mirrors the thought process of a person's natural language tendencies than does the template approach. The form takes the approach of "such and so forces create this or that problem, therefore, build a thing-a-ma-jig to deal with them." This goes along with the way the human mind handles problems in that it defines a smaller problem, then poses a solution to that individual problem rather than to the entire problem as a whole.

The Caterpillar's Fate pattern is a design pattern that exists to aid the transition for analysis to design of a project. It tackles issues such as determining what parts of a design should become objects, which concurrent processes need to have seperate threads, etc. The biggest aid this pattern provides is the ability to ignore design issues during the analysis phase.

"Many of the popular object-oriented methodologies have skirted the transformation problem by introducing design issues into the analysis phase (e.g., identification of objects, class definition and the recording of inheritance). This has put many large projects at risk because of the complexities involved with making design decisions while one is not sure of what the system-to-be-built actually does."

By removing the beginning design elements from the analysis phase, this pattern helps to make the analysis phase more of what it is intended to be, a time to determine what the system should actually be doing.

One example of the transition support this pattern provides is in handling threads. It suggests going over your analysis documents, and determining which processes must run independent of each other. Then you review your concurrent threads, determining when one thread needs to wait for another thread to arrive at a certain stage. Based on this you can determine when "messages" should be sent between concurrent threads. Lastly you determine what needs to be sent between the threads at the time of these "messages". These simple steps allow you to transform your analysis to a solid design.

Link to this Page