Task: Perform Component Specification
This task specifies the details of the Service Components which realize a Design Subsystem.
Disciplines: Architecture
Purpose

Specify the internal behavior and structure of service components, to the level of specifying the external view of the functional and technical components that realize them.

Relationships
RolesPrimary Performer: Additional Performers:
InputsMandatory:
    Optional:
      Outputs
        Main Description

        This task uses conventional component design approaches to describe how service components realize the services that have been allocated to them.  After this task is completed, you have the following results:

        • The operations and attributes of each functional component and each technical component that support the service component have been defined
        • The relationships between the functional and technical components have been defined
        • The interactions between the functional and technical components, which realize each service component operation, have been described
        Steps
        Describe service component attributes
        If model-based approaches for designing the service components are being used, substantial information regarding the characteristics of the service components will be captured as a matter of course.  If text-based design methods are being used, manually capture the following information: 
        1. Properties or attributes
        2. Constraints (rules)
        3. Variations
        4. Dependencies upon other service components
        5. Composing functional and technical components
        6. Services provided
        7. Services required
        8. Non-functional requirements to be satisfied.
        Leverage the service model to better understand which services need to be provided and which ones are required.
        Identify component events and messages

        Examine the services that have been allocated to the service component, and then do the following:

        • Identify each service request (operation call) to which the service component must respond.
        • Identify each outgoing request (on a required interface) that the service component sends.
        • Identify the incoming and outgoing message content for the operations.

        Identify other events, such as data changes, to which the service component must respond.  For example, a given technical component might provide an interface to an external data source that is monitored for change.

        Document this information in the Component model.

        Model service component internal flow

        Use behavioral modeling methods, such as activity or interaction modeling, to reason through how the functional components and technical components interact as the service component responds to each of the previously-identified events.  If new components, operations, or attributes are discovered during behavioral modeling, add them to the appropriate component.

        Document these details in the component design.


        Model service component internal structure

        Use prior knowledge of the component model structure, plus the results of the behavioral modeling, to describe the operations, attributes, and relationships of the service component's internal elements.  Use patterns [GAM95, ARS00, for example]  to regularize your results.  Guideline: Service Component Patterns provides examples of some common patterns that are applied to organize service components and their supporting functional and technical components.

        Examine the result and refactor, if possible, to increase flexibility and reusability.  Use Variability Analysis techniques to help here.  Guideline: Variability Analysis provides some concrete advice regarding refactoring best practices.

        Document these results in the component design.

        More Information