Architecture description languages, Software Architecture Analysis, Software Architecture design, and documentation, component models and technologies, software product lines, frameworks, and aspect-oriented programming. To give the students understanding of the concept of software architecture and how this phase in the development between requirement specification and detailed design plays a central role for the success of a software system. The students will get knowledge of some well-known architecture patterns, and be able to design, construct and evaluate architectures for software systems. In addition, the students should get some understanding of how the developer’s experiences and the technical and organizational environment will influence on the choice of architecture. Architectural styles and patterns, methods for constructing and evaluating architectures, and component-based development. Design patterns and object-oriented frameworks. Architecture and video games.