Back to Full Curriculum
SE202Semester 43 (2-0-2)Major

Software Architecture

Definition and role of software architecture in system development lifecycle, Architectural structures (modules, components, connectors, deployment), Quality attributes (performance, availability, security, maintainab...

Syllabus

01

Unit 1: Architectural Foundations and Quality Attributes

Definition and role of software architecture in system development lifecycle, Architectural structures (modules, components, connectors, deployment), Quality attributes (performance, availability, security, maintainability, scalability) and their trade-offs, Architecture Influence Cycles and decision making frameworks, Non-functional requirements elicitation and specification using scenarios and utility trees.

02

Unit 2: Architectural Styles and Patterns

Classification of architectural styles (layered, client-server, pipe-filter, event-driven, service-oriented), Microservices architecture principles and decomposition strategies, Model-View-Controller (MVC) and variations (MVP, MVVM), Architectural patterns (Broker, Blackboard, Peer-to-Peer), RESTful principles and API design best practices for distributed systems.

03

Unit 3: Component-Based and Service-Oriented Architectures

Component principles (cohesion, coupling, interfaces, contracts), CORBA/CCS component model vs. modern container-based approaches, Service-Oriented Architecture (SOA) fundamentals, ESB patterns and anti-patterns, Microservices orchestration vs. choreography, Domain-Driven Design (DDD) bounded contexts and context mapping.

04

Unit 4: Architectural Views and Documentation

4+1 View Model (Logical, Process, Development, Physical, Scenarios), UML 2.x structure and behavior diagrams for architecture representation, Architecture Description Languages (ADLs), Tool-supported architectural modeling (Enterprise Architect, ArchiMate), Documenting architectural decisions using ADRs (Architecture Decision Records).

05

Unit 5: Architecture Evaluation and Evolution

Architecture Tradeoff Analysis Method (ATAM), Software Architecture Analysis Method (SAAM), Scenario-based evaluation techniques, Risk-driven architecture evaluation, Refactoring legacy architectures, Evolutionary architecture principles (fitness functions, strangler pattern), Cloud-native architecture migration strategies.