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

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.
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.
Czarnecki, K., "Concreteness Kills Adaptability", ECOOP’96 Workshop on Adaptability in Software Development, Linz, Austria, 07/1996.
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.
Czarnecki, K., U. Eisenecker, and P. Steyaert, "Beyond Objects: Generative Programming", ECOOP’97 Workshop on Aspect-Oriented Programming, Jyväskylä, Finland, 06/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.
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.
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]
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]
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.
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.
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.
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.
2002
Czarnecki, K., M. Himsolt, and E. Richter, "DataFAN: A Practical Approach to Data Flow Analysis for Ada 95", Reliable Software Technologies — Ada-Europe 2002, Lecture Notes in Computer Science, vol. 2361, Vienna, Austria, Springer-Verlag, pp. 231 - 244, 2002.
Czarnecki, K., "Domain Engineering", Encyclopedia of Software Engineering, Second Edition, 2002.
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.
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.
2003
Czarnecki, K., and S. Helsen, "Classification of Model Transformation Approaches", 2nd OOPSLA’03 Workshop on Generative Techniques in the Context of MDA, Anaheim, CA, USA, 2003.