The development of large and complex software systems is a very difficult, long, and costly task. Therefore, it is highly desirable to gather requirements for a future system as completely and precisely as possible in order to meet the user's actual needs and discover potential problems. Functional prototypes of the system in question facilitate this subtask of system development because they represent a solid basis for the dialogue between user and developer. Software components are particularly well suited for the construction of functional prototypes as they comprise existing functionality which is offered to their environment through well-defined interfaces. By composition, it is thus possible to construct larger systems rather quickly. However, search, selection, and combination of suitable components is still a largely manual task which gets even more complicated by insufficient descriptions of the offered functionality. This work therefore develops an advanced approach to component-based rapid prototyping which allows a widely automated construction of functional prototypes from given requirements and provided components. It proposes a conceptual framework with a clear, task-oriented structure which facilitates the use of particularly suitable models and procedures. Thereby, functionality on the application level may be understood as a manipulation of well-defined concepts within an ontology, while its realization on the technical level is described as typical interactions between participating interfaces. The tolerant matching between required and provided functionality leads to differently composed prototype variants which are iteratively optimized by an evolutionary heuristics. Thus, it is possible to consider numerous alternative solutions with justifiable effort. Moreover, potential components for design and implementation of the future system may be evaluated very early in the development process. A reference implementation as well as an exemplary application domain, biomolecular sequence analysis, ensure effectiveness and practical relevance of the presented approach. Additionally, various extensions demonstrate flexibility and future potential of the conceptual framework itself.
«
The development of large and complex software systems is a very difficult, long, and costly task. Therefore, it is highly desirable to gather requirements for a future system as completely and precisely as possible in order to meet the user's actual needs and discover potential problems. Functional prototypes of the system in question facilitate this subtask of system development because they represent a solid basis for the dialogue between user and developer. Software components are particularl...
»