You are on page 1of 8

Machine Learning Architecture

and Design Patterns


Hironori Washizaki
Waseda University / National Institute of Informatics / SYSTEM INFORMATION / eXmotion
Hiromu Uchida
Waseda University
Foutse Khomh
Polytechnique Montréal
Yann-Gaël Guéhéneuc
Concordia University

Abstract—Researchers and practitioners studying best practices strive to design Machine


Learning (ML) application systems and software that address software complexity and quality
issues. Such design practices are often formalized as architecture and design patterns by
encapsulating reusable solutions to common problems within given contexts. In this paper,
software-engineering architecture and design (anti-)patterns for ML application systems are
analyzed to bridge the gap between traditional software systems and ML application systems
with respect to architecture and design. Specifically, a systematic literature review confirms that
ML application systems are popular due to the promotion of artificial intelligence. We identified
32 scholarly documents and 48 gray documents out of which 38 documents discuss 33 patterns:
12 architecture patterns, 13 design patterns, and 8 anti-patterns. Additionally, a survey of
developers reveals that there are 7 major architecture patterns and 5 major design patterns.
Then the relationships among patterns are identified in a pattern map.

T HE POPULARITY OF ML techniques has able implementations, including performance and


increased in recent years. ML is used in many reliability. The third is model quality, which
domains, including cyber security, IoT, and au- may be negatively impacted by software bug.
tonomous cars. ML techniques rely on mathemat- These concerns could be alleviated if developers
ics and software engineering. The former gen- could demonstrate the software quality of their
erates algorithms, develops capabilities to learn implementations. Consequently, researchers and
from input data, and produces representative practitioners have been studying best practices to
models. The latter is employed for implementa- design ML application systems to address issues
tion and performance. with software complexity and quality of ML
techniques. Such practices are often formalized as
Although many works investigated the math-
architecture patterns and design patterns. These
ematics and computer science on which ML
patterns encapsulate reusable solutions to com-
techniques are built, few have examined their
monly occurring problems within ML application
implementation. This situation raises many con-
systems and software design.
cerns. The first is software complexity of ML
techniques. The second is quality of the avail- Herein we report the results of a systematic

IEEE Software Published by the IEEE Computer Society c 2020 IEEE


1
Department Head

literature review (SLR) of good/bad design pat- was read to determine whether the document
terns for ML. Based on the results, we also report pertained to software-engineering practices for
on developers’ perceptions as well as relation- ML application systems. This process identified
ships among extracted ML patterns1 . 19 scholarly documents and 19 gray documents.
All the data are available on-line2 .
How the Literature Addresses Software Figure 1 shows the trend in the number of
Engineering ML Design Patterns documents related to design for ML application
We performed a SLR of both academic and systems in the past decade. ML application sys-
gray literature to collect SE good (bad) design tems have recently become popular due to the
patterns for ML application systems and software. promotion of artificial intelligence. Since 2008,
For the academic literature, we chose Engineering academic and gray documents have discussed
Village, which is a search platform that provides good (bad) practices of ML application systems
access to 12 engineering document databases design.
such as Ei Compendex and Inspec. Engineering
10
Village can search in all recognized scholarly 9
engineering journals, conferences, and workshop 8
proceedings with a unique search query. More- 7
Scholarly
6
over, Engineering Village automatically detects 5
and removes most duplicative search results. On 4
3 Gray
August 14, 2019, we designed and used the 2
following query specifying “pattern” as well as 1
0
keywords related to patterns to search for doc- 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019
uments addressing ML design practice: ((((sys-
tem) OR (software)) AND (machine learning) Figure 1. Numbers of Documents per Year
AND ((implementation pattern) OR (pattern) OR
(architecture pattern) OR (design pattern) OR
(anti-pattern) OR (recipe) OR (workflow) OR Overview of ML Patterns
(practice) OR (issue) OR (template))) WN ALL) Two of the authors read half of the docu-
+ ((cpx OR ins OR kna) WN DB) AND ((ca OR ments. Each author extracted patterns indepen-
ja OR ip OR ch) WN DT). dently. Then the remaining author vetted each
For the gray literature, we used a Google pattern. Although 69 patterns related to the ar-
search on August 16, 2019. The query was the chitecture and design of ML application systems
same as that for the academic literature: (system were initially identified, only 33 remained after
OR software) ”Machine learning” (pattern OR the vetting process.
”implementation pattern” OR ”architecture pat- In general, systems and software design pro-
tern” OR ”design pattern” OR anti-pattern OR cesses have two major phases [2] with differ-
recipe OR workflow OR practice OR issue OR ent abstraction levels: architectural design and
template) and ”machine implementation pattern” detailed design. Similarly, the extracted patterns
OR architecture pattern” OR ”design pattern” OR can be classified into two types: ML architec-
anti-pattern OR recipe OR workflow OR practice ture patterns and ML design patterns. Documents
OR issue OR template. describing ML architecture patterns recommend
We retrieved 32 scholarly documents and 48 architecture designs of ML application systems
gray literature documents. For each document, and software to address recurrent architectural
two of the authors vetted whether it should be in- problems such as ensuring maintainability of ML
cluded in our SLR or not. The titles and abstracts components. In contrast, ML design patterns ad-
were initially reviewed. Then the entire document dress recurrent detailed design problems such as
enabling proper communications among specific
1 Preliminary results of our SLR is presented at [1]. In this
paper, we examined all patterns and relationships among patterns
modules.
in detail. We also newly studied developers’ perceptions on
patterns. 2 http://www.washi.cs.waseda.ac.jp/ml-patterns/

