Software Architecture for the Internet of Things (Coursera)

Offered by EIT Digital,
Software Architecture for the Internet of Things (Coursera)

This course will teach you how to design futureproof systems that meet the requirements of IoT systems: systems that are secure, interoperable, modifiable and scalable. Moreover, you'll learn to apply best-in-class software architecture methods to help you design complex IoT and other applications. Lastly, you'll come to understand the business impact of the technical decisions that you make as an IoT system architect.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

You'll learn all about software architecture in the next 5 weeks! In the first week, you'll discover why having a well-designed architecture is important and which challenges you might come across while developing your architecture. By the end of the second week, you'll already be able to write your own requirements! In the third and fourth week, you will learn how to correctly write quality attributes and quality attribute scenarios for a specific case. In the last week, you'll learn to describe your own patterns and tactics and see how they're used in an Android framework.

Syllabus

WEEK 1
Getting to know Software Architecture
This module will introduce you to the world of software architecture. We'll define what SA actually is, why it is important and talk about some of the challenges faced in modern Software Engineering. This course is also part of a Blended Master Programme in Internet of Things through Embedded Systems.

WEEK 2
Design process and software requirements
Creating good software starts with a solid understanding of the requirements that will have an influence on the software. In this module, we will discuss both functional and non-functional requirements, such as quality attributes, business requirements and constraints.

WEEK 3
Quality Attributes
Up till now, we have been talking about quality in an informal way. However, if you want to build systems that support the required qualities you will need a way to express those quality attributes and understand how you can achieve them. After this module you should be able to formulate your own quality requirements. We will also study 2 qualities that are especially relevant for Internet of Things: interoperability and modifiability.

WEEK 4
Tactics
In the fourth week, we will explain how architectural tactics can help you create a software architecture that achieves the predefined requirements. This is what needs to be done in step three of the ADD - remember? We'll start of by learning about the difference between tactics and patterns. We will give some examples of tactics to achieve interoperability and modifiability. We will discuss the MVC pattern and its relation to the modifiability tactics. Lastly, we'll discuss how MVC is being used in Android.

WEEK 5
Patterns
In this last week, we will explain how architectural patterns can help you create a software architecture that achieves the predefined requirements. Patterns are closely related to tactics, as we saw last week. First, we'll look at different types of patterns. Then, we'll learn how to combine tactics and patterns. We'll conclude this last week with a case study: DYAMAND's requirements and their architecture.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Introdução ao Teste de Software (Coursera) Coursera
Universidade de São Paulo, Brasil

Introdução ao Teste de Software (Coursera)

A necessidade das empresas em produzir software com qualidade tem aumentado a demanda por profissionais com conhecimentos e habilidades em Teste de Software. Entretanto, existe uma escassez de mão-de-obra especializada nesta área. Considerando essa lacuna, o curso de Introdução ao Teste de Software foi planejado para servir como um guia para pessoas que necessitam de uma fonte de consulta e/ou aprendizado na área.

Nov 2nd 2026
5-12 Weeks
The Raspberry Pi Platform and Python Programming for the Raspberry Pi (Coursera) Coursera
University of California, Irvine

The Raspberry Pi Platform and Python Programming for the Raspberry Pi (Coursera)

The Raspberry Pi is a small, affordable single-board computer that you will use to design and develop fun and practical IoT devices while learning programming and computer hardware. In addition, you will learn how to set up up the Raspberry Pi environment, get a Linux operating system running, and write and execute some basic Python code on the Raspberry Pi. You will also learn how to use Python-based IDE (integrated development environments) for the Raspberry Pi and how to trace and debug Python code on the device.

Oct 26th 2026
4 Weeks
The Arduino Platform and C Programming (Coursera) Coursera
University of California, Irvine

The Arduino Platform and C Programming (Coursera)

The Arduino is an open-source computer hardware/software platform for building digital devices and interactive objects that can sense and control the physical world around them. In this class you will learn how the Arduino platform works in terms of the physical board and libraries and the IDE (integrated development environment). You will also learn about shields, which are smaller boards that plug into the main Arduino board to perform other functions such as sensing light, heat, GPS tracking, or providing a user interface display. The course will also cover programming the Arduino using C code and accessing the pins on the board via the software to control external devices.

