Position: Postdoctoral Fellow

Current Institution: University of Toronto

Abstract:

Software Product Lines allow developers to take advantage of similar products or systems that share a common core and differ in a set of features (units of functionality). Therefore, a product can be defined by the core and the set of features it contains.

Two main directions to model and analyze software product lines are the annotative and the compositional approach. In the annotative approach, all possible features are represented in a succinct model (called 150% representation) and a particular product is obtained by removing any element of the model belonging to a feature that does not belong to that product. In the compositional approach, the product is obtained by composing the core and the desired features.

The advantage of annotative approaches is that they allow analyzing all products efficiently, while compositional approaches are better for analyzing feature interactions. An example of an undesired feature interaction in a telephony system is that of having both Call Forwarding and Call waiting. Then, when the line is busy, it is not clear how the system will behave.

There are, in addition, several works combining the approaches so that features are defined modularly and then composed to build a 150% representation of the system. This allows both reasoning about the features modularly and about every possible product by taking advantage of all their shared behavior. However, a unique composition operator is given, and any additional constraints related to where or how the feature should be composed in order to avoid interactions are tangled with the behavior definition of the feature. This prevents feature reuse across different systems. In our work we reason about different composition choices as first-class entities that allow more precise reasoning. In this talk, we describe several composition operators and show how to use them to detect feature interactions.

Bio:
I am a postdoctoral fellow at the Department of Computer Science at the University of Toronto, working with Prof. Marsha Chechik. My main research interests are in the use of compositional techniques for software analysis, including modular specifications, verification, interaction detection, etc.

I completed my Ph.D. in Computer Science under the supervision of Prof. Shmuel Katz at the Department of Computer Science, Technion, Israel. My dissertation was on “Compositional Verification of Events and Responses”.

I have studied at the Department of Computer Science, Universidad de Buenos Aires, Argentina where I have obtained a Licentiate in Computer Science degree. My thesis was titled “The equivalence between FO(IFP) and the class B” under the supervision of Rafael Grimson and Guillermo Martínez.