A Design Pattern Metamodel and Use Mechanisms for Systems Engineering

In facing repetitive classes of problems during their projects, engineers need to combine practitioners' experience in design with solutions that are already capitalized, approved, and standardized. Sharing, interpreting, and applying this experience and these solutions allows engineers to improve their performance (including comprehensiveness and relevance) and their reliability (since they are using proven solutions that have been justified and argued contextually), while also raising their economic value (through time savings). In this way enterprises can capitalize on their engineers' experience. The idea of using such "design patterns" is intended to help an engineer improve the nonfunctional features, quality of service, and "ilities" (Manola 1999) of a system under design. A design pattern is a simple and small artifact, linking a model of a problem noticed in a given context with a model of a well-known solution that has been already used to solve the problem in another but quite similar context on which the interest of the solution has been validated. This solution must then be imitated and adapted to another context. This approach is currently used in several engineering fields, such as traditional architecture, software engineering, and process management. More recently it has been applied to systems engineering. Despite this literature, however, the design-pattern concept remains poorly formalized for the systems engineering domain. Our research promotes a formalized metamodel for design patterns.