In June 2013, I joined the collaboration and communication group in
GE Global Research
in San Ramon, CA. I am currently working in the development of
next generation collaboration platforms and applications for the
From 2009-2013, I was part of the the Software Architecture Analysis and Improvement Group from Siemens Corporate Research in Princeton, NJ, where I developed novel platforms and applications in the areas of Software Quality Assurance, Model-Driven Testing, and Workflow Automation.
On Summer 2009 I earned my Ph.D. degree in Software Engineering from the Department of Informatics of the Donald Bren School of Information and Computer Sciences at University of California, Irvine. The members of my dissertation committee were David Redmiles (advisor), André van der Hoek and Crista Lopes.
I also hold a M.Sc. degree in Information and Computer Sciences from UC, Irvine; and both M.Sc. and B.Sc. in Computer Engineering from the Institute of Computing at UNICAMP - University of Campinas, Brazil.
As part of my PhD dissertation, under the supervision of Dr. David Redmiles, I studied the versatility trade-offs of developing, reusing and evolving publish/subscribe infrastructures in support of the requirements of different applications.
Versatility is an important software quality that enables software to serve multiple purposes in a usable and useful way. As such, versatility is central to middleware in general and publish/subscribe infrastructures specifically. The development of versatile software, however, is difficult. It must achieve a favorable balance between different software qualities including: usability, reusability, flexibility and performance. Developers adopt different strategies in the design of versatile software including: modularization, stabilization, variation, generalization and specificity. By combining these strategies, different infrastructures can be developed, for example: minimal core, one-size-fits-all, coordination languages and flexible infrastructures. In particular, we developed YANCEES a flexible infrastructure that supports versatilty through configurability, extensibility and automation.
Little research has focused on comparing the usability, reusability and flexibility trade-offs implicit to existing versatility approaches. In my dissertation work, I present the results of a multi-dimensional quantitative and qualitative empirical study that analyzes the costs and benefits of existing versatility approaches in the publish/subscribe domain. These results are summarized in the form of guiding principles which goal is to better support application developers in choosing the best design approaches in the development of middleware; and infrastructure consumers in selecting the most appropriate infrastructure to support their applications.
My Dissertation is available as an ISR technical report.