Location: Art and Design Building, Room L008
Time: MW 3:00-4:15pm
One of the greatest difficulties for a programmer in a large software engineering project is understanding the “big picture”. What are the components of a software system? How are those components communicating with one another? What other architectures are possible for the system? What are the tradeoffs between those alternatives? Architecting software is normally reserved for senior and highly experienced programmers, but this course shows you the ropes of the trade so that you too can work towards becoming a software architect.
This course teaches how to design, understand, and evaluate software systems at an architectural level of abstraction. By the end of the course, students will be able to:
· Identify and characterize the major architectural styles in existing software systems.
· Recover the architecture of a software system by analyzing its code.
· Describe a system’s architecture accurately using views of the code and run-time structures.
· Use existing tools and architectural frameworks to expedite software design.
· Design a medium-size software system that satisfies a specification of requirements
· Discuss the pros and cons of architectural alternatives.
This course can be taken for credit towards
· BS CS major as a Senior CS-related course
· BS CS minor in Software Engineering
· BS in Applied CS in Software Engineering
· CS 321 Minimum Grade of C
· Knowledge of Java
· Software Architecture: Foundations, Theory, and Practice (required). R. N. Taylor, N. Medvidovic, and E. M. Dashofy. Wiley, 2009.
· Class Participation 5%
· Two Programming Assignments 25%
· One Course Project 25%
· Midterm Exam 20%
· Final Exam 25%
Late Work Will only be accepted with previous authorization from the instructor.
See the course website for more information
George Mason's policy concerning student conduct applies. Although students are encouraged to discuss the topics covered in class, all homework assignments, exams, and projects are to be completed individually, unless joint work is explicitly authorized by the instructor. If joint work is authorized, all contributing students must be listed on the submission. Presenting as one's own the words, the work, or the opinions of someone else without proper acknowledgment is plagiarism. Any deviation from the aforementioned policies is considered to be a violation of GMU’s Honor Code, and, as a minimum, will result in failure of the submission and, as a maximum, failure of the class.
Students with a learning disability or other condition (documented with GMU Office of Disability Services) that may impact academic performance should speak with professor ASAP to discuss accommodations.