OOPSLA '97
October 5-9, 1997 - Atlanta, Georgia

Tutorials: Sunday Afternoon

 

(16) Practical Analysis and Design Techniques
Cobb Galleria Centre, Rooms 115-116

Rebecca Wirfs-Brock and Alan McKean, ParcPlace-Digitalk, Inc.

This tutorial presents techniques for improving, understanding, and expressing object analysis and design models. Responsibility-Driven Development was first described in the popular Designing Object-Oriented Software and has been extended to incorporate a number of practical, generally low-technology vehicles for comparing, contrasting, and modeling object systems. These techniques include development of: Use Case Conversations, User Navigation Models, CRC cards, object behavior stereotypes, control style analysis, behavior refactoring worksheets, hot spot cards, and flexibility design. These techniques can be successfully applied to augment your analysis and design toolkit, regardless of methodology.

This tutorial will be conducted as hands-on workshop where we review guidelines and examples to illustrate key techniques, and use the techniques and develop their artifacts.

Background: Participants should be familiar with object analysis and design concepts and be looking for informal, proven practical analysis and design techniques and aids.

Rebecca Wirfs-Brock is Chief Methodologist and Director of the Object Development Center of Excellence at ParcPlace-Digitalk. Rebecca is responsible for defining and shaping the design and development practices and methods for ParcPlace-Digitalk consultants and their clients. In her work she teaches and actually develops systems using Responsibility-Driven Development techniques. She is a recognized author, teacher and speaker on object design and co-inventor of the Responsibility-Driven design method. Rebecca was the lead author of "Designing Object-Oriented Software", Prentice-Hall, 1990. She served as conference chair of OOPSLA '95 and has been a member of several OOPSLA committees. Currently, she is collaborating with Alan on an object design book that focuses on practical techniques and guidelines.

Alan McKean is Object Methodologist at ParcPlace-Digitalk. He is responsible for developing analysis and design methods and documenting development best practices for ParcPlace-Digitalk consulting services and its clients. An experienced speaker and software developer, he has developed core curricula in object-oriented design, programming, and distributed object systems. Alan has presented tutorials with Rebecca Wirfs-Brock for the past two years and he is currently collaborating on an object design book.

Other analysis and design techniques are discussed in the following tutorials:

 

(17) Designing with Patterns
Cobb Galleria Centre, Williams Ballroom, Section E

John Vlissides, IBM T.J. Watson Research Center

Design patterns are making the transition from curiosity to familiarity. Now that many people know what they are, they want to know how best to apply them. This tutorial shows how to leverage patterns in the software design process. It reveals the thinking behind pattern application, including when not to use a seemingly applicable pattern. It shows how the right patterns can improve a design and how the wrong patterns can degrade one. Students thus learn to apply design patterns to maximum benefit.

This tutorial is designed for software developers, including architects and programmers. Participants will acquire experience using design patterns to solve real problems. This experience will enhance participants' design abilities by teaching them how to apply design patterns to their own object-oriented systems.

Background: Attendees should be well-grounded in object technology and should be familiar with the design patterns in "Design Patterns: Elements of Reusable Object-Oriented Software", by Gamma, et al.

John Vlissides is a member of the research staff at the IBM T .J. Watson Research Center in Hawthorne, NY. He has practiced object-oriented technology for over a decade as a designer, implementer, researcher, lecturer, and consultant. John is co-author of "Design Patterns: Elements of Reusable Object-Oriented Software", and he writes the "Pattern Hatching" column for the "C++ Report". John has a Ph.D. in Electrical Engineering from Stanford University.

The following tutorial is an appropriate introduction:

Other related pattern tutorials are:

 

(18) Crossing the Chasm from Objects to Relational Databases
Cobb Galleria Centre, Williams Ballroom, Section D

Kyle Brown, Knowledge Systems Corporation and Bruce Whitenack, The Object People

This tutorial is intended to help the audience understand the issues involved in the design of an object-oriented application that uses a relational database for persistent storage. This tutorial presents concrete principles that can be used to generate a database access architecture as well as to help validate currently existing software architectures, frameworks and tools. It discusses implementations of design solutions in both Smalltalk and Java.

