CIS28: Object Oriented Analysis and Design

Schedule: Lecture 6:00-7:25 Lab 7:25-8:25


Although you probably understand a combustion engine well enough to drive a car, unless you're an accomplished automobile engineer you probably can't build an engine or a car. You enjoy music and may know a couple guitar or piano chords, but you probably can't play in a band or write a symphony. The ability to drive a car and listen to music makes me a consumer of cars and music, but you're not a producer of either. This is the problem with Object Oriented Programming. Many programmers understand OOP well enough to use it, but they are trying to create it too. That's when OOP becomes POO. A huge number of programmers who kind of get OOP are creating POO.

Finding a single class and implementing it is not that hard. Building an entire family of classes, defining their relationships, managing CRUD (Create, Read, Update, Delete), and doing so all with custom objects is exceptionally hard. If you don't know about patterns, refactoring, and UML, and you don't actually have some experience successfully designing objects, building a well-architected object-oriented system is almost impossible.

This course in Object-Oriented Analysis and Design course focuses on instruction and practical experience in the effective use of object-oriented technologies. The course uses a combination of lecture, group discussions, and facilitator-led activities to present a practical, complete, object-oriented analysis and design (OOAD) road map from requirements gathering to system design. The course provides a pragmatic approach to object-oriented software development following proven OO technologies, principles, and patterns as applicable to OO languages such as the C++, C# and Java.

Prerequisite: Computer Information Systems CIS27 or CIS35A

Contact: Grant Larkin
Last Modification: 4/1/2012