Differences between revisions 106 and 107
Revision 106 as of 2005-09-04 10:31:19
Size: 1288
Editor: dyn176178
Comment:
Revision 107 as of 2008-10-03 20:18:42
Size: 1288
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
[[Navigation(children, 1)]] <<Navigation(children, 1)>>
Line 4: Line 4:
[[TableOfContents]] <<TableOfContents>>
Line 12: Line 12:
[[Include(/AssignmentGantt,'Gantt',2,from='^----')]]
[[Include(/AssignmentSchedule,'Week plan',2,from='^----')]]
<<Include(/AssignmentGantt,'Gantt',2,from='^----')>>
<<Include(/AssignmentSchedule,'Week plan',2,from='^----')>>
Line 20: Line 20:
[[Include(/Resources,,,from='^----')]] <<Include(/Resources,,,from='^----')>>


(!) Owning a hammer doesn't make one an architect.

Introduction

So you have done Java A and even B. Congratulations. Have you also found that Java offers something that is more than a programming language? With this assignment, we will try to wrap up your knowledge about Java, or any other object-oriented programming language you know (C++, Object Pascal, Python, Ruby ...), to get the essence of object orientation, to turn yourself from a craftsman back to a designer: Use object orientation as a tool to slice the complex into the simple, and put them back again in a structured way.

Schedule

Gantt

<project xmlns:pg="http://www.logilab.org/namespaces/pygantt_docbook" id="monprojet">
<label>Object Orientation and Design Patterns</label>
<task id="uml">
  <label>Introduction to UML</label>
  <task id="lecture1">
    <label>Lecture: Introduction to UML</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/02/21</constraint>
  </task> 
  <task id="task1">
    <label>Task 1: Practice UML diagrams</label>
    <duration>10</duration>
    <constraint type="begin-after-date">2005/02/21</constraint>
  </task>
</task>
<task id="ooad">
  <label>OOA and OOD</label> 
  <task id="lecture2">
    <label>Lecture: Object Reloaded</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/07</constraint>
  </task>
  <task id="task2">
    <label>Task 2: Modeling your product</label>
    <duration>10</duration>
    <constraint type="begin-after-date">2005/03/07</constraint>
  </task>
  <task id="presentation1">
    <label>Presentation: result of Task2</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/21</constraint>
  </task>
</task>
<task id="dp">
  <label>Design Patterns</label>
  <task id="lecture3">
    <label>Lecture: Design Patterns I</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/03/14</constraint>
  </task>
  <task id="lecture4">
    <label>Lecture: Design Patterns II</label>
    <duration>1</duration>
    <constraint type="begin-after-date">2005/04/04</constraint>
  </task>
  <task id="task3">
    <label>Task 3: Redesign your software</label>
    <duration>10</duration>
    <constraint type="begin-after-date">2005/03/21</constraint>
  </task>
</task>
<task id="deadline">
  <label>Final deliverable: Deadline</label> 
  <duration>1</duration>
  <constraint type="begin-after-date">2005/04/06</constraint>
</task>
</project>

Week plan

Week 1
  • Lecture: An introduction to UML (21-02 15.45-17.30 HG 2.80)
    • Slides, for viewing on screen

    • Handouts, for printing, with additional details

  • Reading:
  • <!> Task 1, to be finished in 2 weeks:

    Week 2
  • No lectures.
  • <!> Continue Task 1.

  • Week 3
  • Lecture: Object Reloaded (OOA & OOD) (07-03 15.45-17.30 HG 2.80)

  • Reading:
  • <!> Task 2, to be finished in 2 weeks:

    • Modeling ( /!\ not programming) a product designed by yourself, using use case diagrams, class diagrams, sequence diagrams and activity diagrams.

  • Week 4
  • Lecture: Design Patters I: Iterator, Composite, Factory ... (14-03 15.45-17.30 HG 2.80)
    • Slides, for viewing on screen

    • Handouts, for printing, with additional details

      • Students reported difficulties in understanding when to use which diagrams, and a talk was given instead of the lectcure about design patterns.
  • Reading: The Design Patterns java Companion

  • <!> Continue Task 2.

  • Week 5
  • No lectures.
  • Presentation: Everybody gets 5 minutes to present the results of Task 2. (21-03 15.45-17.30 HG 2.80)
  • <!> Task 3, to be finished in 2 weeks

    • Find a program you wrote before, for example, the program you wrote for Java A or Java B, or any other programs in any language

    • Read your program again.
    • Now, how would you like to impprove your design using a object-oriented approach?
      • Show me your original code,
      • identify the problems if there is any,
      • redesign it using object-oriented approach,
      • apply design patterns in your desgin,
      • try to communicate your object-oriented new desgin with me using UML diagrams.

        /!\ Implementation of your new design is appreciated, but not obligatory.

    Week 6
  • No Lectures
  • <!> Continue Task 3

  • Week 7
  • Lecture: Design Patterns II: Decorator, Visitor (04-04 15.45-17.30 HG 2.80)
  • Feedback, Q&A

  • Final deliverables

    • Report of Task 2 and 3.
    • In your report, include a section to convince me that an object-oriented approach can also be useful for you as a intelligent product and service designer (not as a software designer or a programmer), or a section to convice me that the object-oriented approach is useless at all in design. Explain why, and if it can be useful, tell me how.

    • Deadline: Aprial 6, 9:00AM Sharp.

    JunHu: ObjectOrientedAnimals/200503 (last edited 2008-10-03 20:18:42 by localhost)