Hasker's SE 2811 UML Standards

All Diagrams

This section gives the general requirements; requirements for specific types of diagrams are below.

In general, be careful on how you use UML notation. UML is very carefully designed to convey key information without unnecessary redundancy. Non-standard notation adds confusion, defeating the purposes of drawing diagrams in the first place. This is especially important in the core notation: using open triangles for generalization, open (v-shaped) arrows for direct association, solid lines for associations, etc. Learning to use the correct notation can be very important for interviews because it's one way people sort out those who have learned basic software engineering concepts from those who have not.

Domain Level Class Diagrams

Domain-level class diagrams must meet the following requirements:

Very high level domain diagrams may even omit attributes and operations; ask if you are not sure if they should be included.

Minimal Solution Diagram

This is called an abstract solution diagram in some contexts.

Minimal solution diagrams capture the domain and the design decisions. They exist in the solution space: that is, they capture details that are not typically visible to clients such as containers and design patterns. In particular, a minimal solution diagram includes the following:

Note that setters, getters, and constructors are not included. See the Ice Cream Cone Decorator example for a sample minimal solution diagram.

Contract Diagrams

"Contract" diagrams give full details needed by other developers, including type information.

Reverse-Engineered Diagrams

Use Enterprise Architect (EA) to generate a reverse-engineered diagram. See this page for directions for EA 13. EA 15 is similar; ask if you run into problems. After reverse engineering a class diagram in EA, the only change you need to make is to reorganize the classes to minimize the number of crossing lines and the amount of white space. The diagram is to fit on a single page if at all possible.