Capturing and Reusing Functional and Non-functional Requirements Knowledge: A Goal-Object Pattern Approach

Pattern-based approach has proven to be an effective means for capturing and reusing past experience and best practices to facilitate communication and shorten the time required for software modeling. However, current knowledge capture is limited to mostly functional knowledge. Knowledge reuse is also often manual and limited to low-scale small model fragments. This paper presents a goal-object pattern framework that captures both functional and non-functional requirements knowledge that is modeled using UML and a goal-oriented method. Patterns in this framework are a collection of model refinement methods, each defining a single model element generation step in the target model. The patterns are model-driven in that they are defined using a UML metamodel and then used as such. The framework also supports incremental knowledge capture in that large-grain patterns can be composed from fine-grain ones, and also application-independent patterns can be specialized into application-specific ones. The framework is illustrated using a simplified on-line bookstore application to demonstrate how large-scale reuse may be possible