Objectives

The course teaches students how to apply software design principles, design patterns, and architectural styles effectively, and document and evaluate architectures for large software systems. The student learns to:
- understand the theoretical aspects of design patterns and architectural styles
- apply design patterns and architectural styles in practice
- follow the recommended software design principles and avoid design smells
- design, document and evaluate architectures for large distributed systems
- explain the stakeholder forces and central quality attributes affecting the architecture

The course additionally introduces students to practical tools and methods for software design and documentation, such as model-driven development tools and the 4+1 architectural view model. The course strengthens the following working life skills: presentation skills, creativity, multi-professionalism, problem solving skills, project management, information and communication technology skills, communication skills and cooperation and negotiation skills.
  • Opettaja
    Sampsa Rauti