Hasker's SWE 2410 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

In addition to the requirements for all 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.

In addition to the requirements for all diagrams, 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. These must also follow the general requirements for all diagrams.

This diagram differs from reverse-engineered diagrams in that it omits a number of superfluous elements such as named constants and duplicating associations as attributes.

Reverse-Engineered Diagrams

Use Enterprise Architect (EA) to generate a reverse-engineered diagram. See this page for directions. 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. These diagrams will not satisfy the above requirement for avoiding redundant attributes, but you are not expected to fix this problem.