2 IEEE Software
Table 1. Extracted Architecture Patterns (NP: Number of participants who used the pattern.)
Pattern Name Problem (excerpt) Solution (excerpt) NP and
Source
Data Lake We cannot foresee the kind of analyses that will The data ranging from structured data to unstruc- 5,
be performed on the data and which frameworks tured data should be stored as “raw” as possible http://bit.ly
will be used to perform these analyses. and the centralized data repository should allow /33DTKTe
parallel analyses of different kinds and with
different frameworks.
Distinguish Busi- The overall business logic should be isolated as Separate the business logic and the inference 4, [3]
ness Logic from much as possible from the ML models so that engine, loosely coupling the business logic and
ML Models they can be changed/overridden when necessary ML-specific dataflows.
without impacting the rest of the business logic.
Microservice Ar- ML applications may be confined to some Data scientists working with or providing ML 4,
chitecture “known” ML frameworks and miss opportunities frameworks can make these frameworks avail- http://bit.ly
for more appropriate frameworks. able through microservices. /2DyHGrV
Data-Algorithm- Prediction systems should connect different Separate the following like MVC for ML: data 2,
Serving- pieces in the data processing pipeline into (data source and data preparator), algorithm(s), http://bit.ly
Evaluator one coherent system and prototyping predictive serving, and evaluator. /2r6edmu
model.
Event-driven ML Due to frequent prototyping of ML models and Construct pipelines by chaining together multi- 2,
Microservices constant changes, development teams must be ple microservices, each of which listens for the http://bit.ly
agile to build, deploy, and maintain complex data arrival of some data and performs its designated /2OZDuXH
pipelines. task.
Lambda Real-time data processing requires scalability, The batch layer keeps producing views at every 2,
Architecture fault tolerance, predictability, and other qualities. set batch interval while the speed layer creates http://bit.ly
It must be extensible. the relevant real-time/speed views. The serving /33DTKTe
layer orchestrates the query by querying both the
batch and speed layer, merges it.
Parameter-Server For distributed learning, widely accepted ab- Distribute both data and workloads over worker 2, [4]
Abstraction stractions are lacking. nodes, while the server nodes maintain globally
shared parameters, which are represented as vec-
tors and matrices.
Daisy The ability to scale content production processes Utilize Kanban, scaling, and microservice to 1,
Architecture must be acquired via the use of ML. Then the realize pull-based, automated, on-demand, and http://bit.ly
coverage of that tooling must be extended over iterative processes. /2DyHGrV
as much of their remaining content.
Gateway Routing When a client uses multiple services, it can Install a gateway before a set of applications, 1, [3]
Architecture be difficult to set up and manage individual services, or deployments and use application
endpoints for each service. layer routing requests to the appropriate in-
stance.
Kappa Architec- It is necessary to deal with huge amount of data Support both real-time data processing and con- 1,
ture with less code resource. tinuous reprocessing with a single stream pro- http://bit.ly
cessing engine. /37Xkguc
Closed-Loop In- It is necessary to address big, open-ended, time- Connect machine learning to the user and close 0,
telligence changing or intrinsically hard problems. the loop. Design clear interactions along with http://bit.ly
implicit and direct outputs. /2L8ZpdB
Federated Learn- Standard machine learning approaches require Employ Federated Learning, which enables mo- 0,
ing centralizing the training data on one machine or bile phones to collaboratively learn a shared http://bit.ly
in a datacenter. prediction model while keeping all the training /2qaRJk3
data on the device.

