CSE 111 - Object-Oriented Software Design
*** FINALS WILL BE HELD IN MANDEVILLE AUDITORIUM
*** THURSDAY, DECEMBER 6, AT 11:30am
Catalog Description
Introduction to object-oriented analysis and design. Object-oriented
modeling methods for analysis and design, object-oriented general design
paradigms, object-oriented design techniques. Cyclic development
of object-oriented systems.
Prerequisites : CSE 8B or CSE 9B or CSE 10 or CSE 11. CSE 12.
CSE 100 or Math 176.
Credits: 4
Instructors and Office Hours
Dr. Howden
howden@cs.ucsd.edu
Wednesday 1pm - 3pm or by Appointment
Tem Wang (Teaching Assistant)
tiwang@cs.ucsd.edu
Monday 1-2 (Office AP&M 2331)
Monday 2-3 (Lab)
Bill Suckow (Teaching Assistant)
wsuckow@cs.ucsd.edu
Friday 2-4 (Lab)
Textbooks
Applying UML and Patterns, first edition, Craig Larman
UML with Rational Rose, W.M. Boggs
Core Java, Volume 1, Horstmann, Cornell (recommended reference
for Java)
Course Information
Homework:
- A series of 16 deliverables to be done
by groups of 2,3, graded as 0, -, #, +
- Previous week exercises due in or before the first
class of the following week
- Late exercises will not be accepted, because
answers will be handed out
- The exercises will involve the analysis, design
and programming of a simple system consisting of a GUI, "business/domain
logic", and a simple data base
- The exercises/project will occur in two phases.
In the first an initial, reduced functionality system will be constructed.
In the second, a second version with augmented functionality will be built.
Exams and Grading:
- Midterm plus final
Final score = 40% midterm, 60% final
Each exercise graded as 0, -, #, + (0:
not done or seriously attempted)
for each + grade, add 0.5%
for each - grade, subtract
0.5%
for each 0 grade, subtract
2.0%
- Penalty for cheating
Course grade of F and report made to college Provost
Cheating = exam cheating,
not doing your own exercises
Organization:
- Discussion sections: TA's will discuss
exercises and offer help with reading
- Syllabus: roughly follow book, some added
material, readings for each lecture
- Will follow the point of sale terminal example
in the book
- Project will be to
develop the Dating System example.
- From groups immediately after first class
in order to do first assignment
Material to be Covered:
Object oriented programming - basic principles
- Development steps: O/O analysis,
design, programming
- Design evaluation: coupling, cohesion
- Design patterns
- system patterns:
model view separation, layers, subsystems, interfaces
- program patterns:
expert, creator, state, singleton, command, avoid strangers, proxy,
facade, controller, pure
fab., framework, factory, callbacks, observer/observable, polymorphism,
wrappers, indirection
- UML: Unified Modeling Language - modeling,
design, and developing code
- Rational Rose: - UML tool, use for drawing
and editing UML diagrams
- Intermediate Java features (e.g. inner classes,
packages, streams, abstract classes)
The programming language to be used is Java.
All examples are in Java 1.1 (for simplicity) but Java 1.2 can be used
(1.3?). For the GUI part of the project you must build it manually
using the AWT, not with a graphical user interface tool.
Lectures
Assignments will be distributed in class
1. Use Cases, project specification
2. Domain analysis, concept class diagrams
3. System architecture
4. Sequence interaction diagrams
5. Collaboration diagrams and design evaluation (cohesion and
coupling)
6. Basic design patterns and collaboration models (Expert, Creator,
Controller)
7. Visibility analysis and design class diagrams
8. Java coding
9. Midterm review
10. Midterm - Mean Score: 34
11. Expanded use case notation, generalization and aggregation
12. State models and user interface design
13. Programming by contracts, assertions
14. Additional design patterns and collaboration models (Callbacks,
Observer/Observable, Singleton)
15. Additional design patterns and collaboration models (Polymorphism,
State, Wrappers (Adapters and Decorators))
16. Additional design patterns and collaboration models (Proxy,
Framework, Factory)
17. Misc. Additional patterns (Pure Fabrication, Command, Indirection,
Don't Talk to Strangers)
18. Process-oriented versus extreme programming
19. Project Day
20. Final Review
Revised 11/10/01 Bill Suckow