Main Content

SE 339: Software Architecture

Learning Outcomes


  1. Understand what a software architecture is and explain why it is important
  2. Ability to elicit software architecture drivers
  3. Ability to use architecture styles, patterns, and tactics
  4. Ability to use the attribute-driven method to design software architecture,
  5. Ability to evaluate software architecture

Lecture Sessions


Lecture (Online)

Tuesdays from 5:00 pm to 5:25 pm


Instructor


Dr. Lotfi ben Othmane

Durham Hall #315 Department of Electrical and Computer Engineering
Iowa State University
Phone: 515-294-2664
Email: othmanel@iastate.edu

Office Hours

4:00 - 5:00 Tuesdays and Thursdays
6:00 - 7:00 Wednesdays
Through Webex

Teaching Assistants


Ameerah-Muhsinah Jamil | amjamil@iastate.edu
Austin Boling | adboling@iastate.edu
Danny Yip Yi Kang | dannyyip@iastate.edu

Tentative Schedule


Week Topic Assignment
1 Syllabus
Introduction of software architecture
Understanding of software architecture
Assignment 1 Article
Assignment 1
2 Functional Overview
Architecture of single-process system
Assignment 2
3 Client- Server Architecture
Concurrency
4 Architecture recovery
5 Microservices
Microservices - Spring Boot
6 Architecture Patterns and Tactics Practice Assignment 1
7 Architecture requirements for Cyberphysical systems
Architecture drivers
8 Eliciting architecture drivers
Common quality attributes in software projects
9 Architecture Styles and patterns for Cyberphysical systems
10 Software Security Architecture Assignment3(Optional)
11 Architecture Design v4.0
12 Architecture Design v4.0 Practice Assignment 2
13 Architecture Evaluation
14 Documenting Software Architecture

Grading


  • 20% for individual assignments
  • 10% for participation
  • 30% for the practice assignments
  • 25% for Quizzes
  • 15% for final exam

We will use the standard grade levels. Do not expect the grades to be curved. There will be limited bonus points – get them.

Evaluation


All assignments must be submitted through Canvas. Submission of late assignments are not considered if submitted after 2 days and will have 10% penalty otherwise.

Communication


The best way to communicate with me is by email—use [SE339] as subject prefix. I usually reply in 2 business days. Remind me if you do not get an answer. Do not expect me to respond to a communication when the exchange exceeds 4 or 5 emails. In such cases, the issue shall be addressed in a face-to-face meeting.