Massimiliano Di Penta

Using Acceptance Tests as a Support for Clarifying Requirements: a Series of Experiments (2009)

Marco Torchiano, Massimiliano Di Penta, Mariano Ceccato, Paolo Tonella

One of the main reasons for the failure of many software projects is the late discovery of a mismatch between the customers ’ expectations and the pieces of functionality implemented in the...

Smart Formatter: Learning Coding Style from Existing Source Code (2009)

Concettina Del Grosso, Massimiliano Di Penta

The quality of identifiers, the coding style and formatting are important aspects that influence program understandings and maintenance. This is confirmed by the presence of several approaches and...

Negotiation of Service Level Agreements: an Architecture and a Search-based Approach (2009)

Elisabetta Di Nitto, Massimiliano Di Penta, Alessio Gambi, Gianluca Ripa, Maria Luisa Villani

Abstract. Software systems built by composing existing services are more and more capturing the interest of researchers and practitioners. The envisaged long term scenario is that services, offered...

An Empirical Study of the Relationships between Design Pattern Roles and Class Change Proneness (2009)

Massimiliano Di Penta, Luigi Cerulo, Yann-gaël Guéhéneuc, Giuliano Antoniol

Analyzing the change-proneness of design patterns and the kinds of changes occurring to classes playing role(s) in some design pattern(s) during software evolution poses the basis for guidelines to...

Service Oriented Architectures Testing: A Survey (2009)

Gerardo Canfora, Massimiliano Di Penta

Abstract. Testing of Service Oriented Architectures (SOA) plays a critical role in ensuring a successful deployment in any enterprise. SOA testing must span several levels, from individual services...

1 A Framework for QoS-Aware Binding and Re-Binding of Composite Web Services (2009)

Gerardo Canfora, Massimiliano Di Penta, Raffaele Esposito, Maria Luisa Villani

QoS-aware dynamic binding of composite services provides the capability of binding each service invocation in a composition to a service chosen among a set of functionally equivalent ones to achieve...

Discovery of SOA Patterns via Model Checking (2009)

Massimiliano Di Penta, Antonella Santone, Maria Luisa Villani

Design pattern recovery has been proved to be an useful mechanism to assess the quality of object-oriented systems, to facilitate their comprehension, and to help identifying reusable assets. The...

Frontiers of Reverse Engineering: a Conceptual Model (2009)

Gerardo Canfora, Massimiliano Di Penta

Software reverse engineering is a crucial task to reconstruct high-level views of a software system—with the purpose of understanding and/or maintaining it—when the only reliable source of...

Search-based Testing of Service Level Agreements (2009)

Massimiliano Di Penta, Gerardo Canfora, Gianpiero Esposito, Valentina Mazza, Marcello Bruno

The diffusion of service oriented architectures introduces the need for novel testing approaches. On the one side, testing must be able to identify failures in the functionality provided by service....

Designing your next empirical study on program comprehension (2009)

Massimiliano Di Penta, Eileen Kraemer

The field of program comprehension is characterized by both the continuing development of new tools and techniques and the adaptation of existing techniques to address program comprehension needs for...

First International Symposium on Empirical Software Engineering and Measurement “Talking tests”: a Preliminary Experimental Study on Fit User Acceptance Tests (2009)

Marco Torchiano, Massimiliano Di Penta

This short paper reports a pilot experiment conducted with master students, in which we investigated whether Fit test cases were helpful to clarify change requirements in a maintenance task.

(1) (2009)

Bénédicte Kenmei, Giuliano Antoniol, Massimiliano Di Penta

Effort to evolve and maintain a software system is likely to vary depending on the amount and frequency of change requests. This paper proposes to model change requests as time series and to rely on...

The Effect of Communication Overhead on Software Maintenance Project Staffing: a Search-Based Approach (2009)

Massimiliano Di Penta, Mark Harman, Giuliano Antoniol, Fahim Qureshi

Brooks ’ milestone ‘Mythical Man Month ’ established the observation that there is no simple conversion between people and time in large scale software projects. Communication and training...

