Patterns-Oriented Software Architecture Volume 1: A System
of Patterns (1st ed), by Buschmann, Meunier, Rohnert,
Sommerlad, and Stal, Wiley ISBN 0-471-95869-7 (1996) (Required)
Check
Out This Text
Patterns-Oriented Software Architecture Volume 2: Patterns
for Concurrent and Networked Objects (1st ed), by Schmidt,
Stal, Rohnert, and Buschmann, Wiley ISBN 0-471-60695-2 (2000)
(Required) Check
Out This Text
This is a beginning course in object-oriented development. It may
be taken in one of several object-oriented languages, e.g., C#,
Java, or C++.
Please note that this course is conducted
*asynchronously* with regard to the face-to-face class meeting
schedule. That is, the course begins on January 11, 2011, for
*all* students.
Breadth and Depth in Defining, Analyzing, and Solving Complex
Problems:
After successfully completing this course, you should be able
to demonstrate a basic capability to apply software architecture
techniques to solve complex problems.
Communicate Technical Aspects of the Solution for Complex
Software Engineering Problems to a Technical Audience:
After successfully completing this course, you should be able
to demonstrate a basic ability to communicate regarding the
application of software architecture techniques to a technical
audience.
Use the projects to develop your capabilities, and
Use the projects to demonstrate your capabilities.
Deliverables for all projects:
Your report should be a single, standalone document in .html
or .doc format.
Your report should be organized in such a way as to make the
topics that you want credit for covering easy to find, and
demonstrate your capabilities clearly and convincingly.
Everything you want considered for credit, including code and
tests (including test results), should be included in the
report.
Each project can be a single, integrated project that tries
to actually do something, or a collection of exercises that
demonstrate your capabilities but don't accomplish anything
else, or any combination of these two alternatives that you
find convenient.
You may include other material outside of the report, if you
wish, but this material may or may not be considered in
evaluating your work.
For each capability that you demonstrate within a report or
major section of that report, you may present only the final
result of your work; you need not demonstrate every step in
the development of that result.
Don't repeat patterns. There are a lot of
patterns in our texts, so a pattern should be addressed in one
project or in none, but not in multiple projects.
Everyone should select some architectural patterns
(Volume 1, Chapter 2) to work with, but the other
patterns in both volumes are open for selection, too.
Consider and document (in your report) the
strengths and weaknesses of each pattern that you use, and it's
appropriateness for the application in which you plan to use it.
Why is this pattern "good" for this application? What potential
risks and weaknesses do you have to accept in order to use this
pattern for this application? (For example, if an application
[system] will need to be scalable, and you choose a non-scalable
architecture for that system, your system will fail.)
Project 1(Solo)
Familiarize yourself (at a high level of abstraction) with
the contents of Volumes 1 (Buschmann et al.) and 2
(Schmidt et al.) . Become familiar with what is
similar between the two volumes, and what is different.
Pick an architectural pattern from chapter 2 of Buschmann et
al., and develop (program, test, and demonstrate) an
implementation of that pattern.
Implementation of some patterns make take some
ingenuity. For example, the Microkernel architectural
pattern is frequently used in designing operating systems.
However, design and implementation of an operating system
is well beyond the scope of this course. However, you can
build something less that is less than an operating system
but is none-the-less based on your chosen design
pattern(s).
Use the course listserv and /or threaded discussion
capability to report your intended project scope, and to
help to manage that scope.
Project 2 (Solo)
Pick two new (to you) architectural patterns from Volume 1
and/or Volume 2, and develop (program, test, and demonstrate)
an implementation of each pattern.
Implementation of some patterns make take some
ingenuity. For example, the Microkernel architectural
pattern is frequently used in designing operating systems.
However, design and implementation of an operating system
is well beyond the scope of this course. However, you can
build something less that is less than an operating system
but is none-the-less based on your chosen design
pattern(s).
Use the course listserv and /or threaded discussion
capability to report your intended project scope, and to
help to manage that scope.
Project 3 (Solo)
Pick two new (to you) architectural patterns from Volume 1
and/or Volume 2, and develop (program, test, and demonstrate)
an implementation of each pattern.
Implementation of some patterns make take some
ingenuity. For example, the Microkernel architectural
pattern is frequently used in designing operating systems.
However, design and implementation of an operating system
is well beyond the scope of this course. However, you can
build something less that is less than an operating system
but is none-the-less based on your chosen design
pattern(s).
Use the course listserv and /or threaded discussion
capability to report your intended project scope, and to
help to manage that scope.
Project 4 (Team)
Pick two new (to you) architectural patterns from Volume 1
and/or Volume 2, and develop (program, test, and demonstrate)
an implementation of each pattern.
Implementation of some patterns make take some
ingenuity. For example, the Microkernel architectural
pattern is frequently used in designing operating systems.
However, design and implementation of an operating system
is well beyond the scope of this course. However, you can
build something less that is less than an operating system
but is none-the-less based on your chosen design
pattern(s).
Use the course listserv and /or threaded discussion
capability to report your intended project scope, and to
help to manage that scope.
Self Study: You study the texts and any other course study
material on your own.
Collaborative Projects: After your self-study, you
collaborate (via the Internet [email, ftp]) with your
partner(s) to produce a team product. Your collaborative work
is substantial, asynchronous, and rapid.
This course is a distance learning course with 100% optional
face-to-face class meetings Please read this Distance Learning web page
regarding distance learning in this course and this program.
"Students requiring accommodations for a disability should inform
the instructor at the close of the first class meeting or as soon
as possible. The instructor will refer you to the Disability
Support Services Coordinator to document your disability,
determine eligibility for accommodations under the ADAAA/Section
504 and to request a Faculty Accommodation Form. Disability
accommodations or status will not be indicated on academic
transcripts. In order to receive accommodations in a class,
students with sensory, learning, psychological, physical or
medical disabilities must provide their instructor with a Faculty
Accommodation Form to sign. Students must return the signed form
to the Disability Services Coordinator. A new form must be
requested each semester. Students with a history of a disability,
perceived as having a disability or with a current disability who
do not wish to use academic accommodations are also strongly
encouraged to register with the Disability Services Coordinator
and request a Faculty Accommodation Form each semester. For
further information, please contact Carole Burrowbridge,
Disability Services Coordinator, at 301-2778 or visit the
Disability Support Services website at http://www.mercer.edu/studentaffairs/disabilityservices"
* (10/09)
Accreditation: Mercer University is accredited by SACS.