This is TeX, Version 3.14159 (Web2C 7.3.1) (format=latex 2001.7.9) 26 SEP 2001 09:18 **course-descr.tex (course-descr.tex LaTeX2e <1999/12/01> patch level 1 Babel and hyphenation patterns for american, french, german, ngerman, n ohyphenation, loaded. (/arch/unix/packages/teTeX-1.0.7/share/texmf/tex/latex/base/article.cls Document Class: article 1999/09/10 v1.4a Standard LaTeX document class (/arch/unix/packages/teTeX-1.0.7/share/texmf/tex/latex/base/size11.clo File: size11.clo 1999/09/10 v1.4a Standard LaTeX file (size option) ) \c@part=\count79 \c@section=\count80 \c@subsection=\count81 \c@subsubsection=\count82 \c@paragraph=\count83 \c@subparagraph=\count84 \c@figure=\count85 \c@table=\count86 \abovecaptionskip=\skip41 \belowcaptionskip=\skip42 \bibindent=\dimen102 ) (course-descr.aux) \openout1 = `course-descr.aux'. LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 22. LaTeX Font Info: ... okay on input line 22. LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 22. LaTeX Font Info: ... okay on input line 22. LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 22. LaTeX Font Info: ... okay on input line 22. LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 22. LaTeX Font Info: ... okay on input line 22. LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 22. LaTeX Font Info: ... okay on input line 22. LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 22. LaTeX Font Info: ... okay on input line 22. LaTeX Font Info: External font `cmex10' loaded for size (Font) <12> on input line 25. LaTeX Font Info: External font `cmex10' loaded for size (Font) <8> on input line 25. LaTeX Font Info: External font `cmex10' loaded for size (Font) <6> on input line 25. LaTeX Font Info: Try loading font information for OMS+cmr on input line 42. (/arch/unix/packages/teTeX-1.0.7/share/texmf/tex/latex/base/omscmr.fd File: omscmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions ) LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <10.95> not available (Font) Font shape `OMS/cmsy/m/n' tried instead on input line 42. Overfull \hbox (13.37468pt too wide) in paragraph at lines 51--53 []\OT1/cmr/bx/n/10.95 TEACHING AS-SIS-TANT (GRADER) \OT1/cmr/m/n/10.95 to be de -ter-mined (com3360- [] Overfull \hbox (13.45625pt too wide) in paragraph at lines 54--56 []\OT1/cmr/m/n/10.95 To com-mu-ni-cate with the teach-ing as-sis-tant, please s end mail to com3360- [] Overfull \hbox (2.01839pt too wide) in paragraph at lines 61--62 []\OT1/cmr/m/n/10.95 If you don't have an NU ac-count, con-tact com3360-grader@ ccs.neu.edu. [] Overfull \hbox (82.41093pt too wide) in paragraph at lines 63--65 []\OT1/cmr/m/n/10.95 The course home page is at URL: http://www.ccs.neu.edu/res earch/demeter/course/f01 [] Overfull \hbox (38.00256pt too wide) in paragraph at lines 66--68 []\OT1/cmr/m/n/10.95 The Deme-ter home page is at URL: http://www.ccs.neu.edu/r esearch/demeter [] [1 ] [2] Overfull \hbox (29.54239pt too wide) in paragraph at lines 179--179 []\OT1/cmtt/m/n/10.95 A few weeks I stumbled across the book in a local bookst ore and[] [] Overfull \hbox (81.28058pt too wide) in paragraph at lines 179--179 []\OT1/cmtt/m/n/10.95 I think this book for the first time provided really con vincing material[] [] Overfull \hbox (64.03452pt too wide) in paragraph at lines 200--200 []\OT1/cmtt/m/n/10.95 Thank you for all the work you have been doing. It has h ad a profound[] [] Overfull \hbox (92.77795pt too wide) in paragraph at lines 200--200 []\OT1/cmtt/m/n/10.95 impact on my understanding of objects, and has helped me educate and train[] [] Overfull \hbox (64.03452pt too wide) in paragraph at lines 200--200 []\OT1/cmtt/m/n/10.95 best science with the finest aesthetics in the service o f a practical[] [] Overfull \hbox (98.52664pt too wide) in paragraph at lines 200--200 []\OT1/cmtt/m/n/10.95 Are there any plans to port the tools to Java? This woul d be a very popular[] [] [3] Overfull \hbox (32.67964pt too wide) in paragraph at lines 226--232 \OT1/cmr/m/n/10.95 have learned object-oriented de-sign and pro-gram-ming in a programming- [] Overfull \hbox (4.60507pt too wide) in paragraph at lines 226--232 \OT1/cmr/m/n/10.95 language in-de-pen-dent no-ta-tion, you can eas-ily trans-fe r your knowl- [] [4] Overfull \hbox (10.47545pt too wide) in paragraph at lines 298--301 \OT1/cmr/m/n/10.95 adap-tive object-oriented soft-ware de-vel-op-ment with the Deme-ter Method [] [5] Overfull \hbox (64.03452pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Software is very interesting. I believe the biggest ben efit in using[] [] Overfull \hbox (92.77795pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Adaptive Software is the next level of abstraction up fr om Object-Oriented[] [] Overfull \hbox (87.02927pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 ``Adaptive Object-Oriented Programming using Graph-Based Customization'',[] [] [6] Overfull \hbox (64.03452pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 specify flexible (C++) database programs which adapt to a broad class[] [] Overfull \hbox (110.02402pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 of schemas or, another way to look at it, allow the appl ication programmer to[] [] Overfull \hbox (69.7832pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 specify code that does not need to know in detail the da tabase schema.[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Given that in practical C/S application for MIS, DSS, TP and in general[] [] Overfull \hbox (115.7727pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 mission critical applications, the underlying database c an have a very complex[] [] Overfull \hbox (64.03452pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 schema, this has the potential, in my opinion, of greatl y simplifying[] [] Overfull \hbox (35.29108pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 I have followed the work of Professor Lieberherr for a n umber of[] [] Overfull \hbox (52.53714pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 years, and have been consistently impressed by the appro ach and the[] [] Overfull \hbox (23.7937pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 results. He and his group have had many good ideas in th e area[] [] Overfull \hbox (58.28583pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 of object-oriented programming and development methodolo gy, and have[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 published them. The Law of Demeter is widely recognized as an important[] [] Overfull \hbox (52.53714pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 stylistic guide. They also have an excellent record of g oing beyond[] [] Overfull \hbox (12.29633pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 the ideas and their publication to implementation and us e in[] [] Overfull \hbox (46.78845pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 an educational environment and beyond. The Demeter Syste m supports[] [] Overfull \hbox (41.03976pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 at least two object-oriented programming languages, exte nding its[] [] Overfull \hbox (58.28583pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 benefits to programmers in those languages without requi ring them to[] [] Overfull \hbox (41.03976pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 learn a new one. It has been used in many classes at Nor theastern[] [] Overfull \hbox (29.54239pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 University, and has been requested by many other organiz ations.[] [] Overfull \hbox (41.03976pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Several tutorials have been offered on the Demeter Metho d, and it[] [] Overfull \hbox (18.04501pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 and design methods undertaken by the Object Management G roup.[] [] Overfull \hbox (6.54764pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 important area of research. The object-oriented paradigm is[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 widely believed to provide major benefits, and is becomi ng increasingly[] [] [7] Overfull \hbox (23.7937pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 widely used. Actually achieving the desired benefits of reuse,[] [] Overfull \hbox (46.78845pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 extensibility and ease of maintenance, however, is no ea sy matter.[] [] Overfull \hbox (46.78845pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Simply using object-oriented style is not enough. Many r esearchers[] [] Overfull \hbox (18.04501pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 therefore study object-oriented methodologies to find wa ys to[] [] Overfull \hbox (46.78845pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 improve those characteristics. Many of the approaches, s uch as the[] [] Overfull \hbox (69.7832pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 popular and valuable "frameworks" approach, allow the go od designer to[] [] Overfull \hbox (98.52664pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 produce a unit of software that is highly reusable in ce rtain planned ways.[] [] Overfull \hbox (121.5214pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Such a unit of software will not easily be reusable in u nplanned ways, however.[] [] Overfull \hbox (18.04501pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Only a few approaches to object-oriented software engine ering[] [] Overfull \hbox (64.03452pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 concentrate on supporting unplanned extensions. These te nd to require[] [] Overfull \hbox (64.03452pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 extensions to the object-oriented paradigm, so they are not currently[] [] Overfull \hbox (104.27533pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 "mainstream", but it is my belief that these approaches will be of paramount[] [] Overfull \hbox (58.28583pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 importance as object-oriented software engineering matur es, and will[] [] Overfull \hbox (23.7937pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 be instrumental in achieving its potential. Prof. Lieber herr's[] [] Overfull \hbox (18.04501pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 It has long been a goal in the software development comm unity[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 to link the design documents and the implementation code more directly.[] [] Overfull \hbox (0.79895pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 The Demeter System is a powerful tool that helps designe rs[] [] Overfull \hbox (69.7832pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 accomplish this goal. Because so much of the conversion from design to[] [] Overfull \hbox (92.77795pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 implementation is made automatic by Demeter, when errors are detected, the[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 designer is encouraged to modify the design rather than tinker with the[] [] Overfull \hbox (29.54239pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 low level C++ code. In the context of a software design course,[] [] Overfull \hbox (23.7937pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 this methodology encourages students to think and design on an[] [] Overfull \hbox (23.7937pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 that computer science educators have been trying to inst ill in[] [] Overfull \hbox (35.29108pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Given the fact that students can learn only a single met hodology[] [] Overfull \hbox (110.02402pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 in detail [in an eleven week term], we believe that Deme ter is a particularly[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 suitable one for teaching purposes. The reason is that D emeter is based[] [] Overfull \hbox (6.54764pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 on theoretical studies of the optimal way to design loos ely[] [] Overfull \hbox (0.79895pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 coupled classes for maximum effectiveness and flexibilit y.[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 These theoretical principles can be used by students in whatever design[] [] Overfull \hbox (121.5214pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 environment they happen to work in. Comments by students who have completed the[] [] [8] Overfull \hbox (29.54239pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Software Design and Development course indicate that thi s is in[] [] Overfull \hbox (12.29633pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 College of Computer Science, Northeastern University, Bo ston[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 My approach was to define the Library System class dicti onary. Once the[] [] Overfull \hbox (87.02927pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 class dictionary was designed, the next step was to defi ne the operations[] [] Overfull \hbox (127.27008pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Lastly I designed the propagation patterns to implement those Library functions.[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Although this class was my first introduction to Object Oriented Design[] [] Overfull \hbox (104.27533pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 and to C++, I found that the Demeter System and adaptive S/W to be extremely[] [] Overfull \hbox (69.7832pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 flexible and a very powerful technique. This flexibility was important[] [] Overfull \hbox (92.77795pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 especially in this project when I had to make changes (o f which there were[] [] Overfull \hbox (98.52664pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 I never had any problems with the basic Demeter tools: g en-imake, gen-make,[] [] Overfull \hbox (98.52664pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Overall, we learned that adaptive software allowed us to implement a fairly[] [] Overfull \hbox (110.02402pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 complex software system in a fast, flexible, and efficie nt manner. It reduced[] [] Overfull \hbox (104.27533pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 the amount of time devoted to actual coding and debuggin g, and allowed us to[] [] [9] Overfull \hbox (35.29108pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 because it is about being looser about the carving of th e world.[] [] Overfull \hbox (115.7727pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Do you agree or disagree with the view that class dictio naries and propagation[] [] Overfull \hbox (58.28583pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 patterns are a design notation which you can manually tr anslate into[] [] Overfull \hbox (35.29108pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 the programming language which your employer has decided to use?[] [] Overfull \hbox (6.54764pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 has done wonders for my object-oriented programming with out[] [] Overfull \hbox (69.7832pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 The project I am working on ... is developing an object- oriented power[] [] Overfull \hbox (104.27533pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 When the implementation of the model was almost done, I read your article on[] [] Overfull \hbox (92.77795pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Demeter C++ in the Feb. 94 issue of the C++ report. It s truck me that with[] [] Overfull \hbox (87.02927pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 a method and tools as you describe in the article, I wou ld have been able[] [] Overfull \hbox (64.03452pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 to reduce the amount of time I spent on implementing and debugging my[] [] [10] Overfull \hbox (52.53714pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 power system model drastically. It seems to me that the Demeter C++[] [] Overfull \hbox (52.53714pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 system addresses exactly those aspects of C++ developmen t that make[] [] Overfull \hbox (12.29633pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 I believe that the Demeter approach is a significant adv ance[] [] Overfull \hbox (87.02927pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 in the art of software development ... because it allows the construction[] [] Overfull \hbox (104.27533pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 I've found Demeter to be very useful in regards to compi ler design. For this[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 homework, I developed a grammar using Demeter and 'sem-c heck -i' for an[] [] Overfull \hbox (87.02927pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 object-oriented language that is LL(1) compliant. The tr anslation to EBNF[] [] Overfull \hbox (104.27533pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 form was then trivial. sem-check's analysis and violatio n reporting made the[] [] Overfull \hbox (69.7832pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 The grammar was then ready for input into the compiler-c ompiler LLgen:[] [] Overfull \hbox (121.5214pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 The scanner definition, designed for flex, is very simil ar to that of Demeter's[] [] Overfull \hbox (81.28058pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 generic parser. In fact, I used many of the patterns in lex-DEM.l for my[] [] Overfull \hbox (69.7832pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 I know Demeter is useful for many more things besides co mpiler design,[] [] Overfull \hbox (92.77795pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 but that is my main interest. Traversal and transportati on specifications,[] [] [11] Overfull \hbox (104.27533pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 along with wrappers, make coding such things as intermed iate-code generation[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 and optimization analysis much easier than tools such as yacc or bison.[] [] Overfull \hbox (64.03452pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 I completely agree with your perception that this is a s erious issue.[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 It is also one that holds a lot of interest for the grou p I work in ...[] [] Overfull \hbox (64.03452pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 We discussed your CACM paper today at our weekly paper r eading group,[] [] Overfull \hbox (92.77795pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 and came up with a couple of ways of looking at your sys tem other than the[] [] Overfull \hbox (92.77795pt too wide) in paragraph at lines 670--670 [] \OT1/cmtt/m/n/10.95 "It's a tool that lets you do OO programming directly in terms of class[] [] Overfull \hbox (81.28058pt too wide) in paragraph at lines 670--670 [] \OT1/cmtt/m/n/10.95 dictionary graphs, bringing programming one level clo ser to OOA/OOD."[] [] Overfull \hbox (104.27533pt too wide) in paragraph at lines 670--670 [] \OT1/cmtt/m/n/10.95 "It's a tool supporting more powerful forms of objec t relative reference[] [] Overfull \hbox (127.27008pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 "I am very enthusiastic about the Demeter System, and fe el it represents a major[] [] Overfull \hbox (87.02927pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 advance in software engineering (a field where "hard" ad vances are rare).[] [] Overfull \hbox (104.27533pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 I think it will also transform the way a number of areas of computer science[] [] Overfull \hbox (0.79895pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 I've been using the software fairly heavily and have a f ew[] [] [12] Overfull \hbox (69.7832pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 and my students are using Demeter to design and build a text-adventure[] [] Overfull \hbox (81.28058pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 game). It is a remarkable system with many potential app lications beyond[] [] Overfull \hbox (98.52664pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 the scope of software engineering (for instance Compiler Design can be done[] [] Overfull \hbox (69.7832pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 "This is an extraordinary powerful software tool that wi ll undoubtedly[] [] Overfull \hbox (115.7727pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 become a standard fixture in Computer Science curricula (and in several areas,[] [] Overfull \hbox (92.77795pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 including Compiler Design, Software Engineering, Artific al Intelligence)."[] [] Overfull \hbox (18.04501pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 "Extremely valuable --- I predict it will sweep the indu stry"[] [] Overfull \hbox (98.52664pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 The Visitor class reminds me of the Demeter work by Karl Lieberherr and his[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 associates at Northeastern University. They're taking a n approach that[] [] Overfull \hbox (98.52664pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 involves abstracting the "meat" of the behavior of a com plex construct from[] [] Overfull \hbox (41.03976pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 the "skeleton" methods that deal with managing and navig ating the[] [] Overfull \hbox (92.77795pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 construct. Their work also addresses keeping the abstra ction valid across[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 changes to the implementation of the construct. To do t his, they use a[] [] Overfull \hbox (104.27533pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 graph notation to represent the class structure, and a " propagation pattern"[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 language that tells, in a general way, how to distribute the meaningful[] [] Overfull \hbox (98.52664pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 methods and navigation methods across the structure. A propagation pattern[] [] Overfull \hbox (69.7832pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 may be applicable to many class structures, thus allowin g changing the[] [] Overfull \hbox (104.27533pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 latter without needing to modify the former. A code gen erator does the work[] [] Overfull \hbox (75.53189pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 of creating the C++ code. A good introduction to this i s in an article[] [] Overfull \hbox (104.27533pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 called "A Report on Demeter C++" in the February '94 iss ue of C++ Report, by[] [] Overfull \hbox (41.03976pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 you might try emailing them at {nacho,huersch,gregs}@ccs .neu.edu.[] [] Overfull \hbox (110.02402pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 Don Dwiggins "Things should be made a s simple as possible,[] [] [13] Overfull \hbox (58.28583pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 I think that the best part of Demeter is the "adaptive" part. Being[] [] Overfull \hbox (64.03452pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 able to modify the interface of a class or change the cl ass hierarchy[] [] Overfull \hbox (69.7832pt too wide) in paragraph at lines 670--670 []\OT1/cmtt/m/n/10.95 without major problems is a huge benefit of propagation patterns. C++[] [] [14] (course-descr.aux) ) Here is how much of TeX's memory you used: 237 strings out of 10901 2513 string characters out of 71709 52372 words of memory out of 263001 3229 multiletter control sequences out of 10000+0 7708 words of font info for 28 fonts, out of 400000 for 1000 14 hyphenation exceptions out of 1000 21i,4n,19p,158b,384s stack positions out of 300i,100n,500p,50000b,4000s Output written on course-descr.dvi (14 pages, 29400 bytes).