Domain modeling aids in understanding the application domain.
Five Steps of Domain Modeling:
Collect information about the application domain.
Brainstorm ideas.
Classify brainstorming results.
Visualize using UML class diagrams.
Perform inspections and reviews.
Domain modeling contextualizes software architecture leading to use case derivation and allocation to iterations.
Involves understanding business goals, current situations, and preliminary requirements.
Conceptual representation of a system, useful for studying its properties.
Collective understanding among diverse team members.
Facilitates communication of perceptions and design ideas.
Essential during the maintenance phase for enhancements.
What: Process for understanding the application domain.
Why: Necessary due to varying backgrounds of software engineers impacting their understanding.
How: Collect information, brainstorming, classification, visualize via UML.
Defines application domain concepts via classes, attributes, and relationships.
Enhances understanding and communication among team members and stakeholders.
Acts as a basis for design, implementation, and maintenance.
Views the real world as consisting of interacting objects.
Class: Abstraction of objects with similar properties and behaviors.
Attribute: Defines class properties.
Operation: Defines class behaviors.
Encapsulation: Instance of a class combining properties and behavior.
Information Hiding: Reducing the impact of changes on other program parts.
Polymorphism: One form taking multiple implementations.
Structural representation of classes and their relationships, attributes, and operations.
Domain models are class diagrams excluding operations.
Generalization/specialization relationship illustrated as IS-A relation.
Example: A car is a vehicle (generalization of vehicle).
Objects exist independently; attributes require objects for context.
Attributes describe objects and store state without independent existence.
IS-A Test: Each subclass instance is also an instance of the superclass.
Conformance Test: Superclass relationships apply to subclasses.
Represents part-of relationships between objects.
Example: Engine is part of a car.
General relationships available in application.
Example: Instructor teaches a course.
Illustrates either role played by objects or the quantity involved in associations.
Inheritance: IS-A relationship.
Aggregation: Part-of relationship.
Association: General relationships, direction indicated by arrows.
Illustrates user attributes and admin management roles in a modeled system.
Collaborate with users for application understanding.
Simplify and expand domain models as necessary.