The UML enables and promotes (although does not mandate or even require) a use-case
driven approach for modeling objects and components. Use case diagrams model the
functionality provided by the system (use cases), the users who interact with the system
(actors), and the association between the users and the functionality. Use cases are used in
the requirements collection and analysis phase of the software development lifecycle to
represent the high-level requirements of the system. More specifically, a use case specifies