Models, methods and tools for software architecture management and utilization, extracting high-level architecture models directly from the code, support for manual and automatic architecture analysis, synchronization with enterprise information repositories


Motivation 

Software engineering is an engineering discipline whose focus is the cost-effective development of high-quality software systems. Software architecture takes a central part in software engineering. As an abstraction of a software system it is the main artifact that is used for reasoning about central system qualities like like performance, security, and scalability, to name a few. Early design decisions are usually long lasting and expensive to change later in the development. For developers architecture is a blueprint of the system that guides and constrains its implementation. For stakeholders, software architecture is an important means for communication and documentation.

Architecture-related engineering activities like software architecture evaluation require an extensive amount time and human resources and thus lack the cost-effectiveness as one of the main goals of software engineering. Formalization and tool support contribute to more cost effectiveness, but formalized approaches for architecture description and analysis, like Architecture Description Languages (ADLs) often lack tool support and are not aligned well enough with system implementation. Also formalized approaches often lack multiple views on a software architecture, require specialized knowledge hindering their adoption, and are too rigid to be used for communication.

Goals

The main aim of this project is to bridge the gap between formal and non-formal approaches to software architecture description and analysis based on a central semi-formal architecture model that is explicitly designed to be (continuously) aligned with a system implementation and to integrate both automatically extracted and manually created architecture information. A set of tools aims to support multiple views on the captured information and various kinds of both automatic and manually architecture analysis.

  • Develop models for describing and analyzing software architectures
  • Integrate software architecture information into the system implementation
  • Extract architecture information directly from code; continuously synchronize architecture information with code

Results

The main result is the LISA (Language for Integrated Software Architecture) approach, which has evolved over several years and now has many facets. Some of them are:

  • A set of integrated models for describing software architecture on different levels of abstraction and granularity
  • Models for representing code structures and relationships (e.g., classes and dependencies), components, services, and connectors, requirements, design decisions, and rationale, and features, variation points, variants, and constraints.
  • A set of tools for architecture extraction, synchronization with external resources, architecture visualization, and both manual and automatic architecture analysis
  • Extraction of architecture information from a system implementation through different component-model specific parsers. Support for heterogeneous systems through support for different component and service models within one system architecture.
  • Support for different kinds of continuous architecture analysis, including a rule editor for high-level specification of reference architecture conformance analysis
  • Support for manual analysis and review through different views. Generation of diagrams from the architecture model. Annotation of visualized elements in the review process. Creation of review reports and reviews based on review templates.
  • Prototypical integration of AOP concepts like aspects, joinpoints, point cuts, and advices
  • Provisioning of architecture models and functionality through a REST-API
  • Support of automatic capturing of traces from requirements and design decisions to design and code artifacts
  • Application in the context of a Service-Oriented Architecture (SOA) in the banking domain

(please have a look at the related publication list for a more exhaustive list of the provided features and investigated issues)

Duration
since 2008

Partners
GRZ IT Group
Software Competence Center Hagenberg (SCCH)

Subprojects and related projects
Software Architecture Knowledge Management
Variability Management in Software Architecture

Contact Rainer Weinreich

Software Architecture Engineering and Management

Publications