In addition to the ML architecture patterns of design in ML application systems and software


and design patterns, we also identified ML anti- appears at both of the architecture level and the
patterns. Similar to general anti-patterns [5], ML detailed design level. The remaining are 8 ML
anti-patterns (including code smells and technical anti-patterns (24%).
debts [6]) describe commonly occurring situa-
tions that generate negative consequences in ML How Engineers’ Perceived Software
application systems and software design. Engineering ML Design Patterns
Tables 1, 2 and 3 list the extracted ML pat- ML techniques are concrete solutions to prac-
terns. Of these, 18 (55%) were extracted from tical problems. Hence, ML developers may al-
the scholarly documents, while 15 (45%) were ready have built a body of knowledge on the good
from the gray documents. Twelve (36%) are ML (bad) design practices of ML development. To
architecture patterns, and thirteen (39%) are ML clarify how ML developers perceive existing ML
design patterns, suggesting that the unique nature patterns, we asked 19 developers and researchers

May/June 2020
3
Department Head

Table 2. Extracted ML Design Patterns (NP: Number of participants who used the pattern.)
Pattern Name Problem (excerpt) Solution (excerpt) NP and
Source
ML Versioning ML models and their several versions may Record the ML model structure, training data, 4, [7]
change the behaviour of the overall ML appli- and training system to ensure a reproducible
cations. training process.
Wrap Black-Box Using generic, independent ML frameworks of- Wrap black-box packages into common APIs 4, [4]
Packages into ten results in different glue code for each frame- to make supporting infrastructure more reusable
Common APIs work, for which a massive amount of supporting and to reduce the cost of changing packages.
code is written to get data into and out of the
framework from and to the rest of the applica-
tion.
Test It is difficult to identify errors when infrastruc- Ensure that the infrastructure is testable and the 3,
Infrastructure ture and machine learning are mixed. learning parts of the system are encapsulated so http://bit.ly
Independently that everything around it can be tested. /34zt2wx
from ML
Handshake A ML system depends on inputs delivered out- Create a handshake normalization process, reg- 2,
(Hand Buzzer) side of the normal release process. ularly check for significant changes, and send http://bit.ly
ALERTS. /2qdsWvG
Isolate and Val- Machine learning models are known to be un- Encapsulate ML models within rule-base safe- 2, [8]
idate Output of stable and vulnerable to adversarial attacks and guards and use redundant and diverse architec-
Model to noise in data and data drift overtime. ture that mitigates and absorbs the low robust-
ness of ML models.
Canary Model A surrogate ML that approximates the behavior Run the canary inference pipeline in parallel 1,
of the best ML model must be built to provide with the primary inference pipeline to monitor http://bit.ly
explainability. prediction differences. /35U0C0i
Decouple It is necessary to separate and quickly change Physically isolate different workloads to dif- 1, [7]
Training Pipeline the ML data workload and stabilize the training ferent machines. Then optimize the machine
from Production workload to maximize efficiency. configurations and the network usage.
Pipeline
Descriptive Data The rich information used and produced by ML Design a robust system, where the model pa- 1, [4]
Type for Rich In- systems is often encoded with plain data types rameter knows if it is a log-odds multiplier or
formation like raw floats and integers. a decision threshold, and a prediction knows
information about the model.
Design The system to prepare data in an ML-friendly Avoid pipeline jungles by thinking holistically 1, [4]
Holistically format may become a pipeline jungle. Managing about data collection and feature extraction that
about Data these pipelines is difficult and costly. can dramatically reduce ongoing costs.
Collection
and Feature
Extraction
Reexamine The code-paths accumulated by individual Reexamine each experimental branch periodi- 1, [4]
Experimental changes can create a growing debt due to the cally to see what can be removed to eliminate
Branches increasing difficulties of maintaining backward glue code and pipeline jungles.
Periodically compatibility.
Reuse Code Training-serving skew can be caused by a dis- Reuse code between training pipeline and serv- 0,
between Training crepancy between how data in the training and ing pipeline by preparing objects that store re- http://bit.ly
Pipeline and serving pipelines are handled. sults in an understandable way for humans. /34zt2wx
Serving Pipeline
Separation of ML applications must accommodate regular and Decouple at different levels of complexity from 0, [9]
Concerns and frequent changes to their ML components. simplest to most complex.
Modularization
of ML
Components
Secure Aggrega- The system needs to communicate and aggregate Encrypt data from each mobile device in Feder- 0,
tion model updates in a secure, efficient, scalable, ated learning and calculate totals and averages http://bit.ly
and fault-tolerant way. without individual examination. /2qaRJk3

