# Studying Software Engineering Patterns for Designing Machine Learning Systems

arXiv: https://arxiv.org/abs/1910.04736 · HTML: https://mlsanity.com/paper/1910.04736/

## Key facts

- Cited by 24 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 10 Oct 2019.

## Built on by (most cited first, 24 of 24)

- [Software Engineering for AI-Based Systems: A Survey](https://mlsanity.com/paper/2105.01984/) (2021)
- [How AI Developers Overcome Communication Challenges in a Multidisciplinary Team: A Case Study](https://mlsanity.com/paper/2101.06098/) (2021)
- [A Meta-Summary of Challenges in Building Products with ML Components -- Collecting Experiences from 4758+ Practitioners](https://mlsanity.com/paper/2304.00078/) (2023)
- [Characterizing Technical Debt and Antipatterns in AI-Based Systems: A Systematic Mapping Study](https://mlsanity.com/paper/2103.09783/) (2021)
- [Architectural Patterns for the Design of Federated Learning Systems](https://mlsanity.com/paper/2101.02373/) (2021)
- [The Pipeline for the Continuous Development of Artificial Intelligence Models -- Current State of Research and Practice](https://mlsanity.com/paper/2301.09001/) (2023)
- [Prescriptive and Descriptive Approaches to Machine-Learning Transparency](https://mlsanity.com/paper/2204.13582/) (2022)
- [Quality issues in Machine Learning Software Systems](https://mlsanity.com/paper/2208.08982/) (2022)
- [An Experience Report on Machine Learning Reproducibility: Guidance for Practitioners and TensorFlow Model Garden Contributors](https://mlsanity.com/paper/2107.00821/) (2021)
- [Towards a Change Taxonomy for Machine Learning Systems](https://mlsanity.com/paper/2203.11365/) (2022)
- [Machine Learning Model Development from a Software Engineering Perspective: A Systematic Literature Review](https://mlsanity.com/paper/2102.07574/) (2021)
- [A Compositional Approach to Creating Architecture Frameworks with an Application to Distributed AI Systems](https://mlsanity.com/paper/2212.13570/) (2022)
- [Design Patterns for AI-based Systems: A Multivocal Literature Review and Pattern Repository](https://mlsanity.com/paper/2303.13173/) (2023)
- [Generating a Low-code Complete Workflow via Task Decomposition and RAG](https://mlsanity.com/paper/2412.00239/) (2024)
- ["Project smells" -- Experiences in Analysing the Software Quality of ML Projects with mllint](https://mlsanity.com/paper/2201.08246/) (2022)
- [Assessing the Quality of Computational Notebooks for a Frictionless Transition from Exploration to Production](https://mlsanity.com/paper/2205.11941/) (2022)
- [Color Teams for Machine Learning Development](https://mlsanity.com/paper/2110.10601/) (2021)
- [Topical: Learning Repository Embeddings from Source Code using Attention](https://mlsanity.com/paper/2208.09495/) (2022)
- [Quality Issues in Machine Learning Software Systems](https://mlsanity.com/paper/2306.15007/) (2023)
- [How do Machine Learning Projects use Continuous Integration Practices? An Empirical Study on GitHub Actions](https://mlsanity.com/paper/2403.09547/) (2024)
- [The Impact of Environment Configurations on the Stability of AI-Enabled Systems](https://mlsanity.com/paper/2408.02825/) (2024)
- [Architecturally Significant MLOps Guidelines for ML Model Integration and Deployment: a Gray Literature Review](https://mlsanity.com/paper/2606.06535/) (2026)
- [From AI Technical Debt to Agentic Technical Debt: A Systematic Mapping of Root Causes and Manifestations in Agentic AI Systems](https://mlsanity.com/paper/2608.01001/) (2026)
- [Software Engineering for AI-driven Building Operation](https://mlsanity.com/paper/2608.16237/) (2026)

## Abstract (arXiv)

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.
