In-Depth Notes on Class Diagrams in Object-Oriented Analysis and Design
Introduction to Class Diagrams
- Class diagrams are a critical component in modeling object-oriented systems.
- They depict the classes, interfaces, collaborations, and relationships among them.
- Serve as a static design view of the system.
- Active classes in class diagrams illustrate the static process view.
- Component diagrams are variations of class diagrams.
Definition of Class
A class acts as a blueprint for creating objects.
Represents a group of similar objects with shared attributes and behaviors.
Objects are instances of classes, encapsulating data.
Example:
- Class: Student
- Instance Object: studentID: 12-34567-1
Properties of Classes
- Classes encapsulate:
- Attributes: Properties or characteristics of a class (e.g., name, ID).
- Operations: Functions or methods that the class can perform.
- Relationships: Connections with other classes.
- Semantics: Common meaning associated with a class.
Example of Attributes and Operations in a Class
- Class: Employee
- Attributes: Name, Employee ID, Department.
- Operations: Registration(), Assignment(), Exam Result().
Components of Class Definition
- Name Compartment: Uniquely identifies the class.
- Attributes Compartment: Contains data definitions.
- Operations Compartment: Defines behavior supported by class objects.
Visibility in Class Diagrams
- Defines access levels to class members:
- Public (+): Accessible from anywhere.
- Private (-): Accessible only from within the class.
- Protected (#): Accessible by subclasses.
- Package (~): Accessible within the same package.
Attribute Specification in Class Diagrams
- Format:
visibility/ attribute name: data type = default value {constraints}- Derived Attributes: Indicated by a slash (/), optional and computed from other data.
- Data Types: Must reflect the client’s view during analysis and programming in design.
- Default Values: Helps maintain system integrity.
- Constraints: Ensure rules are upheld when altering attribute values.
Operations in Class Diagrams
- Operations require:
- Name: Identifies the operation.
- Arguments: Input parameters.
- Return Type: Determines what the operation will yield.
Class Diagram Notation
- General notation includes:
- Name Compartment
- Attribute Compartment
- Operation Compartment
Example of Class Diagram Notation
- Visibility / Attribute Name : Data Type = Default Value {Constraints}
- Visibility OperationName ( argname : data type {constraints}, …) : return data type {constraints}
Relationships in Class Diagrams
Types of Relationships
- Association: Represents a connection between classes.
- Aggregation: Models a whole-part relationship.
- Composition: A form of aggregation with strong ownership rules.
- Inheritance: Allows subclasses to inherit from superclasses, including attributes and operations.
- Realization: Indicates that a class implements behavior specified by another class.
- Dependency: A class relies on the behavior of another; a change in one may affect the other.
Example of an Association
- “An Employee works for a Company.”
- Specifies that instances at both ends recognize each other.
Generalization in Class Diagrams
- Generalization indicates a relationship between a general class and a more specific subclass.
- Hierarchies can be created by generalizing specific classes or by specializing general ones.
Aggregation and Composition
- Aggregation: Models a whole-part relationship; parts can exist independently.
- Composition: Stronger ownership; parts cannot exist without the whole.
Class vs. Object Diagram
- Class Diagram: Defines the model (what can be).
- Object Diagram: Demonstrates instances (what is) and confirms system integrity.
Summary of Key Terms and Notations
- Multiplicity: Indicates the number of instances in relationships (
- e.g., one-to-many, zero-or-more).
- Reflexive Association: Objects in the same class can relate to each other.
- Qualified Association: Uses qualifiers to indicate specifications within relationships.
CRC Card Concept
- CRC Cards: Used for defining class responsibilities and collaborations, emphasizing the division of responsibilities across objects.
Class Diagram Case Studies
- Various scenarios (e.g., Book, Movie, Students in a school) demonstrate the construction and interpretation of class diagrams within different contexts and rules/preferences for modeling class definitions, attributes, and relationships.