at Japanese companies and research organizations Evaluator”, “Data Lake“, “Distinguish Business
to complete a survey during a workshop in Octo- Logic from ML Models”, “Microservice Ar-
ber 2019. After a brief introduction of all patterns, chitecture”, “Event-driven ML Microservices”,
we inquired on whether or not they used any of “Lambda Architecture”, and “Parameter-Server
the ML architecture and design patterns. Abstraction”. And, all ML architecture patterns
except for “Federated Learning” and “Closed-
As shown in Table 1, multiple partici- Loop Intelligence” are used at least by one par-
pants used the seven major ML architecture ticipant.
patterns (out of 12): “Data-Algorithm-Serving-

4 IEEE Software
Table 3. Extracted ML Anti-Patterns

Logic Specific
Business
Presentation Layer Logic Layer Data Layer
Pattern Problem (excerpt) Source
Name User Business
Big Ass When all code is placed in one http://bit.ly Database

Real World
Interface Logic
Script Ar- big ass script, it becomes diffi- /35QPb9N
chitecture cult to reuse in future analysis,
understand how it works, and Data Data

ML Specific
Data Lake
debug. Collection Processing
Abstraction For distributed learning, widely [4]
Debt accepted abstractions are lack- Inference
ing. Engine
Dead The code-paths accumulated by [4]
Exper- individual changing can create Legend
imental a growing debt due to the in- Business Logic Data Flow
Codepaths creasing difficulties of maintain- Architectural Layers
ML Runtime Data Flow
ing backward compatibility. Deployed as ML System ML Development Data Flow
Glue Glue code is costly in the long [4]
Code term because it tends to freeze a
system to the peculiarities of a Figure 2. Structure of Distinguish Business Logic
specific package. from ML Model pattern [3]
Multiple- Using multiple languages in- [4]
Language creases the cost of effective test-
Smell ing and can increase the diffi-
culty of transferring ownership Pattern Name
to other individuals. Distinguish Business Logic from ML Model
Pipeline The system to prepare data in [4]
Jungles an ML-friendly format may be- (originally named as “Multi-Layer Architectural
come a pipeline jungle, and Pattern” [3])
managing these pipelines is dif-
ficult and costly. Intent
Plain-Old- The rich information used and [4]
Data Type produced by ML systems is Isolate failures between business logic and ML
Smell often encoded with plain data learning layer to help developers debug ML ap-
types like raw floats and inte-
gers. plication systems easily.
Undeclared Undeclared consumers are dan- [4]
Con- gerous because they create a hid- Also Known As
sumers den tight coupling of model MA Machine Learning System Architectural Pattern
to other parts of the stack.
for Improving Operational Stability.
Problem
In contrast, multiple participants used the five
ML application systems are complex because
major ML design patterns (out of 13 in Table
their ML components must be (re)trained reg-
2): “Handshake”, “Isolate and Validate Output
ularly and have an intrinsic non-deterministic
of Model”, “ML Versioning”, “Test Infrastruc-
behavior. Similar to other systems, the business
ture Independently from ML”, and “Wrap Black-
requirements for these systems and the ML algo-
Box Packages into Common APIs”. In addition,
rithms change over time.
none of the participants reported using the three
ML design patterns, suggesting that ML design Solution
patterns are less accepted in comparison to ML Define clear APIs between the traditional and ML
architecture patterns. components. Place the business and ML com-
ponents with different responsibilities into three
Example of Major Software Engineering layers (Fig. 2). Divide data flows into three.
ML Pattern
Applicability
Here, we describe one major ML architecture
It is applicable to any ML application system with
pattern and its usage. We selected “Distinguish
outputs that depend on ML techniques.
Business Logic from ML Model” since it was
popular among our survey participants. Moreover, Consequences
it provides a clear decomposition of a ML system Decoupling “traditional” business and ML com-
in multiple layers and components. For brevity, ponents allows the ML components to be mon-
participants, collaborations, implementation, and itored and adjusted to meet users’ requirements
known uses are omitted. and changing inputs.

