Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Advanced Object Oriented Systems (CM0318) Introductory Lecture (Last modified: 28th January 2002)

Similar presentations


Presentation on theme: "1 Advanced Object Oriented Systems (CM0318) Introductory Lecture (Last modified: 28th January 2002)"— Presentation transcript:

1 1 Advanced Object Oriented Systems (CM0318) Introductory Lecture (Last modified: 28th January 2002)

2 2 Suggested linked list implementation 2 classes: MyLinkedList and MyLink (NB actually Java provides a class LinkedList)

3 3 MyLinkedList instance variables: –MyLink first –MyLink last –int size methods: –MyLinkedList() –void add(Object element) –Enumeration elements() –int size() –...

4 4 MyLink Instance variables –MyLink next; –Object element;

5 5 Suggested Deptl. Info. System implementation Classes include: –Lecturer –Student –Module –(Department)

6 6 Lecturer instance variables: –String name (or could be split up into parts) –Vector modules_given methods: –void add_module(Module m) –Enumeration all_modules() (or Vector?) –(optionally things to set the name, etc., which could then be made private)

7 7 Student instance variables –String name (or could be split up into parts) –int student_number (or should it be a String?) –Vector modules_taken methods –things to add a module, etc., similar to Lecturer

8 8 Module instance variables –String module_code –String module_title methods –accessors (set code, etc.)

9 9 Department instance variables –Vector lecturers –Vector students –Vector available_modules methods –Vector lecturer_names() (or Enumeration?) –Vector all_students()

10 10 Note Well Always more than one way to model a problem! Because of Java’s type system, collections like Vectors are horrible to use - but better than nothing! E.g. to iterate through the lecturers’ names you’ll need code like this: Enumeration e = lecturers.elements(); while (e.hasMoreElements()) { do_something_with( ((Lecturer) e.nextElement()).name);}

11 11 Topics Why OO? –intuitive –modelling –software quality –reuse Features of OO that give these qualities

12 12 Java Using the libraries Modelling non-trivial problems

13 13 Design ACJ: –Design by contract AIA: –Methodologies –Communicating design CRC Cards UML –Design patterns

14 14 Other OO languages Dynamically typed languages –Smalltalk –Self (classless!!) Statically typed languages –C++ –Eiffel (NB supports design by contract)

15 15 Building systems interactively ACJ: –The Smalltalk programming environment approach AIA: –The CASE approach

16 16 Distributed objects - CORBA Language & platform independence Wrapping legacy applications

17 17 Implementation of OO languages Memory management Virtual machines Bottlenecks & clever ideas!!


Download ppt "1 Advanced Object Oriented Systems (CM0318) Introductory Lecture (Last modified: 28th January 2002)"

Similar presentations


Ads by Google