Martin Lippert
University of Hamburg
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Martin Lippert.
international conference on software engineering | 2000
Martin Lippert; Cristina Videira Lopes
Aspect oriented programming (AOP) is intended to ease situations that involve many kinds of code tangling. The paper reports on a study to investigate AOPs ability to ease tangling related to exception detection and handling. We took an existing framework written in Java/sup TM/, the JWAM framework, and partially reengineered its exception detection and handling aspects using AspectJ/sup TM/, an aspect oriented programming extension to Java. We found that AspectJ supported implementations that drastically reduced the portion of the code related to exception detection and handling. In one scenario, we were able to reduce that code by a factor of 4. We also found that, with respect to the original implementation in plain Java, AspectJ provided better support for different configurations of exceptional behaviors, more tolerance for changes in the specifications of exceptional behaviors, better support for incremental development, better reuse, automatic enforcement of contracts in applications that use the framework, and cleaner program texts. We also found some weaknesses of AspectJ that should be addressed in the future.
IEEE Computer | 2003
Martin Lippert; P. Becker-Pecbau; Holger Breitling; J. Koch; A. Kornstadt; S. Roock; Axel Schmolitzky; H. Wolf; Heinz Züllighoven
Using methodological extensions to adapt extreme programming (XP) for major projects offers a high security and reliability without limiting software developments advantages. The authors describe their use of XP extensions that focus on developments planning and controlling aspects, demonstrating that a suitably adapted agile development process is applicable to long-term, large-system projects.
conference on object-oriented programming systems, languages, and applications | 2004
Martin Lippert
There are a number of technologies designed to improve modularity in software systems. The technique presented here combines two of them seamlessly to exploit their respective benefits: Eclipse plugins and AspectJ. The Eclipse runtime is based on the idea of plugins, enabling large systems to be built from smaller components. AspectJ is an AOP-enhanced version of the Java language that allows developers to modularize crosscutting concerns into aspects. While both technologies offer a number of interesting features, their seamless combination is not trivial. Several limitations make it impossible to exploit all the features of the combined technologies. AspectJ-Enabled Eclipse Runtime (AJEER) is designed to overcome these limitations. It integrates load-time weaving for AspectJ into the Eclipse runtime, thus allowing developers to implement aspects that modularize crosscutting concerns beyond the capability of individual plugins. In addition, the dynamic features of the OSGi-based Eclipse 3.0 runtime are preserved in this setting - making it possible to plug AspectJ aspects into and out of the running system dynamically.
International Conference on Extreme Programming and Agile Processes in Software Engineering | 2004
Martin Lippert
Refactoring is a key element of many agile software development methods. While most developers associate small design changes with the term refactoring (as described by Martin Fowler and William F. Opdyke), everyday development practice in medium- to large-sized projects calls for more than fine-grained refactorings. Such projects involve more complex refactorings, running for several hours or days and sometimes consisting of a huge number of steps. This paper discusses the problems posed by large refactorings and presents an approach that allows agile teams to integrate large refactorings into their daily work.
international conference on software engineering | 2003
Petra Becker-Pechau; Holger Breitling; Martin Lippert; Axel Schmolitzky
Professional software development implies team work. Therefore working in a team should be an essential part in the software engineering curriculum. We use Extreme Programming (XP) as a high-discipline software development methodology to teach software engineering within a team quite early in the curriculum. This seems not easy at first sight, as XP is aimed mainly at experienced programmers. But XP is highly motivating for students if it can be applied within the framework of a real project. After their first year of programming, students at the University of Hamburg get the chance to take part in a three week project that includes one week of intensive programming. This programming week in the middle is organized following XP principles. In this paper we describe the way we adopt XP for this week, argue about the circumstances for a compact XP-like software engineering week, and reflect on the experience we made.
conference on object-oriented programming systems, languages, and applications | 2003
Martin Lippert
Separation of concerns and modularity are key elements of software engineering. The work described here presents a combination of two proven techniques that help improve both of these elements: the Eclipse Core Runtime Platform, which introduces plugins to Java programming as a kind of module concept on top of packages, and aspect-oriented programming using AspectJ, which aims to improve the modularity of crosscutting concerns. The work presents a combination of these two technologies in an AspectJ-enabled version of the Eclipse Core Runtime Platform. Unlike the standard implementation of the Eclipse Core Runtime Platform, the AspectJ-enabled implementation allows aspects to modularize crosscutting concerns beyond the boundaries of plugins (without the need for recompilation across plugins). It allows crosscutting concerns to be modularized by means of aspects and plugins while using the enhanced but compatible version of the Eclipse Core Runtime Platform as promoted by the Eclipse project.
Archive | 2002
Claus Lewerentz; Frank Simon; Frank Steinbrückner; Holger Breitling; Carola Lilienthal; Martin Lippert
Product metrics allow for an efficient way to get feedback about the quality of an existing software system. Beside the internal validation of metrics, i.e. their examination with respect to measurement theory, the external validation is important to examine the value of results based on metrics analysis. In this paper, a well-defined process to get a metrics-based quality assessment is applied to the Java Framework JWAM. For the external validation its results were analysed by the JWAM development team: Most aspects were valuable to them and the findings were classified as either completely new, confirming rough knowledge, or well known. Additionally, a second process walkthrough for the new JWAM-version showed that many detected quality defects have been removed.
conference on object-oriented programming systems, languages, and applications | 2008
Martin Lippert
This will be a live demonstration of aspect weaving for OSGi. Attendees will see how aspects can be modularized into OSGi bundles using Equinox Aspects, a load-time weaving extension for Equinox. The demo features full OSGi dynamics for aspects at runtime and using Equinox Aspects together with Spring Dynamic Modules.
conference on object-oriented programming systems, languages, and applications | 2003
Chris Laffra; Martin Lippert
Bytecode instrumentation can be used effectively to (a) generate visualizations and (b) to modify the behavior of Eclipse plugins. In this demonstration, we will show two independent techniques that have in common that they obtain their results by modifying the binary representation of a given software system. In the first part of the demo, Chris Laffra will show experiments he performed on visualization of Eclipse plugins in the context of the JikesBT project. In the second part of the demo, Martin Lippert will show how to weave aspects into Eclipse plugins without having access to their source.
Software quality and software testing in internet times | 2002
Martin Lippert; Heinz Züllighoven
Today, software development and its process management is a demanding task. The development company must reach the project goals on time and in budget. On the other hand, requirements change daily, developers are not domain experts and customers want to maintain close control of the project. Web application development has increased this challenge as new project-management issues have to be met. Extreme Programming (XP), a lightweight development process, is designed to meet the challenge. We have used XP successfully in a number of projects and attained the goals mentioned above. Using XP enabled us to deliver software on time and in budget, while supporting close communication between the (potential) customer and the development team as requirements changed daily. One to two releases per customer per week (two per day at the peak) indicate the flexibility and risk-minimising capabilities of the process. This allowed optimal control and planning of the projects by the development company. We illustrate our experiences using one particular time-critical project.