May/June 2020
5
Department Head

Presentation Layer Logic Layer Data Layer

Input Input Data


User Interface Business Logic Database
(Chatbot UI) (Chatbot Logic) (Previous Q&A Store)
Output Output Data
Web App Web App
Users Slack Slack DB Server (None)
Front-end Back-end

Input Data

Data Collection Data Processing


Data Word Data Lake
(Dataset) Datasets (Text to Vector Transformer) Vector
Source (Vectorized Corpus)
Nagoya Univ.
Datasets Conversation NN Model Word TensorFlow
Datasets
Corpus pre- and post- TensorFlow Vector (Text)
processing

Legend ML Output
ML Input
Architectural Elements
(Example Role as Chatbot) Inference Engine
(Language Model)
What How
NN Model TensorFlow
Business Logic Data Flow
ML Runtime Data Flow
ML Development Data Flow

Figure 3. Example of Chatbot System Architecture by applying “Distinguish Business Logic from ML Model”

Usage Example ture patterns that address business logic and user
Figure 3 presents an example of implementation interactions such as “Distinguish Business Logic
of the pattern “Distinguish Business Logic from from ML Models” and “Data-Algorithm-Serving-
ML Model” in a Slack-based Chatbot system. Evaluator”. “Gateway Routing Architecture” is
By referring to the architecture pattern, we easily similar to “Distinguish Business Logic from ML
specified necessary elements as well as relation- Models” since both use “Data Lake” in their
ships among them while having clear separation solutions to handle variety of data; however,
between the Chatbot service (as the business objectives of these two architecture patterns are
logic) and the underlying ML components. quite different.
According to the number of connected rela-
ML Pattern Map tionships, the fundamental patterns are “Big Ass
To help developers navigate the patterns, we Script Architecture” and “Separation of Concerns
identified the following four types of relationships and Modularization of ML Components”, sug-
among the patterns using basic relation types gesting that developers should initially identify
[10]: X is similar to Y but has different objectives, the corresponding problems in their design and
X can use Y in its solution, X and Y can be solve them by referring to these patterns as well
combined to solve larger problems, and, X can as connected related patterns.
mitigate the problem of Y. In terms of the anti-patterns, we suggest that
Figure 4 shows a result of identification of developers should refactor their code as soon as
the relationships among ML patterns as a pattern these symptoms appear by applying correspond-
map. For example, “Closed-Loop Intelligence” is ing design patterns connected in the pattern map.
an architecture pattern to have clear interactions
with users; it would mitigate the problem of “Un- CONCLUSION
declared Customers”. “Closed-Loop Intelligence” To bridge the gap between traditional software
can be combined with other high-level architec- systems and ML application systems with respect

