An analysis class represents an abstraction of one or more classes and/or subsystems in the system's design. It has the following characteristics:
- Focuses on handling functional requirements and postpones nonfunctional requirements by designating them as special requirements of the class.
- Seldom defines or provides any interface in terms of operations and their signatures.
- Defines attributes at a high level. These are not programming language types but rather attributes taken from the problem domain. Attributes found during analysis often become classes in design and implementation.
- Is involved in conceptual relationships and associations.
There are three stereotypes of analysis classes:
- Boundary Classes - used to model the interaction between the system and its actors. The interaction often involves receiving information and requests from and to users and external systems.
- Entity Classes - models information that is long-lived and often persistent. They model information and associated behavior of some phenomenon or concept such as an individual, a real-life object, or a real-life event.
- Control Classes - represent coordination, sequencing, transactions, and control of other objects. They are often used to encapsulate control related to a specific use case.