FOREST Overview Process Model Pattern-based Process Model

Pattern-based Process Model

Integrating Requirement Patterns

The effort to produce a FPS and its derived natural language description usually is substantial, especially if large and complex systems are to be characterized. To reduce this effort, we propose a generic approach to the formalization of requirements. Our approach is based on a pool of requirement patterns. By requirement pattern, we refer to a generic description of a class of domain-specific requirements. Currently this pool of requirement patterns exists.

Based on the pattern pool and the Customer NLPS, the formalization of requirements through pattern reuse consists of the following steps (see Figure 2):

  1. Requirement patterns are selected from the pattern pool. This selection is supported by information provided by pattern descriptions such as intention, definition, and semantic properties.
  2. The selected patterns are adapted by suitable instantiations. The same kind of adaptation is applied to the semantic properties. Already at this stage is it possible to formally reason about single requirements.
  3. The adapted patterns are composed to yield the problem specification. During this composition, it may turn out that there exist conflicts between individual requirements. These conflicts may be resolved, for instance, by exploiting existing precedence relationships between requirements.

Formalization Through Pattern Reuse
Figure 2: Formalization Through Pattern Reuse

The degree to which the formalization of requirements can be achieved through pattern reuse depends both on the Customer NLPS and the contents of the pattern pool. If the structure of an informal requirement follows a selection requirement pattern that is already contained in the pool, then its formalization can be achieved directly by instantiating the pattern. If the structure is different, then either transformations and/or modifications of the informal requirement may lead to a structure that is already supported by the pattern pool, or the formalization must be done in the conventional way, i.e. without reuse (see Figure 2). The pool of requirement patterns should evolve over time. As a consequence, the portion of requirements that is developed from requirement patterns will increase, reducing the overall effort of problem specification.

Adding a Catalogue of Requirements

The existence of a pool of requirement patterns can be exploited further to reduce the effort for the specification of requirements. Based on previous experience, a set of pattern instantiations may be selected, forming a catalogue of formal requirements (FPS catalogue, see Figure 3). Translation of these requirements leads to a NLPS catalogue that can be used by customers to state informal requirements during the entire problem development process. On the one hand, this provides some guidance to customers on how and what requirements may be stated. On the other hand, the formalization of these requirements through pattern reuse, if not yet available, becomes straightforward, since the corresponding pattern is already contained in the pattern pool.

Adding a Catalogue
Figure 3: Adding a Catalogue

Discovery of Requirement Patterns

Building up a pattern pool will be an iterative process itself. This pattern discovery task can be modeled as a sub-cycle in the specification development model. Typically, each external specification development cycle triggers one or more internal pattern discovery/reuse cycles affecting both pattern pool and FPS, since each FPS modification can lead to new patterns or the improvement of existing patterns.

Finally, we obtain the development model shown in Figure 4.

Complete Problem Specification
Process Model Using Requirement Patterns
Figure 4: Complete Problem Specification Process Model Using Requirement Patterns