Nowadays, as software systems become more and more complex, a single software engineer can not longer understand a whole system. Software development takes place within a high dynamic project environment. A iteratively and evolutionary developed software architecture and early prototyping may help to minimize the risks of software development significantly. A software architecture describes an appropriate system decomposition in components and their relationships. This thesis describes a evolutionary methodology for software architecture development. Text-based as well as UML-based graphical description techniques have been elaborated to specify components, their dependencies and whole component-based systems. Therewith, the software architecture of a component-based system can be completely and precisely specified. In case of an evolutionary development step, like for instance the improvement of some component specifications, the consistency of dependencies between components is re-validated. Thereby the integration of a set of components to a consistent software architecture has been already established on the specification level. The foundation of the presented methodology is a system model characterizing the set of all component-based systems. The components of such a system are executed parallel and distributed. They use asynchronous messages for communication, have read and write access to attributes of components, and can change the structure of the whole component-based system. The presented specification techniques are formally founded based on this system model. A predicate-based formal semantics assigns a set of properties to a given specification. A component-based system represents a correct implementation of a specification if it fulfills all properties of the specification. Finally, the concepts and a prototype implementation of a universal and sophisticated tool support guarantees the effective and pragmatic realization of the presented methodology. This tool supports the construction of software architecture specifications, consistency and integration checks, generation executable prototypes, and a test and debugging environment.
«
Nowadays, as software systems become more and more complex, a single software engineer can not longer understand a whole system. Software development takes place within a high dynamic project environment. A iteratively and evolutionary developed software architecture and early prototyping may help to minimize the risks of software development significantly. A software architecture describes an appropriate system decomposition in components and their relationships. This thesis describes a evoluti...
»