design methods (2009)

Lerina Aversano, Gerardo Canfora, Luigi Cerulo, Concettina Del Grosso, Massimiliano Di Penta

Design patterns are solutions to recurring design problems, conceived to increase benefits in terms of reuse, code quality and, above all, maintainability and resilience to changes. This paper...

Software Migration Projects in Italian Industry: Preliminary Results from a State of the Practice Survey (2009)

Marco Torchiano, Massimiliano Di Penta, Andrea De Lucia

Software migration is a fundamental and complex task in software maintenance, particularly relevant in recent years given the pervasiveness of Web and of mobile technologies. In the context of an...

the IEEE Computer Society (2009)

Gerardo Canfora, Massimiliano Di Penta

interests include software maintenance and reverse engineering, service oriented software engineering, and experimental software engineering. He has co-authored more than 100 papers published in...

Are Fit Tables Really Talking? A Series of Experiments to Understand whether Fit Tables are Useful during Evolution Tasks (2009)

Massimiliano Di Penta, Marco Torchiano, Paolo Tonella, Mariano Ceccato, Corrado Aaron Visaggio

Test-driven software development tackles the problem of operationally defining the features to be implemented by means of test cases. This approach was recently ported to the early development phase,...

COCONUT: COde COmprehension Nurturant Using Traceability (2009)

Andrea De Lucia, Massimiliano Di Penta, Rocco Oliveto, Francesco Zurolo

In this demonstration we present an Eclipse plug-in, called COCONUT (COde COmprehension Nurturant Using Traceability), that shows the similarity level between the source code under development and...

Tracking Your Changes: a Language-Independent Approach (2009)

Gerardo Canfora, Luigi Cerulo, Massimiliano Di Penta

The availability of powerful differencing algorithms is crucial to track the evolution of source code, for example with the purpose of monitoring clones or vulnerable statements. In this paper we...

A Search-Based Approach for Dynamically Re-packaging Downloadable Applications (2009)

Thierry Bodhuin, Massimiliano Di Penta, Luigi Troiano

Mechanisms such as Java Web Start enable on-thefly downloading and execution of applications installed on remote servers, without the need for having them installed on the local machine. The rapid...

An approach for mining services in database–oriented applications (2009)

Concettina Del Grosso, Massimiliano Di Penta

The diffusion of service oriented architectures is slowed down by the lack of enough services available for satisfying service integrator needs. Nevertheless, many features desired by service...

7 Web Services Regression Testing (2009)

Massimiliano Di Penta, Marcello Bruno, Gianpiero Esposito, Valentina Mazza, Gerardo Canfora

Summary. Service Oriented Architectures introduce a major shift of perspective in software engineering: in contrast to components, services are used instead of being physically integrated. This...

Guidelines on the use of Fit tables in Software Maintenance Tasks: Lessons Learned from 8 Experiments (2009)

Massimiliano Di Penta, Marco Torchiano

Executable acceptance test case—in particular Fit (Framework for Integrated Test) tables—originally intended for the development phase proved useful in maintenance activities too. Empirical...

Towards Empirical Validation of Design Notations for Web Applications: An Experimental Framework (2009)

Paolo Tonella, Massimiliano Di Penta, Marco Torchiano

Web application design involves at least one additional dimension over traditional software design: navigation, as supported by hyperlinks. Available design notations for Web applications offer...

Relating the Evolution of Design Patterns and Crosscutting Concerns (2008)

Lerina Aversano, Luigi Cerulo, Massimiliano Di Penta

Crosscutting concerns consist in software system features having the implementation spread across modules as tangled and scattered code. In many cases, these crosscutting concerns represent design...

Towards Empirical Validation of Design Notations for Web Applications: An Experimental Framework (2008)

Paolo Tonella, Massimiliano Di Penta, Marco Torchiano

Web application design involves at least one additional dimension over traditional software design: navigation, as supported by hyperlinks. Available design notations for Web applications offer...