The tutorial comes in four parts. The first section addresses architectural problems faced in building client-server solutions with Objects and Relational databases. The second section deals with understanding the connection between a relational schema and an object model. The third section shows proven techniques for implementing the behavior necessary to retrieve objects from and save objects to tables. The final section provides solutions to common problems found in the client/server environment that must be addressed by a robust framework.

Background: Participants should have a basic knowledge of object concepts (encapsulation, inheritance, etc.) and relational database concepts (tables, rows SQL syntax). A reading knowledge of Smalltalk and/or Java is useful but not required. The intended audience is architects, analysts and programmers who are either evaluating off-the-shelf persistence solutions, or developing their own solutions for object persistence using relational databases.

Kyle Brown is a senior member of Technical Staff at Knowledge Systems Corporation (KSC). He has been involved in developing medium and large-scale solutions using Smalltalk and Relational databases for over eight years. He is the author of many articles in The Smalltalk Report and Object Magazine, and a co-author of the upcoming book by Addison-Wesley, "The Design Patterns Smalltalk Companion". He has presented tutorials and talks on patterns and databases at OOPSLA '96, Smalltalk Solutions, and Object Expo.

Bruce Whitenack has been designing, building and consulting on the development of object-oriented frameworks and applications for the past eight years with IBM, KSC and currently, The Object People. In addition to being a co-author of "Crossing Chasms", he is the author of "RAPPeL, a Requirements Analysis Pattern Language", published in "Pattern Languages of Program Design" (Addison-Wesley, 1995). He has presented this tutorial at Smalltalk Solutions and is the course developer for TOPLink, a database framework widely used in Smalltalk applications.

The following tutorial is a good introduction:

 

(19) Design Patterns for Concurrent Programming in Java
Cobb Galleria Centre, Williams Ballroom, Section B

Doug Lea, State University of New York and David Holmes, Macquarie University

The concurrency features of Java introduce opportunities and problems not found in sequential OO programming. Concurrent OO Design Patterns provide ways to exploit the opportunities and solve the problems, mainly by reusing constructions and techniques that others have found to be useful solutions to common concurrent OO design problems. This tutorial presents a set of design patterns for structuring Java classes, packages and applications for use in concurrent settings.

Background: This tutorial targets anyone involved, or planning to get involved, in the development of concurrent Java applications or applets. This tutorial will give people a detailed working knowledge of design strategies for managing concurrency in their applications. It is assumed that attendees are familiar with Java concurrency features. If you are familiar with Java, but not with its concurrency features, consider attending Tutorial 6 first.

Doug Lea is a professor of Computer Science at the State University of New York at Oswego, and a director of the Software Engineering Laboratory at the New York CASE Center. He is author of the book "Concurrent Programming in Java", and co-author of the book "Object-Oriented System Development". He is the author of several widely used software packages, as well as articles and reports on object oriented software development.

David Holmes is a Ph.D. student with the Microsoft Research Institute at Macquarie University, Sydney, researching concurrent object-oriented programming in practical contexts. He has a degree in Computer Systems Engineering and practical experience with concurrent programming through work on operating systems, distributed systems and real-time embedded systems, within a university environment. He presented a tutorial on "Concurrency in Java" at the TOOLS Pacific '96 conference.

The following tutorial is an appropriate introduction to this topic:

Other related pattern tutorials are:

 

(20) Analysis Patterns
Cobb Galleria Centre, Room 103

Martin Fowler, Independent Consultant

Over the last few years, Software Patterns have become one of the most important areas for software development. Instead of describing abstract techniques to build software, they highlight useful examples which can be adapted and used again by developers.

Although most known for object-oriented design, patterns are also a valuable technique for analysis. This tutorial looks at a selection of the patterns Martin Fowler has collected and published in his book "Analysis Patterns: Reusable Object Models". The tutorial focuses on two areas: it first outlines patterns first discovered in health care which were then used for corporate financial analysis - a prime example of how pattern reuse can cross traditional vertical domains. It then moves to accounting, showing how a financial system can be built as a network of accounts and posting rules which contain the rules for transferring the amounts between the accounts.

Background: Attendees should have a working knowledge of object-oriented concepts and at least one object-oriented analysis and design method.

