Modeling Checklist

December 18, 1998 - Jack Harich - Go Back

Above all, does the model fit into a systemwide architecture?
Does each system have a single page high level model?
Is loose coupling employed throughout?
Does each class do one thing and do it well? (high cohesion)
Is the system easily reusable, including inside another system?

Are collaborations across partitions minimized? (may need Fascade)
Does each class (or interface) follow a defined role? (advanced technique)
Is the system well partitioned if large?
Are the Layered Architecture and Services patterns used if large?
Is the model simple and well organized enough to be understood at a glance?

Did you first do the Concept and Requirements in the Mini Process?
If the model is small, is the vision, use case list, etc on the same page?
Does the system have beautifully clear plugpoints, if appropriate?
Does the system present a small fascade to other systems?
Are relationships clear?

Is the model uncluttered, such as by not showing all relationships or classes?
Are only the most important fields and methods shown?
Are all classes, fields and methods very, very carefully named?
If this model is important, is it at least the third iteration?
Is the use of events, if any, clear?

Are most of the classes reusable by themselves or as a smaller group?
Have you validated extensibility by hitting the model with possible enhancements?
Have you validated the model with its use cases, traits and risks?
Is it designed for easy continual improvement (maintenance) ?
Can you easily explain the system using the model? If not, the model has a problem.

(This needs to be reorganized into groups)