6 IEEE Software
Undeclared Consumers Closed-Loop Intelligence Microservice Architecture Daisy Architecture

Event-driven ML Microservices
Architecture Distinguish Business Data-Algorithm-
Data Lake
pattern Logic from ML Serving-Evaluator
Models Parameter-Server
Abstraction Debt
Lambda Architecture Abstraction
Gateway Routing
Big Ass Script Architecture
Architecture Federated Learning
Kappa Architecture

Secure Aggregation
Design Separation of Concerns
pattern and Modularization of
Test the infrastructure independently
ML Components
from the machine learning
Decouple Training Pipeline
Pipeline Jungles Design Holistically about Data from Production Pipeline Isolate and Validate ML Versioning pattern
Collection and Feature Extraction Output of Model

Glue Code Wrap Black-Box Packages Reuse Code between Training


Handshake Canary Model
into Common APIs Pipeline and Serving Pipeline
Multiple-Language
Smell
Dead Experimental Reexamine Experimental Legend
Codepaths Branches Periodically
Architecture pattern X Y X can mitigate Y.
X Y X uses Y in its solution.
Plain-Old-Data Descriptive Data Type Design pattern
Type Smell for Rich Information X Y X and Y can be combined.
Anti-pattern X Y X is similar to Y.

Figure 4. Pattern Map showing classifications and relationships among ML patterns

to architecture and design, software-engineering ACKNOWLEDGMENT


architectural and design (anti-)patterns for ML The authors would like to thank Prof. Naoshi
application systems were analyzed via an SLR Uchihira, Mr. Norihiko Ishitani, Dr. Takuo Doi,
and a survey of developers. ML application sys- Dr. Shunichiro Suenaga, Mr. Yasuhiro Watanabe
tems are quite popular due to the recent promo- and Prof. Kazunori Sakamoto for their helps. This
tion of artificial intelligence. From the 32 schol- work was supported by JST-Mirai Program Grant
arly documents and 48 gray documents identified Number JP18077318, Japan.
in the SLR, 12 ML architecture patterns, 13 ML
design patterns, and 8 ML anti-patterns were
identified. A survey of developers reveals that REFERENCES
there are 7 major ML architecture patterns and
5 major ML design patterns. The relationships 1. H. Washizaki, H. Uchida, F. Khomh, and Y.-G.

among the patterns were elucidated. Guéhéneuc, “Studying software engineering patterns
for designing machine learning systems,” in The 10th In-
In the future, we plan to write all patterns ternational Workshop on Empirical Software Engineer-
into a standardized format because not all the ing in Practice (IWESEP 2019), Tokyo, Japan, 2019, pp.
identified patterns are well written. Additionally, 1–6.

we intend to investigate the impact of SE pat- 2. International Organization for Standardization,


terns on the quality attributes of ML application “ISO/IEC 12207:2008 Information technology –
systems. These patterns will be validated by not Software life cycle processes, institution = International
only sharing these patterns to participants at the Organization for Standardization,” ISO/IEC, Tech. Rep.,
Writers’ Workshop at the PLoP conference series 2017.
but also by contacting the original designer. We 3. H. Yokoyama, “Machine learning system architectural
also plan to involve more practitioners from the pattern for improving operational stability,” in IEEE
community by continuing the survey and the International Conference on Software Architecture
SLR. Companion, ICSA Companion 2019, Hamburg, Ger-

May/June 2020
7
Department Head

