home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / object / 3204 < prev    next >
Encoding:
Text File  |  1992-08-13  |  59.1 KB  |  1,247 lines

  1. Newsgroups: comp.object
  2. Path: sparky!uunet!wupost!m.cs.uiuc.edu!johnson
  3. From: johnson@m.cs.uiuc.edu (Ralph Johnson)
  4. Subject: OOPSLA '92 tutorials
  5. Message-ID: <1992Aug14.124040.13090@m.cs.uiuc.edu>
  6. Summary: description of all OOPSLA '92 tutorials
  7. Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL
  8. Date: Fri, 14 Aug 1992 12:40:40 GMT
  9. Lines: 1236
  10.  
  11. This year's tutorials are by far the most advanced ever.  They cover
  12. a wide range of topics, so there should be something for everyone.
  13. Although there are a few beginning tutorials, and lots of intermediate
  14. ones, the real strength lies in the advanced tutorials.  We have tried
  15. to design these tutorials for the kind of person who comes to OOPSLA,
  16. who is in general someone who regularly uses object-oriented technology,
  17. not just someone interested in it.  Come to OOPSLA to increase your
  18. skills, to see the latest in technology, and to meet others with similar
  19. interests.
  20.  
  21. Please post this on local bulletin boards, especially in the Northwest
  22. region close to Vancouver, and especially in big companies like Microsoft.
  23. The tutorials are October 17 and 18 (in Vancouver, of course).  To get
  24. an official registration form, send e-mail to mann@eola.cs.ucf.edu.
  25.  
  26. You can get a nicely formatted copy of this document in Rich Text Format 
  27. by anonymous ftp from st.cs.uiuc.edu in /pub/oopsla.  There is also an
  28. archive server that will send you copies by e-mail.  Send a message to
  29. archive-server@st.cs.uiuc.edu of the form
  30.  
  31. path  your-id@your-host-id
  32. send oopsla/Tutorials.rtf
  33.  
  34. Ralph E. Johnson -- University of Illinois at Urbana-Champaign
  35. _____________________________ 
  36.  
  37. This year's tutorials cover a wide range of topics, and are designed
  38. to appeal to practitioners, managers, and researchers. The tutorials
  39. have been placed in three categories depending on the amount of
  40. experience you require with object-oriented technology in order to
  41. benefit from them.  The "beginning" tutorials assume no knowledge of
  42. object-oriented programming, though tutorial 16 would be suitable for
  43. someone with more experience since it focuses on management
  44. techniques.  "Intermediate" tutorials assume some knowledge of
  45. object-oriented techniques, and "advanced" assume several years
  46. experience. Note that these categories describe your levels of
  47. object-oriented knowledge. For example, tutorial 27 assumes an
  48. advanced level of object-oriented experience, but does not assume that
  49. you know much about visual programming languages.
  50.  
  51. Concepts of Object-Oriented Programming    -- Full Day
  52. Object Design for Modularity, Reuse and Quality -- Full Day
  53. A Comparison of Object-Oriented Analysis and Design Methods -- Morning
  54. Integrating Analysis and Design Methods -- Afternoon
  55. Object-Oriented Concurrent Programming  -- Full Day
  56. Types for the Working Programmer  -- Morning
  57. Types for the Language Designer  -- Afternoon
  58. Simulation with DEVS-CLOS -- Morning
  59. Advanced CLOS and Meta-Object Protocols -- Afternoon
  60. Introduction to Object-Oriented Database Management Systems -- Full Day
  61. Object-Oriented Software Development with the Demeter Method -- Afternoon
  62. Object-Oriented User interfaces  -- Morning
  63. Evaluating Reusable Class Libraries  -- Afternoon
  64. Object Engineering  -- Morning
  65. Teaching Object-Oriented Programming and Design  -- Afternoon
  66. Object-Oriented Project Management  -- Full Day
  67. Introduction to Object-Oriented Design -- Morning
  68. The Pragmatics of Building Object-Oriented Systems -- Afternoon
  69. A Case Study of Domain Analysis: Health Care  -- Morning    
  70. The Analysis and Design of Distributed Systems -- Afternoon
  71. Specification Techniques for Object-Oriented Software -- Full Day
  72. Writing Efficient C++ Programs -- Morning
  73. The Design and Management of C++ Class Libraries -- Afternoon
  74. Hardware Support for Object-Oriented Systems  -- Morning
  75. Efficient Implementation of OOP Languages -- Afternoon
  76. Constraint-Based Languages and Systems -- Morning
  77. Visual Programming Languages from an Object-Oriented Perspective  -- Afternoon
  78. Intermediate Smalltalk: Practical Design and Implementation -- Morning
  79. Writing Efficient Smalltalk Programs -- Afternoon
  80. Testing Object-Oriented Software -- Full Day
  81. Object-Oriented Geometry and Graphics -- Morning
  82. The Design of an Object-Oriented Operating System:  
  83. A Case Study of Choices  --    Afternoon
  84. Teaching "Object-Think" with Multi-Sensory Engagement -- Morning
  85. Schema Updates for Object-Oriented Database Systems -- Afternoon
  86.  
  87. Analysis and Design 
  88.  
  89. Tutorial 2 is a design tutorial suitable for those
  90. who might have been using an object-oriented programming language,
  91. but have never followed any particular design method. It covers all
  92. areas of the design phase, with an emphasis on design for reuse. It is
  93. also suitable for those who are moving into object-oriented technology
  94. and prefer an explicit design phase, or those who want an
  95. object-design method that emphasizes reuse.  Tutorial 17, which is a
  96. quick survey of Booch's design method, is also suitable for those with
  97. no experience with a formal design method. On the other hand, tutorial
  98. 18 assumes that you know Booch's design method.  Tutorials 3 and 4
  99. both compare different design and analysis methods, so you should know
  100. at least one method before you take them. They have different points
  101. of view (3 is analytic and 4 is synthetic) so many methodologists will
  102. want to take both.  Tutorials 20 and 21 are advanced tutorials that
  103. focus on particular aspects of design and analysis. Tutorial 20
  104. describes techniques to analyze and design distributed object-
  105. oriented systems, while 21 surveys operational and descriptive
  106. specifcation techniques for object-oriented software engineering.
  107. You should only take them if you have a sufficient background in
  108. design and analysis methods to be able to integrate these techniques
  109. into whatever method you are currently using.  Tutorial 11 is a
  110. fast-paced introduction to a formal design method that is backed by
  111. tools that convert graphics into code. Tutorial 19 is a case study in
  112. object-oriented domain analysis. The other case studies (8, 31 and 32)
  113. might also be of interest to those studying design.
  114.  
  115. Languages 
  116.  
  117. Tutorials 22 and 23 focus on C++. Tutorial 14 focuses on
  118. low-level design issues important for C++. Tutorial 32 is a case study
  119. of a system written in C++. Most of the libraries used as examples in
  120. tutorial 13 are in C++.  Tutorials 28 and 29 focus on Smalltalk.
  121. Tutorial 31 is a case study of a system written in Smalltalk, and
  122. tutorial 5 uses Smalltalk as a language for examples.  Tutorial 9 is
  123. about the CLOS meta-object protocols, and is of interest both to CLOS
  124. programmers and to language designers who want to see practical and
  125. useful examples of reflective programming. Tutorial 8 is a case
  126. study of a simulation system in CLOS, and can serve as an introduction
  127. to CLOS for non-CLOS programmers wanting to take tutorial 9, though it
  128. is primarily a case study, and is as much an introduction to
  129. simulation as to CLOS.  Tutorials 6, 7, 24 and 25 will be interesting
  130. to language designers and implementors, or to those who like to know
  131. how their programming languages work, and why. We have tried to avoid
  132. duplicating material in tutorials 6 and 7. Thus, 7 does not motivate
  133. contravariance, and those interested in 7 who are not familiar with it
  134. should be sure to take 6. Tutorial 5 covers concurrent languages, 27
  135. visual languages, and 26 constraint languages.
  136.  
  137. Software Engineering
  138.  
  139. There is more to software engineering than analysis and design
  140. methods. There are tutorials on managing the development of
  141. object-oriented software (16), on testing (30), on reusable
  142. libraries(13 and 23), on user interface design (12) and on low-level
  143. object engineering (14). These tutorials are designed to appeal to
  144. people with a wide range of expertise in objects, so don't be worried
  145. if they are labeled "intermediate" and you consider yourself an
  146. expert.
  147.  
  148. Education
  149.  
  150. There are two tutorials on how to teach what you've learned at OOPSLA.
  151. Tutorial 15 is aimed at academics, who have a semester to teach, while
  152. tutorial 33 is aimed at teachers in industry, who have only a short
  153. time to enable their students to "get it" and who need quick,
  154. effective teaching methods.
  155.  
  156. Databases
  157.  
  158. Tutorial 10 is an introduction to OODBMS, while 34, although it is an
  159. intermediate tutorial, assumes some exposure to OODBMS, such as that
  160. given by 10.
  161.  
  162. Graphics and User Interfaces
  163.  
  164. Tutorial 12 is entirely on user interfaces, and 31 is on both graphics
  165. and user interfaces.  Constraint systems, the topic of tutorial 26,
  166. are a common part of user interfaces, so that tutorial might be of
  167. interest to user interface implementors. Tutorial 27 is an application
  168. of graphics and user interfaces, though it is more closely related to
  169. language design.
  170.  
  171. SUNDAY, OCTOBER 18
  172.  
  173.  
  174. Concepts of Object-Oriented Programming
  175.  
  176. Sunday:    Full Day
  177. Level:    Beginning
  178. Raimund K. Ege, Florida International University
  179.  
  180. This tutorial defnes and teaches the basic concepts of object-oriented
  181. programming, illustrates the advantages of object-oriented techniques
  182. over conventional programming, introduces the components of an
  183. object-oriented programming environment, and gives an overview of the
  184. features of object-oriented languages and environments. This tutorial
  185. will let you make an informed decision about what language/environment
  186. will best serve your programming needs.
  187.  
  188. Raimund K. Ege is an associate professor of Computer Science at the
  189. Florida International University, Miami. He is the author of
  190. Programming in an Object-Oriented Environment (Academic Press, 1992).
  191. His research interests include the application of object-oriented
  192. concepts to programming, user interfaces, databases, simulation and
  193. software engineering.  He has given many tutorials at OOPSLA, and is
  194. rated very highly by his audiences.
  195.  
  196.  
  197. Object Design for Modularity, Reuse and Quality
  198. Sunday:    Full Day
  199. Level:    Intermediate
  200. Douglas Bennett, Design Ways 
  201.  
  202. Turning buzzwords like modularity, reusable components, extensibility,
  203. testability, and robustness into reality requires more than just a
  204. compiler for an object-oriented language, or even an integrated
  205. development environment. These properties must be "designed into" the
  206. software product. This tutorial shows how to make design decisions so
  207. the product will do what its users want and so the buzzwords actually
  208. show up in the product. The tutorial will work through the steps of a
  209. design project, documenting user and producer needs, modeling the
  210. "thing" objects, describing behavior with event response models, and,
  211. fnally, developing an architecture for the product. Part of each step
  212. is evaluating the design against the magic words. The result will be a
  213. product structure that is probably very different from conventional
  214. software architectures, but one that can be measured against the
  215. design criteria.
  216.  
  217. This tutorial teaches the explicit design of software. It uses
  218. notations from several existing methods. You may use your own
  219. notations, if you wish.
  220.  
  221. Doug Bennett is a chemical engineer who moved into software 10 years
  222. ago. He believed the hype about a "better way to build software" and
  223. taught object technology for Stepstone.  When he learned that the
  224. "better way" did not come with the compiler, he returned to his
  225. engineering design roots and founded Design Ways. His training and
  226. consulting clients have included Bellcore, Bank of New York, Timeplex,
  227. Contel IPC, and Dun & Bradstreet Software.  He has used the design
  228. techniques in this tutorial on a telephone switch, a T1 network,
  229. accounting systems, and a bank position limit monitor system.
  230.  
  231. A Comparison of Object-Oriented Analysis and Design Methods
  232. Sunday:    Half Day-Morning
  233. Level:    Advanced
  234. Martin Fowler
  235.  
  236. This tutorial shows how to look inside design and analysis methods to
  237. see how they differ, and more importantly, how they are the same. It
  238. examines several of the most well-known methods, including Booch,
  239. Coad/Yourdon, Odell/Martin, Rumbaugh, and Schlaer/Mellor, but its
  240. analysis techniques can be applied to any method.
  241.  
  242. In general, each method is made up of several techniques (e.g. ER
  243. modeling, state transition diagrams) each of which emphasizes a
  244. particular aspect of the system. These techniques can be classifed as
  245. being for structural (data), behavioral or architectural modeling. The
  246. tutorial shows the techniques each method uses and how different
  247. methods use different dialects of the same techniques, varying the
  248. notation and introducing new concepts. It uses examples to show how
  249. the same system is expressed in different ways by the various methods.
  250. The tutorial also compares the design approach advocated by each
  251. method.
  252.  
  253. This tutorial will help you decide which method will work best for
  254. you. In addition, you will learn how ideas from different methods can
  255. be combined to better suit the system under analysis.
  256.     
  257. Martin Fowler is an analyst and designer with previous experience with
  258. Coopers & Lybrand UK and with ADT. For the last three years he has
  259. been employed by the UK National Health Service to produce a generic
  260. model for health care, which is the subject of tutorial 13. He also
  261. teaches and consults on object-oriented analysis and design.
  262.  
  263.  
  264. Integrating Analysis and Design Methods
  265.  
  266. Sunday:    Half Day-Afternoon
  267. Level:    Advanced
  268. Paul Jeremaes & Patrick Arnold, HP Labs, England
  269.  
  270. Most of those who practice object-oriented analysis and design do not
  271. follow any standard method exactly, but combine different techniques
  272. to suit their own unique requirements. Each method employs its own set
  273. of models, notations, and processes, so it can be difficult to combine
  274. them. This tutorial shows how to design a method by providing a
  275. framework for understanding and evaluating current methods, applying
  276. it to three recent methods (OMT (Rumbaugh et al), Responsibility
  277. Driven Design/CRC cards, Booch 91 Method), and combining them to
  278. produce a new method, FUSION, that builds on their best aspects.
  279.  
  280. The tutorial introduces a set of criteria for evaluating methods from
  281. the viewpoint of the object-oriented concepts they support, the kinds
  282. of models and notations they employ and the process steps that they
  283. recommend. The criteria provides a way to understand the underlying
  284. similarities and differences between methods.
  285.  
  286. The criteria were developed as part of a program to assess what kind
  287. of method should be made available to HP engineers, which led to the
  288. development of the FUSION method. The tutorial ends with a brief
  289. account of the usefulness of FUSION in practice.
  290.  
  291. Derek Coleman is a Project Manager at HP Laboratories leading a
  292. research and consulting team working on object-oriented methods. Derek
  293. is an active member of the object-oriented research community and the
  294. author of many papers on software engineering.
  295.  
  296. Patrick Arnold has worked as a researcher in software engineering at
  297. HP Laboratories for the past fve years. His interests are developing
  298. formal specifcation languages and CASE tools to support them.
  299.         
  300.  
  301. Object-Oriented Concurrent Programming
  302. Sunday:    Full Day
  303. Level:    Advanced
  304. Jean-Pierre Briot, Institute Blaise Pascal, France
  305.  
  306. This tutorial treats object-oriented concurrent programming (OOCP) as
  307. the natural generalization of object-oriented programming. OOCP
  308. decomposes a large program into a collection of small modules that run
  309. and interact concurrently and are capable of exploiting parallel
  310. hardware. The tutorial describes various levels of integration between
  311. object- oriented programming and concurrency, leading to the notion of
  312. an active object, which unifes object and activity, message passing
  313. and synchronization.
  314.  
  315. The tutorial introduces Concurrent Smalltalk to describe concepts,
  316. constructs, and methodology. Examples include programming with
  317. continuations, divide and conquer, and pipelining. It also shows how
  318. to implement active objects, and uses Actalk as an example.  Finally,
  319. it compares various OOP models and languages, with a special focus on
  320. the Actor computation model.
  321.  
  322. Although the tutorial uses Smalltalk for examples, you don't need to
  323. know Smalltalk to understand it; a quick introduction to Smalltalk
  324. syntax is included.  It assumes that you understand object-oriented
  325. programming well, but little more about concurrency than intuitive
  326. concepts of processes and synchronization.
  327.  
  328. Jean-Pierre Briot is a researcher working at LITP, Institute Blaise
  329. Pascal, Paris. He has performed tutorials on this topic at TOOLS and
  330. ECOOP Conferences. He designed the Actalk testbed based on Smalltalk,
  331. to model, classify, and experiment with various OOCP models in a
  332. unifed programming environment. He is co-heading an Esprit parallel
  333. computing action to develop an OOCP programming environment on
  334. multiprocessors.
  335.  
  336.  
  337. Types for the Working Programmer
  338. Sunday:    Half Day-Morning
  339. Level:    Advanced
  340. Andrew Black, DEC
  341.  
  342. There has been recent progress in understanding types for
  343. object-oriented languages, but most of it has had little or no impact
  344. on real programmers.  This tutorial aims to extract from the confusion
  345. those topics that are important to programmers who must use or choose
  346. an object-oriented language. The tutorial explains the role of types
  347. in object-oriented languages, what types can do for programmers, and
  348. how the trend towards distributed and heterogeneous systems and
  349. object-oriented databases influences what it means for a program to be
  350. type-correct.
  351.  
  352. The tutorial describes the difference between objects and values, what
  353. types are and why they are good for you, what refnement and subtyping
  354. are, what problems they solve, and what problems they do not; why
  355. contravariance isn't an unnatural act; why inheritance is a
  356. relationship between programs, not between classes; what is the type
  357. of nil, and whether it has one; and whether you should care that type
  358. is not a type.
  359.  
  360. By the end of the tutorial, you will understand how abstract concepts
  361. like subtyping can help you solve practical problems such as deciding
  362. when one piece of code can be substituted for another.
  363.  
  364. Andrew Black is a research staff member at Digital Equipment
  365. Corporation's Cambridge Research Lab and a Visiting Faculty Member at
  366. Harvard University. Before joining Digital he was a faculty member at
  367. the University of Washington in Seattle, where he was a co-designer of
  368. the Emerald programming language. Dr. Black's research interests are
  369. in operating systems, distributed systems, object-oriented programming
  370. and programming language design, and most particularly in the space
  371. where these areas overlap. His research goal is to make everything as
  372. simple as possible, but no simpler.
  373.  
  374.  
  375. Types for the Language Designer
  376. Sunday:    Half Day-Afternoon
  377. Level:    Advanced 
  378. Michael Schwartzbach & Jens Palsberg,
  379. Aarhus University, Denmark
  380.  
  381. The type systems of object-oriented languages have specifc goals: they
  382. serve as partial documentation, they provide modularity, and they
  383. ensure safety and efficiency at run-time.  There are many choices in
  384. the design of a type system, and it is hard to evaluate their
  385. tradeoffs. This tutorial teaches a coherent theory of type systems for
  386. object-oriented languages that can be used for both explicit systems
  387. (where the programmer supplies type annotations) and implicit systems
  388. (where the compiler must perform type inference), and forty systems
  389. based on interfaces, classes, and sets of classes.
  390.  
  391. The tutorial defnes an idealized object-oriented language, inspired by
  392. Smalltalk, and develops several type systems for it. This uniform
  393. framework makes it easy to compare different approaches. The tutorial
  394. explores the limitations of static type checking and shows how dynamic
  395. type checking can be introduced. It demonstrates how subclassing is
  396. different from subtyping, how specifcation types differ from
  397. implementation types, and the influence of a type system on separate
  398. compilation.
  399.     
  400. This tutorial is for anyone interested in language design issues. If
  401. you are not confdent of your ability to follow the issues, then you
  402. should frst take tutorial 6.
  403.  
  404. Michael I. Schwartzbach is associate professor and Jens Palsberg is
  405. research associate in the Computer Science Department of Aarhus
  406. University. They have co-authored several papers on object-oriented
  407. type systems and organized the ECOOP'91 Types Workshop.  They have
  408. also worked on type systems for functional and procedural languages.
  409.  
  410.  
  411. Simulation with DEVS-CLOS
  412. Sunday:    Half Day-Morning
  413. Level: Intermediate
  414. Suleyman Sevinc, University of Sydney , Australia
  415.  
  416. This tutorial has two purposes: to show how the features of CLOS
  417. affect a design and to describe the design of a general-purpose
  418. simulation system. The tutorial is designed for those who want to
  419. understand the practical importance of the unique features of CLOS and
  420. also those who would like to learn how to use or build object-oriented
  421. simulation systems.
  422.     
  423. The tutorial emphasizes the underlying model of object-oriented
  424. programming in CLOS and distinguishes it from other models. It also
  425. describes the requirements of a simulation system and the design of
  426. DEVS-CLOS, a publicly available simulation system. DEVS-CLOS is an
  427. extension to CLOS that supports modeling and simulation. It supports
  428. visualization, supports hierarchical design of simulations, allows
  429. frst-order logic in models, and supports adaptive system simulation.
  430. The tutorial shows how a system like DEVS-CLOS can be used to solve
  431. typical simulation problems, and how CLOS concepts like multimethods,
  432. multiple inheritance, pre- and post-methods and dispatching algorithms
  433. were used in the design of DEVS-CLOS.
  434.     
  435. Since receiving his Ph.D. from the University of Arizona, Dr. Sevinc
  436. has been with the Basser Department of Computer Science, University of
  437. Sydney, where he teaches software engineering, functional and
  438. object-oriented programming, and both teaches and conducts research in
  439. simulation, especially applying object-oriented programming, AI, and
  440. logic to simulation systems. He often teaches C++, but is always happy
  441. to introduce C++ programmers to the joy of CLOS.
  442.  
  443.  
  444. Advanced CLOS and Meta-Object Protocols
  445. Sunday:    Half Day-Afternoon
  446. Level:    Advanced
  447. Jon L. White, Lucid
  448.  
  449. One of the important characteristics of CLOS is its dynamic
  450. flexibility to change descriptions, programs, and even data objects
  451. "on the fly". A typical CLOS system is implemented by a set of
  452. meta-objects, which can be changed by the programmer, essentially
  453. letting you create a new language. Thus, CLOS is a reflective
  454. programming language.
  455.  
  456. The main purpose of this tutorial is to teach you how to put a
  457. meta-object protocol to a practical use. In addition to describing the
  458. implementation of a typical CLOS system and discussing the various
  459. issues raised by the book "Art of the Meta-Object Protocol", it gives
  460. practical examples of meta-object extensions including techniques for
  461. making user-defined metaclasses, for making alternations to SLOT-VALUE
  462. so that certain slots can be "persistent", and for making metaclasses
  463. whose classes automatically keep a table of all their instances.
  464.  
  465. The tutorial is aimed at the CLOS programmer or the programming
  466. language expert who would like to learn more about reflective
  467. programming using a meta-object protocol. The emphasis is on practical
  468. uses of a meta-object protocol, not on the philosophy of reflection.
  469.  
  470. Jon L. White is Principal Scientist at Lucid, Inc. The frst Lisp
  471. system that he developed was MacLisp, which he developed at the M.I.T.
  472. A.I. Lab in the early 1970's. He also worked on NIL, InterLisp, and
  473. Lucid Common Lisp. He is the editor of Lisp Pointers, an ACM SIGPLAN
  474. publication devoted to Lisp.
  475.  
  476.  
  477. Introduction to Object-Oriented Database Management Systems
  478. Sunday:    Full Day
  479. Level:    Intermediate
  480. David Maier, Oregon Graduate Institute
  481.  
  482. This tutorial begins by explaining object-oriented database management
  483. systems (OODBMS) in terms of what is the value added beyond
  484. record-oriented database systems and object-oriented programming
  485. languages. It presents most of the current commercial OODBMS and
  486. several advanced prototypes with particular attention to
  487. distinguishing them in their data models, application interfaces and
  488. system architectures. It will also contrast the OODBMS approach with
  489. extended relational systems. A goal of the tutorial is to give
  490. participants an appreciation for the consequences of design choices
  491. made in the different systems. It concludes with a critique of current
  492. market offerings, and suggests there are signifcant regions of the
  493. design space to explore, and needs of advanced applications that are
  494. still largely unmet by any database product.
  495.  
  496. This tutorial is designed both for those considering investing in
  497. OODBs and those who just want to understand the technology. It assumes
  498. knowledge of object-oriented programming concepts, and some
  499. familiarity with conventional database systems, particularly
  500. relational databases.
  501.  
  502. David Maier is a professor at the Oregon Graduate Institute, where he
  503. explores the principles, applications, and design of OODBMS. He was
  504. involved in the design of Gemstone, one of the frst commercial OODBMS,
  505. spent a sabbatical at Altair (predecessor of O2 Technology), is a
  506. scientifc advisor for Object Design and is currently evaluating
  507. GemStone, ObjectStore and Versant in scientifc data management.
  508.  
  509. Object-oriented Software Development with the Demeter Method
  510. Sunday:    Half Day╨Afternoon
  511. Level:    Advanced
  512. Karl Lieberherr, Northeastern University
  513.  
  514. The Demeter Method is a formal method that lifts object-oriented
  515. software development to a higher level of abstraction by using a
  516. graphical specifcation language for describing object- oriented
  517. programs. Executable programs are automatically generated by a CASE
  518. tool (the Demeter System/C++) from the graphical high-level
  519. descriptions. Unlike other specifcation languages, the Demeter Method
  520. allows you to keep the binding of methods to classes flexible under
  521. changing class structures. The higher level of abstraction leads to
  522. shorter and more reusable programs than by programming directly in one
  523. of today's object-oriented languages such as C++, Smalltalk, Eiffel or
  524. CLOS.
  525.  
  526. Because the Demeter Method is regularly taught at NU both at the
  527. graduate and undergraduate level with the 10 week quarter system, it
  528. has become, by necessity, very easy to learn.
  529.  
  530. This tutorial is for professionals who want to learn powerful,
  531. formally defned high-level concepts that describe the programming task
  532. in terms of data-model-based graphs and their subgraphs.
  533.  
  534. Karl Lieberherr is a Professor of Computer Science at Northeastern
  535. University leading the Demeter Team working on methods and tools for
  536. simplifying object-oriented software development. Members of his team
  537. have published a paper every year since 1988, either at OOPSLA or
  538. ECOOP or at both conferences.
  539.  
  540. Object-Oriented User Interfaces
  541. Sunday:    Half Day-Morning
  542. Level:    Intermediate
  543. Dave Collins, IBM
  544.  
  545. The principles of objects, polymorphism, classes, and inheritance can
  546. apply to the end user's external view of a user interface, just as it
  547. can apply to the language that is used to implement it. This tutorial
  548. shows how to design (not implement) a user interface that is truly
  549. object- oriented. It gives guidance on the design of the "externals"
  550. of object-oriented user interfaces, and shows how developers can
  551. capitalize on the isomorphism between the user's conceptual model of
  552. the interface and the constructs provided by object-oriented
  553. programming languages. The tutorial exposes a (perhaps surprisingly)
  554. deep analogy between object-oriented programming languages and
  555. object-oriented user interfaces. This analogy is valuable because it
  556. can be used to map "external" user interface design in a clear and
  557. natural way onto object-oriented application frameworks. The tutorial
  558. is illustrated with historical examples, many on videotape.
  559.  
  560. Dave Collins is an Institute Fellow in End User and Object-Oriented
  561. Technologies (formerly the User Interface Institute) at the IBM Thomas
  562. J. Watson Research Center, where he is working on object-oriented
  563. tools for prototyping advanced user interfaces. Previously, he was a
  564. Senior Instructor at the IBM Systems Research Education Center, where
  565. he developed and taught courses on software usability, user interface
  566. design, and object-oriented programming.
  567.  
  568.  
  569. Evaluating Reusable Class Libraries
  570. Sunday:    Half Day-Afternoon
  571. Level:    Intermediate
  572. Timothy Korson, Clemson University
  573.  
  574. Object-oriented technology not only affects the way we design
  575. individual applications, it holds the potential of ushering in the
  576. "software industrial revolution." A key to the success of object
  577. technology is the widespread availability of high quality class
  578. libraries. These class libraries are the re-usable parts of the
  579. software industry.
  580.  
  581. This tutorial teaches how to evaluate object-oriented libraries. The
  582. same criteria can be used for selecting commercial libraries or for
  583. designing libraries for use in-house. The tutorial also describes
  584. practical criteria for specifying and cataloging in-house corporate
  585. software libraries. In addition to these technical criteria, the
  586. tutorial also shows you the corporate infrastructure that is necessary
  587. for enabling large scale reuse.
  588.  
  589. Timothy Korson is an assistant professor of Computer Science at
  590. Clemson University, and president of the Consortium for the Management
  591. of Emerging Software Technologies (COMSOFT). His current research and
  592. consulting activities focus on the management of information assets
  593. with emphasis on managing a corporate transition to object-oriented
  594. technology.
  595.  
  596.  
  597. Object Engineering 
  598. Sunday:    Half Day-Morning
  599. Level:    Intermediate
  600. R. Stonewall Ballard,
  601. Component Software Corporation
  602.  
  603. Converting an object-oriented design into class defnitions in an
  604. object-oriented language often requires many engineering decisions. It
  605. is easy to make these decisions incorrectly for languages that give
  606. the programmer a lot of control over data representation, such as C++.
  607. This tutorial covers low-level issues in building extensible and
  608. evolvable programs, issues that are important if you want to build
  609. well-balanced abstractions. It describes how to use multiple
  610. inheritance properly in spite of the compiler, when to use forwarding
  611. instead of inheritance, how to encapsulate state, and when to use
  612. references instead of copying objects.
  613.  
  614. This tutorial teaches how to convert object-oriented designs into code
  615. that is easy to extend and reuse. Many of the issues are more
  616. interesting to C++ programmers than Smalltalk programmers, and C++ is
  617. the language used for examples, but most of the issues are language
  618. independent.
  619.  
  620. Stoney Ballard was introduced to object-oriented programming in 1974
  621. at M.I.T. by Richard Steiger. He built DEC's Smalltalk-80 interpreter
  622. as part of the roll-out of Smalltalk in 1981. He has been a graphics
  623. and workstation designer at Perq Systems, a research scientist at
  624. Xerox PARC, and a systems architect at On Technology. He is currently
  625. founder and president of Component Software Corporation.
  626.  
  627.  
  628. Teaching Object-Oriented Programming and Design
  629. Sunday:    Half Day-Afternoon
  630. Level:    Intermediate
  631. James C. McKim Jr., Hartford Graduate Centre
  632.  
  633. A course in object-oriented programming and design should address the
  634. claims made for the object-oriented paradigm, namely that it promotes
  635. reuse, models the problem space, facilitates maintenance, incorporates
  636. changes easily, and shortens the development lifecycle. One way
  637. (perhaps the only way) for students to test such claims is to build a
  638. small but high quality product as part of the course.
  639.  
  640. This tutorial shows how to have students in a conventional computer
  641. science program build such a product, and addresses such issues as how
  642. to pick good projects, whether and how students should work together
  643. in teams, how to keep students on schedule, and how to divide a
  644. project into a sequence of deliverables within the context of a one
  645. semester course.
  646.  
  647. The tutorial also describes how to scale back the approach so that
  648. students in short courses , common in industry, can get maximum beneft
  649. in the limited time that is allowed.
  650.  
  651. James McKim is professor of Computer Science at the Hartford Graduate
  652. Center, where he has been putting this approach into action and
  653. fne-tuning it. He has more than twenty years experience teaching
  654. mathematics and computer science, and has authored, co-authored and
  655. reviewed many textbooks and articles.
  656.  
  657. Monday, October 19
  658.  
  659.  
  660. Object-Oriented Project Management
  661. Monday:    Full Day
  662. Level:    Beginning
  663. Kenneth Rubin & Adele Goldberg, ParcPlace
  664.  
  665. Object-oriented projects have to be managed properly to obtain the
  666. most benefts from object-oriented technology. This tutorial explains
  667. the effect of object-oriented technology on costs, staffng and choice
  668. of methodology. It describes the pitfalls that attend object-oriented
  669. projects so that you can avoid them, and explains the key processes,
  670. including development style, use of prototyping, and reuse. It gives
  671. specifc guidelines for organizing projects, managing a reuse library,
  672. estimating the size and cost of projects, and introducing object-
  673. oriented technology into an organization.
  674.  
  675. Kenneth S. Rubin is Professional Services Manager at ParcPlace Systems
  676. where he manages the development of methodologies to support
  677. successful object-oriented software engineering.
  678.  
  679. Adele Goldberg is Chairman of ParcPlace Systems, and author of several
  680. books on Smalltalk-80. She is responsible for ParcPlace's overall
  681. technology and methodology vision.
  682.  
  683.  
  684. Introduction to Object-Oriented Design
  685. Monday:    Half Day-Morning
  686. Level:    Intermediate
  687. Lori Stipp & Grady Booch, Rational 
  688.  
  689. This tutorial describes the Booch method for object-oriented design,
  690. including details of the notation and the design process. It describes
  691. the principles that are necessary for thinking and abstracting in
  692. terms of classes and objects. The tutorial includes a number of
  693. examples, including "war stories" from specifc projects. It also
  694. covers extensions to the notation beyond that described in
  695. Object-Oriented Design with Applications.
  696.  
  697. This tutorial is a condensed version of Booch's popular tutorial given
  698. at past OOPSLA's. If you have attended that in the past then you
  699. should attend tutorial 18 instead of this one.
  700.  
  701. Lori Stipp develops courseware on object-oriented analysis and design
  702. for Rational. Before working at Rational, she spent 6 years at Aion
  703. Corporation developing and applying methods for designing
  704. object-oriented, knowledge-based systems.
  705.  
  706. Grady Booch is the Director of Object-Oriented Products at Rational
  707. and an international consultant. He has pioneered applying
  708. object-oriented design methods to a wide spectrum of object-oriented
  709. and object-based languages.
  710.  
  711.  
  712. The Pragmatics of Building Object-Oriented Systems
  713. Monday:    Half Day-Afternoon
  714. Level:    Advanced
  715. Grady Booch, Rational 
  716.  
  717. This tutorial expands upon the process described in Booch's
  718. Object-Oriented Design with Applications to provide a prescriptive,
  719. iterative process for object-oriented development. It describes both
  720. the macro and micro process of development. It gives guidelines for
  721. managing iterative development, and addresses the pragmatic issues of
  722. milestones and planning, staffng, integration and release management,
  723. reuse, testing, quality assurance and metrics, documentation, tools,
  724. and technology transfer.
  725.  
  726. This tutorial assumes that you are familiar with Booch's design
  727. method. If you are not, but have a good understanding of
  728. object-oriented concepts and design principles, you should take
  729. tutorial 17 to be prepared for this tutorial.
  730.  
  731. Grady Booch is the Director of Object-Oriented Products at Rational
  732. and an international consultant. He has pioneered applying
  733. object-oriented design methods to a wide spectrum of object-oriented
  734. and object-based languages.
  735.  
  736. A Case Study of Domain Analysis: Health Care 
  737. Monday:    Half Day-Morning
  738. Level:    Advanced
  739. Martin Fowler & Thomas Cairns,
  740. St Mary's Hospital Medical School , England 
  741.  
  742. Three years ago the UK National Health Service decided to develop a
  743. generic model to describe all aspects of its management and operation.
  744. Several projects were launched to describe the health care process
  745. using the object-oriented modeling technique Ptech (now published by
  746. James Martin and Jim Odell). One of these projects, the Cosmos
  747. project, produced the Cosmos Clinical Process Model (or CCPM), which
  748. describes the medical record. The CCPM contains approximately 70
  749. object types in a highly abstract structure describing clinical
  750. procedures, observations, evidence and assessment, accountabilities
  751. and contracts, care planning, and clinical knowledge. The model has
  752. gained widespread interest in both the UK and Europe and will be used
  753. as the focus for a number of EEC sponsored projects, and is taking a
  754. leading standardization role in Europe.
  755.  
  756. The CCPM is an example of the result of domain analysis. Its use of
  757. abstractions, some of which are applicable outside health care, and
  758. its use of an operational/knowledge divide can guide those working on
  759. large-scale generic models in other areas. The tutorial describes the
  760. relationship between generic and specifc models since these issues are
  761. key in the acceptance of a highly generic application area model by
  762. those with specifc applications to develop. The question of adapting
  763. an object-oriented method for particular needs is also addressed.
  764.  
  765. Martin Fowler is an analyst and designer with previous experience with
  766. Coopers & Lybrand UK and with ADT. For the last three years he has
  767. been employed by the UK National Health Service to produce a generic
  768. model for health care, which is the subject of tutorial 13. He also
  769. teaches and consults on object-oriented analysis and design.
  770.  
  771. Thomas Cairns is a renal physician. He began object-oriented modeling
  772. with the Cosmos project in 1989 and is the leading clinician in
  773. developing the CCPM. He is also researching in transplantation and
  774. immunology.
  775.  
  776. The Analysis and Design of Distributed Systems
  777. Monday:    Half Day╨Afternoon
  778. Level:    Advanced
  779. Mehmet Aksit, University of Twente
  780.  
  781. The design of distributed object-oriented systems involves a number of
  782. considerations that rarely arise in sequential object-oriented design
  783. or in non-object-oriented languages. The tutorial describes analysis
  784. and design techniques for data abstraction, inheritance, delegation,
  785. persistence, atomicity, concurrency, synchronization, and coordinated
  786. behavior in a distributed object-oriented framework. Special attention
  787. will be paid to the uniform integration of these concepts with the
  788. object-oriented paradigm. Discussions will be accompanied by examples
  789. that arose from constructing such systems.
  790.  
  791. Mehmet Aksit is an associate professor at the University of Twente. He
  792. is a consultant for several companies, has presented a number of
  793. tutorials and courses in Europe, and is the tutorial chair of this
  794. year's ECOOP conference. His areas of interests are object-oriented
  795. analysis and design methodologies, object-oriented CASE tools,
  796. programming environments, languages and object based management
  797. systems.
  798.  
  799.  
  800. Specifcation Techniques for Object-Oriented Software
  801. Monday:    Full Day
  802. Level:    Advanced
  803. Mahesh H. Dodani, University of Iowa
  804.  
  805. There are many techniques for specifying software. However, they are
  806. not usually presented in a way that is directly applicable to
  807. object-oriented software. This tutorial surveys both operational and
  808. descriptive specifcation techniques, shows how to use them in several
  809. popular object-oriented software engineering methods, and provides
  810. case studies of developing useful, formal specifcation mechanisms that
  811. are appropriate for object-oriented software engineering.
  812.     
  813. The tutorial frst describes criteria for choosing specifcation
  814. mechanisms from both a theoretical (syntax and semantics, specifying
  815. properties, reasoning about properties, verifcation) and practical
  816. (ease of use, modularity, applicability, supporting tools)
  817. perspective. These criteria are then used to survey several popular
  818. operational (data flow diagrams, fnite state machines, and petri nets)
  819. and descriptive (entity-relationship models, logic, and algebraic
  820. specifcations) specifcation mechanisms. Finally it shows how to extend
  821. two of these techniques (algebraic specifcations and fnite state
  822. machines) so that they are suitable for object-oriented software
  823. engineering.
  824.  
  825. Mahesh Dodani is an assistant professor of Computer Science at the
  826. University of Iowa, where he has been developing a graduate curriculum
  827. for object-oriented software engineering in response to demands from
  828. local industry. He directs several groups conducting object-oriented
  829. research, and has been involved in building object-oriented systems
  830. ranging from interface builders to database design tools.
  831.  
  832.  
  833. Writing Efficient C++ Programs
  834. Monday:    Half Day-Morning
  835. Level:    Intermediate
  836. Scott Meyers, Brown University
  837.  
  838. This tutorial teaches the competing meanings of "high performance;"
  839. the characteristics of object-oriented systems that can decrease
  840. performance; how to locate and eliminate computational bottlenecks in
  841. C++ programs; and the trade-offs between high performance and system
  842. reusability, maintainability, and portability. It describes in detail
  843. the factors that affect the performance of C++ software. Whether your
  844. primary concern is high system speed, small system size, fast
  845. recompilation, or a combination of these, this tutorial provides you
  846. with the tools necessary to come up with an appropriate
  847. object-oriented design, to implement it efficiently in C++, and to
  848. fne-tune it for maximum performance.
  849.  
  850. The reasons for bottlenecks in C++ programs are often surprising.
  851. Contrary to popular belief, virtual functions usually exact a
  852. negligible performance cost, while unexpected calls to constructors
  853. and destructors frequently hamstring applications. This tutorial
  854. teaches you what is really important if you want to deliver high
  855. performance, and the techniques you need to achieve it.
  856.     
  857. Scott Meyers has been teaching C++ in academic and industrial settings
  858. since 1989. He is the author of "Effective C++"(Addison-Wesley, 1992),
  859. and has authored or co-authored more than a dozen conference and
  860. journal articles on software development, many of which deal
  861. specifcally with C++.
  862.  
  863.  
  864. The Design and Management of C++ Class Libraries
  865. Monday:    Half Day-Afternoon
  866. Level:    Intermediate
  867. Arthuir Riel, Vanguard Training
  868.  
  869. Producing reusable C++ class libraries takes more than just knowing
  870. the language: it requires careful design. This tutorial shows how to
  871. create truly reusable C++ class libraries. It includes how to design a
  872. minimal public interface, variable-size objects, memory leakage,
  873. heuristics for operator overloading, designing reusable base-classes,
  874. using inheritance and containment, and deciding how to place classes
  875. in a class library.
  876.  
  877. Arthur Riel has over ten years experience programming in C and C++. He
  878. has participated in the development of many large systems including
  879. two real-time process control systems, a microcode assembler, the
  880. Demeter system (an object-oriented CASE tool co-developed at
  881. Northeastern University with Karl Lieberherr et al.), and a commercial
  882. library of reusable C++ components called Classix. He is the founder
  883. and editor of The C++ Insider, a bi-monthly newsletter specializing in
  884. C++ design and implementation techniques. In addition, Arthur helps
  885. spread the object-oriented gospel by teaching over twenty fve courses
  886. (C++, OOD, OOP) per year in both corporate and academic environments.
  887.  
  888.  
  889. Hardware Support for Object-Oriented Systems
  890. Monday:    Half Day-Morning
  891. Level: Advanced
  892. Mario Wolczko, University of Manchester, England
  893.  
  894. When the performance penalty of object-oriented systems is mentioned,
  895. a common response is to blame antiquated hardware designs for not
  896. supporting object-oriented languages as they deserve. To what extent
  897. can the performance gap between conventional languages and
  898. object-oriented languages be closed using hardware? What architectural
  899. changes beneft object-oriented systems, and by how much?
  900.  
  901. There have been many attempts to make hardware that better supports
  902. object-oriented programming. This tutorial describes these systems,
  903. and the extent that they have succeeded or failed in their aims. These
  904. systems include SOAR, Rekursiv and MUSHROOM, as well as some features
  905. from mainstream architectures such as SPARC. Issues covered include:
  906. choice of instruction set, design of the memory system including
  907. caches and virtual memory hardware, scaleability, use of parallelism,
  908. and hardware/software trade-offs.
  909.  
  910. A common misconception is that if something is implemented in hardware
  911. then it must be fast. One aspect of the tutorial is to show that there
  912. are limits to what hardware support can achieve. However, better
  913. hardware can reduce the cost of some language features, such as
  914. dynamic binding, and can make a system more scaleable.
  915.  
  916. Mario Wolczko is a researcher in the Department of Computer Science at
  917. the University of Manchester. He has been involved in the
  918. implementation of object-oriented languages and systems for eight
  919. years, most recently with the MUSHROOM project, which has been
  920. investigating architectural support for object-oriented systems.
  921.  
  922.  
  923. Efficient Implementation of Object-Oriented Programming Languages
  924. Monday:    Half Day-Afternoon
  925. Level:    Advanced
  926. Craig Chambers, University of Washington
  927. David Ungar, Sun Labs
  928.  
  929. This tutorial is for those who like to know how object-oriented
  930. languages work "under the hood," why some things are expensive while
  931. other things are cheap, and why language defnitions include certain
  932. restrictions. This tutorial provides that, and more. It describes
  933. features of object-oriented languages that are difficult to implement
  934. efficiently, and how this has affected language designs. It describes
  935. state-of-the-practice and state-of-the-art techniques for implementing
  936. languages like C++ and Smalltalk.
  937.  
  938. Language features include dynamic binding and generic operations,
  939. inheritance, user- defned control structures, static type systems,
  940. multiple inheritance and virtual base classes, and mixing
  941. object-oriented and non-object-oriented programming.
  942.  
  943. The tutorial also addresses questions like: What are the trade-offs in
  944. using the various implementation techniques? What problems remain that
  945. block more efficient object-oriented language implementations? What
  946. might be promising areas for future research?
  947.  
  948. Craig Chambers and Dave Ungar are well-known for their work on Self, a
  949. language even harder to make fast than Smalltalk. Craig is an
  950. assistant professor at U. of Washington and Dave is at Sun
  951. Microsystems Laboratories.
  952.  
  953.  
  954. Constraint-Based Languages and Systems
  955. Monday:    Half Day-Morning
  956. Level:    Advanced
  957. Bjorn Freeman-Benson , University of Victoria, Canada
  958. Alan Borning, University of Washington
  959.  
  960. A constraint is a relation that should be satisfed, for example, that
  961. a line remain horizontal, that a resistor in an electrical circuit
  962. simulation obey Ohm's Law, or that the height of a bar in a bar chart
  963. be proportional to some number in an application program. Constraints
  964. have been used in a variety of languages and systems, particularly in
  965. user interface tool kits, in planning and scheduling, and in
  966. simulation. They provide an intuitive declarative style of programming
  967. that integrates well with object-oriented systems.
  968.  
  969. This tutorial teaches what constraints are, how to use them in
  970. applications such as user interfaces, how to implement them (including
  971. how to implement constraint hierarchies), and how to embed them in
  972. object-oriented and logic programming languages. You don't have to
  973. know anything about constraints, but it would be helpful to have a
  974. strong background in programming languages.
  975.  
  976. Bjorn Freeman-Benson is an assistant professor at the University of
  977. Victoria. He worked for many years as a software engineer and recently
  978. completed his Ph.D. at the University of Washington; his dissertation
  979. was on the integration of constraint and imperative programming
  980. languages. His research interests are in object- oriented languages,
  981. constraint-based languages and systems, and user interfaces.
  982.  
  983. Alan Borning's Ph.D. thesis in 1979 was one of the frst on constraint
  984. programming, and also one of the frst describing a system (ThingLab)
  985. written in Smalltalk. Although his degree was from Stanford, he worked
  986. with Alan Kay and the Learning Research Group at Xerox PARC.  He has
  987. been at the University of Washington since 1980, where he is currently
  988. an associate professor. His research interests are in object-oriented
  989. languages, constraint-based languages and systems, and user
  990. interfaces.
  991.  
  992. Visual Programming Languages from an Object-Oriented Perspective
  993. Monday:    Half Day-Afternoon
  994. Level:    Advanced
  995. Allen L. Ambler, University of Kansas
  996. Margaret M. Burnett,
  997. Michigan Technical University
  998.  
  999. Visual programming language research has evolved greatly since its
  1000. early days. At frst, attempts at visual programming mostly took the
  1001. form of flowchart-like diagrams. But in recent years, a wide number of
  1002. innovative approaches have been incorporated into visual languages,
  1003. including object-oriented programming, form-based programming,
  1004. programming by demonstration, and dataflow programming. Unfortunately,
  1005. while many of these systems represent important ideas, only a few have
  1006. been successful as complete visual programming languages. This
  1007. tutorial explains why this is true, and describes ways in which the
  1008. problem can be addressed.
  1009.  
  1010. This tutorial explores the issues behind the successes and failures of
  1011. earlier approaches from a design perspective. It identifies
  1012. characteristics of successful visual programming languages, and
  1013. explains how to design an object-oriented language that maintains
  1014. those characteristics. It shows solutions to a number of problems by
  1015. looking at existing visual programming languages, including Prograph.
  1016.  
  1017. Allan L. Ambler is an associate professor in the Department of
  1018. Computer Science at the University of Kansas. He has led the design
  1019. and implementation of the visual programming languages Forms,
  1020. Forms/2,Forms/3, and PT, and is currently involved in the
  1021. development of a visual programming approach to scientifc
  1022. visualization.
  1023.  
  1024. Margaret M. Burnett is an assistant professor in the Department of
  1025. Computer Science at Michigan Technological University. In her recent
  1026. doctoral dissertation, working with Allen Ambler, Dr. Burnett
  1027. developed approaches to abstraction in visual languages, using these
  1028. approaches to solve several subproblems associated with using visual
  1029. programming languages for realistic programming.
  1030.  
  1031. Intermediate Smalltalk: Practical Design and Implementation
  1032. Monday:    Half Day-Morning
  1033. Level:    Intermediate
  1034. Trygve Reenskaug, TASKON , Norway
  1035.  
  1036. Careful design before programming is as important in Smalltalk as in
  1037. other languages. This tutorial describes techniques that have proven
  1038. useful in commercial development of large Smalltalk systems. The
  1039. tutorial shows how to develop a language independent design and then
  1040. go to detailed programming and testing. The examples will be based on
  1041. Smalltalk-80 and use the release 4.1 graphical user interface
  1042. framework.
  1043.  
  1044. Trygve Reenskaug started using Smalltalk-76 when he visited Xerox PARC
  1045. in the 70's, where he introduced the idea of model/view/controller,
  1046. and has been developing in Smalltalk ever since. He is responsible for
  1047. research at Taskon A/S in Oslo and is Professor of Informatics at the
  1048. University of Oslo. He has been involved in software engineering and
  1049. the development of software products since 1958.
  1050.  
  1051.  
  1052. Writing Efficient Smalltalk Programs
  1053. Monday:    Half Day-Afternoon
  1054. Level:    Intermediate
  1055. Ken Auer, Knowledge Systems Corp.
  1056.  
  1057. Smalltalk has a reputation for being slow and a memory hog. In
  1058. reality, the Smalltalk environment offers many ways to create
  1059. inefficient code, and programmers often exploit those opportunities.
  1060. However, there are just as many ways to create efficient code, some of
  1061. which may not be available in more traditional languages. Whether an
  1062. application is efficient or not has more to do with the way the
  1063. programmer has used the available tools than the tools themselves.
  1064.  
  1065. This tutorial teaches Smalltalk programmers how to write efficient
  1066. programs. The emphasis is on how to exploit, rather than sacrifce, the
  1067. benefts of good object-oriented design. You should have at least six
  1068. months experience with Smalltalk writing non-toy programs to get the
  1069. most beneft from the tutorial.
  1070.  
  1071. Ken Auer is a senior member of the technical staff at Knowledge
  1072. Systems Corporation. He has been applying Smalltalk to real-world
  1073. problems since 1985, serving as a chief architect of several large
  1074. object-oriented systems. Ken has concentrated his efforts on
  1075. developing quality reusable components and frameworks, and teaching
  1076. others to do the same.
  1077.  
  1078.  
  1079. Testing Object-Oriented Software
  1080. Monday:    Full Day
  1081. Level:    Intermediate
  1082. Edward Berard, Berard Software Engineering
  1083.  
  1084. Testing of object-oriented software is just as important as testing
  1085. non-object-oriented software, but the process is fundamentally
  1086. different because of such factors as information hiding,
  1087. encapsulation, and inheritance. This tutorial teaches you the terms
  1088. and concepts of testing software in general, and object-oriented
  1089. software in particular; how to apply a number of different testing
  1090. techniques to object-oriented software; how to construct test cases;
  1091. and an appreciation of what is involved in planning a successful
  1092. software testing effort. The testing techniques that are covered
  1093. include both white-box testing such as basis path testing and coverage
  1094. testing, and black-box testing techniques such as equivalence class
  1095. partitioning and boundary value analysis.
  1096.  
  1097. This course is designed for those with experience in object-oriented
  1098. software engineering who would like to follow a more rigorous approach
  1099. to testing.
  1100.  
  1101. Edward V. Berard is the founder and President of Berard Software
  1102. Engineering, Inc. He has nearly twenty years of software-related
  1103. experience in varied environments, with the last decade being spent in
  1104. the area of object-oriented software engineering. He is best known for
  1105. his efforts in the areas of object-oriented approaches to the software
  1106. life-cycle, software reusability, software engineering metrics, and
  1107. software engineering education.
  1108.  
  1109.  
  1110. Object-Oriented Geometry and Graphics
  1111. Monday:    Half Day-Morning
  1112. Level:    Intermediate
  1113. Jan Krc-Jediny & Augustin Mrazik, ArtInAppleS, Czechoslovakia
  1114.  
  1115. Spatial information is an important part of geographic information
  1116. systems, CAD and CAM systems, and user interfaces for visualization of
  1117. any kind of information. The object-oriented approach to spatial
  1118. object modelling results in much more understandable designs than non-
  1119. object-oriented approaches.
  1120.  
  1121. This tutorial describes the design of several key components of a
  1122. system for dealing with spatial information which are: analytical
  1123. geometry closed with respect to union, intersection and complement
  1124. operations; hierarchically structured objects for maintaining
  1125. topological information; object identity and problems arising from
  1126. change of spatial objects in the database and user interface,
  1127. transactions and copies of objects; dependencies of spatial objects
  1128. and their copies in the MVC user-interface architecture.
  1129.  
  1130. You should have experience in building user-interfaces and should have
  1131. some background in analytical geometry. Examples are shown in
  1132. Smalltalk, so a basic knowledge of Smalltalk would be helpful.
  1133.  
  1134. Jan Krc-Jediny is a researcher and developer at ArtInAppleS Ltd.,
  1135. Bratislava, Czeckoslovakia. His main area of interest is
  1136. object-oriented graphics and hypermedia systems. Before joining
  1137. ArtInAppleS he spent 15 years at the Department of Applied Mathematics
  1138. of the Commenius University in Bratislava in research and development
  1139. of computer graphics systems and standards.
  1140.  
  1141. Augustin Mrazik is co-founder and president of ArtInAppleS Ltd. His
  1142. main interest is object-oriented spatial information processing,
  1143. knowledge representation and object-oriented GIS.  He led the
  1144. development and implementation of the Spacetalk system,which was
  1145. demonstrated at OOPSLA╘89.
  1146.  
  1147.  
  1148. The Design of an Object-Oriented Operating System: A Case Study of Choices
  1149. Monday:    Half Day-Afternoon
  1150. Level:    Intermediate
  1151. Roy H. Campbell & Nayeem Islam,
  1152. University of Illinois 
  1153. Peter M Madany, SUN Microsystems
  1154.  
  1155. This tutorial describes the object-oriented design of a complete
  1156. operating system, written to be object-oriented, with a user and
  1157. application interface that is object-oriented. The main objective is
  1158. to illustrate object-oriented design trade-offs by studying a large
  1159. object-oriented system, the Choices operating system.
  1160.  
  1161. Choices is an object-oriented multiprocessor operating system that
  1162. runs native on SPARC stations, Encore Multimaxes, and IBM PCs. The
  1163. system is built from a number of frameworks that implement a general
  1164. fle system, persistent store for persistent objects, process
  1165. switching, parallel processing, distributed processing, interrupt
  1166. handling, virtual memory, networking, and interprocess communication.
  1167.  
  1168. If you bring a 386-based portable computer running MS-DOS to the
  1169. course then you may experiment by writing application programs for
  1170. PC-Choices. All participants will receive a copy of PC-Choices on a
  1171. floppy.
  1172.  
  1173. Participants should have experience with building object-oriented
  1174. systems and have a basic understanding of operating systems design.
  1175. Reading knowledge of C++ is helpful, but not necessary.
  1176.  
  1177. Roy Campbell is a professor of Computer Science at the University of
  1178. Illinois at Urbana-Champaign, where his research interests include
  1179. software engineering, operating systems, and networking.
  1180.  
  1181. Peter Madany recently fnished his Ph.D. thesis at the University of
  1182. Illinois on a framework for fle systems and persistent storage, and is
  1183. now at Sun Microcomputer Laboratories.
  1184.  
  1185. Nayeem Islam is a Ph.D. candidate and a member of the Choices project
  1186. at the University of Illinois, and has published several papers on
  1187. distributed and object-oriented programming.
  1188.  
  1189.  
  1190. Teaching "Object-Think" with Multi-Sensory Engagement
  1191. Monday:    Half Day-Morning
  1192. Level:    Advanced
  1193. Peter Coad, Object International, Inc.
  1194.  
  1195. This is a tutorial about how to teach the "big picture" of objects,
  1196. especially in an industrial environment where time is short. It is
  1197. based on the whole brain theory and multi-sensory engagement. The
  1198. tutorial shows over twenty specifc techniques for teaching using
  1199. multi-sensory engagement, many of these unifed into "The Object
  1200. Game", which lets those new to objects see and manipulate them. The
  1201. tutorial describes a set of specifc techniques for leading someone
  1202. into more effective "object think", and compares and contrasts
  1203. whole-brain multi-sensory engagement with other "object think"
  1204. techniques, such as graphics, languages, and CRC cards.
  1205.  
  1206. This tutorial is designed for those trying to teach object-oriented
  1207. development who have been frustrated by the inability of some people
  1208. to reach effective "object think". It will also be of interest to
  1209. those planning to teach object-oriented programming, or those
  1210. responsible for selecting such a course.
  1211.  
  1212. Peter Coad builds an average of ten object-oriented models each month
  1213. for clients and seminar participants in a wide range of industries.
  1214. Teaching is one of the things he enjoys best, and he has been
  1215. developing the techniques described in this tutorial as a way to
  1216. become more effective and solve the problems that plague all those
  1217. teaching about objects.  He is the author (with Ed Yourdon) of
  1218. Object-Oriented Analysis, Second Edition and Object- Oriented Design
  1219. and (with Jill Nicola) of Object-Oriented Programming (Fall 1992).
  1220.  
  1221.  
  1222. Schema Updates for Object-Oriented Database Systems
  1223. Monday:    Half Day-Afternoon
  1224. Level: Intermediate
  1225. Roberto Zicari , Johann Wolfgang Goethe University, Germany
  1226.  
  1227. OODBMS are often used for complex data whose structure is likely to
  1228. change over time, yet the problem of schema updates has not been
  1229. completely solved by any commercial or research OODBMS. This tutorial
  1230. describes the schema modifcation problem and why it is important, what
  1231. is really offered by products, what a good solution would be like, and
  1232. whether we are likely to see it soon.
  1233.  
  1234. The tutorial reviews several commercial OODBMS products that provide
  1235. facilities for updating the schema, namely: GemStone (Servio
  1236. Corporation), ITASCA(Itasca), O2(O2Technology), ObjectStore
  1237. (ObjectDesign), Ontos (Ontologic) and Statice (Symbolics). It also
  1238. describes the solutions proposed in some experimental research
  1239. prototypes and the open problems that remain.
  1240.  
  1241. Roberto Zicari is full professor of Computer Science (Databases and
  1242. Information Systems) at the Johann Wolfgang Goethe-Universitaet,
  1243. Frankfurt am Main, Germany. His current research and professional
  1244. interests are in object-oriented database systems and their
  1245. applicability to complex applications.
  1246.  
  1247.