One
of the greatest difficulties for young graduates that work in software is
getting the big picture. Why are things organized
the way they are? Why do they behave the way they do? What can you do to change
it? Architecting software is normally reserved for senior people, 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:
·
Recognize
major architectural styles in existing software systems.
·
Describe
a systems architecture accurately.
·
Generate
architectural alternatives to address a problem and choose among them.
·
Design
a medium-sized software system that satisfies a specification of requirements.
·
Use
existing tools to expedite software design.
·
Evaluate
the suitability of a given architecture in meeting a set of system
requirements.
Prerequisites
·
SWE/CS
421
Instructor
Textbook
Documenting Software Architectures: Views and Beyond. Paul
Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers,
Reed Little, Robert Nord, Judith Stafford., Addison-Wesley 2003 (required
available at the GMU bookstore)
Software Architectures Perspectives on an Emerging Discipline.
Mary Shaw and David Garlan, Prentice Hall, 1996 (recommended)