Abstract SOA: Testing and Self-Checking (2008)

Gerardo Canfora, Massimiliano Di Penta

The dynamic nature of service-oriented architectures poses new challenges to system validation. Traditional testing is unable to cope with certain aspects of a service–oriented system validation,...

the IEEE Computer Society (2008)

Gerardo Canfora, Massimiliano Di Penta

interests include software maintenance and reverse engineering, service oriented software engineering, and experimental software engineering. He has co-authored more than 100 papers published in...

design methods (2008)

Lerina Aversano, Gerardo Canfora, Luigi Cerulo, Concettina Del Grosso, Massimiliano Di Penta

Design patterns are solutions to recurring design problems, conceived to increase benefits in terms of reuse, code quality and, above all, maintainability and resilience to changes. This paper...

ABSTRACT: Using Concept Lattices to Support Service Selection (2008)

Lerina Aversano, Marcello Bruno, Gerardo Canfora, Massimiliano Di Penta, Damiano Distante

When building a service-oriented system, a service integrator retrieves a set of potentially useful services from registries and then inspects their documentation to eventually decide which services...

Mozilla: Closing the Circle Giuliano Antoniol (2008)

Harald Gall, Massimiliano Di Penta

Concurrent Versioning System (CVS) repositories and bug tracking systems are valuable sources of information to study the evolution of large open source software systems. However, being conceived for...

Search-based Testing of Service Level Agreements ABSTRACT (2008)

Massimiliano Di Penta, Gerardo Canfora, Gianpiero Esposito, Valentina Mazza, Marcello Bruno

The diffusion of service oriented architectures introduces the need for novel testing approaches. On the one side, testing must be able to identify failures in the functionality provided by service....

Assessing and Improving State-Based Class Testing: A Series of Experiments (2008)

Lionel C. Bri, Massimiliano Di Penta, Yvan Labiche

This paper describes an empirical investigation of the cost effectiveness of well-known statebased testing techniques for classes or clusters of classes that exhibit a state-dependent behavior. This...

Designing your Next Empirical Study on Program Comprehension (2008)

Massimiliano Di Penta, Eileen Kraemer

The field of program comprehension is characterized by both the continuing development of new tools and techniques and the adaptation of existing techniques to address program comprehension needs for...

Performance, Reliability (2008)

Gerardo Canfora, Massimiliano Di Penta, Raffaele Esposito, Maria Luisa Villani

Web services are rapidly changing the landscape of software engineering. One of the most interesting challenges introduced by web services is represented by Quality Of Service (QoS)–aware...

An Experimental Investigation of Formality in UML-Based Development (2008)

Lionel C. Bri, Senior Member, Yvan Labiche, Ieee Computer Society, Massimiliano Di Penta

is to make UML models more precise and unambiguous by providing a constraint language describing constraints that the UML diagrams alone do not convey, including class invariants, operation...

Assessing and Improving State-Based Class Testing: A Series of Experiments (2008)

Lionel C. Bri, Ieee Computer Society, Massimiliano Di Penta, Yvan Labiche

Abstract—This paper describes an empirical investigation of the cost effectiveness of well-known state-based testing techniques for classes or clusters of classes that exhibit a state-dependent...

The role of experience and ability in comprehension tasks supported by uml stereotypes (2007)

Massimiliano Di Penta, Marco Torchiano, Paolo Tonella, Mariano Ceccato

Proponents of design notations tailored for specific application domains or reference architectures, often available in the form of UML stereotypes, motivate them by improved understandability and...

Identifying changed source code lines from version repositories (2007)

Gerardo Canfora, Luigi Cerulo, Massimiliano Di Penta

Observing the evolution of software systems at different levels of granularity has been a key issue for a number of studies, aiming at predicting defects or at studying certain phenomena, such as the...

The role of experience and ability in comprehension tasks supported by uml stereotypes (2007)

Massimiliano Di Penta, Marco Torchiano, Paolo Tonella, Mariano Ceccato

