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.

News

For students

Projects

Current Projects

Past Projects

Tools

Activities

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

Publications

2002
Czarnecki, K., T. Bednasch, P. Unger, and U. Eisenecker, "Generative Programming for Embedded Software: An Industrial Experience Report", First ACM SIGPLAN/SIGSOFT International Conference on Generative Programming and Component Engineering (GPCE’02), Lecture Notes in Computer Science, vol. 2487, Pittsburgh, USA, Springer-Verlag, pp. 156 - 172, 2002.
2001
Eisenecker, U., and K. Czarnecki, "Software System Families and Active Libraries – Visions for the Next Decade", Dagstuhl Seminar 01161 Product Family Development, Germany, Dagstuhl Castle, 04/2001.
Eisenecker, U., F. Blinn, and K. Czarnecki, "Mixin-Based Programming in C++: A solution to the constructor problem", Dr. Dobb's Journal, pp. 111-112, 01/2001.
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., "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.
2000
Eisenecker, U., F. Blinn, and K. Czarnecki, "A Solution to the Constructor-Problem of Mixin-Based Programming in C++", GCSE’2000 Workshop on C++ Template Programming, Erfurt, Germany, 10/2000.
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., and U. Eisenecker, Generative Programming: Methods, Tools, and Applications, , Reading, MA, USA, Addison-Wesley, pp. 864, 2000.
Czarnecki, K., and U. Eisenecker, "Separating the Configuration Aspect to Support Architecture Evolution", ECOOP’2000 Workshop on Aspects and Dimensions of Concerns, Sophia Antipolis and Cannes, France, 2000.
Czarnecki, K., and U. Eisenecker, "Synthesizing objects", Concurrency - Practice and Experience, vol. 12, no. 14, pp. 1347-1377, 2000. [pdf]
1999
Czarnecki, K., and U. Eisenecker, "Components and Generative Programming", Software Engineering — ESEC/FSE ’99, vol. 1687, Berlin, Heidelberg, Springer, pp. 2 - 19, 1999. [pdf]
Czarnecki, K., and U. Eisenecker, "Generative and Component-Based Software Engineering, First International Symposium, GCSE’99, Erfurt, Germany, September 28–30, 1999, Revised Papers", Lecture Notes in Computer Science, vol. 1799/2000, Berlin / Heidelberg, Springer-Verlag, 1999.
Czarnecki, K., and U. Eisenecker, "Synthesizing Objects", ECOOP’ 99 — Object-Oriented Programming, vol. 1628, Lisbon, Portugal, Springer-Verlag, pp. 18 - 42, 1999. [pdf]
1998
Breymann, U., K. Czarnecki, and U. Eisenecker, "Generative Components: One Step Beyond Generic Programming", Dagstuhl Seminar 9817 Generic Programming, Germany, Dagstuhl Castle, 04/1998.
1997
Kleinmann, K., M. Jungmann, W. Kopf, and K. Czarnecki, "Domain Engineering and Infrastructural Support for Software Reuse in Postal Automation", Smalltalk and Java in Industry and Academia – STJA’97, Erfurt, Germany, 09/1997.
Eisenecker, U., and K. Czarnecki, "Generative Programming", 42nd International Colloquium of the Technical University of Ilmenau, 09/1997.
Czarnecki, K., U. Eisenecker, and P. Steyaert, "Beyond Objects: Generative Programming", ECOOP’97 Workshop on Aspect-Oriented Programming, Jyväskylä, Finland, 06/1997.
Meusel, M., K. Czarnecki, and W. Kopf, "A model for structuring user documentation of object-oriented frameworks using patterns and hypertext", ECOOP'97 — Object-Oriented Programming, Lecture Notes in Computer Science, vol. 1241, Jyväskylä, Finland, Springer-Verlag, pp. 496 - 510, 1997.
1996
Czarnecki, K., "Concreteness Kills Adaptability", ECOOP’96 Workshop on Adaptability in Software Development, Linz, Austria, 07/1996.
Czarnecki, K., R. Hanselmann, U. Eisenecker, and W. Kopf, "ClassExpert: a knowledge-based assistant to support reuse by specialization and modification in Smalltalk", Fourth IEEE International Conference on Software Reuse, Orlando, USA, IEEE Computer Society Press, pp. 188 - 194, 1996.
1995
Czarnecki, K., D. Zhang, and K. Lano, "An Animation Tool for Supporting Specification-Based Software Architectures", The 1995 Monterey Workshop on Increasing the Practical Impact of Formal Methods for Computer Aided Software Development: Specification-Based Architectures, Monterey, California, USA, U.S. Naval Postgraduate School, 09/1995.