Martin Fowler is an independent consultant who has pioneered the use of Object Oriented analysis and design for business information systems. These include health care for the UK National Health Service, derivatives trading for Citibank, and payroll for Chrysler. He is also a leader in developing analysis patterns and is the author of the books "Analysis Patterns: Reusable Object Models" and "UML Distilled".

Other analysis and modeling tutorials are:

 

(21) Smalltalk Toolsmithing: Strategies and Tactics
Cobb Galleria Centre, Room 104

Jan Steinman and Barbara Yates, Bytesmiths

An advantage that Smalltalk continues to hold over popular new arrivals is the ease with which the tools and environment can be modified and extended to suit an organization's specific needs. However, when done without discipline, this can result in a mass of undocumented, difficult-to-maintain code that causes grief with each vendor release.

In this tutorial, we'll describe a workable Smalltalk tool strategy and process, illustrate do's and don'ts using actual case studies, conduct a workshop session for you to develop these techniques, and present some practical examples, including source code.

Background: This tutorial is intended for line managers and technical leaders tasked with improving their Smalltalk organization's productivity, although anyone with a desire to build Smalltalk tools can benefit. Strong knowledge of Smalltalk is important to get the most from this tutorial, although those with less knowledge can benefit from the toolsmithing strategy section, case studies, and exercises. Although the principles covered are applicable to any Smalltalk dialect, specific examples are provided for VisualWorks and ENVY/Developer.

Jan Steinman and Barbara Yates have been developing Smalltalk team development tools for over 24 years, first at Tektronix, then for their international clientele of consulting and tools customers. They have presented tutorials and led workshops at four prior OOPSLA conferences, as well as other international conferences. They co-author the popular "Managing Objects" column in The Smalltalk Report, where they discuss technical and management aspects that are unique to Smalltalk project teams.

Other Smalltalk related tutorials are:

 

(22) Team Fusion - Systematic Software Development Using UML
Cobb Galleria Centre, Room 105

Derek Coleman, King's College and Matt Johnson, Hewlett-Packard Laboratories

Team Fusion is a new and extended version of the highly successful Fusion method. The method, which uses UML, incorporates the experience of using Fusion and other OOA/D methods in Hewlett-Packard and in other corporations. The key advance is that Team Fusion is architecture centric and recognizes that industrial software development is a team effort. Thus Team Fusion provides a systematic process for using UML during analysis, design and architectural development, can be customized to fit local contexts, incorporates the evolutionary approach to software development, and is scaleable according to project size.

This tutorial focuses on the non-management aspects of Team Fusion, which are developed through the solution to a problem. A short exercise provides an opportunity for each participant to try out some of the method steps. The tutorial also reviews strengths and weaknesses and explains how the method can be used on real-life projects.

Background: The tutorial is aimed at software engineers, project managers and software process engineers. Participants should have some knowledge of object-oriented concepts, software engineering, and preferably the basic concepts of an object-oriented method. Familiarity with UML would be useful but is not essential.

Derek Coleman is a co-author of "Team Fusion: Object-Oriented Development using UML", and two previous books on Fusion. He is currently Professor and Head of Department of Computer Science at King's College, London. Prior to this Derek was a manager at HP Laboratories in Palo Alto and Bristol (England) where he led the development of he original Fusion method. He has authored many papers on software engineering and object technology.

Matt Johnson is a co-author of "Team Fusion: Object-Oriented Development using UML". He is a researcher in the Integrated Solutions Laboratory of Hewlett-Packard Laboratories, Palo Alto. Previously, he was responsible for the architectural development of object-oriented instrument platforms within HP and has developed extensions to OMT to facilitate systems architecting.

Other specific methods tutorials are:

 

(23) The Goals, Activities, and Organizations of an Object Technology Center
Cobb Galleria Centre, Room 106

Timothy D. Korson, Software Architects, Southern Adventist University and Comsoft

To facilitate the adoption of object technology, a number of organizations have set up a corporate Object Technology Center (OTC). This tutorial describes the role of an Object Technology Center within a corporation, and how and why many organizations are establishing one. The focus is on how to set up an OTC.

Using concrete "real world" examples, the tutorial explores strategies for obtaining funding for an OTC, and how an OTC can be used to effectively provide the corporate infrastructure necessary to succeed with object technology. Several different models of a successful OTC are presented and the activities of an OTC are explored and correlated with the goals and organizational structure of various types of OTCs.

