Component Based Design
Components are reusable deployment units of software
- Greater granularity - typically consist of several objects
- No dependencies to other components
- Software assembly from existing components
Interface centric
- Component is accessed only through its interface
- Implementation details invisible to client
- Implementation language can be freely chosen