The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
This article deals with the 12th European Conference on Software Maintenance and Reengineering, tool demonstration. Tool demonstrations have always provided an excellent venue for researchers to present their ideas, foster new research directions, and combine results in innovative ways in order to solve some of our most challenging problems. In reverse engineering and software maintenance, the landscape...
We present Build Analyzer, a tool that helps developers optimize the build performance of huge systems written in C. Due to complex C header dependencies, even small code changes can cause extremely long rebuilds, which are problematic when code is shared and modified by teams of hundreds of individuals. Build Analyzer supports several use cases. For developers, it provides an estimate of the build...
Syntax analysis and metrics are combined to a tool chain for automatic generation of reports used to assist in language conversion from C++ to Java. The reports point out potential migration obstacles by identifying relevant parts of the source code, thus enabling developers to pre-edit the code selectively.
The software industry is increasingly facing the issues of understanding and maintaining a particular type of software systems, namely distributed systems. While these systems are usually implemented in an object-oriented fashion, they raise very specific, and technology-dependent, understandability and quality assessment challenges. In this paper we present a novel approach for understanding a distributed...
There is an ongoing paradigm shift in Software Engineering from object-orientation to agent-orientation. We review some of the reasons for this, and briefly overview the state-of-the-art in Agent-Oriented Software Engineering (AOSE). We then sketch some threads of long-term research on autonomic software, software monitoring and diagnosis, and requirements evolution. In addition, we discuss the impact...
Recovering design pattern usage in source code is a very difficult task. Several tools are described in the literature for this purpose, but there is little work invested in evaluating them. The main reason for this is the lack of an approved benchmark for these tools. In this paper we present work in progress towards creating a benchmark, called DEEBEE (design pattern evaluation benchmark environment),...
An increasing number of software systems is developed using component technologies such as COM, CORBA, or EJB. Still, there is a lack of support to reverse engineer such systems. Existing approaches claim reverse engineering of components, but do not support composite components. Also, external dependencies such as required interfaces are not made explicit. Furthermore, relaxed component definitions...
Philips medical systems produces medical diagnostic imaging products, such as MR, X-ray and CT scanners. The software of these devices is complex, has been evolving for several decades and is currently a multi-MLOC monolithic software archive. In this paper we report on splitting a single software archive into multiple smaller archives so that these can be developed independently, easing the software's...
Some legacy programming languages, e.g., C, do not provide adequate support for exception handling. As a result, users of these legacy programming languages often implement exception handling by applying an idiom. An idiomatic style of implementation has a number of drawbacks: applying idioms can be fault prone and requires significant effort. Modern programming languages provide support for structured...
This research abstract analyses the strengths and limitations of the application of information retrieval (IR) methods for traceability link recovery between software artefacts. This work also shows how the ideas behind an IR-based traceability recovery process combined with traceability information can be used to improve and monitor software artefact quality during software development.
In this paper we focus on the use of Fit tables, a table- based approach used to clarify (change-)requirements and validate software systems. The main purpose of this work is to compare Fit tables for traditional systems and Web specific Fit tables. Results indicate that Fit tables do not provide any significant help to Web developers, while they seem to be useful for traditional systems. The main...
Design anomalies, introduced during software evolution, are frequent causes of low maintainability and low flexibility to future changes. Because of the required knowledge, an important subset of design anomalies is difficult to detect automatically, and therefore, the code of anomaly candidates must be inspected manually to validate them. However, this task is time- and resource-consuming. We propose...
Refactoring, in spite of widely acknowledged as one of the best practices of object-oriented design and programming, still lacks quantitative grounds and efficient tools for tasks such as detecting smells, choosing the most appropriate refactoring or validating the goodness of changes. This is a proposal for a method, supported by a tool, for cross-paradigm refactoring (e.g. from OOP to AOP), based...
Aspect oriented programming (AOP) has been proposed as a new programming paradigm. The originality in AOP is the aspect, a single modularization unit for all those functionalities that were originally spread across several modules and tangled with each other (called crosscutting concerns). Using an aspect, a crosscutting concern can be factored out into a single, separate unit. This paper summarizes...
Aspect oriented programming (AOP) supports the cross-cutting of concerns by means of aspects. The comprehension, maintenance and testing of AO systems may be more difficult than traditional ones, due to the large impact that aspects have on the static structure and dynamic behavior of the overall system. This thesis proposes the following main contributions to address these open issues: (i) an inter-procedural...
Object-oriented languages such as Java, Smalltalk, and C+ + structure their programs using packages, allowing classes to be organized into named abstractions. Maintainers of large applications need to understand how packages are structured and how they relate to each other, but this task is very complex because packages often have multiple clients and different roles (class container, code ownership...
Modern software systems are highly interconnected and have been under constant change for many years. IT decision makers find it difficult to predict and plan change projects due to the complexity of the enterprise systems. Thus, a large proportion of projects with the purpose of changing a software system environment fail, i.e. they tend to take longer time and cost more than expected. This paper...
Domain specific APIs offer their clients ready-to-use implementations of domain concepts. Beside being interfaces between the worlds of humans and computers, domain specific APIs contain a considerable amount of domain knowledge. Due to the big abstraction gap between the real world and today's programming languages, in addition to the knowledge about their domain, these APIs are cluttered with a...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.