-
Concept
- software element
- relation among them
-
Purpose
-
reducing software complexity
- abstraction
- separation of concerns
-
Documentation
- facilitate communication
- reuse
-
How
- a mix of art and science
-
Views
- Functional/logic view
- Code/module view
- Development/structural view
- Concurrency/process/runtime/thread view
- Physical/deployment/install view
- User action/feedback view
- Data view/data model
- etc
-
architectural styles and patterns
- Blackboard
- Pipes and filters
- Plug-in
- Peer-to-peer
- Event-driven
- etc