Chapter 3 Modeling
Abstraction & Modeling
Abstraction
- Abstractions allow us to ignore unessential details
- 2 definitions for abstraction
- Abstraction as activity: Abstraction is a throughout process where ideas are distanced from objects
- Abstraction as entity: Abstraction is the resulting idea of a throughout process where an idea has been distanced from an object
🍰 Ideas can be expressed by models
Models
- Object model
- Functional model
- Dynamic model
- System model
Other Models
- Task Model
- Issue Modeling
Decomposition
two types
- Functional decomposition
- The system is decomposed into modules
- Each module is a major function in the application domain
- Modules can be decomposed into smaller modules
- Object-oriented decomposition
- The system is decomposed into classes
- Each class is a major entity in the application domain
- Classes can be decomposed into smaller classes
🚶 Three ways to deal with complexity
- Abstraction
- Decomposition
- Hierarchy
🚶 Steps
- Start with a description of the functionality of a system
- Then proceed to a description of its structure
🚶 Order
- Software lifecycle
UML Models
-
Structure models (static view of the system)
- class diagram
-
Behavior models (operational view of the system)
- use case diagram
- activity diagram
- communication diagram
-
State change models (dynamic view of the system)
- state machine system
Use case view
Primary actors: system is designed to serve
Secondary actors: support roles
🍬 TASK
- Identify actors
- Identify initial use cases
- Draw use case diagram
- Identify packages
- Develop initial use cases
- Refine the Typical and Alternative Scenarios
- Restructure use cases
- «include» relationship
- Factors out common behavior in use cases
- included steps
- «extend» relationship
- Factors out optional behaviors in use cases
- extended scenario
- generalization
- «include» relationship
Activity view
activity diagram
Structure view
class diagram
Interaction view
sequence diagram
Communication diagram
State Machine view
state machine diagram
Implementation view
Component diagram
deployment diagram