Object-Oriented Software Engineering
Technion: Spring 1999
E-mail: gdb0@lehigh.edu (please send large e-mail here!) http://www.eecs.lehigh.edu/~glennb
Course Description: Design and construction of modular, reusable, extensible and portable software using statically typed object-oriented programming languages (Eiffel, C++, Java). Abstract data types; genericity; multiple inheritance; use and design of software libraries; persistence and object-oriented databases; impact of OOP on the software life cycle.
Prerequisites: some familiarity with the C programming language and data structures.
Texts: Pete Thomas & Ray Weedon, Object-Oriented
Programming in Eiffel, Addison Wesley, 1995.
Bruce Eckel, Thinking in Java, Prentice Hall, 1998.
(This book is available on the web:
http://www.BruceEckel.com/javabook.html.)
Recommended:
Bertrand Meyer, Object-Oriented Software Construction,
Prentice Hall, 1988, 2nd edition, 1998.
Peter Coad & Jill Nicola, Object-Oriented Programming,
Yourdon Press, 1993.
Requirements:
Short paper on modularity in C and C++: 5%
Analysis, design and implementation of a simple system in Java:
25%
Project: substantial software development in Eiffel, Java or C++,
teaming 2-4 students: 60%
(Requirements, analysis and design specifications due at dates
specified during semester.)
Project presentations by each participant in each group at end of
semester: 5%
Class participation throughout semester: 5%
Extra credit: seminar presentation on a topic related to the course (give me an outline in advance!)
Syllabus
Week Topic Reading (and assignments due)
1 Why object-oriented? Thomas&Weedon chapter 1
2 Modularity & OOSE Bertrand Meyer, chapter 3 (initial
project proposals due)
3 Object-oriented analysis Coad&Yourdon chapter 1 (paper on
modularity due)
4 Abstract Data Types Thomas&Weedon chapters 3&8 (project
requirements specs due)
5 Eiffel: assertions Thomas&Weedon chapters 9-11(simple
analyses due)
6 Java basics Eckel, chapters 1-5, appendix B (simple ADT design
due)
7 Inheritance & polymorphism Eckel, chapters 6-7 (project
analysis due)
8 Java: collections and I/O Eckel chapters 8-10
9 Object-oriented design Thomas&Weedon ch. 15
(Coad&Yourdon ch. 2)
10 More about OOD Eckel ch. 16 (simple Java program due)
11 Java: AWT and Swing Eckel chapter 13 (project design due)
12 Java: threads, sockets Eckel, chapters 14-15
13 RTTI, Persistence, CORBA Eckel, chapters 10-11, appendix A
14 Project presentations (project prototypes due)
Final exam period: final projects due via ftp