Proponents of design notations tailored for specific application domains or reference architectures, often available in the form of UML stereotypes, motivate them by improved understandability and...

How Clones are Maintained: An Empirical Study (2007)

Lerina Aversano, Luigi Cerulo, Massimiliano Di Penta

Despite the conventional wisdom concerning the risks related to the use of source code cloning as a software development strategy, several studies appeared in literature indicated that this is not...

The role of experience and ability in comprehension tasks supported by uml stereotypes (2007)

Massimiliano Di Penta, Marco Torchiano, Paolo Tonella, Mariano Ceccato

Proponents of design notations tailored for specific application domains or reference architectures, often available in the form of UML stereotypes, motivate them by improved understandability and...

Scenario-Driven Dynamic Analysis for Comprehending Large Software Systems (2006)

Maher Salah, Spiros Mancoridis, Giuliano Antoniol, Massimiliano Di Penta

Understanding large software systems is simplified when a combination of techniques for static and dynamic analysis is employed. Effective dynamic analysis requires that execution traces be generated...

Scenario-Driven Dynamic Analysis for Comprehending Large Software Systems (2006)

Maher Salah, Spiros Mancoridis, Giuliano Antoniol, Massimiliano Di Penta

Understanding large software systems is simplified when a combination of techniques for static and dynamic analysis is employed. Effective dynamic analysis requires that execution traces be generated...

Scenario-Driven Dynamic Analysis for Comprehending Large Software Systems (2006)

Maher Salah, Spiros Mancoridis, Giuliano Antoniol, Massimiliano Di Penta

Understanding large software systems is simplified when a combination of techniques for static and dynamic analysis is employed. Effective dynamic analysis requires that execution traces be generated...

Improving comprehensibility of source code via traceability information: a controlled experiment (2006)

Andrea De Lucia, Massimiliano Di Penta, Rocco Oliveto, Francesco Zurolo

The presence of traceability links between software artefacts is very important to achieve high comprehensibility and maintainability. This is confirmed by several researches and tools aiming at...

An empirical study on the usefulness of Conallen’s stereotypes in Web application comprehension (2006)

Massimiliano Di Penta, Marco Torchiano, Paolo Tonella, Mariano Ceccato

