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

Alan M. Turing,
Letter to Robin Gandy (link), 1954
Andrea Mocci in Brussels

I am a Postdoctoral Researcher in the REVEAL group headed by Prof. Dr. Michele Lanza. My general research interests include software behavioral modeling, testing and analysis, lightweight formal methods, program comprehension, software design and mining software repositories. I got my B.Sc., M.Sc. and PhD at Politecnico di Milano, where I have been advised by Prof. 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 worked on advances of Alloy and the Alloy analyzer involving partial instances and incremental solving.

For more details you can check my full cv.

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

Software Behavior

Software often lacks formal specifications, which can be useful to support comprehension, verification and validation . In this context, my research investigated approaches to synthesize behavior models of software components implemented in Java. My work featured a couple of novel aspects, and in particular the inference of specifications which do not violate information hiding , like algebraic specifications, and the use of such inferred specifications for validation activities .

Mining Development Artifacts

Mining development artifacts is an active area of research that studies how to extract knowledge through analysis and analytics. My research has considered two complementary areas:
  • the design and quality inspection of code artifacts ;
  • mining unstructured data and non-software artifacts .

Analyzing Developer Behavior

Techniques to mine developer behavior can be used to understand how the UI and the paradigms of the IDE influence developer productivity. I am co-advising a PhD student (Roberto Minelli) on this topic, and we investigated how interaction data can be used to support visual analytics of developer behavior , quantify development activities , and improve IDEs .



Role Conference
PC member (TD Track) FSE 2016
PC co-chair (NIER/TD Track) VISSOFT 2016
PC member (TD Track) ICSME 2016
PC member (Main Track) MSR 2016
PC member (Main Track) IWESEP 2016
PC member (Main Track) SANER 2016
PC member (NIER/TD Track) VISSOFT 2015
PC member (TD Track) ESEC/FSE 2015
PC memberICE 2015
PC member (ACM SRC)ICSE 2015
PC member Score-it 2015
PC member MUD 2014

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

Your first 10,000 photographs are your worst.

Henri Cartier-Bresson



Politics & Human Rights

Flying & Traveling

#klm #kl670 #landing #timelapse #amsterdam #schiphol #airbus #a330 #dfw #dallas #tx

A video posted by andreamocci (@andreamocci) on