Object modeling involves the use of different diagrams to represent different aspects of the problem domain. Comparing and contrasting these
different views helps to reveal discrepancies and opportunities for improvement and refinement.
Analysis is best performed by quickly creating initial drafts of all the diagrams. Do not worry about getting the analyses 100% correct or
even close to it. Just get something down on paper so everyone can see it. Then use the diagrams as a reference point for all discussions.
This will keep the reviews focused. Update the diagrams as you identify changes. Capture the knowledge immediately, and make it available to everyone in the project.
In this module you learned:
- The importance of using different views to find discrepancies and opportunities for enhancement
- How to test scenarios
- How to test classes
- How to test interfaces
- How to recognize the patterns for reconciliation
A software application requires a set of resources. To use them you need to describe each resource using a class definition.
Classes describe the types of resources, their purpose, and the features that they provide, including attributes and operations
But to coordinate the interaction of these resources, you need to explain how they can
communicate. To communicate, they need to be aware of one another. Just as people use various means to communicate such as
phone calls, text, instant-messaging or e-mail, objects also need to define a means to communicate.
They need to define a type of relationship. UML relationships come in three different types:
- association,
- generalization, and
- dependency.
An association is a semantic relationship between two model elements. In a Class diagram, an association defines the rules that apply to relationships between the objects defined by the participating classes. Each association includes the rules to establish and maintain the integrity
of the relationships as the relationships are created and used by the application.
The same concept may be refined to account for objects that are actually assemblies of other objects. This assembly type of association, called aggregation, greatly facilitates the use of complex configurations of objects. Aggregation can also be refined to model assemblies where the parts have a more restricted association with the assembly. In this refinement of aggregation, called composition, the lives of the parts of the assembly depend wholly on their
participation in the assembly.