Task: Refactor the Candidate Service Model |
|
 |
Refactor the candidate service model to remove redundancy and to improve comprehension, consistency, and flexibility. |
Disciplines: Service |
|
Purpose
Create a candidate service model that is free of redundancies, easier to understand, and easier to maintain.
|
Relationships
Roles | Primary Performer:
| Additional Performers:
|
Inputs | Mandatory:
| Optional:
|
Outputs |
|
Process Usage |
|
Main Description
Applying multiple candidate service identification techniques most likely will result in identifying some
candidate services that overlap each other, functionally and structurally. This task is performed so that
redundant concepts are eliminated and the remaining candidates are structured and related so as to maximize
comprehension and future maintenance.
The main tool that is used to perform the refactoring is commonality and variability analysis. This is
introduced in Concept: Variability Analysis. Guideline: Variability Analysis provides additional discussion on this
technique. Example: Variability Analysis presents an example and also illustrates
some common taxonomic hierarchies that are used to describe variability.
|
Steps
Identify redundancies and opportunities for refactoring
Examine the names, documented purposes, notional functions, and relationships of the elements of the Service
Model to identify likely duplicates.
Use variability and commonality analysis techniques to identify commonalities and refactor those out of the current
abstractions.
|
Refactor based on service granularity considerations
In addition to refactoring based upon considerations of commonality and variability, the candidate services (Capabilities) also need to be refactored based upon granularity
considerations. For example:
-
Ensure that Capabilities are of the correct granularity with respect to the goals that they are
addressing. If it appears that the operations interface for a Capability is much larger than what
is needed to address an assigned goal, perhaps the Capability needs to be split.
-
Consider over-arching non-functional requirements, documented in System-Wide Requirements, such as overall system
performance and responsiveness. Having too many very-fine-grained services, with fine-grained operations, can
lead to unacceptable performance.
|
Restructure the Service Model
Restructure the contents of the Service Model in consideration of the refactorings performed in the previous
steps. Perhaps use one of the forms described in Example: Variability Analysis.
|
|
More Information
© Copyright IBM Corp. 1987, 2009. All Rights Reserved.
|
|