CS494, Spring 03 – Object-Oriented Analysis and Design
The pre-requisite is important. Students without CS216 will not be allowed to take the course. Contact
me if you have questions.
If the course is full and you've met the pre-requisites, see the CS
page on waiting lists to get on the list and/or talk to me at the first class.
The course will focus on using the how to create good object-oriented designs and implement them in Java. It will also emphasize using the Unified Modeling Language (UML) as a tool for modeling requirements and designs for software systems. We will use UML notations and techniques for modeling a system's domain in terms of class models and for describing a system's functionality using use cases. We will then look at issues of architecture and system design, using UML's class diagram models, interaction diagrams, state diagrams, and packages. We will address how to use design notations to implement systems in Java (with some reference to C++). We learn what object-oriented design patterns are and how they can be used in design and implementation . The course will attempt to balance emphasis on OO principles, techniques and methodologies with practical skills need to create successful software systems. A number of case studies will be used.
Note: Java will be introduced and used throughout the course, but students will be expected to develop most of their Java knowledge independently. The course will focus on OO design and will not provide a comprehensive coverage of all of Java's features, focusing only on what's needed to cover the design and implementation issues. (For example, in class we won't do much with user-interfaces, graphics, etc.)
Or, any other good Java book that you might have already. One that's gotten good reviews is Thinking in Java, now in its 3rd edition. It's available in a very decent on-line form for free at the author's site. In teaching Java material in the course, I will base presentations on the Just Java 2 text but also cross-reference Thinking in Java when I can.
At this time I know there will also be required readings (chapters, sections) from:
Other required readings (book chapters, papers) will be given during the term.
Homework: There will be about 4-5 relatively small homework assignments, probably all to be done individually. One or two of these may require you to explore a new topic outside the mainstream of the class focus.
Project Work: Complete details about the project will be supplied. It will likely be submitted in stages. It will involve groups of two or three students. Projects will involve using OO methods, UML, and Java to create:
We may find a real customer with a real problem for you to tackle. It is highly likely that class presentations of preliminary results (as carried out in CS340) will be required. For some projects, evaluation of work-products will be emphasized, so in some manner students will be asked to carry out a review of another group's models.
Honor policy: The Honor Policy will be in effect in this class. Each assignment will describe allowed collaborations, and deviations from these will be considered Honors violations. If you have questions on what is allowable, ask! Unless otherwise noted, exams and individual assignments will be considered pledged that you have neither given or received help.
Optional, Possible Tools: