Developing Functional Specifications of an Information System a Personal Overview
摘要
How to develop the functional specifications of an information system in a straightforward way, given some problem space? Both data (the statics) and processes (the dynamics) must be developed, in an integrated way. The statics and dynamics of a system are closely related: Actually, they are the two sides of the same coin. We will sketch a concrete and complete development path for functional requirements, from initial (vague) user wishes via functional specifications until software specifications. Importantly, the development steps are mutually aligned. Our aligned development pipeline supports traceability which, in turn, supports adaptability. The development pipeline includes concrete validation and explanation steps. An intermediate Conceptual Model (CM) has a central role in this development. The CM is a functional ‘blue print’ and is implementation-independent. From the CM we can deduce the software specifications for the target platform in a straightforward way (‘model-driven’). The original question now concentrates on the question how to specify the functional requirements for a given problem space. This actually splits Developing into Specifying and Realizing. The Conceptual Model of a system should model the statics as well as the dynamics of the system. The statics can be specified by a Conceptual Data Model (CDM) and the dynamics by a Conceptual Process Model (CPM). So, in short: CM = CDM ⊕ CPM. A CDM consists of one data model, while a CPM typically consists of several (usually many) ‘interaction descriptions’, e.g., in the form of System Sequence Descriptions (SSDs). Important to note is that the constructions in our SSD-language have a formal semantics.