Oct 26th 2026
4 Weeks
Emergent Phenomena in Science and Everyday Life (Coursera) Coursera
University of California, Irvine

Emergent Phenomena in Science and Everyday Life (Coursera)

Before the advent of quantum mechanics in the early 20th century, most scientists believed that it should be possible to predict the behavior of any object in the universe simply by understanding the behavior of its constituent parts. For instance, if one could write down the equations of motion for every atom in a system, it should be possible to solve those equations (with the aid of a sufficiently large computing device) and make accurate predictions about that system’s future.

Nov 9th 2026
5-12 Weeks
Introdução ao Big Data (Coursera) Coursera
FIA Business School

Introdução ao Big Data (Coursera)

Este curso é indicado para profissionais que desejam entender de forma fácil o que é Big Data, conhecer algumas tecnologias de Big Data, ter acesso a algumas aplicações de Analytics, Internet das Coisas - IOT e de Big Data. Ao final do curso você será capaz de participar de um projeto de Big Data contribuindo com estratégias e direcionando o projeto para a escolha da adequada técnica de análise de dados.

Nov 2nd 2026
4 Weeks
Introduction to the Internet of Things and Embedded Systems (Coursera) Coursera
University of California, Irvine

Introduction to the Internet of Things and Embedded Systems (Coursera)

The explosive growth of the “Internet of Things” is changing our world and the rapid drop in price for typical IoT components is allowing people to innovate new designs and products at home. In this first class in the specialization you will learn the importance of IoT in society, the current components of typical IoT devices and trends for the future. IoT design considerations, constraints and interfacing between the physical world and your device will also be covered. You will also learn how to make design trade-offs between hardware and software. We'll also cover key components of networking to ensure that students understand how to connect their device to the Internet.

Oct 26th 2026
4 Weeks
Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera) Coursera
Hebrew University of Jerusalem

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera)

In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform.

Nov 9th 2026
5-12 Weeks
IoT Based System Design: Foundations and Applications (Coursera) Coursera
Starweaver

IoT Based System Design: Foundations and Applications (Coursera)

IoT-Based System Design: Foundations and Applications is a comprehensive course designed to provide learners with a solid understanding of Internet of Things (IoT) technologies and their practical applications. Through a combination of theoretical learning and hands-on exercises, participants will explore the fundamental concepts, hardware components, software platforms, and real-world use cases of IoT systems. The course is structured to cater to learners ranging from beginners to those with intermediate-level knowledge in the field, offering a progressive learning experience that equips them with the skills needed to design, develop, and deploy IoT solutions across various industries.

Nov 9th 2026
4 Weeks
Ecosystems of California (Coursera) Coursera
University of California, Santa Cruz

Ecosystems of California (Coursera)

This course surveys the diversity, structure and functioning of California’s ecosystems through time and the ways they have influenced and responded to human activities and stewardship. Topics include ecosystem drivers such as climate, soils, and land use history; human and ecological prehistory of the state; comparative marine, freshwater, and terrestrial ecosystem dynamics; and managed ecosystems such as range, fisheries and agriculture in California.

Nov 2nd 2026
5-12 Weeks
Programming Reactive Systems (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Programming Reactive Systems (Scala 2 version) (Coursera)

Reactive programming is a set of techniques for implementing scalable, resilient and responsive systems as per the Reactive Manifesto. Such systems are based on asynchronous message-passing, and their basic building-blocks are event handlers. This course teaches how to implement reactive systems in Scala and Akka by using high-level abstractions, such as actors, asynchronous computations, and reactive streams.

Nov 2nd 2026
5-12 Weeks
IoT Communications and Networks (Coursera) Coursera
Institut Mines-Telecom

IoT Communications and Networks (Coursera)

By presenting the building blocks of the IoT network architecture, this MOOC will help learners adapt to the fast changing communications and networking environment of IoT. The IoT world represents billions of sophisticated objects, such as sensors, actuators and meters, that are deployed nearly everywhere, in homes, hospitals, factories, cities, and are connected to the Internet. However, they come with limited capacity in terms of memory storage, computational power and energy; how can these objects then ensure network reliability and timely transmission?

Nov 9th 2026
4 Weeks