CS5319/7319
Software Architecture & Design
Fall 2024
Class Time: TTh 11:00am - 12:20pm
Location:  Caruth Hall 0179

Instructor: Dr. LiGuo Huang
Office Hours: TTH 10:00-11:00am (Caruth Hall 421)
Email: lghuang AT smu DOT edu (preferred way of communication)
Phone:
 (214) 768-3709 (unpreferred)
Fax: (214)-768-9880 Attn: Dr. LiGuo Huang, CS5/7319

TA/Grader: William Chavula
Email:  wchavula@smu.edu (preferred way of communication)
Office Hours: TBD
Off Campus Student Contact: Lyle Distance Team
Email: dehelp@lyle.smu.edu
Phone: TBA
Fax: TBA
Announcements
Course Information
Course Objectives As the size of software system increases, the algorithm and data structures of the computation no longer constitute the major design problems. When systems are constructed from many components, the organization of the overall system -- the software architecture -- presents a new set of design problems. Software architecture has become an area of intense research in the software engineering community. A number of architecture modeling notations and support tools, as well as new architectural styles, have emerged. The focus of architecture-based software development is shifted from lines-of-code to coarser-grained building blocks and their overall interconnection structure. Explicit focus on architecture has shown tremendous potential to improve the current state-of-the-art in software development and alleviate many of its problems. This course assumes that you have a good background in software technology such as data structures, algorithms and programming languages (Java, C++, C#, etc.), and concentrates on the software architecture and design issues. CS5319/7319 will be organized as a research seminar, with active student participation. This course attempts to enhance the advanced research component in the SMU's software engineering program. It is particularly suited for students interested in pursuing a Ph.D. degree or Doctor of Engineering in software engineering, and for MS/SE students who want to get a firsthand knowledge about the software architecture research affecting their field of study. It comprises the core curriculum of SMU Master of Science majoring in Software Engineering.
Course Topics The course covers the following topics on software architecture and design:
  • The critical concepts of software architecture (design patterns and architectural styles, components, connectors)
  • The nuts and bolts of applying the concepts (modeling and notations, visualization, analysis, implementation, deployment)
  • Special topics on software architecture
Textbooks and References
  • Required: Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy, Software Architecture: Foundations, Theory, and Practice. 1st Edition, Wiley, Jan. 2009, ISBN-10: 0470167742, ISBN-13: 978-0470167748. (SAFTP)
  • Recommended:  Len Bass, Paul Clements, Rick Kazman, Software Architecture in Practice (SEI Series in Software Engineering), 4th Edition, Addison-Wesley Professional, August 2021. ISBN-10: 0136886094, ISBN-13: 978-0136886099. (SAP)
  • Reference: Mary Shaw and David Garlan, Software Architecture: Perspectives on an Emerging Discipline, 1st edition Prentice Hall, 1996.
Course Schedule & Lecture Notes
Week Date Lecture Notes Readings Assignments Due
Week 1 8/27 Course Overview
Course Overview
   
8/29 The Big Idea Slides SAFTP Ch 1
Week 2 9/3 Architectures in Context: The Reorientation of Software Engineering (1) Slides SAFTP Ch 2
9/5 Architectures in Context: The Reorientation of Software Engineering (2)  
Week 3 9/10 Guest Lecture: Software Architecture in Real World (Dr. Isaac Chow) SA in Real World
MapReduce
 
9/12 Basic Concepts Slides SAFTP Ch 3
Week 4 9/17 Designing Architectures Slides SAFTP Ch 4 (4.1-4.3.2)
9/19 Architectural Styles (1) Slides SAFTP Ch 4 (4.3.3-4.3.4)
Week 5 9/24 Architectural Styles (2)    
9/26 Architectural Styles (3)    
Week 6 10/1 Architectural Styles (4)    
10/3 Styles and Greenfield Design (1) Slides SAFTP Ch 4 (4.3.4~end)  
Week 7 10/8 Fall Break; No Class      
10/10 Styles and Greenfield Design (2)      
Week 8 10/15 Exam 1    
10/17 REST, Applied Architecture and Styles Slides SAFTP Ch11 (11.1~11.2)  
Week 9 10/22 Homework 3 Andriod Tutorial (Simin Wang);
Homework 3 REST API Tutorial (Dr. Isaac Chow)
Android
REST API
   
10/24 Software Connectors (1) Slides SAFTP Ch 5 (5.1~5.4)
Week 10 10/29 Software Connectors (2)    
10/31 Software Connectors (3)
Architecture Risks
Risk SAP 21
Risk SAP 4
Risk SAP 3
SAP Chapter 21
SAP Chapter 4
SAP Chapter 3
Week 11 11/5 Choosing Connectors Slides SAFTP Ch 5 (5.5~end)
11/7 Introduction to Modeling Slides SAFTP Ch 6 (6.1~6.5.1)
Week 12 11/12 Modeling and Notations (1) Slides SAFTP Ch 6 (6.5.2~end)  
11/14 Modeling and Notations (2)   ADL  
Week 13 11/19 Modeling and Notations (3);
Homework 4 Tutorial
C2SADEL Tutorial    
11/21 Final Project Presentation and Demo (3)  
Week 14 11/26 Final Project Presentation and Demo (3)
11/28 Thanksgiving; No Class
Week 15 12/3 Final Project Presentation and Demo (3)
12/5 Exam 2  
Week 16      
Grading

Homework (34%), Final Project Proposal (2%), Final Project Presentation and Demo (19%), Exam 1 (22%), Exam 2 (23%)

Grades for all course assignments (i.e., homework, projects, exams) will be posted on Canvas. Final letter grades will be assigned based on the Curve (Grade Distribution) of the entire class but not the absolute grade cutoff, and will be posted on my.smu.edu. CS5319 and CS7319 are graded separately based on the curves in the corresponding sections.

Homework Assignments

Homework assignments will be posted on the course webpage.

Assignment submission:  Please put your Name, SMU ID, On Campus or Off Campus, Class Section #, Email Address on your title page. All course assignments (i.e., homework, project) shall be submitted through the Canvas submission link by the specified due date. No email submission will be accepted!

Late homework will receive a 25% penalty per day. In case of real emergencies, please talk to both the professor and grader to make special arrangements. If you will be out of town for a non-emergency (e.g., an interview), you should turn in the assignment early, rather than late, to avoid a penalty.

Final Project
Exams

The exams will test knowledge and skills developed in lectures, and assignments. The exams will stress deep understanding of the concepts involved rather than superficial aspects of programming.

Late exam submission will receive a 25% penalty per day late. Off-campus students are highly encouraged to take both exams on campus unless you are located outide of DFW area or a full time employee.  Please take the On-Campus Exams Survey Quiz to commit to take the Exam 1 and Exam 2 in class on campu or off campus via Canvas Lockdown Browser.

Exam 1:

Policy: Close Book, Close Notes, No electronic devices, No discussion or sharing.

On Campus: Time: 11:00 -12:20pm CT, 10/15/2024; Location: In class.

Off Campus: Time: 7:30-8:50pm CT, 10/15/2024. Off-campus students' exams are required to be proctored and completed within 80 Minutes via Canvas Lockdown Browser. Please ensure the legibility of your scanned copy. Illegible parts will be considered missing from your answer and points will be deducted accordingly. Please contact the Distance Team at dehelp@lyle.smu.edu if you have any exam submission questions. Email submission will not be accepted for grading! Note that all off-campus students are encouraged to join the in-class exam. Only if you are outside of DFW area or you are fulltime exployee whose work schedule conflicts with the class time, you are allowed to take the Exam 1 via Canvas Lockdown Browser. The survey quiz results record whether your are committed to take the Exam 1 on campus or via Canvas Lockdown Browser.

Exam 2:

Policy: Close Book, Close Notes, No electronic devices, No discussion or sharing.

On Campus: Time: 11:00 -12:20pm CT, 12/5/2024; Location: In class.

Off Campus: Time: 5:30-6:50pm CT, 12/5/2024. Off-campus students' exams are required to be proctored and completed within 80 Minutes via Canvas Lockdown Browser. Please ensure the legibility of your scanned copy. Illegible parts will be considered missing from your answer and points will be deducted accordingly. Please contact the Distance Team at dehelp@lyle.smu.edu if you have any exam submission questions. Email submission will not be accepted for grading! Note that all off-campus students are encouraged to join the in-class exam. Only if you are outside of DFW area or you are fulltime exployee whose work schedule conflicts with the class time, you are allowed to take the Exam 2 via Canvas Lockdown Browser. The survey quiz results record whether your are committed to take the Exam 2 on campus or via Canvas Lockdown Browser.

Policies
  • Late Submission Policy. All course assignments will be due on the Canvas at 11:59pm on the specified due dates, unless otherwise informed. Late homework will receive a 25% penalty per day. In case of emergencies, please talk to both the professor and grader to make special arrangements. If you will be out of town for a non-emergency (such as an interview), you should turn in the assignment early, rather than late, to avoid a penalty.
  • Academic misconduct of any kind is prohibited by the SMU Student Honor Code. Academic dishonesty may be defined broadly as a student's misrepresentation of his or her academic work or of the circumstances under which the work is done. This includes plagiarism in all papers, projects, take-home exams, or any other assignments in which the student represents work as being his or her own. It also includes cheating on examinations, unauthorized access to test materials, and aiding another student to cheat or participate in an act of academic dishonesty. Failure to prevent cheating by another may be considered as participation in the dishonest act. 
Last Updated: