Separation of Concerns
Enables mastering of inherent complexity
Allows concentration on individual aspects
- product features: functions, reliability, efficiency, environment, user interface, etc.
- process features: development environment, team organization, scheduling, methods,
- economics and management
Concerns may be separated by
- time (process sequence)
- qualities (e.g., correctness vs. performance)
- views to be analyzed separately (data vs. control)
- components
Leads to separation of responsibility