CS 6310: Software Architecture and Design

Course Creators and Instructors

Spencer Rugaber
Spencer Rugaber
Creator, Instructor


Software Architecture and Design will provide students with the principles and concepts involved in the analysis and design of large software systems. The learning objectives for the course are the following:  

  • Understand and apply object-oriented design techniques
  • Develop and evaluate software architectures
  • Select and use appropriate architectural styles
  • Select and use appropriate software design patterns
  • Express the specifications and design of an application using UML
  • Specify parts of the design using a formal design language (OCL)

  View the CS 6310 - Software Architecture and Design course syllabus for more detail.


To undertake this course you should either have successfully taken an undergraduate software engineering course or CS 6300. Alternatively, if you have significant experience actually developing industrial software, you should be fine. The course makes use of Java and assumes knowledge of object-oriented techniques. There are videos available on the class resources page to refresh your knowledge of these two topics.

If you answer "no" to any of the following questions, it may be beneficial to refresh your knowledge of this material prior to taking CS 6310:  

  • 1. Have you taken a software engineering course before or have you had some experience working as a software engineer in a company?
  • 2. Are you familiar with basic software engineering concepts, such as requirements, software design, and software testing?
  • 3. Are you familiar with at least one object oriented programming language, preferably Java?
  • 4. Are you comfortable, or even excited about, learning new technologies and working with software tools?
  • 5. Do you have enough flexibility to work with a team that meets (remotely) on a regular basis?


  • Student performance is evaluated in four ways, which can all be found in the course syllabus.

Required Course Readings

There is no required text for the course. The class resources page lists two books that provide background for much of the course material. There are required readings for the course. Links to these papers are contained in the class resources page.

Minimum Technical Requirements

  • You will be provided a VirtualBox virtual machine to use while in this course.
  • In addition, you are expected to have screen and voice capture software available to you for submitting demo materials. The class resources page provides suggested tools.
  • Browser and connection speed: An up-to-date version of Chrome or Firefox is strongly recommended. We also support Internet Explorer 9 and the desktop versions of Internet Explorer 10 and above (not the metro versions). 2+ Mbps recommended; at minimum 0.768 Mbps download speed
  • Operating system: PC: Windows XP or higher with latest updates installed Mac: OS X 10.6 or higher with latest updates installed Linux: Any recent distribution that has the supported browsers installed

Other Info

Academic Honesty

All Georgia Tech students are expected to uphold the Georgia Tech Academic Honor Code