ISOTAS '96

Tutorials


INDEX
Mar. 11, 1996
[T1] An In-Depth Look at Reusability (B. Meyer)
[T2] Obeject-Oriented Software Engineering (S. Honiden)

Mar. 12, 1996
[T3] Using Design Patterns: Elements of Reusable Architectures (R. Helm)
[T4] Open Implementation Analysis and Design [TM] (G. Kiczales, et al)
[T5] Efficient Implementation of Object-Oriented Programming Languages (C. Chambers)

FEES
Registration information is here.

Member* Non-member
Fees per unit 5,000 yen 7,500 yen
Student fees per unit 500 yen 750 yen

*Reduced fees apply to JSSST, ACM, IEEE Computer Society, IEICE and IPSJ members.


T1 March 11th, 1996, One day (9:30 - 17:15), 2 units

An In-Depth Look at Reusability

Bertrand Meyer (ISE Inc.)

Language: English
Level: Intermediate

Drawing on the experience of thousands of widely reused classes, this presentation will explain the issues, both managerial and technical, that must be addressed for a successful reuse policy. It will review what managers must do to promote reuse in their organization, and describe the technical tools that are necessary to produce large numbers of high-quality reusable components. The technical part of the presentation will be based on the Eiffel approach to reusability and reliability.

Among the topics surveyed:

Attendees will be presented with a number of examples of good (and bad) reusable library design.

Bertrand Meyer is president of ISE Inc. (Santa Barbara), editor of two book series (Prentice Hall's Object-Oriented Series and Addison-Wesley's ``Eiffel in Practice''), chairman of the TOOLS conferences (Technology of Object-Oriented Languages and Systems) and associate member of the applications section of the French Academy of Sciences. He is the author of many books including two available in Japanese (``Object-Oriented Software Construction'', ``Introduction to the Theory of Programming Languages''), ``Object Success'' (a presentation of object technology for managers), ``Eiffel: The Language'', and ``Reusable Software'' (on the tutorial's topics). He has directed successful projects of more than half a million lines of reusable object-oriented reusable software.

[NEXT][TOP]


T2 March 11th, 1996, One day (9:30 - 17:15), 2 units

Obeject-Oriented Software Engineering

Shin'ichi Honiden (Toshiba)

Language: Japanese (Description in Japanese is
here)
Level: Beginning/Intermediate

The tutorial has two major parts. Part one focuses on object-oriented analysis and design method - the basic concept of methodology, the several methodology examples, an overview of state-of-the-art methodologies, and the applications to the practical system. It also discusses some success and failure stories that shed light on the lessons to be learned.

Part two focuses focuses on reusable software components, such as design pattern, framework, and componentware. It gives an overview of approaches and how to apply reusable software components in application domains.

Shinichi Honiden received the B.E., M.E., and Dr. Eng. degrees in electrical engineering from Waseda University, Tokyo, Japan, in 1976, 1978, and 1986, respectively. Since 1978, he has been with Toshiba Corporation, Tokyo. His research interests include software engineering and artificial intelligence, with particular reference to object-oriented analysis and design, agent-oriented model, formal specification languages and methodologies, and analysis and validation techniques for real-time and concurrent systems. He has published more than 70 papers in journals and international conferences of the fields, and 6 books on object-oriented software engineering.

[PREV] [NEXT] [TOP]


T3 March 12th, 1996, One day (9:30 - 17:15), 2 units

Using Design Patterns: Elements of Reusable Architectures

Richard Helm (IBM Consulting Group/ISSC)

Language: English
Level: Advanced

Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Experience shows that any object-oriented systems exhibit recurring structures or "design patterns" of communicating and collaborating objects that promote extensibility, flexibility, and reusability. This course describes a set of fundamental design patterns and, through a design scenario, demonstrates how to build reusable object,oriented software based on them. Participants will learn a valuable set of design patterns that they can apply to the design of their own object-oriented systems, thereby making them more effective designers. The course covers the roles design patterns play in the object-oriented development process: how they provide a common vocabulary, reduce system complexity, and how they act as reusable architectural elements that contribute to an overall system architecture. This tutorial is intended for architects, system designers, and programmers who design object-oriented software. Attendees should have experience in object,oriented design and should understand object-oriented concepts such as polymorphism and type versus interface inheritance.

Richard Helm is a consultant with the object technology practice with IBM Consulting Group/ISSC Australia in Sydney Australia. There he is actively applying patterns to the design of commercial systems. Prior to IBM, Richard was with DMR Group based in Montreal, Quebec, and prior to that he was a research staff member with IBM at the T.J. Watson Research Center in New York. Richard has numerous international publications, is a frequent speaker at international conferences, and is one of the four co-authors of the award-winning book Design Patterns: Elements of Reusable Object-Oriented Software. Richard has a Ph.D. from the University of Melbourne Australia.

[PREV] [NEXT] [TOP]


T4 March 12th, 1996, Half day (9:30 - 12:45), 1 unit

Open Implementation Analysis and Design [TM]
(How to Make Black Boxes Easier to Reuse)

Gregor Kiczales, Chris Maeda (Xerox PARC), and
Arthur Lee (Korea University)

Language: English
Level: Intermediate

Open Implementation Analysis and Design is a new methodology for designing Open Implementations of substrate software. The designer of any performance-critical reusable software faces a difficult challenge: there are many implementation decisions that will invariably bias the system's performance towards one kind of client use and away from others. For example: a file system implementation can be designed to penalize or favor the use of many small files; a virtual memory system can be designed to penalize or favor its use in implementing a database; a set abstraction can penalize or favor frequent delete operations etc. We call such decisions implementation strategy dilemmas, to reflect the fact that the designer seems forced to choose between making some clients happy vs making other clients happy. Open Implementation is an architectural solution to this problem that works by allowing clients of a module principled control over the module's implementation strategy decisions. So, for example, one client of a file system could choose the block size for their files and in doing so ensure that the file system was biased towards their needs. Open Implementation Analysis and Design is a methodology that allows designers to decide what aspects of a module's implementation a client should control, and how best to provide that control. This methodology is synergistic with OOA/D methodologies, but places more of an emphasis on how to make software that is tailorable by clients.

Gregor Kiczales is the leader of the Open Implementation project at Xerox PARC. He is the inventor of the concept of Open Implementation, and one of the developers of OIA/D. He has done extensive work in object-oriented programming languages and techniques, and in the area of metaobject protocols.

Chris Maeda is a member of the Open Implementation project at PARC. He is one of the developers of OIA/D.

Arthur Lee is a professor at Korea University, where he heads a new project on Open Implementation. He is one of the developers of OIA/D.

[PREV] [NEXT] [TOP]


T5 March 12th, 1996, Half day (14:00 - 17:15), 1 unit

Efficient Implementation of Object-Oriented Programming Languages

Craig Chambers (University of Washington)

Language: English
Level: Advanced

How are object-oriented languages implemented? What features of object-oriented languages are expensive? What optimizations have been developed to make object-oriented languages more efficient? How important is compiler optimization for supporting high-level object-oriented languages? What are important considerations when assessing the effectiveness of compiler optimization? This tutorial aims to provide some answers to these questions. The tutorial will begin by presenting the important language design issues, identifying the features of object-oriented languages that are difficult to implement efficiently. In the main part of the tutorial, three classes of implementation techniques will be presented. First, run-time system techniques such as virtual function dispatch tables and inline caches will be described. Second, the tutorial will describe several levels of static analyses which seek to identify at compile-time the possible classes of message receivers in order to reduce or eliminate the overhead of dynamic binding. Third, the tutorial will discuss ways in which dynamic execution profiles can be exploited to complement static analysis techniques. The tutorial will present empirical measurements of the effectiveness of these various techniques for different kinds of programs and languages.

Craig Chambers has been researching object-oriented language design and implementation since 1987, with publications in OOPSLA, ECOOP, and PLDI on the topic. He developed the first efficient implementation of the Self language, and he is the designer of the Cecil language and heads the Vortex optimizing compiler project. Chambers is currently an Assistant Professor of Computer Science & Engineering at the University of Washington.

[PREV] [TOP]



Maintained by Takuo Watanabe (Publicity Chair).
E-mail: takuo@jaist.ac.jp