I am a Post-doc at the University of Molise. My research interests include software security, testing and quality.
Security of software systems In the last five years, the National Institute Standards and Technology (NIST) reported in the National Vulnerability Database (NVD) 7,937 software vulnerabilities, in growth with respect to the 5,174 reported in 2013. This means that, every day, 22 new vulnerabilities are discovered. Of such vulnerabilities, 24% are labeled as “high severity”, namely very dangerous. Software vulnerabilities and, moreover, the attacks that exploit them aiming at acquiring confidential data or at compromising the integrity of a system, are the cause of an annual financial loss of about 226 billion dollars. Therefore, it is critical to detect software vulnerabilities early.
Software testing It is not possible to prove that software systems are correct; on the other hand, it is possible to prove the opposite. The goal of software testing is to find errors in software systems, in order fix bugs early and, therefore, to improve the overall quality of software systems. Anyhow, the cost of testing is high: it accounts for about 50% of the costs of a project. Automation of software testing is important in order to reduce the costs of testing without sacrificing the quality.
Quality of software Software systems are made of code. Code is a mean through which developers explain to computers what to do, but it is also a way to explain to other developers what they want computers to do. Indeed, in large projects, many developers modify the same pieces of code. If internal quality is degradated, it is more likely that future developers introduce bugs. Finding ways to keep internal quality of software high means to increase also the external quality of the software product.
I received my Ph.D. from the University of Molise, defending a thesis entitled "Automatically Assessing and Improving Code Readability and Understandability", supervised by Prof. Rocco Oliveto.
I received my Master's Degree in Computer Science from the University of Salerno, defending a thesis on Search Based Software Testing, supervised by Prof. Andrea De Lucia.
I received my Bachelor's Degree in Computer Science from the University of Molise, defending a thesis on Software Readability, supervised by Prof. Rocco Oliveto and Prof. Denys Poshyvanyk.
OCELOT (Optimal Coverage sEarch-based tooL for sOftware Testing) is a new test suite generation tool for C programs implemented in Java. Unlike previous tools for C programs, OCELOT automatically detects the input types of a given C function without requiring any specification of parameters. In addition, the tool handles the different data types of C, including structs and pointers and it is able to produce test suites based on the Check unit testing framework.
MyUnimol is a suite of software products addressed to students of University of Molise. The goal of MyUnimol is to deliver to the students a great visual experience about their academic career. MyUnimol is composed by:
Some online contents, typically accessed through a browser, are fully fledged applications (web applications). YouTube or Google Maps are examples of that. These webapps are self-consistent, and they usually work very well without standard browser features (e.g., bookmarks or history). qtws is the simplest web browser conceivable: it only provides the content of the page and, by default, three actions (back, reload and home), accessible through a contextual menu. Nothing else. qtws is specific for webapps, and it works with a single webapp at a time. Users that want to access Google Maps can open qtws with a configuration file specific for that app. The configuration file allows to personalize the user experience of the specific webapp, adding shortcuts to the contextual menu. qtws opens links not related to the webapp (e.g., the webpage of a restaurant) in the default system browser. In summary, qtws transforms webapps in desktop apps with no effort and it provides a consistent user experience.
Fork me on GitHub!
Despite the support offered at hardware and driver level, Linux lacks of a gesture handling system for trackpads. Gestures with two/three
(or more) fingers can drastically increase the user experience and the productivity. xSwipe was born with the aim of handling gestures on
the top of other trackpad gestures already implemented and working, such as natural scrolling.
I re-wrote the original (Perl) project in Ruby, trying to make it more maintainable and adaptable to different back-ends.
Fork me on GitHub!
Working with computers could be harmful! Constantly staring at the screen for hours can be stressful for the eyes. Eyesleep is a not-intrusive
program which helps the user to apply the 20-20-20 rule: every 20 minutes, look at something else (about 20 feet far) for 20 seconds.
Eyesleep can be stopped at any time (even though it is not good for eyes!) and users can temporarly delay the 20 seconds pause.
Fork me on GitHub!