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