SWE 443
Software Architectures
Spring 2013
Location: Art and Design Building, Room L008
Time: MW 3:00-4:15pm
Dr. Sam Malek
Electronic Mail: smalek@gmu.edu
Office: 4431, Nguyen Engineering Building
Office Phone: +1-703-993-1677
Office Hours: Mon 10-12pm or by appointment
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
Prerequisites
·
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.
Learning Disabilities
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.