Background: This tutorial is intended for executives, managers, analysts, and technical leads planning to adopt object technology.

Timothy Korson is a senior partner in Software Architects and director of the Consortium for the Management of Emerging Software Technologies (Comsoft). He is active in organizing, speaking and writing for international conferences, journals and books. Dr. Korson is co-author of "Object Technology Centers of Excellence", and author of the forthcoming book, "Managing Object Technology". His consulting activities focus on managing corporate transitions to object-oriented technology.

Other management tutorials are:

 

(24) Lo-Fi Design Strategies for Creating Highly Usable Object-Oriented User Interfaces
Cobb Galleria Centre, Rooms 113-114

Luke Hohmann, SmartPatents, Inc.

Even if a software development project creates extensive and complete object-oriented analysis and design models, it will still be perceived as a failure if the user interface is poorly constructed. To be perceived as truly successful, the system must meet the needs of the user. This is best done by designing a user interface that is effective, appealing, intuitive, and easy to learn. In other words, you must create a highly usable object-oriented user interface.

Participants of this tutorial will learn how to design highly usable object-oriented user interfaces using the latest in lo-fi prototyping techniques by creating such designs in small groups. Upon completion of this tutorial participants will be able to: define usability and its relation to object technology; define the role of lo-fi and hi-fi prototyping; design and test lo-fi prototypes according to timeless principles of usability; and implement lo-fi prototypes in a manner that is consistent with the underlying domain model.

Background: Participants should have a basic knowledge of object-oriented analysis and design, use cases, and scenarios; and be involved in the design and implementation of a project utilizing a graphical user interface. Knowledge of a specific object-oriented programming language is not required.

Luke Hohmann is Vice President, Engineering at SmartPatents, Inc., the leading provider of analytical software tools for intellectual property management. Mr. Hohmann has extensive experience in object-oriented analysis and design, software engineering, user interface design, and project management. Author of "Journey of the Software Professional: A Sociology of Software Development" (Prentice Hall) he especially enjoys his mission of consulting, writing, and speaking about the sociology of software development. Mr. Hohmann has a B.S.E. in Computer Engineering and an M.S.E. in Computer Science and Engineering from the University of Michigan.

The following tutorials could provide the analysis and design background:

 

(25) Distributed Object Computing
Cobb Galleria Centre, Williams Ballroom, Section A

Michael Stal, Siemens AG

The tutorial consists of five parts. In the first part, the major concepts behind Distributed Object Computing will be illustrated using Design Patterns. The second part will focus on Microsoft's (D)COM technology. The third part will introduce OMG CORBA and related technologies such as CILabs OpenDoc. The basic concepts of Java RMI (Remote Method Invocation) will be presented in the fourth part. Finally, analysis of the differences between all those technologies will be discussed with a focus on how to build bridges between them. Small programming examples will be used to illustrate the usage of the different distribution technologies.

Background: Participants should have a general familiarity with object-oriented concepts and object-oriented programming languages, especially C++ or Java. Basic knowledge in distribution technologies is required.

Michael Stal is responsible for the research project Distributed Object Computing at Siemens AG. His main research areas are Object-Orientation, Distribution, Design Patterns, and Java. He is co-author of the book "Pattern-Oriented Software Architecture - A System of Patterns", Wiley & Sons, 1996. He is also editor of Java Spektrum, a German SIGS magazine on Java. Michael is member of the Object Management Group. He has given talks and tutorials at TOOLS '94; OOP '95,'96, and '97; CUC '96; OOPSLA '96; and Object Expo London '95, New York '96.

The following are introductory tutorials on distributed computing:

 

(26) Working With Objects--Designing Distributed Systems for Reuse
Cobb Galleria Centre,Rooms 117-118

Odd Arild Lehne, Taskon and Trygve Reenskaug, University of Oslo and Taskon

Practical object systems are often very complex. We show you how to use the OOram methods to divide and conquer by separating out different areas of concern by identifying use cases and system activities. Each area of concern is described by a role model that shows the static and dynamic properties of a pattern of interacting objects.

