andrea mocci

am at csail dot mit dot edu

Postdoctoral Research Fellow
Progetto Rocca Postdoctoral Fellow
Software Design Group


I am a Roberto Rocca Postdoctoral Fellow at Software Design Group. My general research interests include software behavioral modeling, testing and analysis, with particular focus on lightweight formal methods. I got my B.Sc., M.Sc. and PhD at Politecnico di Milano, where I have been advised by professor Carlo Ghezzi of deepse group.

During my PhD, I developed a technique to model, recover and validate software specifications from a behavioral point of view. If you are interested in my work, you can check my publications and the homepage of my technique spy. I mainly contributed to the ERC Grant Sms-Com and to the S-Cube European Network of Excellence.

During my PhD I also enjoyed teaching a lot. I have been TA for many computer science courses, from introductory courses to programming to theoretical computer science and algorithms.

In 2011, I joined the Software Design Group at MIT CSAIL with a scholarship paid by the Roberto Rocca foundation. I am currently working on potential advances of Alloy and the Alloy analyzer.

For more details you can check my full cv or go on reading this page.


Science is a differential equation.
Religion is a boundary condition.

~ Alan Turing,
Letter to Robin Gandy (link), 1954

Jackson's Rules of Optimization:
Rule 1. Don't do it.
Rule 2 (for experts only). Don't do it yet—that is, not until you have a perfectly clear and unoptimized solution.

~ Michael A. Jackson

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. It demands the same skill, devotion, insight, and even inspiration as the discovery of the simple physical laws which underlie the complex phenomena of nature.

~ Sir C.A.R. Hoare,
Turing Award Lecture, 1980

We appreciate our debt to electrical engineering, without which there would be no computers. Indeed, computer science is to electrical engineering as the art of making love is to the art of making beds.

~ Bertrand Meyer,
40 Years of Soft.Eng. @ ICSE 2008


You can also check my pages on dblp, microsoft academics and google scholar.

ongoing work: submitted papers

If you're interested in any of these papers, please contact me.

  • (S1) Carlo Ghezzi, Andrea Mocci. From Behavioral Equivalence Models to Intensional Specifications of Software Engineering Artifacts.
  • (S2) Carlo Ghezzi, Andrea Mocci, Mario Sangiorgio. Eliciting and Validating Component Interaction through Behavior Model Synthesis.
  • (S3) Andrea Mocci, Manuel Alcino Cunha, Daniel Jackson. Partial Instances for free!.
  • (S4) Alberto Bacchelli, Anthony Cleve, Andrea Mocci and Michele Lanza. Recovering Structured Data from Natural Language Artifacts for Software Analysis (Submitted to IEEE Transaction on Software Engineering)
  • (J1) Andrea Mocci, Mario Sangiorgio. Detecting component changes at run time with behavior models (new, doi). Springer Computing, pages 1–31, 2012.
  • (C1) Carlo Ghezzi, Andrea Mocci, and Mattia Monga. Synthesizing intensional behavior models by graph transformation. In 31st International Conference on Software Engineering (ICSE 2009), pages 430–440, 2009. Acceptance rate: 12%;
  • (C2) Carlo Ghezzi, Andrea Mocci, and Guido Salvaneschi. Automatic cross validation of multiple specifications: A case study. In Fundamental Approaches to Software Engineering, 13th International Conference, FASE 2010, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2010, Paphos, Cyprus, March 20-28, 2010. Proceedings, pages 233–247, 2010. Acceptance rate: 25%.
  • (C3) Luigi Cardamone, Carlo Ghezzi, and Andrea Mocci. Dynamic synthesis of program invariants using genetic programming. In 2011 IEEE Congress on Evolutionary Computation (CEC 2011), 2011.
  • (C4) Alberto Bacchelli, Anthony Cleve, Michele Lanza, and Andrea Mocci. Exploiting unstructured system artifacts for structured software analysis. In ASE 2011: 26th IEEE/ACM International Conference On Automated Software Engineering, 2011. (short paper);
  • (C5) Carlo Ghezzi and Andrea Mocci. Behavioral Validation of JFSL Specifications Through Model Synthesis (doi). In 34th International Conference on Software Engineering (ICSE 2012).
