物联网的软件架构培训
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
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.
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.
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.
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.