Krzysztof Czarnecki, Ph.D., P.Eng.

Professor of Electrical and Computer Engineering
I work in the area of Generative Software Development. See the overview paper for an introduction.

Short biography

Krzysztof Czarnecki is a Professor of Electrical and Computer Engineering at the University of Waterloo. Before coming to Waterloo, he was a researcher at DaimlerChrysler Research (1995-2002), Germany, focusing on improving software development practices and technologies in enterprise, automotive, and aerospace domains. He co-authored the book on "Generative Programming" (Addison- Wesley, 2000), which deals with automating software component assembly based on domain-specific languages. While at Waterloo, he held the NSERC/Bank of Nova Scotia Industrial Research Chair in Requirements Engineering of Service-oriented Software Systems (2008-2013) and has worked on a range of topics in model-driven systems and software engineering, including product lines engineering, design synthesis, variability modeling, model transformation, and domain-specific languages. He received the Premier's Research Excellence Award in 2004 and the British Computing Society in Upper Canada Award for Outstanding Contributions to IT Industry in 2008.


For students


Current Projects

Past Projects



  • MoDELS'09 conference chair
  • Bank of Nova Scotia / NSERC Industrial Research Chair (2008-2013)


Conference Paper
She, S., R. Lotufo, T. Berger, A. Wąsowski, and K. Czarnecki, "Variability Model of the Linux Kernel", Fourth International Workshop on Variability Modeling of Software-intensive Systems (VaMoS 2010), Linz, Austria, 2010. [pdf]
Berger, T., S. She, R. Lotufo, A. Wąsowski, and K. Czarnecki, "Variability Modeling in the Real: A Perspective from the Operating Systems Domain", 25th IEEE/ACM International Conference on Automated Software Engineering, 09/2010. [pdf][pdf]
Guo, J., K. Czarnecki, S. Apel, N. Siegmund, and A. Wąsowski, "Variability-Aware Performance Prediction: A Statistical Learning Approach", 28th IEEE/ACM International Conference on Automated Software Engineering (ASE), Silicon Valley, California, USA, IEEE, 11/2013. [pdf][pdf]
Czarnecki, K., and K. Pietroszek, "Verifying feature-based model templates against well-formedness OCL constraints", 5th international conference on Generative programming and component engineering - GPCE '06, Portland, Oregon, USA, ACM Press, pp. 211, 2006. [pdf]
Berger, T., D. Lettner, J. Rubin, P. Grünbacher, A. Silva, M. Becker, M. Chechik, and K. Czarnecki, "What is a Feature? A Qualitative Study of Features in Industrial Software Product Lines", 19th International Software Product Line Conference (SPLC), 2015. [pdf][pdf]
Branco, M., Y. Xiong, K. Czarnecki, A. Lau, and P. Coulthard, "Friendly Change Extraction for BPMN Workflows", IBM TechConnect, Markham, ON, Canada, IBM, 05/2011. [pdf]
Branco, M., Y. Xiong, K. Czarnecki, A. Lau, P. Coulthard, J. Kuester, and H. Voelzer, "Quick Consistency Management in BPM", IBM CASCON 2011, 2011.
Book Chapter
Czarnecki, K., N. J. Foster, Z. Hu, R. Lämmel, A. Schurr, and J. F. Terwilliger, "Bidirectional Transformations: A Cross-Discipline Perspective, GRACE Meeting Notes, State of the Art, and Outlook", Theory and Practice of Model Transformations, Second International Conference, ICMT 2009, Zurich, Switzerland, June 29-30, 2009. Proceedings, vol. 5563, Berlin, Heidelberg, Springer, pp. 260 - 283, 2009. [pdf]
Czarnecki, K., and U. Eisenecker, "Components and Generative Programming", Software Engineering — ESEC/FSE ’99, vol. 1687, Berlin, Heidelberg, Springer, pp. 2 - 19, 1999. [pdf]
Antkiewicz, M., and K. Czarnecki, "Design Space of Heterogeneous Synchronization", Generative and Transformational Techniques in Software Engineering II, International Summer School, GTTSE 2007, Braga, Portugal, July 2-7, 2007, Revised Papers, vol. 5235, Berlin, Heidelberg, Springer, pp. 3 - 46, 2008. [pdf]
Czarnecki, K., "Domain Engineering", Encyclopedia of Software Engineering, Second Edition, 2002.
Czarnecki, K., T. O'Donnell, John, J. Striegnitz, and W. Taha, "DSL Implementation in MetaOCaml, Template Haskell, and C++", Domain-Specific Program Generation, International Seminar, Dagstuhl Castle, Germany, March 23-28, 2003, Revised Papers, vol. 3016, Berlin, Heidelberg, Springer-Verlag, pp. 51-72, 2003.
Czarnecki, K., J-M. Favre, M. Gogolla, and T. Mens, "Essentials of the 4th UML/MoDELS Workshop in Software Model Engineering (WiSME’2005)", Satellite Events at the MoDELS 2005 Conference, vol. 3844, Berlin/Heidelberg, Springer-Verlag, pp. 151 - 158, 2005.
Cleenewerck, T., K. Czarnecki, J. Striegnitz, and M. Völter, "Evolution and Reuse of Language Specifications for DSLs (ERLS)", Object-Oriented Technology. ECOOP 2004 Workshop Reader, vol. 3344, Berlin / Heidelberg, Springer-Verlag, pp. 187-201, 2005.
Czarnecki, K., K. Østerbye, and M. Völter, "Generative Programming", Object-Oriented Technology ECOOP 2002 Workshop Reader, vol. 2548, Berlin, Heidelberg, Springer-Verlag, pp. 15 - 29, 2002.
Barth, B., G. Butler, K. Czarnecki, and U. Eisenecker, "Generative Programming", Object-Oriented Technology, vol. 2323, Berlin, Heidelberg, Springer Berlin Heidelberg, pp. 135 - 149, 2001.
Czarnecki, K., U. Eisenecker, R. Gluck, D. Vandevoorde, and T. Veldhuizen, "Generative Programming and Active Libraries", Generic Programming, vol. 1766, Berlin, Heidelberg, Springer-Verlag, pp. 25 - 39, 2000.
Czarnecki, K., "Generative Programming and Software System Families, Abstract of Invited Talk", Semantics, Applications, and Implementation of Program Generation, vol. 2196, Berlin, Heidelberg, Springer, pp. 1 - 1, 2001.
Czarnecki, K., "Overview of Generative Software Development", Unconventional Programming Paradigms (UPP) 2004, 15-17 September, Mont Saint-Michel, France, Revised Papers, vol. 3566: Springer-Verlag, pp. 326-341, 2004. [pdf]
Czarnecki, K., and U. Eisenecker, Generative Programming: Methods, Tools, and Applications, , Reading, MA, USA, Addison-Wesley, pp. 864, 2000.