%\documentstyle{article} \documentstyle[12pt]{article} %\pagestyle{headings} %\hyphenation{Sa-mi-chlaus} %\hyphenation{Weih-nach-ten} \makeatletter \def\section{\@startsection {section}{1}{\z@}{-1.5ex plus -1ex minus -.2ex}{1.5ex plus .2ex}{\large\bf}} \def\subsection{\@startsection{subsection}{2}{\z@}{-1.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}{\large\bf}} \def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-1.25ex plus -1ex minus -.2ex}{1.5ex plus .2ex}{\large\bf}} \oddsidemargin 0cm \textwidth 17cm %\textwidth 20cm \addtolength{\topmargin}{-2.5cm} \raggedbottom \textheight 22cm %\textheight 27cm \parskip 8pt plus 1pt minus 1pt \parindent 0pt \begin{document} \bibliographystyle{alpha} %\title{Object-oriented programming: \\ %{\normalsize Grammars = Datastructures}} %\author{Karl Lieberherr, Northeastern University} %\maketitle %\pagestyle{empty} \input common %\input pictures-papers \centerline{\bf COM 1205 Software Design and Development --- Syllabus Winter 1997} \centerline{Professor Karl. J. Lieberherr} The syllabus is subject to change based on class reaction and projects selected by the students. The AP book is the text book: Adaptive Object-Oriented Software: The Demeter Method. This course provides state-of-the-art techniques and concepts for object-oriented software design and development. You learn the Demeter Method for object-oriented software development which will hopefully make you at least 4 times as productive as a Java software developer compared to software development without the method. In the first few weeks you learn the method which you apply in the remaining weeks to your project. The project will be done in groups. Assume that you could do your project in 200 hours of Java programming without using a good method. Instead of working hard, we will work smart. We will spend 50 hours on learning the Demeter Method and then you spend 50 hours on doing your project in Java using the Demeter Method. Since you will be at least 4 times as productive, you will still finish your 200 hour project in 50 hours only. Instead of spending 200 hours on the course, which would be excessive, you can accomplish the same in a total of 100 hours AND learn very useful object-oriented technology. Designing and programming will be done in a structure-shy, grammar-based, object-oriented style. All assignments and the project will be written directly or indirectly in Java. This course does not have Java as a prerequisite, however you are expected to learn a small subset of Java from the recommended text book or from another good Java book of your choice. \begin{enumerate} \item Week: Introduction to adaptive software development. Pattern: Structure-shy Traversal. http://www.ccs.neu.edu/research/demeter/adaptive-patterns/pattern-lang-conv file: Structure-Shy-Traversal.html Pattern: Selective Visitor. http://www.ccs.neu.edu/research/demeter/adaptive-patterns/pattern-lang-conv file: Selective-Visitor.html Class dictionaries and Unified Modeling Notation. Pattern: Class Graph http://www.ccs.neu.edu/research/demeter/adaptive-patterns/pattern-lang-conv file: Class-Graph.html AP book chapters: selections from 1-4. UML Distilled: class diagram chapters. %Hw 1: Define classes for an application of your choice. %Debug the class definitions with the Demeter system. %Construct and draw objects. \item Week: Pattern: Class Graph. http://www.ccs.neu.edu/research/demeter/adaptive-patterns/AOP/ClassGraph Writing simple adaptive programs using traversals and visitors. Class dictionary design. %Hw 2 Define class dictionary which provides %readable objects. Debug class dictionary with Demeter system. %Read in and print or draw some objects. AP book chapters: selections from 5-8. \item Week: Pattern: Structure-shy Object. http://www.ccs.neu.edu/research/demeter/adaptive-patterns/AOP/Structure-Shy-Object Strategy graphs. Decoupling classes: Law of Demeter Relationship to adaptive software. Notations for documenting class libraries and frameworks. The class dictionary notation (graphical and textual). Design rule checking of class dictionaries. Class dictionaries as customizers for adaptive programs. AP book chapters: selections from 8-11. %Hw 3: %Develop a class library for computing the total salary %paid by a conglomerate of companies, %program maintenance. \item Week: Pattern: Inventor's paradox http://www.ccs.neu.edu/research/demeter/adaptive-patterns/AOP/IP.html More complex uses of visitors: multiple visitors and nested visitors. Garbage collection. Improving the reusability of software designs. Parameterized class definitions. Style rules for class dictionaries. AP book chapters: selections from 10-12. %Hw 4: Writing simple propagation patterns by abstracting them from %object-oriented programs. \item Week: The Demeter Method for AP. Design notations for behavior. Developing a growth plan for implementation and testing. Design with maintenance in mind. AP book chapters: 13. %Hw 5: %Writing simple propagation patterns. \item Week: Midterm. Design notations for behavior. Exception handling design. Testing of object-oriented software. %6 %Hw: %Abstracting class dictionaries from object descriptions, %writing your own class dictionaries. \item Week: Graphical user-interface development with the Java framework AWT (Abstract Window Toolkit). %Hw: Abstracting transportation patterns from object-oriented %programs. %Work with two class libraries simultaneously. \item %7 Week: Graphical user-interface development with the Java framework AWT (continued). The Unified Modeling Language (continued). %Transportation patterns. %Hw: %Write adaptive programs with transportation patterns. %Evolution of C++ class libraries. \item %8 Week: Further design patterns for adaptive object-oriented software development. http://www.ccs.neu.edu/research/demeter/adaptive-patterns/ \item Week: %9 A comparison of object-oriented software development methodologies. \item Exam week: Final. \end{enumerate} \end{document}