Software Architecture
Software Architecture
Course Objectives:
● Gain a solid foundation in software architecture principles and concepts
● Understand the importance of non-functional requirements and how to measure them
● Learn about different architectural views and the documentation process
● Explore architectural styles and their application in software design
● Master various design patterns for creating robust and scalable architectures
● Understand distributed software architectures and their challenges
● Develop skills in designing and evaluating software architectures for modern
technologies
● Recognize anti-patterns and strategies for addressing them
● Explore the role of software agents and formal methods in software architecture
● Stay updated on emerging trends and future challenges in software architecture
Course Outcomes:
By the end of the course, students will be able to:
● Explain the key concepts and principles of software architecture
● Assess and measure non-functional requirements for software systems
● Create effective software architecture documentation and views
● Apply the 4+1 view model for describing software architectures
● Identify and utilize appropriate architectural styles for different design scenarios
● Implement creational, behavioral, and structural design patterns in software
architecture
● Design and manage distributed software architectures
● Employ suitable approaches and tools for evaluating software architectures
● Recognize and address anti-patterns in software architecture
● Understand the role of software agents and formal methods in software architecture
● Analyze future challenges and emerging trends in the software architecture discipline
Tools Needed:
Method of Teaching
S/N Activity Duration
1 Lectures 12
2 Practicals 12
3 Tutorials
Total 24
Assessment
SN Assessment Mode Mark
1 Continuous assessment (CA) 30%
2 Examination 70%
3
Total 100
TEACHING PLAN
SLOT Delivery Mode
Week Day Time Topics per Week Lec T Pract Ass
t ut
1 4HR Introduction to Software Practicals (2 Take-home
S Architecture Theory (2 hours): √ √ hours): exercise:
● Definition and importance Hands-on lab: Research and
of software architecture Analyzing and analyze a
● Key principles and evaluating real-world
concepts in software software software
architecture architectures architecture
● Role of software case study
architecture in system
development
Resources:
● Textbook: "Software Architecture in Practice" by Len Bass, Paul Clements, and Rick
Kazman
● Online resources, articles, and research papers on software architecture topics
● Case studies and examples of real-world software architectures
● Video lectures and tutorials on software architecture concepts and techniques
Course Master Co-Instructors Head of Department