Teaching Distributed Software Architecture by Building an Industrial Level E-Commerce Application

Bingyang Wei*, Yihao Li, Lin Deng, Nicholas Visalli

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingChapterpeer-review


Software architecture design is a key component in software engineering. Teaching it effectively requires instructors come up with challenging real world projects, in which students need to recognize the architectural problems, figure out solutions, compare alternatives and make decisions. On the other hand, keeping students motivated and interested in this topic is also critical. However, truly understanding and appreciating a certain software architecture are not easy for most undergraduate students. Most architecture courses either focus too much on the theoretical concepts or fail to immerse students enough in complex industrial level projects unless the instructors are practicing software engineers. In this paper, we propose a Project-Based Learning experience, which brings an open-source full-fledged system to classroom in order to effectively teach distributed software architecture. Students are introduced the best practices that are widely used in industry to solve some of today’s common architectural problems. Our ultimate goal is to establish a public code repository of realistic projects from popular industrial sectors, so that instructors can reference to improve software architecture’s learning experience even though they are not practicing software engineers.

Original languageEnglish
Title of host publicationStudies in Computational Intelligence
PublisherSpringer-Verlag Italia
Number of pages12
Publication statusPublished - 1 Jan 2020

Publication series

NameStudies in Computational Intelligence
ISSN (Print)1860-949X
ISSN (Electronic)1860-9503


  • DevOps
  • Distributed architecture
  • Microservices
  • Software engineering education

ASJC Scopus subject areas

  • Artificial Intelligence


Dive into the research topics of 'Teaching Distributed Software Architecture by Building an Industrial Level E-Commerce Application'. Together they form a unique fingerprint.

Cite this