About
165
Publications
23,363
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,310
Citations
Citations since 2017
Introduction
Carmine Gravino received the Laurea (cum laude) in Computer Science from the University of Salerno in 1999 and the PhD in Computer Science from the University of Salerno in 2003. He is currently an Associate Professor at the University of Salerno. His research interests are in the following areas: Software Maintenance and Empirical Software Engineering.
Additional affiliations
March 2015 - September 2015
March 2015 - September 2015
January 2001 - December 2012
Education
November 1999 - March 2003
October 1993 - July 1999
Publications
Publications (165)
The concept of metaverse is becoming pervasive and promises to revolutionize the way people will interact with each other in a sustainable manner. The educational context seems to represent an ideal use case, as the metaverse may provide a digital environment empowered by analytical instruments able to monitor the social and psychological needs of...
Context. Software reusability mechanisms, like inheritance and delegation in Object-Oriented programming, are widely recognized as key instruments of software design. These are used to reduce the risks of source code being affected by defects, other than to reduce the effort required to maintain and evolve source code. Previous work has traditional...
To provide privacy-aware software systems, it is crucial to consider privacy from the very beginning of the development. However, developers do not have the expertise and the knowledge required to embed the legal and social requirements for data protection into software systems. Objective: We present an approach to decrease privacy risks during agi...
Context
To provide privacy-aware software systems, it is crucial to consider privacy from the very beginning of the development. However, developers do not have the expertise and the knowledge required to embed the legal and social requirements for data protection into software systems.
Objective
We present an approach to decrease privacy risks du...
Many empirical software engineering studies have employed feature selection algorithms to exclude the irrelevant and redundant features from the datasets with the aim to improve prediction accuracy achieved with machine learning-based estimation models as well as their generalizability. However, little has been done to investigate how consistently...
Model validation methods (e.g., k-fold cross-validation) use historical data to predict how well an estimation technique (e.g., random forest) performs on the current (or future) data. Studies in the contexts of software development effort estimation (SDEE) and software fault prediction (SFP) have used and investigated different model validation me...
Context: In empirical software engineering, crossover designs are popular for experiments comparing software engineering techniques that must be undertaken by human participants. However, their value depends on the correlation (r) between the outcome measures on the same participants. Software engineering theory emphasizes the importance of individ...
Context: Functional Size Measurement (FSM) methods, like Function Points Analysis (FPA) or COSMIC, are well-established approaches to estimate software size. Several approximations of these methods have been recently proposed as they require less time/information to be applied, however their effectiveness for effort prediction is not known.
Objecti...
The widespread use of diagrammatic languages has motivated the need for grammar-based tools to support designers in the definition and implementation of graphical environments. The effective use of such systems requires efficient parsing techniques. In previous years, many approaches have been devised and one of them is based on the extension of th...
Context. Many organizations are adopting the COSMIC method to size software products for estimating and controlling their development costs and performances. Using a functional size measurement method requires specialized expertise and can be time-consuming. Objectives. Since UML is the de facto industrial modeling language standard for object-orie...
Many studies have shown that the accuracy of the predictions obtained by estimation models built considering data collected by other companies (cross-company models) can be significantly worse than those of estimation models built employing a dataset collected by the single company (within-company models). This is due to the different characteristi...
Feature selection algorithms select the best and relevant set of features of the datasets which leads to an increase in the accuracy of predictions when employed with the machine learning techniques. Different feature selection algorithms are used in the domain of Software Development Effort Estimations (SDEE) and recently the use of bio-inspired f...
In this paper, we present the results of long-term research conducted in order to study the contribution made by software models based on the Unified Modeling Language (UML) to the comprehensibility of Java source-code deprived of comments. We have conducted 12 controlled experiments in different experimental contexts and on different sites with pa...
Context. Model-driven development approaches facilitate the production of Web applications. Among them, the Object-Oriented Hypermedia method (OO-H) has been successfully used for the development of industrial Web applications. Similarly to other development approaches, it is important also in this context to put measures in place to support projec...
We present a method and tool (ePAD) for the detection of design pattern instances in source code. The approach combines static analysis, based on visual language parsing and model checking, and dynamic analysis, based on source code instrumentation. Visual language parsing and static source code analysis identify candidate instances satisfying the...
Background Several functional size measurement methods have been proposed. A few ones -like IFPUG and COSMIC methods- are widely used, while others -like Simple Function Points method- are interesting new proposals, which promise to deliver functional size measures via a faster and cheaper measurement process. Objectives Since all functional size m...
In this work, we report a study carried out to identify a set of metrics to early estimate the development effort of mobile apps. The applied methodology was inspired by the work of Mendes et al. who addressed a similar problem in the field of web apps. In particular, we extracted an initial set of metrics by analyzing the online quotes forms that...
The competitiveness of software companies greatly depends on the ability of their project managers to carry out a reliable and accurate software size estimation. Among the approaches for software sizing, functional size measurement (FSM) methods are widely used in the industry since they can be applied early, based on the user functional requiremen...
In this paper, we focus on the definition of estimators to predict method calls in Android apps. Estimation models are based on information from requirements specification documents (e.g., number of actors, number of use cases, and number of classes in the conceptual model). We have used a dataset containing information on 23 Android apps. After pe...
Simple Function Points were proposed as a lightweight alternative to standard Function Points. The idea at the base of the definition of Simple Function Points is that it is possible to get equally effective size measures even without considering fine-grained details of functional specifications. Skipping the analysis and measurement of such detail...
Context: software development effort estimation is a crucial management task that critically depends on the adopted size measure. Several Functional Size Measurement (FSM) methods have been proposed. COSMIC is considered a 2nd generation FSM method, to differentiate it from Function Point Analysis (FPA) and its variants, considered as 1st generatio...
Software companies exploit data about completed projects to estimate the development effort required for new projects. Software size is one of the most important information used to this end. However, different methods for sizing software exist and companies may require to migrate to a new method at a certain point. In this case, in order to exploi...
In this paper we apply a measurement procedure proposed by van Heeringen and van Gorp to approximate the COSMIC size of mobile applications. We compare this procedure with the one introduced by D’Avanzo et al. We also replicate an empirical study recently carried out to assess whether the COSMIC functional size of mobile applications can be used to...
In this paper, we present final results of our long-term investigation whose goal was to study the contribution of software models on source-code comprehensibility. In this investigation we considered unified modeling language (UML) models produced in the analysis and design phases, and we conducted 12 controlled experiments in different contexts w...
In this paper, we report the experience gained in a Mobile Application Development course. We involved students in Computer Science at the University of Salerno, who in teams had to conduct a project. The goal of this project was to design and develop applications (or simply app) for Android-based devices. The adopted teaching approach was based on...
This paper investigates the use of the COSMIC functional size measurement method for mobile applications. Some proposals have been recently introduced to size mobile applications in terms of COSMIC. In this work we empirically analyse whether the COSMIC functional size of mobile applications can be exploited to estimate the size of the final applic...
Objective: The main objective is to investigate whether the comprehension of object-oriented source-code increases when it is added with UML class and sequence diagrams produced in the software design phase.Methods: We conducted a controlled experiment and a differentiated replication with young software maintainers. In particular, groups of Bachel...
Design-patterns are recognized as a means to improve software maintenance by furnishing an explicit spec-ification of class and object interactions and their underlying intent [Gamma et al. 1995]. Only a few em-pirical investigations have been conducted to assess whether the kind of documentation for design-patterns implemented in source code affec...
The paper presents the application of the COSMIC functional size measurement method in mobile environment. In particular, we describe how COSMIC has been applied to Android mobile applications, also through an example of measurement, and the identification of some possible recurrent patterns. Moreover, we report the results of an empirical study ca...
The paper presents the application of the COSMIC functional size measurement method in mobile environment. In particular, we describe how COSMIC has been applied to Android mobile applications, also through an example of measurement, and the identification of some possible recurrent patterns. Moreover, we report the results of an empirical study ca...
Companies have employed for years 1st generation Functional Size Measurement (FSM) methods, e.g., IF PUG Function Points Analysis (FPA), collecting IF PUG-based historical data useful for benchmarking and estimation purposes. With the advent of 2nd generation FSM methods (e.g., COSMIC) the need for resizing past projects utilizing these new measure...
Context. Development effort estimation is a managerial activity that takes place throughout the life-cycle of the software so that it may benefit from information that becomes available as the project progresses. Researchers investigated the use of prior-phase effort data to estimate the effort in subsequent phases, as well as early phase effort da...
We carried out a family of experiments to investigate whether the use of UML models produced in the requirements analysis process helps in the comprehensibility and modifiability of source code. The family consists of a controlled experiment and 3 external replications carried out with students and professionals from Italy and Spain. 86 participant...
It has been estimated that about 2% of global carbon dioxide emissions can be attributed to IT systems. Green (or sustainable) computing refers to supporting business critical computing needs with the least possible amount of power. This phenomenon changes the priorities in the design of new software systems and in the way companies handle existing...
Defect prediction approaches use software metrics and fault data to learn which software properties associate with faults in classes. Existing techniques predict fault-prone classes in the same release (intra) or in a subsequent releases (inter) of a subject software system. We propose an intra-release fault prediction technique, which learns from...
The aim of the paper is to investigate to what extend some COSMIC-based approximate countings can be useful for project managers to early estimate effort of Web applications. We considered the number of COSMIC Functional Processes and the Average Functional Process approach proposed by the COSMIC method documentation. We carried out an empirical an...
There is empirical evidence supporting the usefulness of screen mockups in improving the comprehension of use cases. Though a cost-benefit analysis would require an estimate of the effort required to produce them. In this paper, we present an empirical study with students and professionals to estimate the effort to develop mockups starting from use...
Functional size measures have been gaining increasing acceptance not only for project estimation and productivity comparisons but also for the evaluation of the company assets concerning with operating applications. However, functional sizing operating applications can represent a complex task (they could be developed in past projects, in some case...
Modeling is a fundamental activity within the requirements engineering process and concerns the construction of abstract descriptions of requirements that are amenable to interpretation and validation. The choice of a modeling technique is critical whenever it is necessary to discuss the interpretation and validation of requirements. This is partic...
We report the preliminary results of a controlled experiment conducted to analyze whether the combined use of UML class and sequence diagrams better supports source code comprehension with respect to the use of class and sequence diagrams alone. We also investigated which notation between class and sequence diagrams provides a better support in the...
In this paper, we present the early results of an ongoing project aimed at giving an existing software system a more eco-sustainable lease of life. We defined a strategy and a process for migrating a subject system that performs intensive and massive computation to a Graphics Processing Unit (GPU) based architecture. We validated our solutions on a...
This paper presents the results of an empirical study aiming at comparing the support provided by ER and UML class diagrams during maintenance of data models. We performed one controlled experiment and two replications that focused on comprehension activities (the first activity in the maintenance process) and another controlled experiment on modif...
We present the results of a controlled experiment aimed to investigate whether the source code comprehension increases when participants are provided with UML class and sequence diagrams produced in the software design phase. The experiment has been conducted with Master students in Computer Science at the University of Salerno. The data analysis s...
We present the results of a differentiated replication conducted with professional developers to assess whether the presence and the kind of documentation for the solutions or instances of design patterns affect source code comprehension. The participants were di- vided into three groups and asked to comprehend a chunk of the JHot- Draw source code...
In the literature we can identify two main approaches for sizing model-driven Web applications: one based on design measures and another based on functional measures. Design measures take into account the modeling primitives characterizing the models of the specific model-driven approach. On the other hand, the functional measures are obtained by a...
Some studies have reported promising results on the use of Support Vector Machines (SVMs) for predicting fault-prone software components. Nevertheless, the performance of the method heavily depends on the setting of some parameters. To address this issue, we investigated the use of a Genetic Algorithm (GA) to search for a suitable configuration of...
The idea of exploiting Genetic Programming (GP) to estimate software development effort is based on the observation that the effort estimation problem can be formulated as an optimization problem. Indeed, among the possible models, we have to identify the one providing the most accurate estimates. To this end a suitable measure to evaluate and comp...
Ease of use is definitively one of the key aspects characterizing the quality of web applications and includes accessibility and usability. In this pa-per we describe how these factors can affect the development of web applica-tions. In particular, we describe the activities that should be targeted at accessi-bility based upon the W3C guidelines an...
In this paper we present an experiment and two replications aimed at comparing the support provided by ER and UML class diagrams
during comprehension activities by focusing on the single building blocks of the two notations. This kind of analysis can
be used to identify weakness in a notation and/or justify the need of preferring ER or UML for data...
We present the results of a controlled experiment and a differentiated replication that have been carried out to assess the effect of the documentation of design patterns on the comprehension of source code. The two experiments involved Master Students in Computer Science at the University of Basilicata and at University of Salerno, respectively. T...
Traditionally, program analysis has been divided into two camps: Static techniques analyze code and safely determine what cannot happen; while dynamic techniques analyze executions to determine what actually has happened. While static analysis suffers ...
We propose an approach that leverages lexical information and fuzzy clustering to reduce the number of the design pattern instances that existing approaches based on structural information (i.e., navigating the dependencies among software elements) erroneously recover in source code. To assess the effectiveness of the techniques, we present the res...
Some empirical studies have been carried out so far to identify a function able to convert IFPUG functional size units into the COSMIC ones. The present paper reports on a replication of those studies using a dataset of 25 Web applications. As for the estimation technique, linear regression analysis was employed, while k-fold cross validation was e...