Software engineering deals with the application of scientific methods to the development and evolution of large software systems. Although software is an essential asset in almost every business branch today, systematic software development methods still lag behind on what is expected from a mature industry. Research results need to be put into practice more quickly and new software research needs to be performed in industrial settings. In particular, automated approaches are crucial in software engineering to meet the increasing quality and productivity goals in industry.
The mission of the Christian-Doppler Laboratory for Automated Software Engineering is the research and development of concepts, methods, and tools for the automation of success-critical software engineering tasks. According to the manifold challenges in today’s software engineering the laboratory addresses automation in a broad spectrum of areas including the following:
- Software architectures:Object and component technology, frameworks, design patterns, service-oriented architectures
- Software processes, methods and tools Iterative and agile processes, requirements engineering, software reuse and COTS-based development, software product lines, best practices in software development
- Software analysis and software quality Testing, software inspection, static and dynamic program analysis, software visualisation, performance analysis
- Generative software development Generators, model-driven architectures, domain-specific languages, compilation techniques, virtual machines
- Web technologies Web middleware like J2EE or .NET, application servers, web services, service-oriented architectures
The current research projects of the laboratory deal with software product lines, domain-specific languages and component architectures. See module descriptions for details.