Each use-case should refer to one complete system functionality. Use-case represents what the system does, NOT how it does it (No implementation details). System should behave as a black box. Actor may be a user, a software system seeking some service from the system or a hardware. Provides support for the documentation and marketting team. Use-cases are used by developers and users for validating system architecture and for verifying system services. Use-cases are used in integration testing.