The Bauhaus project is a software research project collaboration among the University of Stuttgart, the University of Bremen, and a commercial spin-off company Axivion [1] , also known as Bauhaus Software Technologies.
The Bauhaus project serves the fields of software maintenance and software reengineering.
Created in response to the problem of software rot, [2] the project aims to analyze and recover the means and methods developed for legacy software by understanding the software's architecture. [3] As part of its research, the project develops software tools (such as the Bauhaus Toolkit) for software architecture, software maintenance and reengineering and program understanding. [4]
The project derives its name from the former Bauhaus art school. [5]
The Bauhaus project was initiated by Profs. Erhard Ploedereder [6] and Rainer Koschke [7] at the University of Stuttgart [8] in 1996. It was originally a collaboration between the Institute for Computer Science (ICS) of the University of Stuttgart and the Fraunhofer-Institut für Experimentelles Software Engineering (IESE), [4] [9] which is no longer involved.
The Bauhaus project was funded a by the state of Baden-Württemberg, the Deutschen Forschungsgemeinschaft, the Bundesministerium für Bildung und Forschung, T-Nova Deutsche Telekom Innovationsgesellschaft Ltd., and Xerox Research. [10]
Early versions of Bauhaus integrated and used Rigi for visualization. [11] : 143–145
The commercial spin-off Axivion GmbH, headquartered in Stuttgart, was started in 2005. [9] Research then was done at Axivion, the Institute of Software Technology, Department of Programming Languages at the University of Stuttgart as well as at the Software Engineering Group of the Faculty 03 at the University of Bremen.
Formerly, the academic version [5] of the "Bauhaus" [12] was offered. Today, the software product is sold commercially as Axivion Suite. The latter includes MISRA C checks among other verification services.
On August 11, 2022, the Qt Group acquired Axivion GmbH. Since then, the Axivion Suite has been further developed and distributed by the Qt Group's Quality Assurance business unit. [13]
Developer(s) | Axivion GmbH (part of Qt Group) |
---|---|
Stable release | 7.8 / 2024-07-04 |
Type | Static program analysis |
License | Proprietary |
Website | https://www.qt.io/blog/quality-assurance/axivion-suite-7.8-release |
The Bauhaus Toolkit (or simply the "Bauhaus tool") includes a static code analysis tool for C, C++, C#, Java and Ada code. It comprises various analyses such as architecture checking, interface analysis, and clone detection. Bauhaus was originally derived from the older Rigi reverse engineering environment, [14] which was expanded by Bauhaus due to the Rigi's limitations. [15] It is considered one of the most notable visualization tools in the field. [16]
The Bauhaus tool suite aids the analysis of source code by creating abstractions (representations) of the code in an intermediate language as well as through a resource flow graph (RFG). [17] The RFG is a hierarchal graph with typed nodes and edges, which are structured in various views.
While the Axivion Suite has its origins in the Bauhaus project, it is now considered a different product with a broader range of services, such as static code analyses, such as MISRA checking, architecture verification, include analysis, defect detection, and clone management.
The Bauhaus tool suite has been used successfully in research and commercial projects. [17] It has been noted that Bauhaus is "perhaps [the] most extensive" customization of the well-known Rigi environment, [15]
The members of the project were repeatedly awarded with Best Paper Awards and were invited to submit journal papers several times.[ citation needed ]
In 2003, the Bauhaus project received the do it software award from MFG Stiftung Baden-Württemberg. [10]
In computing, a compiler is a computer program that translates computer code written in one programming language into another language. The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a low-level programming language to create an executable program.
In computer science, static program analysis is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs during their execution in the integrated environment.
The following outline is provided as an overview of and topical guide to software engineering:
A programming tool or software development tool is a computer program that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs, that can be combined to accomplish a task, much as one might use multiple hands to fix a physical object. The most basic tools are a source code editor and a compiler or interpreter, which are used ubiquitously and continuously. Other tools are used more or less depending on the language, development methodology, and individual engineer, often used for a discrete task, like a debugger or profiler. Tools may be discrete programs, executed separately – often from the command line – or may be parts of a single large program, called an integrated development environment (IDE). In many cases, particularly for simpler use, simple ad hoc techniques are used instead of a tool, such as print debugging instead of using a debugger, manual timing instead of a profiler, or tracking bugs in a text file or spreadsheet instead of a bug tracking system.
The Ada Semantic Interface Specification (ASIS) is a layered, open architecture providing vendor-independent access to the Ada Library Environment. It allows for the static analysis of Ada programs and libraries. It is an open, published interface library that consists of the Ada environment and their tools and applications.
GXL is designed to be a standard exchange format for graphs. GXL is an extensible markup language (XML) sublanguage and the syntax is given by an XML document type definition (DTD). This exchange format offers an adaptable and flexible means to support interoperability between graph-based tools.
This is an alphabetical list of articles pertaining specifically to software engineering.
Software visualization or software visualisation refers to the visualization of information of and related to software systems—either the architecture of its source code or metrics of their runtime behavior—and their development process by means of static, interactive or animated 2-D or 3-D visual representations of their structure, execution, behavior, and evolution.
A call graph is a control-flow graph, which represents calling relationships between subroutines in a computer program. Each node represents a procedure and each edge (f, g) indicates that procedure f calls procedure g. Thus, a cycle in the graph indicates recursive procedure calls.
Automated code review software checks source code for compliance with a predefined set of rules or best practices. The use of analytical methods to inspect and review source code to detect bugs or security issues has been a standard development practice in both Open Source and commercial software domains. This process can be accomplished both manually and in an automated fashion. With automation, software tools provide assistance with the code review and inspection process. The review program or tool typically displays a list of warnings. A review program can also provide an automated or a programmer-assisted way to correct the issues found. This is a component for mastering easily software. This is contributing to the Software Intelligence practice. This process is usually called "linting" since one of the first tools for static code analysis was called Lint.
Rigi is an interactive graph editor tool for software reverse engineering using the white box method, i.e. necessitating source code, thus it is mainly aimed at program comprehension. Rigi is distributed by its main author, Hausi A. Müller and the Rigi research group at the University of Victoria.
Enthought, Inc. is a software company based in Austin, Texas, United States that develops scientific and analytic computing solutions using primarily the Python programming language. It is best known for the early development and maintenance of the SciPy library of mathematics, science, and engineering algorithms and for its Python for scientific computing distribution Enthought Canopy.
Specialized wind energy software applications aid in the development and operation of wind farms.
GrammaTech is a cybersecurity research services company based in Ithaca, New York. The company was founded in 1988 as a technology spin-off of Cornell University. GrammaTech software research services include the following; software analysis, vulnerability detection and mitigation, binary transformation and hardening, and autonomous computing. In September 2023, Battery Ventures acquired GrammaTech's software products division, including the CodeSonar and CodeSentry product lines. Thus establishing a new, independent entity that will operate under the CodeSecure, Inc. name and be headquartered in Bethesda, Maryland.
Imagix 4D is a source code analysis tool from Imagix Corporation, used primarily for understanding, documenting, and evolving existing C, C++ and Java software.
A software map represents static, dynamic, and evolutionary information of software systems and their software development processes by means of 2D or 3D map-oriented information visualization. It constitutes a fundamental concept and tool in software visualization, software analytics, and software diagnosis. Its primary applications include risk analysis for and monitoring of code quality, team activity, or software development progress and, generally, improving effectiveness of software engineering with respect to all related artifacts, processes, and stakeholders throughout the software engineering process and software maintenance.
Understand is a customizable integrated development environment (IDE) that enables static code analysis through an array of visuals, documentation, and metric tools. It was built to help software developers comprehend, maintain, and document their source code. It enables code comprehension by providing flow charts of relationships and building a dictionary of variables and procedures from a provided source code.
Hausi A. Müller is a Canadian computer scientist and software engineer. He is a professor of computer science at the University of Victoria, British Columbia, Canada and a Fellow of the Canadian Academy of Engineering.