Comprehension of Web applications is a complex task, since several concerns co-exist in their implementation, among which the business logic, the navigation structure (as supported by hyperlinks and...

On the use of line co-change for identifying crosscutting concern code (2006)

Gerardo Canfora, Luigi Cerulo, Massimiliano Di Penta

Crosscutting concerns are software system features whose implementation is spread across many modules as tangled and scattered code. Identifying such code helps developers to change the concern...

Experimental settings in program comprehension: Challenges and open issues (2006)

Massimiliano Di Penta

Several approaches to program comprehension have been proposed along the years, ranging from fact extraction to sophisticated visualization tools. In order to effectively assess the benefits of each...

Service composition (re)binding driven by application-specific qos (2006)

Gerardo Canfora, Massimiliano Di Penta, Raffaele Esposito, Francesco Perfetto, Maria Luisa Villani

Abstract. QoS–aware service composition and binding are among the most challenging and promising issues for service–oriented architectures. The aim of QoS–aware service composition is to...

QoS-Aware Replanning of Composite Web Services (2005)

Gerardo Canfora, Massimiliano Di Penta, Raffaele Esposito, Maria Luisa Villani

Run-time service discovery and late-binding constitute some of the most challenging issues of service–oriented software engineering. For late-binding to be effective in the case of composite...

Search-based techniques applied to optimization of project planning for a massive maintenance project (2005)

Giulio Antoniol, Massimiliano Di Penta, Mark Harman

This paper evaluates the use of three different search– based techniques, namely genetic algorithms, hill climbing and simulated annealing, and two problem representations, for planning resource...

An approach to support web service classification and annotation (2005)

Marcello Bruno, Gerardo Canfora, Massimiliano Di Penta, Rita Scognamiglio

The need for supporting the classification and semantic annotation of services constitutes an important challenge for service–centric software engineering. Late–binding and, in general, service...

Improving network applications security: a new heuristic to generate stress testing data (2005)

Concettina Del Grosso, Massimiliano Di Penta, Ettore Merlo, École Polytechnique De

Buffer overflows cause serious problems in different categories of software systems. For example, if present in network or security applications, they can be exploited to gain unauthorized grant or...

Speaking a Common Language: A Conceptual Model for Describing Service-Oriented Systems (2005)

Massimiliano Colombo, Elisabetta Di Nitto, Massimiliano Di Penta, Damiano Distante, Maurilio Zuccalà

Abstract. The diffusion of service-oriented computing is today heavily influencing many software development and research activities. Despite this, service-oriented computing is a relatively new...

QoS-Aware Replanning of Composite Web Services (2005)

Gerardo Canfora, Massimiliano Di Penta, Raffaele Esposito, Maria Luisa Villani

Run-time service discovery and late-binding constitute some of the most challenging issues of service–oriented software engineering. For late-binding to be effective in the case of composite...

The c-cube framework: Developing autonomic applications through web services (2005)

Gerardo Canfora, Piero Corte, Antonio De Nigro, Debora Desideri, Massimiliano Di Penta, Raffaele Esposito, ...

Web services constitute a promising technology to support autonomic computing. Automatic discovery of new services, their composition and binding based on Quality of Service (QoS) are just some of...

Visualizing the evolution of Web Services using Formal Concept Analysis (2005)

Lerina Aversano, Marcello Bruno, Massimiliano Di Penta, Amedeo Falanga, Rita Scognamiglio

The service–oriented paradigm constitutes a promising technology that will allow many software systems to benefit of interesting mechanisms such as late binding and automatic discovery. From a...

Towards the automatic evolution of reengineering tools (2005)

Massimiliano Di Penta, Kunal Taneja

Building reverse engineering or reengineering tools often requires parsers for many different programming languages. The diffusion of dialects and variants makes many available parsers almost...

Integrating static and dynamic analysis to improve the comprehension of existing web applications (2005)

Massimiliano Di Penta

Web Applications are today becoming more and more interactive and dynamic: the pages rendered in a browser on the client side can be dynamically built by server pages according to the user inputs or...

Supporting Web Application Evolution by Dynamic Analysis (2005)

Di Lucca, Massimiliano Di Penta, Anna Rita Fasolino, Porfirio Tramontana

The evolution of Web Applications needs to be supported by the availability of proper analysis and design documents. UML use case diagrams are certainly useful to identify features to evolve, as well...

Using test cases as contract to ensure service compliance across releases (2005)

Marcello Bruno, Gerardo Canfora, Massimiliano Di Penta, Gianpiero Esposito, Valentina Mazza

Abstract. Web Services are entailing a major shift of perspective in software engineering: software is used and not owned, and operation happens on machines that are out of the user control. This...

Summary Report, Swedish Nuclear Power Inspectorate and OECD/Nuclear Energy Agency (2004)

Massimiliano Di Penta, Mark Harman

Managing a large software project involves initial estimates that may turn out to be erroneous or that might be expressed with some degree of uncertainty. Furthermore, as the project progresses, it...

Summary Report, Swedish Nuclear Power Inspectorate and OECD/Nuclear Energy Agency (2004)

Giuliano Antoniol, Massimiliano Di Penta, Mark Harman

Managing a large software project involves initial estimates that may turn out to be erroneous or that might be expressed with some degree of uncertainty. Furthermore, as the project progresses, it...

A Distributed Architecture for Dynamic Analyses on User-Profile Data (2004)

Giuliano Antoniol, Massimiliano Di Penta

Combining static and dynamic information is highly relevant in many reverse engineering, program comprehension and maintenance task. Dynamic analysis is particularly effective when information is...

Summary Report, Swedish Nuclear Power Inspectorate and OECD/Nuclear Energy Agency (2004)

Giuliano Antoniol, Massimiliano Di Penta, Mark Harman

Managing a large software project involves initial estimates that may turn out to be erroneous or that might be expressed with some degree of uncertainty. Furthermore, as the project progresses, it...

An automatic approach to identify class evolution discontinuities (2004)

Giuliano Antoniol, Massimiliano Di Penta, Ettore Merlo

When a software system evolves, features are added, removed and changed. Moreover, refactoring activities are periodically performed to improve the software internal structure. A class may be...

Understanding web applications through dynamic analysis (2004)

Giuliano Antoniol, Massimiliano Di Penta, Michele Zazzara

The relevance and pervasiveness of web applications as a vital part of modern enterprise systems has significantly increased in recent years. However, the lack of adequate documentation promotes the...

A lightweight approach for QoS-aware service composition (2004)

Gerardo Canfora, Massimiliano Di Penta

One of the most challenging issues of service–centric software engineering is the QoS–aware composition of services. The aim is to search for the optimal set of services that, composed to create...

Summary Report, Swedish Nuclear Power Inspectorate and OECD/Nuclear Energy Agency (2004)

Giuliano Antoniol, Massimiliano Di Penta

Planning a large scale software project involves a set ofinitial effort estimates and an allocation of programmers to

Library miniaturization using static and dynamic information (2003)

Giuliano Antoniol, Massimiliano Di Penta

Moving to smaller libraries can be considered as a relevant task when porting software systems to limited-resource devices (e.g., hand-helds). Library miniaturization will be particularly effective...

Predicting Refactoring Activities via Time Series (2003)

Giuliano Antoniol, Massimiliano Di Penta, Ettore Merlo

Refactoring activities should be carefully planned in advance for different reasons: i) they can be expensive in terms of resources needed; ii) refactoring is highly requested when clones, code...