many, March 25-26, 2019, 2019, pp. 267–274. [Online]. Hironori Washizaki is the Director and a Profes-
Available: https://doi.org/10.1109/ICSA-C.2019.00055 sor with the Global Software Engineering Laboratory,
4. D. Sculley, G. Holt, D. Golovin, E. Davydov, T. Phillips, Waseda University. He is also a Visiting Professor
D. Ebner, V. Chaudhary, M. Young, J. Crespo, and with the National Institute of Informatics, Tokyo as well
as an Outside Director of System Information, Tokyo
D. Dennison, “Hidden technical debt in machine
and eXmotion, Tokyo.
learning systems,” in Advances in Neural Information
Processing Systems 28: Annual Conference on Neural
Hiromu Uchida is with Waseda University, Tokyo,
Information Processing Systems 2015, December 7-12,
Japan. Contact him at eagle h.21@toki.waseda.jp.
2015, Montreal, Quebec, Canada, 2015, pp. 2503–
2511. [Online]. Available: http://papers.nips.cc/paper/ Foutse Khomh is with Polytechnique Montréal,
5656-hidden-technical-debt-in-machine-learning-systems Canada. He is an Associate Professor with the
5. W. J. Brown, R. C. Malveau, H. W. S. McCormick, Polytechnique Montréal, where he heads the SWAT
and T. J. Mowbray, AntiPatterns: Refactoring Software, Laboratory, and is involved with software analyt-
Architectures, and Projects in Crisis, 1st ed. John Wiley ics and cloud engineering research. Contact him at
& Sons, 1998.
foutse.khomh@polymtl.ca.

6. W. Cunningham, “The wycash portfolio management


Yann-Gaël Guéhéneuc is with Concordia Univer-
system,” OOPS Messenger, vol. 4, no. 2, pp. 29–
sity, Canada. He has been a Full Professor with
30, 1993. [Online]. Available: https://doi.org/10.1145/ the Department of Computer Science and Software
157710.157715 Engineering, Concordia University since 2017, where
7. C. Wu, D. Brooks, K. Chen, D. Chen, S. Choudhury, he leads the Ptidej Team on evaluating and en-
M. Dukhan, K. M. Hazelwood, E. Isaac, Y. Jia, B. Jia, hancing the quality of software systems, focusing
T. Leyvand, H. Lu, Y. Lu, L. Qiao, B. Reagen, J. Spisak, on the Internet of Things and researching new the-
F. Sun, A. Tulloch, P. Vajda, X. Wang, Y. Wang, B. Wasti, ories, methods, and tools to understand, evaluate,
and improve the development, release, testing, and
Y. Wu, R. Xian, S. Yoo, and P. Zhang, “Machine
security of such systems. Contact him at yann-
learning at facebook: Understanding inference at the
gael.gueheneuc@concordia.ca.
edge,” in 25th IEEE International Symposium on
High Performance Computer Architecture, HPCA 2019,
Washington, DC, USA, February 16-20, 2019, 2019,
pp. 331–344. [Online]. Available: https://doi.org/10.
1109/HPCA.2019.00048
8. M. Kläs and A. M. Vollmer, “Uncertainty in machine
learning applications: A practice-driven classification
of uncertainty,” in Computer Safety, Reliability, and
Security - SAFECOMP 2018 Workshops, ASSURE,
DECSoS, SASSUR, STRIVE, and WAISE, Västerås,
Sweden, September 18, 2018, Proceedings, 2018, pp.
431–438. [Online]. Available: https://doi.org/10.1007/
978-3-319-99229-7 36
9. M. S. Rahman, E. Rivera, F. Khomh, Y. Guéhéneuc, and
B. Lehnert, “Machine learning software engineering
in practice: An industrial case study,” CoRR, vol.
abs/1906.07154, 2019. [Online]. Available: http://arxiv.
org/abs/1906.07154
10. W. Zimmer, “Pattern languages of program design,”
J. O. Coplien and D. C. Schmidt, Eds. New York,
NY, USA: ACM Press/Addison-Wesley Publishing Co.,
1995, ch. Relationships Between Design Patterns, pp.
345–364. [Online]. Available: http://dl.acm.org/citation.
cfm?id=218662.218687

8 IEEE Software

You might also like