 Welcome to module 5 of the software engineering course and this module is all about the topic called software architecture. So as in the origin where this comes from, building structures, software architecture is all about how do we organize our software system, how do we plan it, how do we outline it on a large high level. So questions we ask ourselves is how do we organize the system, how is the organization, what are the overall parts, what is the overall structure and what are the main components, what are the main parts we are having and how do they relate to each other, what are the interfaces between them. So these are typical things we ask ourselves and it's basically to divide work, to organize work later on, but also to plan certain properties that we need for our system. So it's really a number of concerns that we look like, look at. And the reason to have an architecture is that you can use it for communication, so you can use it to describe to people what are you doing, how are you structuring the system. You can use it to analyze certain properties, is are we going to have a good performance or are we going to focus on security instead for example. You can reuse, so once you have an architectural description you might be reusing that in future products or in parts of other systems that you're doing and you can also use it to evolve your system. Since nowadays we rarely build a system and it's done but we want to evolve it over time you can plan for this by having an overall architecture. Now there are typical ways to represent the architecture and common now for example these box and line diagrams, so diagrams that basically show we have a number of components in our system. What are these components and more importantly as well how do they interact, what are the interfaces between them. So those are very easy then you can go into more detail and for that the unified modeling language UML has a diagram called the component diagram. Now in the remainder of this module I will start by first introducing this component diagram to give you a reference of how this can look like and then we go into depth here asking ourselves well for example what kind of analysis can we do, what kind of trade-offs do we need to look at, how do we represent typical architectures so there are common ways of doing this and several aspects in this direction.