Engineering Functional Requirements
摘要
Requirements Engineering (RE) is a critical sub-field of engineering that deals with identifying, analysing, specifying, modelling, and validating the user needs and constraints for a system. This not only holds for Software Engineering (SE) but for engineering in general (e.g., for building bridges and other artefacts as well). In our view, the main development line for the Engineering of Functional Requirements (EFR) should be: \({\text{EFR}}\;{-\!\!>}\;{\text{Conceptual}}\;{\text{Model}}\;{-\!\!>}\;{\text{SE}}\) So, EFR should result in a conceptual model as a basis for the software to be built. Although this line might look ‘waterfall-like’, it can equally apply to each individual increment in an incremental development approach. We argue that the result of EFR should be an implementation-independent conceptual model (CM) that models both the statics and dynamics, and we show that such a CM can form a solid base for SE. We work out how such an implementation-independent CM can be developed and looks like, covering both the static and the dynamic functional requirements in an integrated way. Results: A theoretically sound and concrete conceptual model that catches and integrates the static and dynamic functional requirements. The model forms a solid base for SE. It results in a traceable development line from EFR to SE.