workshops & demos
  • (W1) Carlo Ghezzi, Andrea Mocci, and Mattia Monga. Efficient recovery of algebraic specifications for stateful components. In Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting, IWPSE ’07, pages 98–105, New York, NY, USA, 2007. ACM.
  • (W2) Luciano Baresi, Carlo Ghezzi, Andrea Mocci, and Mattia Monga. Using graph transformation systems to specify and verify data abstractions. In Claudia Ermel, Reiko Heckel, and Juan de Lara, editors, Proceedings of the seventh international workshop on graph transformation and visual modeling techniques (GT-VMT 2008), volume X of Electronic Communications of the EASST, pages 277–290. EASST, European Association of Software Science and Technology, 2008.
  • (W3) Carlo Ghezzi and Andrea Mocci. Behavior model based component search: an initial assessment. In Proceedings of 2010 ICSE Workshop on Search-driven Development: Users, Infrastructure, Tools and Evaluation, SUITE ’10, pages 9–12, New York, NY, USA, 2010. ACM.
  • (W4) Carlo Ghezzi, Andrea Mocci, and Mario Sangiorgio. Runtime monitoring of functional component changes with behavior models (best paper award). In 6th International Workshop on Models@run.time at the ACM/IEEE 14th International Conference on Model Driven Engineering Languages and Systems (MODELS 2011), Models@run.time 2011, pages 37–48, 2011.
    Carlo Ghezzi, Andrea Mocci, and Mario Sangiorgio. Runtime monitoring of functional component changes with behavior models. In MODELS 2011 Workshops proceedings, LNCS, 2012.
  • (W5) Carlo Ghezzi, Andrea Mocci, and Mario Sangiorgio. Runtime monitoring of component changes with spy@runtime. In Proc. 34th International Conference on Software Engineering (ICSE 2012), Formal Demonstration, 2012.
technical reports
  • (TR1) Salima Benbernou, Ivona Brandic, Manuel Carro, Marco Comuzzi, Elisabetta Di Nitto, Maha Driss, Julia Hielscher, Raman Kazhamiakin, Gabor Kecskemeti, Attila Kertesz, Kyriakos Kritikos, Andreas Metzger, Hassina Meziane, Andrea Mocci, Barbara Pernici, Pierluigi Plebani, Sagar Sen, Fabrizio Silvestri, and Branimir Wetzstein. Survey of quality related aspects relevant for service-based applications. In Technical report, Deliverable PO-JRA-1.3.1, S-Cube Consortium, July 2008, 2008.
  • (TR2) Elisabetta Di Nitto, Valentina Mazza, and Andrea Mocci. Collection of industrial best practices, scenarios and business cases. In Technical report, Deliverable CD-IA-2.2.2, S-Cube Consortium, May 2009, 2009.
  • (TR3) Andrea Mocci. Efficient code clone detection by leveraging parsing techniques. In Technical report, Dipartimento di Elettronica e Informazione, Politecnico di Milano, November 2009, 2009.

Probably because of the distinctive nuragic culture of my homeland, Sardinia, I enjoy archeology in all its aspects. The picture above depicts Su Nuraxi of Barumini, a UNESCO World Heritage site.


I'm an hobbyist photographer, enjoying mainly portraits and landscapes. I love both catching the moments and designing a composition. You may want to check my 500px page.


Influenced by the dramatic happenings that changed the italian political system in the early '90s, I early developed interests in all sort of political topics, from both an economical and a social point of view. Considering myself a libertarian social-democratic, my ideas have little or no representation among italian parties.

Copyright © 2009-2011 Andrea Mocci. Design by Not Just A Grid