CS5319/7319
Software Architecture & Design
Spring 2021
Class Time: MW 11:00am - 12:20pm
Location: Caruth Hall 0379

Course Syllabus
Instructor: Dr. LiGuo Huang
Office Hours: MW 10:00-11:00am (Zoom by appointment)
Email: lghuang AT smu DOT edu (preferred way of communication)
Phone:
 (214) 768-3709
Fax: (214)-768-9880 Attn: Dr. LiGuo Huang, CS5/7319

Grader: George Sammit
Email: gsammit@smu.edu (preferred way of communication)
Office Hours: by appointment (only if the problem cannot be resolved by email or online meeting)
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: 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 1/25 Course Overview Course Overview
  Questionnaire
1/27  The Big Idea Slides SAFTP Ch 1
Week 2 2/1 Architectures in Context: The Reorientation of Software Engineering Slides SAFTP Ch 2
2/3 Basic Concepts;

Guest Lecture (Dr. Isaac Chow)
Slides
MapReduce Case Study
MapReduce
WordCount Example
SAFTP Ch 3
Week 3 2/8 Designing Architectures (1) Slides SAFTP Ch 4 (4.1-4.3.2)
2/10 Designing Architectures (2)    
Week 4 2/15 Snow Day; Class Cancelled    
2/17 Architectural Styles (1) Slides SAFTP Ch 4 (4.3.3-4.3.4)
Week 5 2/22 Architectural Styles (2)
2/24 Architectural Styles (3)
Week 6 3/1 Styles and Greenfield Design (1) Slides SAFTP Ch 4 (4.3.4~end)
3/3 Styles and Greenfield Design (2)  
Week 7 3/8 Software Connectors Slides SAFTP Ch 5 (5.1~5.4)  
3/10 Exam 1      
Week 8 3/15 Homework 3 Andriod Tutorial (Simin Wang)
Homework 3 PWA, Note.js and Angular Tutorial (Dr. Isaac Chow)
Android
PWA-NodeJs-Angular
 
3/17 Choosing Connectors Slides SAFTP Ch 5 (5.5~end)  
Week 9 3/22 Introduction to Modeling (1) Slides SAFTP Ch 6 (6.1~6.5.1)  
3/24 Introduction to Modeling (2)  
Week 10 3/29 Modeling and Notations (1) Slides SAFTP Ch 6 (6.5.2~end)
3/31 Modeling and Notations (2)    
Week 11 4/5 Modeling and Notations (3)   ADL
4/7 Modeling and Notations (4); Homework 4 Tutorial C2SADEL Tutorial   Project Presentation & Final Deliverables
Week 12 4/12 Applied Software Architectures and Styles Slides SAFTP Ch11 (11.1~11.2)
4/14 Final Project Presentation and Demo (4)    
Week 13 4/19 Final Project Presentation and Demo (4)      
4/21 Final Project Presentation and Demo (4)  
Week 14 4/26 Final Project Presentation and Demo (4); Exam 2
4/28 Final Project Presentation and Demo (4)
Week 15 5/4 Reading Day: Make up cancelled class on Feb. 17.
Final Project Presentation and Demo (4)
     
       
Grading

Homework (34%), Term Project Proposal (2%), Term 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 two 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.

Exam 1:
Both On Campus and Off Campus students must contact the Lyle Distance Team at dehelp@lyle.smu.edu to register and set up your ProctorU remote exam by 2/22/2021.

Policy: Close Book, Close Notes, No Electronic Devices, No discussion

ProctorU Exam Window: 3/10 ~ 17, 2021

Please submit your completed exam through ProctorU by 11:59pm CT on March 17, 2021. 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!

Exam 2:

Both On Campus and Off Campus students must contact the Lyle Distance Team at dehelp@lyle.smu.edu to register and set up your ProctorU remote exam by 2/22/2021.

Policy: Close Book, Close Notes, No Electronic Devices, No discussion

ProctorU Exam Window: 4/26 ~ 5/3, 2021

Please submit your completed exam through ProctorU by 11:59pm CT on May 3, 2021. 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!

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. 
  • Disability Accommodations: Students needing academic accommodations for a disability must first register with Disability Accommodations & Success Strategies (DASS). Students can call 214-768-1470 or visit http://www.smu.edu/Provost/SASP/DASS to begin the process. Once approved and registered, students will submit a DASS Accommodation letter to faculty through the electronic portal DASS Link and then communicate directly with each instructor to make appropriate arrangements. Please note that accommodations are not retroactive and require advance notice to implement.
  • Religious Observance: Religiously observant students wishing to be absent on holidays that require missing class should notify their professors in writing at the beginning of the semester, and should discuss with them, in advance, acceptable ways of making up any work missed because of the absence. (https://www.smu.edu/StudentAffairs/ChaplainandReligiousLife/ReligiousHolidays).
  • Excused Absences for University Extracurricular Activities: Students participating in an officially sanctioned, scheduled University extracurricular activity should be given the opportunity to make up class assignments or other graded assignments missed as a result of their participation.  It is the responsibility of the student to make arrangements with the instructor prior to any missed scheduled examination or other missed assignment for making up the work. (See 2020-2021 SMU Undergraduate Catalog under “Enrollment and Academic Records/Enrollment Policies/Excused Absences.”).
Last Updated: