ch07-Structural Modelling (1)
Structural Modeling Overview
Title: Structural Modeling
Chapter 7 from Systems Analysis and Design with UML Version 2.0
Authors: Alan Dennis, Barbara Haley Wixom, and David Tegarden
Copyright: 2005 John Wiley & Sons, Inc.
Key Concepts
Structural Model: A structural or conceptual model describes the structure of data that supports business processes within an organization.
Data Representation: The data structure is represented through various means:
CRD cards
Class diagrams
Object diagrams
Purpose of Structural Models
Semantic Gap Reduction: Structural models help to bridge the semantic gap between real-world concepts and software implementations.
Common Vocabulary: They create a shared terminology for analysts and users, aiding in communication.
Representation of Ideas: They represent important entities, ideas, and concepts relevant to the application domain.
Classes in Structural Modeling
Definition: Classes serve as templates for creating instances or objects.
Types of Classes:
Concrete Classes: Represent tangible, identifiable entities.
Abstract Classes: Serve as a base for other classes, cannot be instantiated directly.
Examples of Classes: Include application domains, user interfaces, data structures, file structures, operating environments, documents, and multimedia classes.
Attributes and Operations
Attributes: Units of information pertinent to the class description. Only relevant attributes for a specific task should be included.
Operations: Actions that objects or instances can perform, focusing on relevant, problem-specific operations within the context.
Relationships between Classes
Generalization: Enables subclass inheritance of attributes and operations.
Aggregation: Describes relationships that exist between parts and the whole.
Association: Represents miscellaneous relationships that exist between classes.
Class-Responsibility-Collaboration (CRC) Cards
Responsibilities: Define what the class knows (attributes) and what it does (operations).
Collaborations: Detail how different objects work together to perform tasks or meet requests.
Class Diagrams
Purpose: Visual representation of classes, their attributes, operations, and relationships.
Syntax Overview:
Class: Represents entities.
Attribute: Information relevant to the class.
Operation: Actions the class can perform.
Association: Relationships between classes represented by multiplicity notations.
Generalization and Aggregation Explained
Generalization: Shows hierarchical relationships, where subclasses inherit properties from a superclass (e.g., doctors, nurses, admin personnel as employees).
Aggregation: Combines classes to represent larger wholes (e.g., health team class made up of various personnel).
Object Identification and Structural Modeling Steps
Create CRC cards based on textual analysis of use cases.
Brainstorm additional candidate aspects using a common object list approach.
Role-play the use cases using CRC cards to explore functionalities effectively.
Create class diagrams based on the interactions defined in CRC cards.
Review the structural model to eliminate extraneous or missing elements.
Integrate useful patterns into the model for efficiency.
Reassess the structural model for completeness and accuracy.
Summary of Key Points
CRC cards capture essential elements of each class.
Class and object diagrams display the structural components of object-oriented systems.
The construction of the structural model is an iterative process involving:
Textual analysis
Brainstorming
Role playing
Diagram creation
Pattern integration.