Moving to Smaller Libraries via Clustering and Genetic Algorithms (2003)

Giuliano Antoniol, G. Antoniol, Massimiliano Di Penta, Markus Neteler

There may be several reasons to reduce a software system to its bare bone removing the extra fat introduced during development or evolution. Porting the software system on embedded devices or...

Evolution Doctor: a Framework to Control Software System Evolution (2003)

Massimiliano Di Penta

Real world software systems undergo, during their lifetime, to repeated maintenance activities. Due to the market pressure and to the need for having back the system operational in the shortest time...

Complexity and Feasibility Issues in Object Oriented Clone Detection (2003)

Ettore Merlo, Giuliano Antoniol, Massimiliano Di Penta

Introduction Large multi-platform software systems are likely to encompass a variety of programming languages, coding styles, idioms and hardware-dependent code. Analyzing multi-platform source code,...

Assessing Staffing Needs for a Software Maintenance Project through Queueing Simulation (2003)

Giuliano Antoniol, Aniello Cimitile, Massimiliano Di Penta

We present an approach based on queueing theory and stochastic simulation to help planning, managing and controlling the project staffing and the resulting service level in distributed multi-phase...

Considering Browser Interaction in Web Application Testing (2002)

Massimiliano Di Penta

As web applications evolves, their structure may become more and more complex. Thus, systematic approaches/methods for web application testing are needed. Existing methods take into consideration...

Handling Preprocessor-Conditioned Declarations (2002)

Lerina Aversano, Massimiliano Di Penta, Ira D. Baxter

Many software systems are developed with configurable functionality, and for multiple hardware platforms and operating systems. This can lead to thousands of possible configurations, requiring each...

Early Effort Estimation of Massive Maintenance Processes (2002)

Andrea De Lucia, Massimiliano Di Penta, Silvio Stefanucci, Gabriele Venturi

Effort estimation is a valuable asset to managers in planning maintenance activities and performing cost/benefits analysis. Early estimates and accurate evaluations permit to significantly reduce...

An Approach to Identify Duplicated Web Pages (2002)

Massimiliano Di Penta, Anna Rita Fasolino

A relevant consequence of the unceasing expansion of the Web and e-commerce is the growth of the demand of new Web sites and Web applications. As a result, Web sites and applications are usually...