Analysis classes specify elements of an early conceptual model for things in the system that have responsibilities and
behavior. They represent the prototypical classes of the system, and are a first-pass at the major abstractions that
the system must handle. Some architects and designers maintain analysis classes even after the system is implemented,
in order to communicate a high-level conceptual overview of the system. Each analysis class typically evolves into one
or more logical and physical components in the system architecture.
An analysis class has properties including a name, description, responsibilities, and attributes. The description
includes the role the class plays in the system.
Analysis classes may be stereotyped as one of the following:
-
Boundary classes
-
Control classes
-
Entity classes
These stereotypes are useful in helping you to identify components in the component model. Apart from giving you more
specific process guidance when finding components, this stereotyping results in a robust component model, because
changes to the model tend to affect only a specific area. Changes in the user interface, for example, affect only
boundary classes. Changes in the control flow affect only control classes. Changes in long-term information affect only
entity classes.
Boundary Class
A boundary class is a class used to model interaction between the system's surroundings and its inner
workings. Such interaction involves transforming and translating events, and noting changes in the system presentation
(such as the interface).
Boundary classes model the parts of the system that depend on its surroundings. Entity classes and control classes
model the parts that are independent of the system's surroundings. Thus, changing the GUI or communication protocol
should mean changing only the boundary classes, not the entity and control classes.
A system may have several types of boundary classes:
-
User interface classes: Intermediate communication with human users of the system
-
System interface classes: Intermediate communication with other system
-
Device interface classes: Provide the interface to devices (such as sensors) that detect external
events
Common boundary classes include windows, communication protocols, printer interfaces, sensors, and terminals.
Generally, an entire window is the finest-grained boundary object. Boundary classes are also useful for capturing
interfaces to APIs, such as legacy code.
Boundary classes make it easier to understand the system, because they clarify the system's boundaries. They aid
modeling by helping group related services. For example, if you identify a printer interface, you soon see that you
must also model the formatting of printouts.
Control class
A control class is a class used to model control behavior specific to one or a few functional
requirements. They often control other objects, so they implement coordinating behavior. Control classes encapsulate
specific functional requirements.
The behavior of a control class is closely related to a specific scenario of system use. A control object can direct
the system in carrying out more than one closely-related functional requirements, or several control objects can
coordinate a single requirement. Examples of control objects include transaction managers, resource coordinators, and
error handlers. Not all functional requirements require a control class.
A control class does not handle all system functionality itself. Instead, it coordinates the tasks of other objects
that implement the functionality. The control class delegates work to the objects that have been assigned the
responsibility for the functionality.
Control classes can contribute to your understanding of the system, because they represent the dynamics of the system,
handling the main tasks and control flows. Control classes effectively de-couple boundary and entity objects from one
another, making the system more tolerant of changes in the system boundary. They also de-couple the system-specific
behavior from the entity objects, making them more reusable across systems.
Entity class
An entity class is a class used to model information that must be stored, and associated behavior
related to managing that information. Use entity classes to hold and update information about some concept, such as an
event, a person, or some real-life object. They are usually persistent, having attributes and relationships needed for
a long period, sometimes for the life of the system.
An entity object is usually used in many places throughout the system. Sometimes, it is not even specific to the system
itself. Users or other systems often provide the values of its attributes and relationships. An entity class may also
help perform internal system tasks. Entity classes can have behavior as complicated as that of other types of analysis
classes. However, unlike other types of classes, this behavior is strongly related to the entity it represents. Entity
objects are independent of the environment.
Entity classes represent the key concepts of the system. Typical examples of entity classes in a banking system are
Account and Customer. In a network-handling system, examples are Node and Link.
Entity classes provide another point of view from which to understand the system. They show the logical data structure,
which can help you understand what the system is supposed to offer its users.
|