Machine Learning Architecture and Design Patterns

Last update: December 7th, 2019

Researchers and practitioners studying best practices strive to design Machine Learning (ML) application systems and software that address software complexity and quality issues. Such design practices are often formalized as architecture and design patterns by encapsulating reusable solutions to common problems within given contexts. In this paper, software-engineering architecture and design (anti-)patterns for ML application systems are analyzed to bridge the gap between traditional software systems and ML application systems with respect to architecture and design. Specifically, a systematic literature review confirms that ML application systems are popular due to the promotion of artificial intelligence. We identified 32 scholarly documents and 48 gray documents out of which 38 documents discuss 33 patterns: 12 architecture patterns, 13 design patterns, and 8 anti-patterns. Additionally, a survey of developers reveals that there are 7 major architecture patterns and 5 major design patterns. Then the relationships among patterns are identified in a pattern map.

Project members

  • Hironori Washizaki, Dept. of Computer Science and Engineering, Waseda University, Tokyo, Japan, National Institute of Informatics, Tokyo, Japan
  • Yann-Gael Gueheneuc, Ptidej Team, DGIGL, Ecole Polytechnique de Montreal, Quebec, Canada
  • Foutse Khomh, Ptidej Team, DGIGL, Ecole Polytechnique de Montreal, Quebec, Canada

Documents and List


Project leader: Hironori Washizaki, washizaki [at]