[1910.04736v2] Studying Software Engineering Patterns for Designing Machine Learning Systems
RQ1 showed that SE developers are concerned by the complexity of ML systems and their lack of knowledge of the architecture and design (anti-)patterns that could help them
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 softwareengineering (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 (SLR) of good/bad design patterns for ML.
‹Fig. 1. Numbers of Documents per Year with S: Scholarly Papers, A: Additional Scholarly Documents (Snowballing), and G: On-line, Gray Documents (RQ2. How do academic and gray literatures address the design of ML application systems and software?)Fig. 2. Structure of Distinguish Business Logic from ML Model pattern  (Example of Architectural Pattern)›