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.
- 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
- Hironori Washizaki, Hiromu Uchida, Foutse Khomh, Yann-Gael Gueheneuc, “Machine Learning Architecture and Design Patterns” (under review)
- Hironori Washizaki, Hiromu Uchida, Foutse Khomh and Yann-Gaël Guéhéneuc, “Studying Software Engineering Patterns for Designing Machine Learning Systems,” The 10th International Workshop on Empirical Software Engineering in Practice (IWESEP 2019), Tokyo, Japan, on December 13-14, 2019.
- List of documents and patterns (Excel, Dec 2019)
Project leader: Hironori Washizaki, washizaki [at] waseda.jp