The process of creating abstract representations of a system, where each model shows a different perspective of the system. Represents systems using graphical models (commonly UML). Used to understand system functionality and help communicate system design to stakeholders.
Perspectives
System perspectives represent different viewpoints used to describe a system and its environment.
- External perspective – shows system context.
- Interaction perspective – shows interactions between system components or external entities.
- Structural perspective – shows system organization and data structure.
- Behavioral perspective – shows system behavior over time.
Context Modeling
Context models describe the environment in which the system operates, showing external systems and relationships.
- Identify external systems and actors.
- Show system boundaries.
- Often represented using system context diagrams.
Helps determine how the system interacts with its environment. Useful during requirements engineering.
System Boundaries
Defines what is inside the system and what lies outside it.
- Show other systems that interact with the system.
- Influence system requirements.
- Boundary decisions may involve organizational or political considerations.
Interaction Modeling
Interaction models describe how users or system components interact with the system. Illustrated using use case diagrams and sequence diagrams.
Used to:
- Identify user requirements.
- Detect communication issues between systems.
- Evaluate system structure performance.
Generalization
A modeling technique where common features of multiple classes are abstracted into a superclass.
Implements inheritance in object-oriented systems. Subclasses inherit attributes and methods from the superclass.
Aggregation
Represents a whole–part relationship between classes.
Shows that a class is composed of other classes. Similar to part-of relationship in semantic models.
Data-Driven Modeling
Represent systems where processing is controlled mainly by incoming data.
Characteristics:
- Focus on data processing workflows.
- Represent end-to-end processing.
Event-Driven Modeling
Describes systems where internal or external events trigger state changes. Used commonly in real-time systems and embedded systems.
State Machine Models
Represent system behavior using *tates and transitions triggered by events.
- States – system conditions.
- Transitions – changes triggered by events.
Model-Driven Engineering
A software development approach where models are the main artifacts and code is generated automatically from them.
Advantages:
- Higher abstraction level.
- Easier adaptation to new platforms.
Limitations:
- Developing model translators may be costly.
- Models may not perfectly represent implementation details.
Model-Driven Architecture
A model-based development approach using UML models at different abstraction levels.
Model Types:
-
Computation Independent Model (CIM)
Describes domain concepts. -
Platform Independent Model (PIM)
Describes system behavior without platform details. -
Platform Specific Model (PSM)
Adds platform-specific implementation details.