My name is Andrea Caracciolo.
I am a software engineer with academic experience.
In the recent past, I developed tools and techniques for assessing the quality of a software system with regards to its specification. I'm highly interested in architectural design, software analysis and testing.

- email: mail at andrea-caracciolo.com
- mobile: +41 78 669 30 12
- skype: aef.caracciolo
- social: LinkedIn, Twitter

Work Experience

2012 – 2016 : Researcher - University of Bern, Switzerland
I developed tools and techniques for assessing the quality of software systems and supporting developers in maintenance activities.
  • Collaboration: I had frequent collaborations with software architects and developers working in medium-large Swiss companies. I performed a field-study with 14 professionals to identify requirements for a conformance checking solution. I validated my approach through multiple one-year-long case studies collaborating with several industrial organizations (e.g. an international consortium of vendors working on a product used by millions of users; a team of 30 developers working for one of the top-30 largest companies in Switzerland).
  • Leadership: I supervised 4 BSc/MSc students in the writing of their thesis. I was teaching assistant for a software engineering course and managed the planning and execution of multiple concurrent projects in a class of 30-50 students for 3 years.
  • Writing/Presenting: I wrote several research papers and presented my work at prominent international conferences. I taught several lectures in various university courses.
  • Concepts: software analysis, (meta-)modeling, requirements elicitation, data mining, OO design.
2007 – 2009 : Co-founder, Software Engineer - Neoinet Ltd., Italy
I co-founded Neoinet, a company selling web hosting solutions to 50-100 customers.
  • Collaboration: I discussed design alternatives and commercial strategies with the second co-founder. I managed customer relationships.
  • Leadership: I designed, implemented and automated core business processes.
  • Concepts: business model design, frontend/backend web development.

Education

2012 – 2016 : PhD in Computer Science - University of Bern, Switzerland
expected graduation date: 22 March 2016

Thesis: “A Unified Approach to Architecture Conformance Checking”.
  • Presentations: WICSA 2015 (academic conference), Die Mobiliar (industrial presentation)
  • The thesis proposes a cost-effective approach to architecture conformance checking. The approach consists of an extensible, declarative and empirically-grounded specification language and a corresponding interpreter which checks user-defined invariants through off-the-shelf analysis tools. The approach builds on several empirical studies and was validated in the context of two large industrial projects.
2009 – 2012 : MSc in Computer Science - Università degli Studi Milano-Bicocca, Italy      [GPA: summa cum laude]
Thesis: “A Web Application for Design Pattern Detection Tools Benchmarking” [italian].
  • Presentations: CSMR 2012 (academic conference)
  • The thesis consisted in developing a web platform for assessing the accuracy of existing design patterns detection techniques. To compare results produced by different tools, I designed a model for encoding design pattern instances and a distance metric based on that model.
2005 – 2009 : BSc in Computer Science - Università degli Studi Milano-Bicocca, Italy      [GPA: 95%]
2000 – 2005 : High School - Liceo Scientifico Statale Leonardo Da Vinci, Milano, Italy      [GPA: 89%]

Projects

Dictō + Probō
Dictō is a language that aims at supporting software architects in formalizing and testing prescriptive assertions on functional and non-functional aspects of a software system. Instead of dealing with multiple tool-specific formalisms, one can define several types of architectural constraints using one uniform, highly-readable, formal language. Rules can be automatically evaluated using Probō, which integrates widely-adopted off-the-shelf analysis tools. Our technique has been successfully integrated with SonarQube, Jenkins (live installation) and Teamcity (live installation).
  • Dictō website: Catalog of supported rules and user manual.
  • Preliminary study: An empirical analysis on the adoption of conformance checking solution in industrial organizations.
  • Industrial validation: The approach has been validated in the context of several industrial projects.
Marea
Marea is a tool that suggests optimal refactoring strategies for removing dependency cycles at package-level. This is done by simulating different evolutionary scenarios and evaluating their cost-effectiveness using a purpose-designed profit function.
  • Publication: A comprehensive description of the technique.
  • MSc thesis: An exhaustive description of the implementation.
