SELGOct 10, 2019

Studying Software Engineering Patterns for Designing Machine Learning Systems

arXiv:1910.04736v285 citations
AI Analysis

This work addresses the problem of software complexity and quality in ML systems for developers and researchers, but it is incremental as it focuses on compiling existing patterns rather than introducing new ones.

The authors tackled the lack of systematic collection and classification of software engineering design patterns for machine learning systems by conducting a systematic literature review to gather and categorize good and bad patterns, providing developers with a preliminary organized resource.

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 (SLR) of good/bad design patterns for ML.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes