Jun 07, 2023
SE 3810 - Software Architecture
3 lecture hours 2 lab hours 4 credits
This course provides an introduction to software architecture, the high-level design and structure of a software system, the discipline of creating such structures to satisfy quality requirements, and the documentation of these structures. Topics covered include quality attribute driven design; quality attribute design tactics; architectural styles and patterns; architecture tradeoff and cost-benefit analysis; skeletal system design, evaluation, and analysis; and coverage of contemporary topics in distributed, highly saleable software architectures. Laboratory assignments permit students to develop, evaluate and implement their designs. (prereq: SE 2811 , SE 3821 )
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
- Demonstrate an understanding of the principles of software architecture and the discipline of designing system structures to satisfy quality requirements.
- Understand how to document software architectures
- Understand and apply quality attribute driven design
- Understand design tactics for satisfying quality attribute responses
- Understand and apply architectural styles and patterns to satisfy design tactics understand basic architecture tradeoff and cost-benefit analysis
- Understand skeletal system design to facilitate architecture evaluation and analysis; and coverage of contemporary topics in distributed, highly saleable software architectures.
- Work collaboratively as a member of a small design team
Prerequisites by Topic
- Software requirements, including non-functional (qualtiy) requirements
- Software development process tools and methods
- Introduction to course and software architecture
- Quality attributes, architectural styles, and architectural design patterns
- The role of architecture in software development
- Designing the architecture
- Architectural design patterns and styles
- Architecture analysis and reviews
- Team project work
- Software architecture case studies
- Functional and non-functional requirements, business drivers, mapping requirements to architecture.
- Architecture design, prototyping, analysis, and review.
- Project presentations
Add to Portfolio (opens a new window)