We also show how you can synthesize composite models by specifying how objects are to play several roles from different role models. This provides a key to systematic reuse through the inheritance of whole patterns of interacting objects.

We finally show how the basic technology permits you to create large systems in small projects by a policy of systematic reuse of proven models and programs (frameworks).

Background: The tutorial is aimed at senior technical staff, analysts and software development engineers. Participants should be conversant with the object paradigm and have some experience with object oriented programming. The tutorial does not assume prior knowledge of any analysis and design method, but it will be of particular interest to people who are searching for a method that supports large scale development and that encourages the creation and application of object patterns to the systematic reuse of proven components.

Trygve Reenskaug has 35 years experience in developing industrial-strength software products combined with software engineering research. He has extensive teaching experience including several OOPSLA tutorials. He is co-founder of Taskon and is its vice president for research. He is professor of informatics at the University of Oslo. His firsts include structured programming and database-oriented architectures in the early sixties; object-oriented applications and personal computer systems in the early seventies; and experimental Model-View-Controller -- the world's first reusable object-oriented framework -- while visiting scientist at Xerox Palo Alto Research Center in 1979. He is currently heavily involved in the efforts of the Object Management Group for standardizing a metamodel for object analysis and design, in methods for the design of corporate intranet solutions, and in the development of a system-oriented programming environment for Smalltalk and Java.

Odd Arild Lehne has 15 years experience in the object-oriented paradigm. He has teaching experience from several courses in the OOram method, including teaching the OOram method at different education institutes and at OOPSLA . He is co-founder of Taskon, and vice president for consultancy services. The last seven years he has been working as a consultant in the object-oriented area. He has experience from several industrial development projects using object-orientation as a framework in the areas: CAE - applications, Workflow Management and MIS. In addition he has participated in a number of European software development projects (ESPRIT / EUREKA) using object-orientation.

Other tutorials focused on methods are:

 

(27) LearningWorks: A System for Teaching About Building Systems or Learning in a Social Virtual Reality
Waverly Hotel, Ascot

Adele Goldberg, David Leibs, Neometron, Inc.

It's time to stop talking about programming languages and start talking about how students can learn to work together to build systems. But not just any old systems, bu also systems for the future. Ones that exist in the distributed, virtual world of the Internet.

LearningWorks started out as a simple experiment in creating an environment in which authors could deliver curriculum that incorporates programming construction problems. There were many interesting problems to solve: how to give authors and students the ability to access and create curriculum while practicing good software engineering; how to give authors control of the visibility of the parts of a sophisticated library of reusable objects; and how to create instructional microworlds with an appropriately- designed "creature" construction world. Solutions to these problems will be presented in the initial part of this tutorial.

LearningWorks evolved into a real adventure when we decided to teach in virtual reality. We teamed up with Mitsubishi ITA to create a network version of LearningWorks. In the final part of the tutorial, we will describe and demonstrate how you can give your colleagues and students experience in working together to build a sophisticated system on the Internet.

Background: Attendees should have a basic understanding of object technology and its applicability, but we will not assume that they understand that objects are really about supporting good system building. We expect attendees to have programming skills and that they are excited about opportunities for education on the network.

Dr. Adele Goldberg served as the Chairman of the Board and a founder of ParcPlace-Digitalk, Inc. until April 1996. Prior to the creation of ParcPlace, Adele received a Ph.D. in Information Science from the University of Chicago and spent 14 years as researcher and laboratory manager of Xerox Palo Alto Research Center. From 1984-1986, Adele served as president of the ACM. Solely and with others, Adele wrote the definitive books on the Smalltalk-80 system and has authored numerous papers on project management and analysis methodology using object- oriented technology. Dr. Goldberg edited the book "The History of Personal Workstations", published jointly by the ACM and Addison-Wesley in 1988 as part of the ACM Press Book Series of the History of Computing which she organized, and co-edited "Visual Object-Oriented Programming" with Margaret Bunnett and Ted Lewis. Her book with Kenneth S. Rubin on software engineering, entitled "Succeeding With Objects: Decision Frameworks for Project Management", appeared in 1995. She is the designer and instigator behind the LearningWorks freeware.

