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

Agile Planning for Software Products (Coursera) Coursera
University of Alberta

Agile Planning for Software Products (Coursera)

This course covers the techniques required to break down and map requirements into plans that will ultimately drive software production. Upon successful completion of this course, you will be able to: create effective plans for software development; map user requirements to developer tasks; assess and plan for project risks; apply velocity-driven planning techniques; generate work estimates for software products.

Oct 26th 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
An Introduction to Interactive Programming in Python (Part 2) (Coursera) Coursera
Rice University

An Introduction to Interactive Programming in Python (Part 2) (Coursera)

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple.

Nov 2nd 2026
4 Weeks
Client Needs and Software Requirements (Coursera) Coursera
University of Alberta

Client Needs and Software Requirements (Coursera)

This course covers practical techniques to elicit and express software requirements from client interactions. Upon successful completion of this course, you will be able to: Create clear requirements to drive effective software development; visualize client needs using low-fidelity prototypes; maximize the effectiveness of client interactions - adapt to changing product requirements.

Oct 26th 2026
4 Weeks
Capstone: Autonomous Runway Detection for IoT (Coursera) Coursera
EIT Digital

Capstone: Autonomous Runway Detection for IoT (Coursera)

The students will develop a larger system using the learning outcomes from these courses, and the students will evaluate the developed system in a real-world programming environment. This course is a true engineering task in which the student must, not only implement the algorithm code, but also handle the interfaces between many different actors and hardware platforms.

Nov 2nd 2026
3 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
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
Principles of Computing (Part 2) (Coursera) Coursera
Rice University

Principles of Computing (Part 2) (Coursera)

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class.

Nov 2nd 2026
4 Weeks
Getting Started with Machine Learning at the Edge on Arm (Coursera) Coursera
Arm

Getting Started with Machine Learning at the Edge on Arm (Coursera)

The age of machine learning has arrived! Arm technology is powering a new generation of connected devices with sophisticated sensors that can collect a vast range of environmental, spatial and audio/visual data. Typically this data is processed in the cloud using advanced machine learning tools that are enabling new applications reshaping the way we work, travel, live and play.

Oct 26th 2026
5-12 Weeks
Continuous Delivery & DevOps (Coursera) Coursera
University of Virginia

Continuous Delivery & DevOps (Coursera)

Amazon famously delivers new code every 11.6 seconds. Just a few years ago, this was unthinkable: many ‘cutting edge’ firms would release software quarterly. When it comes to digital innovation, velocity is critical and many would say it’s the most reliable determinant of success. Bringing an organization to the state of the art (or even functional capability) in this area requires strong work in a combination of disciplines and a combination of both technical and managerial skills. There is no single cookie-cutter approach for achieving this capability.

Nov 2nd 2026
4 Weeks