FG Praktische Informatik / Softwaresystemtechnik
Refine
Document Type
- Part of a book (chapter) (3) (remove)
Language
- English (3)
Keywords
- Software-Ontologien (1)
- Softwarearchitekturen (1)
- Softwaretechnik (1)
Institute
Abstract. Software architectures are key enabling assets within organizationsthat develop complex software systems. Among other purposes,software architectures are useful to maintain intellectual control overa software product. We propose a method to continuously check theconsistency between a specified architecture model and structural informationreverse engineered from the code. We develop criteria that adesign language for architectures should fulfill and show that an ontologybased description has substantial benefits over the standard modelinglanguages MOF/UML/OCL. Using ontologies allows the explicitmodelling of architectural styles as well as concrete system structuresin a single architecture design language. The resulting specifications aremodular, compositional and evolvable. Using ontologies we can apply anontology reasoner to implement consistency checks. Our method integratespreviously separate checks such as checking for allowed dependenciesand coding style into a single framework and enables more powerfuland flexible analyses.
In this chapter we introduce the concept of structural quality assessments for industrial software systems (especially object-oriented code). Such a quality assessment can be used both to determine the current state with respect to quality and to plan further actions, i.e. reengineering steps, process adjustments or further education of engineers in an ongoing project. The assessment itself is based on an innovative software analysis workbench that integrates multiple interdependent views on a software system into a coherent analysis environment. These views provide information on four aspects: user-defined metrics and query results with high-level information about the system, detailed cross-reference information, browsing views and diagrams to support efficient understanding of the structure. The workbench applies powerful static analysis techniques on the source code under consideration and uses it to generate, access, visualise and browse the different views and analysis results. For practical assessments the workbench is used in a well-defined process such that a first quality assessment of large systems can be done within a very short period of time.
The quality assessment described here has been applied in various projects. In order to illustrate the results that such an assessment gives for project management, developers or managers of an outsourced project this paper ends with a short description of a typical example project. This is one of the projects supported jointly by SQS and the Software Systems Engineering Research Group Cottbus