Adele was recipient of the ACM Systems Software Award in 1987 along with Dan Ingalls and Alan Kay, PC Magazine's 1990 Lifetime Achievement Award for her significant contributions to the personal computer industry, is a Fellow of the ACM, and was honored in 1995 with the Reed College Howard Vollum Award for contributions to science and technology.

David Leibs has 20 years experience in creating innovative application development environments. Prior to founding Neometron, David was Director of Technical Research at ParcPlace-Digitalk, where he was a chief architect, systems designer and implementor. To his personal credit is the invention and implementation of the direct manipulation, graphical construction interface known as VisualWorks 1.0 (ParcPlace Systems' most successful product). The architecture that he invented recently enabled ParcPlace to bring the new Internet-based VisualWave product from inception to delivery in only five months. The product allows applications developed with VisualWorks to automatically be published on the World Wide Web.

Another educator tutorial is:

 

(28) Real-Time Object-Oriented Modeling
Waverly Hotel, Galleria

Bran Selic, ObjecTime Limited

The complexity of real-time software is simply a reflection of the inherent complexity of the real world in which it operates. Issues such as timeliness, concurrency, and the unpredictable nature of physical phenomena are all fundamental problems that must be addressed by the majority of real-time systems. Such issues cannot always be handled adequately by general-purpose development methods and special techniques are required.

Real-Time Object-Oriented Modeling (ROOM) is an object-oriented modeling language and a development method designed specifically for real-time software. One of the key features of the language is its ability to model the architectural aspects of software since a good architecture is key to a system's reliability and evolvability. ROOM is also distinguished by its suitability for automation allowing the construction of executable models and full automatic code generation. It has been used successfully on hundreds of diverse industrial real-time projects. Finally, ROOM is being used as a base for an upcoming real-time extension to the new Unified Modeling Language (UML).

Background: Basic familiarity with real-time software and concurrent programming is assumed. Some prior exposure to the basic concepts of the object paradigm is useful.

Bran Selic is the Vice President of Advanced Technology at ObjecTime Limited, a company that develops and markets the ObjecTime toolset that supports the ROOM method. He has close to 25 years of experience with real-time software, both as a developer and a manager. This includes a variety of application domains including telecommunications, aerospace, and robotics. He has also been involved with object-oriented design and programming for over a decade. Mr. Selic was a member of the OOPSLA'96 Program Committee and is also a long-standing member of the program committee for the TOOLS conferences. He is the principal author of the book, "Real-Time Object-Oriented Modeling", co-authored with Garth Gullekson and Paul Ward.

Other tutorials focused on methods are:

 

(29) Design Patterns--Essentials, Experience, Java Case Study
Waverly Hotel, Wilton

Wolfgang Pree, University of Constance, Germany and Hermann Sikora, RACON Linz Software, Inc.

Design patterns support the development and reuse of extensible OO software components. They represent a complimentary enhancement of existing OO analysis and design (OOAD) methods. The tutorial will start with an experience report on the benefits and costs of applying design patterns. The essential concepts of design patterns will be discussed in detail, focusing on those that support the development of frameworks. The tutorial will also introduce "hot spot cards," a proven useful communications vehicle between domain experts and software engineers that leverage the potential of design patterns. In the early development phases, hot spot cards capture those system aspects that need to be flexible. Hot spot cards form a valuable means to find domain-specific patterns. A detailed case study in Java will illustrate how to apply hot spot cards together with design patterns.

Background: Familiarity with basic concepts of the object-oriented programming paradigm. Practical experience with object-oriented design is helpful.

Wolfgang Pree is Professor of Applied Computer Science at the University of Constance, Germany. Consulting and teaching in the realm of object-oriented software design and development was done for numerous companies in Europe and the U.S. He is the author of "Design Patterns for Object-Oriented Software Development" (Addison-Wesley/ACM-Press, 1995) and of "Framework Patterns" (SIGS Books, 1996).

Hermann Sikora is a managing director of RACON Linz Software, Inc., a company owned by and producing software for the largest private bank consortium in Austria, ranging from classic host-based systems to state-of-the-art client/server solutions. One of the most ambitious projects focuses on the design and development of a bank domain-specific framework. Sikora holds a Ph.D. in computer science and a degree in management information systems.

Other related pattern tutorials are:

 

 

 

[ OOPSLA '97 Home Page | SIGPLAN | ACM ]