Studying Software Engineering Patterns for Designing Machine Learning Systems
Hironori Washizaki, Hiromu Uchida, Foutse Khomh, Yann-Gael Gueheneuc

TL;DR
This paper conducts a systematic review of software engineering design patterns for machine learning systems to classify and understand best practices and common pitfalls in their design.
Contribution
It provides the first comprehensive classification and discussion of SE design patterns specifically for ML systems based on a systematic literature review.
Findings
Initial classification of good and bad design patterns for ML systems
Identification of common challenges and best practices in ML system design
Preliminary results highlighting gaps and future research directions
Abstract
Machine-learning (ML) techniques have become popular in the recent years. ML techniques rely on mathematics and on software engineering. Researchers and practitioners studying best practices for designing ML application systems and software to address the software complexity and quality of ML techniques. Such design practices are often formalized as architecture patterns and design patterns by encapsulating reusable solutions to commonly occurring problems within given contexts. However, to the best of our knowledge, there has been no work collecting, classifying, and discussing these software-engineering (SE) design patterns for ML techniques systematically. Thus, we set out to collect good/bad SE design patterns for ML techniques to provide developers with a comprehensive and ordered classification of such patterns. We report here preliminary results of a systematic-literature review…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
