=================================================================== Advanced Object-Oriented Systems Spring 1998 COM3362 =================================================================== Preliminary Syllabus. Will be adapted to the interests of the students. In the following we assume: set DP = /pub/demeter/documents/papers ============================================= Week 1: Review of Design Patterns Readings: Design Patterns: Elements of Reusable Software by Gamma, Helm, Johnson, and Vlissides. Siemens Patterns: (architectural patterns) /proj/lieber/papers/siemens-patterns (There is now a book containing all those patterns) Hw: Create your own Design Patterns. Which patterns did you use to create your oo software projects? ============================================= Week 2: Generic Programming The STL tutorial and Reference Guide: C++ Programming with the standard Template Library Musser/Saini Addison Wesley Roles and Dynamic Subclasses Readings: TAPOS and ECOOP '94 paper by Wieringa, Jonge and Spruit /proj/adaptive2/tapos/1/wieringa/roles.ps ============================================= Week 3: Multi-Object Coordination Schemes Readings: Frolund and Agha (ECOOP '93), Ian Holland's work (OOPSLA '90 and ECOOP '92 and Ph.D. thesis): URL ftp://ftp.ccs.neu.edu:$DP/Hol91-Specify-Reuse-Components-Contracts.ps URL ftp://ftp.ccs.neu.edu:/pub/people/holland/chps.ps.Z LL94-synch-patterns.ps ============================================= Week 4: Architecture Description Languages Readings: CMU papers and book by Garlan and Shaw ============================================= Week 5: Maintaining Object-Oriented Software Readings: Norman Wile papers and papers by Bergstein, Huersch and Keszenheimer. URL ftp://ftp.ccs.neu.edu:$DP/HB93-maintain-behavior.ps URL ftp://ftp.ccs.neu.edu:$DP/K93-adapting-behavior-evolution.ps URL ftp://ftp.ccs.neu.edu:$DP/K94-behavior-evol-CAiSE.ps ============================================= Week 6: Maintaining Object-Oriented Software (continued) Readings: Paul Bergstein's thesis URL ftp://ftp.ccs.neu.edu:/pub/people/pberg/thesis.ps ============================================= Week 7: Discussion of Richard Gabriel's book: Patterns of Software (topic suggested by Lars Hansen) These essays are interesting because he argues, informally but persuasively, that too much abstraction is just as bad for actual evolving software as too little abstraction. ============================================= Week 8: Formal Foundations for Adaptive Software URL ftp://ftp.ccs.neu.edu:/pub/people/cunxiao/thesis.ps ============================================= Week 9: OO type systems and language models What are desirable features of type systems and language models? ============================================= Week 10: Comparison of Object-Oriented Software Development Methodologies What I plan to do in the course is to cover advanced topics for which there is no time to be covered in the prerequisites. Topics discussed will be useful to practitioners and will also cover material which leads to research at either the Master (e.g. Master Thesis) or the Ph.D. level. So I hope to attract a good group of practitioners as well as several Ph.D. students. The course will have a project component where the learned concepts will be applied. The Ph.D. students in the course are encouraged to work on a paper in one of the above areas for submission to a conference. The same applies to Master students who plan to do a Master Thesis.