G. Buchgeher, R. Weinreich, T. Kriechbaum: Making the Case for Centralized Software Architecture Management, In Software Quality. The Future of Systems- and Software Development. Edited by Dietmar Winkler, Stefan Biffl and Johannes Bergsmann. Lecture Notes in Business Information Processing, Springer International Publishing, 2016, doi:10.1007/978-3-319-27033-3_8.
Conference Article
T. Kriechbaum, G. Buchgeher, R. Weinreich: Service Development and Architecture Management for an Enterprise SOA, 8th European Conference on Software Architecture (ECSA 2014), Vienna, Austria, August 25-29, 2014, doi:10.1007/978-3-319-09970-5_17.
Conference Article
R. Weinreich, G. Buchgeher: Automatic Reference Architecture Conformance Checking for SOA-based Software Systems, 11th Working IEEE/IFIP Conference on Software Architecture (WICSA 2014), Sydney, Australia, April 7-11, 2014, doi:10.1109/WICSA.2014.22.
Conference Article
G. Buchgeher, R. Weinreich: Towards Continuous Reference Architecture Conformance Analysis, European Conference on Software Architecture (ECSA 2013), Montpellier, France, Springer LNCS, Springer Berlin Heidelberg, 2013, doi:10.1007/978-3-642-39031-9_32.
Conference Article
G. Buchgeher, R. Weinreich: Continuous Software Architecture Analysis, In A. Babar, A.W. Brown, and I. Mistrik (eds.), Agile Software Architecture: Aligning Agile Processes and Software Architecture, Chapter 7, 161-188, Morgan Kaufmann, 2013, ISBN 9780124077720, doi:10.1016/b978-0-12-407772-0.00006-x.
Book Chapter
R. Weinreich, C. Miesbauer, G. Buchgeher, T. Kriechbaum: Extracting and Facilitating Architecture in Service-Oriented Software Systems, 2012 Joint Working Conference on Software Architecture & 6th European Conference on Software Architecture (WICSA-ECSA 2012), Helsinki, Finland, August 20-24, 2012, doi:10.1109/WICSA-ECSA.212.16.
Conference Article
C. Miesbauer, R. Weinreich: Capturing and Maintaining Architectural Knowledge using Context Information, 2012 Joint Working Conference on Software Architecture & 6th European Conference on Software Architecture (WICSA-ECSA 2012), Helsinki, Finland, August 20-24, 2012, doi:10.1109/WICSA-ECSA.212.30.
Conference Article
R. Weinreich, G. Buchgeher: Towards Supporting the Software Architecture Life Cycle, Journal of Systems and Software, Volume 85 Issue 3, March 2012, doi:10.1016/j.jss.2011.05.036 .
Journal Article
G. Buchgeher, R. Weinreich: Automatic Tracing of Decisions to Architecture and Implementation, 9th Working IEEE/IFIP Conference on Software Architecture (WICSA 2011), Boulder, Colorado, USA, June 20-24, 2011, doi:10.1109/WICSA.2011.16.
Conference Article
G. Buchgeher, R. Weinreich: A Toolkit for Architecture-Centric Software Development, 8th International Conference on the Principles and Practice of Programming in Java (PPPJ 2010), ACM, Vienna, Austria, September 15-17, 2010, doi:10.1145/1852761.1852784.
Conference Article
R. Weinreich, G. Buchgeher: Integrating Requirements and Design Decisions in Architecture Representation, 4th European Conference on Software Architecture (ECSA 2010), August 23-26, 2010, Copenhagen, Denmark, Springer LNCS, 2010, doi:10.1007/978-3-642-15114-9_9.
Conference Article
G. Buchgeher, R. Weinreich: An Approach for Combining Model-based and Scenario-based Software Architecture Analysis, 5th International Conference on Software Engineering Advances (ICSEA 2010), Nice, France, August 22-27, 2010, IEEE Computer Society Press 2010.
Conference Article
R. Weinreich, G. Buchgeher, Paving the Road for Formally Defined Architecture Description in Software Development, 25th ACM Symposium on Applied Computing (SAC), Sierre, Switzerland, March 22-26, 2010, ACM, 2010, doi:10.1145/1774088.1774571.
Conference Article
G. Buchgeher, R. Weinreich: Tool Support for Component-Based Software Architectures, Asia/Pacific Software Engineering Conference (APSEC 2009), Penang, Malaysia, December 1-3, 2009, IEEE Computer Society Press 2009.
Conference Article
G. Buchgeher, R. Weinreich: Connecting Architecture and Implementation, 8th International Workshop on System/Software Architectures (IWSSA'09), Vilamoura, Portugal, November 1-6, 2009, Springer Lecture Notes in Computer Science (LNCS), Springer 2009.
Conference Article
R. Weinreich, G. Buchgeher: Software Architecture Engineering, Book Chapter, Hagenberg Research (Eds. Buchberger et al.), Springer Berlin, 2009, pp. 200-214.
Book Chapter
G. Buchgeher, R. Weinreich: Integrated Software Architecture Management and Validation, The 3rd International Conference on Software Engineering Advances, ICSEA 2008, October 26-31, pp. 427-436, IEEE Computer Society Press, 2008, doi:10.1109/ICSEA.2008.21.
Conference Article