Krzysztof Czarnecki, PEng

Krzysztof Czarnecki, PEng
Location: E7 5428
Phone: 519-888-4567 x40249


Krzysztof Czarnecki is a Professor in the Electrical and Computer Engineering department and is cross-appointed to the School of Computer Science. He is also the head of the Generative Software Lab at the University of Waterloo.
Professor Czarnecki’s research specializes in generative software development. His expertise includes model-driven software engineering, including software-product lines and variability modeling, consistency management and bi-directional transformations, and example-driven modeling.
He is also the NSERC Bank of Nova Scotia Industrial Research Chair in Requirements Engineering of Service-Oriented Software Systems. He co-authored the book on “Generative Programming” (Addison- Wesley, 2000), which deals with automating software component assembly based on domain-specific languages. Professor Czarnecki received the Premier’s Research Excellence Award in 2004 and the British Computing Society in Upper Canada Award for Outstanding Contributions to the IT Industry in 2008.

Research Interests

  • Generative programming, Model-based development, Software system families and product lines, Software design, Computer Engineering, Software Engineering, Autonomous and connected car, Automotive, Cybersecurity, Infrastructure integrity


  • 1999, Doctorate Computer Science, Technical University of Ilmenau, Germany
  • 1995, Master of Science Computer Science, Technical University of Ilmenau, Germany
  • 1994, Bachelor of Science (BS) Computer Science (Diplom-Inf), California State University, United States


  • ECE 493 - Special Topics in Electrical and Computer Engineering
    • Taught in
  • ECE 495 - Autonomous Vehicles
    • Taught in
  • ECE 651 - Foundations of Software Engineering
    • Taught in
  • SE 390 - Design Project Planning
    • Taught in

* Only courses taught in the past 5 years are displayed.

Selected/Recent Publications

  • Diskin, Zinovy and Gholizadeh, Hamid and Wider, Arif and Czarnecki, Krzysztof, A three-dimensional taxonomy for bidirectional model synchronization, Journal of Systems and Software, 298, 2016
  • Bright, Curtis and Ganesh, Vijay and Heinle, Albert and Kotsireas, Ilias and Nejati, Saeed and Czarnecki, Krzysztof, MathCheck2: Combining SAT and CAS, , , 2016
  • Bright, Curtis and Ganesh, Vijay and Heinle, Albert and Kotsireas, Ilias and Nejati, Saeed and Czarnecki, Krzysztof, MathCheck2: A SAT+ CAS Verifier for Combinatorial Conjectures, , , 2016
  • Passos, Leonardo and Teixeira, Leopoldo and Dintzner, Nicolas and Apel, Sven and Wąsowski, Andrzej and Czarnecki, Krzysztof and Borba, Paulo and Guo, Jianmei, Coevolution of variability models and related software artifacts, Empirical Software Engineering, 1, 2015
  • Terra, Ricardo and Valente, Marco Tulio and Czarnecki, Krzysztof and Bigonha, Roberto S, A recommendation system for repairing violations detected by static architecture conformance checking, Software: Practice and Experience, 315, 2015

In The News

Graduate studies