Software Architecture for the Internet of Things

About this course: 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. 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.

Who is this class for: You're at the right address if you're a software engineer, embedded systems engineer or a technical manager who aspires to connect their career to the internet of the future: the Internet of Things. Our blended learning approach offers you the best of both worlds: you can learn online whenever you want to, but can still get hands-on coaching from industry experts. Although useful for professionals, this course is meant for first year Master students in Electrical Engineering or Computer Science. Note that as a consequence, quiz questions are more like exam questions where you have to construct the answer based on the principles that are taught in the web lectures, rather than to recall the literal text of the teacher.

Created by:  EIT Digital

  • Frank Gielen
    Taught by:  Frank Gielen, Professor
    UGent/IBCN: Internet Based Communication Networks
Commitment5 weeks of study, 2-3 hours/week
How To PassPass all graded assignments to complete the course.
User Ratings
Average User Rating 4.2See what learners said
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.
6 videos5 readings
  1. Video: Welcome to Software Architecture for IoT
  2. Reading: How to navigate through this course
  3. Reading: Learning objectives per week
  4. Reading: Want more software architecture?
  5. Discussion Prompt: IoT and you
  6. Video: Challenges in Modern Software Engineering
  7. Video: What is Software Architecture?
  8. Video: Why is software architecture important? (1)
  9. Video: Why is software architecture important? (2)
  10. Reading: How business goals drive architectural design
  11. Discussion Prompt: Business goals
  12. Video: The role of the software architect
  13. Reading: Software Architecture in practice: 1, 2, 3
Graded: Challenges in modern software engineering
Graded: The role of the Software Architect
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.
5 videos5 readings
  1. Video: The Software Architecture Design Process
  2. Video: Software requirements
  3. Video: Documenting Requirements
  4. Discussion Prompt: IoT project: requirements
  5. Video: What is the ADD process?
  6. Reading: ADD paper
  7. Video: Software Architecture in the Development Process
  8. Reading: Enabling agility through architecture
  9. Discussion Prompt: Design process
  10. Reading: Optional: ADD applied example
  11. Discussion Prompt: Designing architectures in the real world
  12. Reading: UberGoogle?
  13. Reading: Software architecture in practice: 4, 16, 17
Graded: Requirements
Graded: Documenting requirements
Graded: Attribute driven design
Graded: The place of software architecture in the software development process
Graded: UberGoogle Requirements
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.
5 videos2 readings
  1. Video: What are quality attributes?
  2. Video: The nature of quality attributes
  3. Video: What are QAS?
  4. Video: QA - Interoperability
  5. Video: QA - Modifiability
  6. Discussion Prompt: Quality attributes
  7. Discussion Prompt: IoT project: quality attributes
  8. Reading: The missing towels problem
  9. Reading: Software Architecture in practice: 5, 6, 7
Graded: Quality Attributes
Graded: Quality attribute scenarios
Graded: Interoperability
Graded: The Missing Towels
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.
5 videos1 reading
  1. Video: What are tactics? How do they differ from patterns?
  2. Video: Different types of tactics
  3. Video: Tactic - Modifiability
  4. Reading: Modifiability - tactics and patterns pt. 1
  5. Video: Introduction to DYAMAND
  6. Video: Problems and solutions
Graded: Tactics
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.
5 videos2 readings
  1. Video: Different types of patterns
  2. Video: Combining Tactics and Patterns
  3. Reading: Modifiability - tactics and patterns pt. 2
  4. Discussion Prompt: IoT project: tactics and patterns
  5. Discussion Prompt: Where to find patterns and tactics
  6. Video: DYAMAND's requirements
  7. Video: DYAMAND's architecture (1)
  8. Video: DYAMAND's architecture (2)
  9. Reading: Software Architecture in practice: 13
  10. Discussion Prompt: DYAMAND case study reflection
Graded: Patterns
How It Works
Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.
Help from Your Peers
Help from Your Peers
Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.
Earn official recognition for your work, and share your success with friends, colleagues, and employers.
EIT Digital
EIT Digital is a pan-European education and research-based open innovation organization founded on excellence. Its mission is to foster digital technology innovation and entrepreneurial talent for economic growth and quality of life. By linking education, research and business, EIT Digital empowers digital top talents for the future. EIT Digital provides online "blended" Innovation and Entrepreneurship education to raise quality, increase diversity and availability of the top-level content provided by 20 reputable universities of technology around Europe. The universities all together deliver a unique blend of the best of technical excellence and entrepreneurial skills and mindset to digital engineers and entrepreneurs at all stages of their careers. The academic partners support Coursera’s bold vision to enable anyone, anywhere, to transform their lives by accessing the world’s best learning experience. This means that EIT Digital gradually shares parts of its entrepreneurial and academic education programmes to demonstrate its excellence and make it accessible to a much wider audience. EIT Digital’s online education portfolio can be used as part of blended education settings, in both Master and Doctorate programmes, and for professionals as a way to update their knowledge. EIT Digital offers an online programme in 'Internet of Things through Embedded Systems'. Achieving all certificates of the online courses and the specialization provides an opportunity to enroll in the on campus program and get a double degree. These are the courses in the online programme:
Learn more about this course

No comments:

Post a Comment