Software Architecture and Design

CS6310: Georgia Tech OMSCS Course Information



This course teaches the principles and concepts involved in the analysis and design of large software systems. After completing the course a student should have obtained the skills and knowledge necessary to accomplish the following:

  • Express the analysis and design of an application using UML
  • Specify functional semantics of an application using OCL
  • Specify and evaluate software architectures
  • Select and use appropriate architectural styles
  • Understand and apply object-oriented design techniques
  • Select and use appropriate software design patterns
  • Understand and perform a design review


An undergraduate software engineering course or industrial software development experience is required.

How This Course Works

Class Policies

  • Students are expected to abide by the Georgia Tech Honor Code and academic policies as specified in the Georgia Tech Catalog
    • Honest and ethical behavior is expected at all times
    • All incidents of suspected dishonesty will be reported to and handled by the Office of Student Affairs
    • You are to complete all assignments yourself, unless the assignment instructions explicitly state otherwise
    • You may discuss the assignments with your classmates, but you may not copy any solution (or part of a solution) from a classmate
  • Readings should be completed before the lesson for which they are listed
  • All assignment and project policies, due dates, and submission information will be listed on T-Square
  • Any changes to these policies and other course announcements will be posted on T-Square, which you are expected to read
  • If you have any questions concerning a grade that you received in this course, first contact the teaching assistant who graded it
  • All submitted (non-source file) documents should conform to the CS6310 Writing Guidelines.

Course Schedule


Frequently Asked Questions