search menu icon-carat-right cmu-wordmark

Architecting to Support Machine Learning

May 2019 Presentation
Humberto Cervantes (Universidad Autonoma Metropolitana–Iztapalapa), Iurii Milovanov (SoftServe, Inc.), Rick Kazman (University of Hawaii)

This presentation covers obtaining data and selecting, training, and testing the algorithms for machine learning and identifies common architecture considerations.


Software Engineering Institute




Machine learning (ML) is everywhere, and much material discusses the difficulties associated with creating an ML solution from a data science point of view. There is, however, less information related to architecting the software system where the algorithms will be running once they are in production. This talk addresses this topic from both a theoretical and a practical point of view. It covers obtaining data and selecting, training, and testing the algorithms. Our goal is to help software architects who need to design systems that support ML by identifying common architecture design considerations for various phases of data processing, training, and model serving. We will cover the following topics:

  1. Where does software architecture fit in systems that support ML?
  2. A framework for gathering primary architectural decisions of systems that support ML
  3. Several case studies of systems developed at SoftServe that support ML using the previously discussed framework
  4. Synthesis: What needs to be considered when architecting ML systems?