Marcilio Mendonca, PhD
 David R. Cheriton School of Computer Science
 University of Waterloo
 Waterloo, Ontario
 Canada

Computer Systems Group

 


Hi There!

 

Welcome to my academic web space in the Computer Systems Group (CSG) at the University of Waterloo where I completed my Doctoral degree under the supervision of Prof. Donald Cowan. I was also with the Generative Software Development Lab (GSDL) led by Prof. Krzysztof Czarnecki.

 

In the following, I describe a bit of my research work. If you wish to get in touch please drop me a message. For further information please visit my personal website at marcilio-mendonca.comHere is my CV and PhD Thesis just in case.

 

Video: The OOPSLA Band at OOPSLA 2007 in Montreal. I wish I was Neil Peart but I am not, so I better focus on writing (good) papers.

Game: Do you like pacman? If so, you might want to check this version of the game I created for my daughters.

 


DOCTORAL RESEARCH OVERVIEW

 

In Software Product Lines (SPLs), a feature e model can be used to represent the similarities and differences within a family of software systems. This allows describing the systems derived from the product line as a unique combination of the features in the model. What makes feature models particularly appealing is the fact that the constraints in the model prevent incompatible features from being part of the same product.

 

Despite the benefits of feature models, constructing and maintaining these models can be a laborious task especially in product lines with a large number of features and constraints. As a result, the study of automated techniques to reason on feature models has become an important research topic in the SPL community in the recent years. Two techniques, in particular, have significant appeal for researchers: SAT solvers and Binary Decision Diagrams (BDDs). Both techniques have been applied successfully for over four decades now to tackle many practical combinatorial problems in various domains. Currently, several approaches have proposed the compilation of feature models to specific logic representations to enable the use of SAT solvers and BDDs.

 

In my research, I argue that several critical issues related to the use of SAT solvers and BDDs have been consistently neglected. For instance, satisfiability is a well-known NP-complete problem which means that, in theory, a SAT solver might be unable to check the satisfiability of a feature model in feasible time. Similarly, it is widely know that the size of BDDs can become intractable for large models. At the same time, we currently do not know precisely whether these are real issues when feature models, especially large ones, are compiled to SAT and BDD representations.

 

Therefore, my research provides a significant step forward in the state-of-the-art by examining deeply many relevant properties of the feature modeling domain and the mechanics of SAT solvers and BDDs and the sensitive issues related to these techniques when applied in that domain. Specifically, it provides more accurate explanations for the space and/or time (in)tractability of these techniques in the feature modeling domain, and enhance the algorithmic performance of these techniques for reasoning on feature models. The contributions of my work include the proposal of novel heuristics to reduce the size of BDDs compiled from feature models, several insights on the construction of efficient domain-specific reasoning algorithms for feature models, and the discussion of empirical studies to evaluate the efficiency of SAT solvers in handling very large feature models.

 

For more details about my research project including tool support Click here.

 


PUBLICATIONS (some also listed in the DBLP website)

Refereed

PhD Thesis:

Technical Reports

  • M. Mendonca, D.D. Cowan: Support for Collaborative Feature-Based Product Configuration in Software Product Lines, Technical Report CS-2007-030, School of Computer Science, University of Waterloo, August 2007, Waterloo, Ontario, Canada  (download)
  • M. Mendonca, T. Oliveira, D.D. Cowan: Collaborative and Coordinated Product Configuration, Technical Report CS-2006-015, School of Computer Science, University of Waterloo, May 2006, Waterloo, Ontario, Canada  (download)
  • M. Mendonca, T. Oliveira, P. Alencar, D.D. Cowan: Assisting Framework Instantiation: Enhancements to Process-Language-based Approaches, Technical Report CS-2005-025, School of Computer Science, University of Waterloo, September 2005, Waterloo, Ontario, Canada  (download)

Posters

  • OOPSLA Poster (ppt), 2006: Towards a Framework for Collaborative and Coordinated Product Configuration
  • OOPSLA Poster (ppt), 2005: Assisting Aspect-Oriented Framework Instantiation: Towards Modeling, Transformation and Tool Support

Masters Dissertation:

  • M. Mendonca: The Inclusion of Design Patterns in a Visual CASE Tool for Object-Oriented Software Construction, Masters dissertation - Pontifical Catholic University of Rio de Janeiro (PUC-Rio), February 1996, Rio de Janeiro, Rio de Janeiro, Brazil. Supervisor: Sergio Eduardo Rodrigues de Carvalho (in memoriam)

