Instructor Fall 2019: Bruce Montgomery

Description and Content

Object-Oriented Analysis and Design is a course that presents an introduction to the design and construction of software systems using techniques that view a system as a set of objects that work together to realize the system's functionality. This
perspective stands in contrast to more traditional "procedural" or "structured" design techniques that viewed systems as a set of procedures that manipulate shared data structures. Proponents of object-oriented techniques point to the flexibility and extensibility of object-oriented systems along with other benefits such as increased modularity, abstraction, and encapsulation.
In this class, we will examine fundamental objected-oriented analysis and design techniques and show how decisions made during analysis and design impact the implementation of software systems. This class does not focus on object-oriented programming; however, we will examine many examples of object-oriented systems written in Java, Python, and other languages. A primary focus will be the understanding and application of key object-oriented principles and design patterns.
By the end of the class, students will have been exposed to the major steps of object-oriented software development life cycles and will understand the tools and techniques that are used in these steps. They will also have applied these skills to the development of a project and the analysis of real-world object-oriented systems.

Readings

Course materials include lecture slides, project guides, and other online materials, with frequent references to various texts and other resources. The textbook for the class is a required resource.
Textbook:
o Head First Design Patterns
o By Bates, Sierra, Freeman, & Robson
o O’Reilly Media, June 2009
o Available at the campus bookstore, and as a paper book ($42) or e-book ($12 rent, $32 buy) via Amazon. The e-book is also available via O’Reilly Safari (free access to ACM members).
Course lecture slides, course labs and project material, and links to web sites to support class topics and projects will
be embedded in lecture slides and provided via Canvas.