Pangea
Pangea is a workbench that eases multi-language static analysis of software corpora by providing a repository of language-independent object model snapshots. Arbitrary complex structural analysis scripts can be run in batch on a large number of open source systems.
DPB
DPB is a benchmark platform for assessing the accuracy of current design patterns detection techniques. We designed a model for encoding design pattern instances and a distance metric for supporting comparison.
  • DPB website: actively maintained installation.
  • MSc thesis (italian): An exhaustive description of the project.

Publications

Online profiles: Google Scholar, dblp

2016
  1. Andrea Caracciolo, Mircea Lungu, Oskar Truffer, Kirill Levitin, and Oscar Nierstrasz. Automated Conformance Monitoring: Exploring the Path to Industrial Adoption. submitted for review. PDF 
  2. Andrea Caracciolo, Bledar Aga, Mircea Lungu, and Oscar Nierstrasz. Marea: a Semi-automatic Decision Support System for Breaking Dependency Cycles. to appear. PDF 
  3. Andrea Caracciolo, Mircea Lungu, Oskar Truffer, Kirill Levitin, and Oscar Nierstrasz. Evaluating an Architecture Conformance Monitoring Solution. to appear. PDF 
2015
  1. Andrea Caracciolo. A Unified Approach to Automatic Testing of Architectural Constraints. In Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on, 2 p. 871-874, ACM Press, 2015. DOI PDF 
  2. Andrea Caracciolo, Mircea Lungu, and Oscar Nierstrasz. A Unified Approach to Architecture Conformance Checking. In Proceedings of the 12th Working IEEE/IFIP Conference on Software Architecture (WICSA), p. 41-50, ACM Press, May 2015. DOI PDF 
  3. Andrea Caracciolo. On the Evaluation of a DSL for Architectural Consistency Checking. In Extended Abstracts of the Eighth Seminar on Advanced Techniques and Tools for Software Evolution (SATToSE 2015), p. 55—57, July 2015. PDF 
  4. Nevena Milojković, Andrea Caracciolo, Mircea Lungu, Oscar Nierstrasz, David Röthlisberger, and Romain Robbes. Polymorphism in the Spotlight: Studying its Prevalence in Java and Smalltalk. In Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension, p. 186—195, IEEE Press, 2015. Published. DOI PDF 
2014
  1. Andrea Caracciolo, Mircea Lungu, and Oscar Nierstrasz. How Do Software Architects Specify and Validate Quality Requirements?. In European Conference on Software Architecture (ECSA), Lecture Notes in Computer Science 8627 p. 374—389, Springer Berlin Heidelberg, August 2014. DOI PDF 
  2. Andrea Caracciolo, Mircea Lungu, and Oscar Nierstrasz. Dicto: A Unified DSL for Testing Architectural Rules. In Proceedings of the 2014 European Conference on Software Architecture Workshops, ECSAW '14 p. 21:1—21:4, ACM, New York, NY, USA, 2014. DOI PDF 
  3. Andrea Caracciolo, Andrei Chiş, Boris Spasojević, and Mircea Lungu. Pangea: A Workbench for Statically Analyzing Multi-Language Software Corpora. In Source Code Analysis and Manipulation (SCAM), 2014 IEEE 14th International Working Conference on, p. 71—76, IEEE, September 2014. DOI PDF 
  4. Andrea Caracciolo, Mircea Lungu, and Oscar Nierstrasz. Dicto: Keeping Software Architecture Under Control. In ERCIM News 99, October 2014. URL 

2012
  1. Francesca Arcelli, Andrea Caracciolo, and Marco Zanoni. DPB: A benchmark for design pattern detection tools. In Software Maintenance and Reengineering (CSMR), 2012 IEEE 14th European Conference on, p. 235—244, IEEE, March 2012. DOI PDF
  2. Francesca Arcelli, Andrea Caracciolo, and Marco Zanoni. A Benchmark for Design Pattern Detection Tools: a Community Driven Approach. In ERCIM News 88, January 2012. URL

2010
  1. Francesca Arcelli, Marco Zanoni, and Andrea Caracciolo. A benchmark platform for design pattern detection. In International Conferences on Pervasive Patterns and Applications (PATTERNS), ThinkMind Digital Library, November 2010. PDF

Teaching

Taught lectures and labs:

Academic/Industrial Presentations: Supervised MSc students: Supervised BSc students:

Copyright 2016, Andrea Caracciolo