Undergraduate Publications

  • M. Mendonca: Animator - An Application for Meteorological Images Animation, III Encontro de Iniciação à Docência, 1993, Federal University of Ceara, Fortaleza, Ceara, Brazil.
  • M. Mendonca: A Backtracking Algorithm for Chasing Moveable Objects, II Encontro de Iniciação à Docência, 1992, Federal University of Brazil, Fortaleza, Ceara, Brazil.  

CANADIAN AWARDS

 

- Doctoral Thesis Completion Award, Waterloo, Canada, May 2008
Graduate Studies Office, University of Waterloo
For students about to complete the PhD program with significant research accomplishments

 

- David R. Cheriton Scholarship, Canada, May 2007 – May-2008
School of Computer Science, University of Waterloo
Reserved for the School’s very top graduate students (read more)

 


TEACHING ASSISTANTSHIP

 

University of Waterloo, Waterloo-ON, Canada
School of Computer Science

 

- CS 124-DE – Introduction to Software Development, Fall 2004, Winter 2005
     Level: under-graduate course - distance education course
     Main duties: creating marking scheme, marking the projects, assisting students
     Topics: Java language, documenting and testing programs in Java, Good O.O. design

- CS 126-DE – Introduction to Software Development, Spring 2007
     Level: under-graduate course - distance education course
     Main duties: creating marking scheme, marking the projects, assisting students
     Topics: Java language, documenting and testing programs in Java, Good O.O. design

- CS 132 – Principles of Program Design, Spring 2004, Spring 2005
     Level: under-graduate course (computer science)
     Main duties: marking assignments and exams, and proctoring
     Topics: Java language, documenting and testing programs in Java, Good O.O. design

- CS 131 - Introduction to Object-Oriented Programming, Winter 2004, Spring 2004
     Level: under-graduate course (mathematics)
     Main duties: marking assignments and exams, and proctoring
     Topics: Java language, documenting and testing programs in Java, Good O.O. design

- CS 133 - Developing Programming Principles, Fall 2003, Fall 2005, Fall 2006
     Level: under-graduate course (computer science)
     Main duties: assisting laboratory sessions, marking assignments/exams and proctoring
     Topics: Java language, documenting and testing programs in Java, Good O.O. design

- CS 134 – Principles of Computer Science, Winter 2006
     Level: under-graduate course (computer science)
     Main duties: assisting laboratory sessions, marking assignments/exams and proctoring
     Topics: Java language, documenting and testing programs in Java, Good O.O. design

- CS 246 – Principles of Computer Science, Spring 2006, Winter 2007
    Level: under-graduate course (computer science)
    Main duties: marking assignments/exams and proctoring
    Topics: UML, design patterns, C++


Ph.D.  COURSE  REQUIREMENT

 

* (CS 846)-Collaborative Software Composition (800-level course)
   University of Waterloo, Winter 2007.
   Prof. Donald Cowan
   Outline:
   References:
    - Paper-based course, no textbook.

 

* (CS 886)-Multi-Agent Systems for Real-World Applications (800-level course)
   University of Waterloo, Spring 2004.
   Prof. Robin Cohen
   Outline:
    - Agents in e-commerce
    - Trading Agent Competition (TAC Classic)
    - RobocupRescue Simulation Competition
    - Adjustable Autonomy
   References:
    - Paper-based course, no textbook.

 

* (CS 741)-Non-Traditional Databases (700-level course)
   University of Waterloo, Winter 2004.
   Prof. Frank Tompa
   Outline:
    - XMLXML Schema, Streaming XML, SOAP
    - XML Query Languages, focus on XQuery
    - Document Retrieval, Data Store and Indexing
    - Transformation
    - Query Processing and Optimization
    - Updates and Transaction Management
   References:
    - XQuery from the Experts: A Guide to the W3C XML Query Language

 

* (CS 654)-Distributed Systems (600-level course)
   University of Waterloo, Fall 2003.
   Prof. Steve MacDonalds
    Outline:
    - Introduction to Distributed Systems
    - Communication (networks)
    - Naming
    - Synchronization
    - Consistency and Replication
    - Fault Tolerance
    - Distributed File Systems
    References:
        Distributed Systems, Principles and Paradigms
        Authors: Andrew S. Tanenbaum & Maarten van Steen


Last update: January, 2009 by Marcilio Mendonca.