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

Tutorials: Monday Morning

 

(31) COM/CORBA Interworking
Cobb Galleria Centre, Williams Ballroom, Section A

Keith Moore, Hewlett-Packard Laboratories

While the popular press may enjoy writing about the "Objects War", system integrators are faced with the issue of how to build systems out of these disparate components (particularly in systems that span heterogeneous platforms). This tutorial focuses on the interworking between two distributed object models: OMG CORBA and Microsoft COM/ActiveX.

The tutorial is composed of four parts. The first part describes the CORBA object model and draws examples from Telecom, Medical, and Manufacturing domains to highlight features. The second part describes Microsoft COM, MIDL, [dual] interfaces, and OLE Automation. The third part describes the mapping between these two environments and describes the CORBA view of COM objects and the COM view of CORBA objects. The final section describes the performance implications of various COM/CORBA bridging technologies.

Background: This tutorial is targeted to systems integrators who are building applications that must integrate the desktop with scalable enterprise services. Familiarity with object oriented concepts is assumed. Familiarity with a distributed communication model (e.g., Remote Procedure Calls, OMG CORBA, Java RMI, or OLE/ActiveX) will be helpful, but not required. The tutorial is focused on helping those individuals who must make technology decisions now, yet recognize that they cannot bet on a single technology and need to understand how technologies will interoperate.

Keith Moore is a department scientist at Hewlett-Packard Laboratories. He is co-author of the 1996 OMG COM/CORBA interworking specification and author of HP's 1997 response to COM/CORBA interworking using Microsoft DCOM. During his eleven years with HP, his work has focused on communication technology for bridging computers, instruments, and peripherals in heterogeneous environments. He has written C++ and Java-based ORBs and is co-architect of the integration framework that supports HP ORB Plus (a CORBA 2.0 compliant ORB).

Keith received a BS degree in electrical engineering from Tufts University in 1985 and an MS degree in computer science from Stanford University in 1991. His primary research interests are in designing systems for evolution, and in particular, the support for real-time constraints in distributed and parallel systems.

Other related tutorials are:

 

(32) Patterns at Work
Cobb Galleria Centre, Williams Ballroom, Section B

Frank Buschmann, Siemens AG

In this tutorial we present in detail a portion of a concrete real-world system and how it is designed with patterns. Step by step we will re-play the process of its construction. We discuss the design problems that occur, present the patterns that could help solving these problems, discuss design alternatives and show how we actually applied the patterns we selected. Through this process of piecemeal growth we illustrate the evolution of the system towards its final architecture. From the specifics of the case study we will derive general guidelines for applying patterns and discuss how patterns can help in building high-quality software with predictable properties. The tutorial concludes with a summary of our experiences from several projects in which we applied patterns: what worked, what could be improved, and what we learned.

Background: Sound knowledge in Object Technology, knowledge of OMT Notation, knowledge of the pattern concept.

Frank Buschmann is software engineer at Siemens Corporate Technology in Munich, Germany. His research interests include Object Technology, Application Frameworks and specifically Patterns. Frank has been involved in several concrete industrial software development projects. At Siemens Corporate Technology, he is responsible for the research activities in Software Architecture. Results of his activities were presented at various conferences on Object Technology, such as OOPSLA, ECOOP, TOOLS and diverse SIGS conferences. Frank is co-author of the recently published book "Pattern-Oriented Software Architecture -- A System of Patterns" (Wiley and Sons, 1996). Frank has given many tutorials on patterns, as well as tutorials on other OO topics, including Reuse, Reflection, C++, and OT-Foundations.

In addition, Frank has moderated several panels on patterns, participated in such panels, organized workshops on patterns (ECOOP '94/'95), organized the EuroPLoP '96/'97 conferences (conference chair), and is member of the ECOOP '97 program committee.

Other pattern related tutorials are:

 

(33) From C++ to Advanced Java in One Day
Cobb Galleria Centre, Williams Ballroom, Section C

Desmond D'Souza, Icon Computing, Inc.

This tutorial will enable developers to make an effective transition from C++ to Java, within the framework of a solid object-oriented design paradigm. Covering key differences between the languages as well as between corresponding design approaches, it will illustrate these differences with a series of examples. Discussions and complete case study may be browsed at http://www.iconcomp.com.

The tutorial objectives are (1) Understand language differences between Java and C++, (2) Understand differences in design approaches in Java and C++, (3) Learn Java as a language for very effectively building object systems, and (4) Get an overview of Java libraries, current and future.

Background: Attendees must be familiar with C++ and object technology.

Desmond D'Souza is the President and CTO of ICON Computing, Inc. and a member of the faculty at the Software Quality Institute at the University of Texas at Austin. Mr. D'Souza publishes and speaks regularly at various object forums, and has used object technology since 1985. He is an author of the Catalysis method, writes the Modeling for Java column in the Journal of Object-Oriented Programming and in Report on Object Analysis and Design. He may be contacted at dsouza@iconcomp.com.

Other Java and C++ tutorials are:

 

(34) Using Design Patterns and Frameworks to Develop Object-Oriented Communication Systems
Cobb Galleria Centre, Williams Ballroom, Section D

Douglas C. Schmidt, Washington University

Developing extensible communication software that effectively utilizes concurrency over high-speed, low-speed, and mobile networks is a complex task. This tutorial describes how to apply object-oriented (OO) design patterns and frameworks to alleviate the complexity of developing concurrent and distributed communication software. These patterns and framework components have been used successfully by the speaker on production communication software projects at Ericsson, Motorola, Siemens, Kodak, and McDonnell Douglas for telecommunication switch management applications, network management for large-scale global personal communication systems, electronic medical imaging systems, and real-time avionics.

The tutorial illustrates by example how to significantly simplify and enhance the development of communication software that effectively utilizes concurrency and distribution via the use of: (1) Object-oriented design techniques -- such as design patterns, layered modularity, and information hiding, (2) Object-oriented language features -- such as abstract classes, inheritance, dynamic binding, and parameterized types, (3) Tools -- such as object-oriented communication frameworks (like ACE) and object request brokers (ORBs) like OMG CORBA, Microsoft DCOM, and (4) Advanced operating system mechanisms -- such as event demultiplexing, multi-threading, multi-processing, and explicit dynamic linking.

The tutorial examines patterns and framework code abstracted from production telecommunication, avionics, and medical systems to illustrate key points in the examples.

Background: The tutorial is intended for software developers who are familiar with general object-oriented design and programming techniques (such as design patterns, modularity, and information hiding), fundamental OO programming language features (such as classes, inheritance, dynamic binding, and parameterized types), basic systems programming concepts (such as process/thread management, synchronization, and interprocess communication), and networking terminology (such as client/server architectures and TCP/IP).

Dr. Schmidt is an Assistant Professor of Department of Computer Science and Radiology at Washington University in St. Louis, Missouri, USA. His research focuses on design patterns, implementation, and experimental analysis of object-oriented techniques that facilitate the development of high-performance, real-time distributed object computing systems on parallel processing platforms running over high-speed ATM networks. Dr. Schmidt is an internationally recognized expert on distributed object computing. He has published widely in top IEEE, ACM, IFIP, and USENIX technical conferences and journals on topics ranging from high-performance communication software systems and parallel processing for high-speed networking protocols to real-time distributed object computing with CORBA and object-oriented design patterns.

In addition to his academic research, Dr. Schmidt has over a decade of experience building object-oriented communication systems. He is the chief architect and developer of the ADAPTIVE Communication Environment (ACE), which is a widely used, freely-available object-oriented framework that contains a rich set of components that implement design patterns for high-performance communication systems.

Dr. Schmidt is widely published; he co-edited the first volume of the "Pattern Languages of Program Design" series, served as guest editor for feature topic issues on Distributed Object Computing for the "IEEE Communications Magazine" and the "USENIX Computing Systems Journal", and as co-guest editor for the "Communications of the ACM" special issue on Design Patterns and the special issue on Object-Oriented Frameworks. He has been editor-in-chief of the "C++ Report" magazine, where he co-authors a column on distributed object computing and edits the Patterns++ section, and served as program chair for the 1996 USENIX Conference on Object-Oriented Technologies and Systems (COOTS) and the 1996 Pattern Languages of Programming conference.

Other related tutorials are:

 

(35) The Unified Modeling Language
Cobb Galleria Centre, Williams Ballroom, Section E

Grady Booch, Ivar Jacobson, and Jim Rumbaugh, Rational Software Corp.

The Unified Modeling Language (UML) is a standard language for visualizing, specifying, constructing, and documenting object-oriented systems. Developed by Booch, Jacobson, and Rumbaugh at Rational Software Corporation with contributions from Microsoft, IBM, Oracle, HP, TI, MCI Systemhouse, Icon Computing, Unisys, Intellicorp, i- Logix, Objectime, Platinum, and others, the UML reflects industry best practices in object- oriented modeling. This half-day tutorial provides an overview of the UML together with a number of case studies. This tutorial also introduces the Objectory process, which together with the UML, provides a complete approach for developing object-oriented systems.

Background: Participants should have a basic familiarity with OO concepts.

Grady Booch is Chief Scientist at Rational. He has been with the company since its foundation in 1980. Booch has pioneered the development of OO analysis and design methods. His work centers primarily around complex software systems. Booch is the authors of four books, including "Object-Oriented Analysis and Design", and "Object Solutions: Managing the Object-Oriented Project". He is a member of AAAS, IEEE, and CPSR, and is both an ACM fellow and Rational fellow.

Ivar Jacobson is inventor of the Objectory OO method, and founder of Objectory AB, Sweden. He is currently VP of Business Engineering at Rational. His early object-based design techniques has evolved into the international standard CCITT/SDL. He is the principal author of two influential books "Object-Oriented Software Engineering - a Use Case Driven Approach", and "Business Process Re-engineering with Object Technology". His work on Use-case engineering has influenced almost all of the OO methods in use today.

Dr. James Rumbaugh is a fellow at Rational. He has been active in OO technology for many years and has spoken widely on it around the world. He is principal developer of the OMT methods as well as developer of an OO language and programming productivity tools. He worked for many years at the GE R&D Center, where he developed a wide variety of systems. He is principal author of "Object-Oriented Modeling and Design" as well as a regular columnist with JOOP.

Other related tutorials are:

 

(36) Advanced Object-Oriented Analysis Concepts
Cobb Galleria Centre, Room 102

James J. Odell, Quoin, Inc.

With so many OO analysis and design approaches, it is difficult to choose any particular approach. Furthermore, each approach has useful diagrammatic elements that other do not. However, upon closer examination, most approaches are fundamentally the same. This tutorial begins by examining and formalizing the fundamental notions common to all OO approaches. With such a formal foundation in place, then, useful ways of extending this foundation are discussed at length--including the new OMG/UML standard for OO A&D.

The primary goals of this tutorial are: to simplify the "jungle" of OO approaches by a basic foundation that applies to them all, to formalize this foundation, to facilitate the application of mathematics to OO, such as relational and functional algebras, set theory, and predicate logic, to communicate the importance of know the difference between semantics and syntax, to demonstrate ways that this foundation can be used and extended -- both now and in the future, to show how such foundations and their extensions will be vital in developing and using software products

Background: While this tutorial proceeds from first principles, it goes into depth at a fast pace. The audience should be experienced in using one or more OO analysis and design modeling techniques. The attendees that benefit the most are well-seasoned system modelers and meta-modelers with a background in mathematics.

James Odell is an IT consultant and practitioner specializing in the object-oriented approach. Throughout most of his 25 year career, he has been heavily involved in developing better methods to manage, understand, and express system requirements. He was one of the early innovators of data and process modeling, and information engineering methodologies. Now, he is one of the first practical implementors of object-oriented modeling and implementation -­ consulting to major companies worldwide. He is a very experienced and highly-regarded educator and speaker. James Odell is the author of three books on OO and has also written numerous papers and articles on the subject. He is also the co-chair of the OMG's OO A&D Taskforce.

One of the following method tutorials could provide the necessary background:

 

(37) How to Build Better Object Models
Cobb Galleria Centre, Room 103

Peter Coad, Object International, Inc.

This tutorial delivers practical insights into object-oriented development, with hands-on examples in building object models. Participants get specific strategies and patterns for building object models (applicable with whatever notation one prefers, including UML, OMT, Coad). These strategies and patterns are nuggets of wisdom, repeatable how-to advice, for building object models. The tutorial includes a hypertext handbook (170+ strategies and 31+ patterns), accelerating the "how to" transition into better object modeling.

Key Topics include: (1) Get Closer to the User with Low-Fidelity Prototyping (hands-on lab), (2) Build an Initial Object Model using Mega-Patterns (hands-on lab), and (3) Work Out Dynamics with Scenarios (hands-on lab).

Background: Some practical experience with OOAD is helpful. Reading familiarity with at least one OOAD method is recommended.

Peter Coad is the innovator behind the leading software development method that bears his name. Coad is perhaps the world's most experienced object- model builder: hundreds of object models to date. He founded Object International in 1986; its mission is "helping teams deliver frequent, tangible, working results." Email: pc@oi.com Web: http://www.oi.com

One of the following method tutorials could provide the necessary background:

 

(38) High Level Design with Use Case Maps
Cobb Galleria Centre, Room 104

R. J. A. Buhr, Carleton University

Use Case Maps (UCMs) provide a notation to help humans visualize the relationship between components and behavior of systems. UCMs are applicable to a large class of object-oriented, real time, and distributed systems for which behavior patterns are visualized in terms of causal paths. For such systems, UCMs offer, not a replacement for your favorite OOD technique, but a helpful supplement to it, in the gray area between use cases and the details of conventional design solutions.

UCMs are currently finding application in industry for network computing communications, and banking, to name but a few. They are being used for high level design and design reviews during forward engineering, and for system understanding.

Background: This tutorial explains the UCM notation and approach, gives some examples of its direct application to distributed systems, and illustrates its relationship to conventional OOD techniques using an example drawn from a well known communications framework called ACE.

This tutorial is intended for those who, in working with large or complex systems, have hit (or can foresee hitting) a complexity brick wall in bridging the gap between prose use cases and design solutions expressed with conventional OOD techniques. Attendees should have knowledge of at least one conventional OO language and OOD technique, an understanding of use cases, and some familiarity with "system" issues, such as decentralized control, distributed operation, concurrency, self-modification of system structure, continuous operation in the presence of failures, and performance problems that arise in the presence of unpredictable loads.

Ray Buhr is a Professor of Systems and Computer Engineering at Carleton University in Ottawa. He holds a Ph.D. in Control Engineering from Cambridge University in addition to Bachelor and Master degrees in Engineering from Queen's University and the University of Saskatchewan. His current research interests include use case maps and their application in new areas (such as agent systems), visualization of complex software, software architecture, and formal methods underlying design techniques. He is currently collaborating with Nortel and Mitel on applications of use case maps. He has published a number of papers and four textbooks on design, the most recent of which is the basis for this tutorial ("Use Case Maps for Object-Oriented Systems").

Other related tutorials are:

 

(39) Efficient Smalltalk Programming
Cobb Galleria Centre, Room 105

Ken Auer, RoleModel Software

Smalltalk has been given a bad rap as a slow memory hog. But the reality is that there are many features of Smalltalk that can actually contribute to good performance and efficient use of memory. Smalltalk is like a power tool. And just as a power tool can create a lot of damage if used carelessly, Smalltalk can eat up CPU cycles and memory when used without the proper perspective and training. This tutorial will provide that perspective and training. The tutorial starts by illustrating the key contributors to the improper perspective and, with simple case studies, backs up the presenter's claims that Smalltalk can be made extremely efficient. It then presents a framework for identifying and fixing problems in Smalltalk programs, and discusses in detail with examples, techniques for solving individual classes of problems.

Background: Participants should be literate in Smalltalk, preferably with 3+ months hands-on experience.

Ken Auer has been working with object technology since 1985, specializing in Smalltalk. Since that time, Mr. Auer has been the chief architect for a number of successful frameworks and systems ranging from small prototypes, to large distributed, multiple language systems with team sizes ranging from 1 to 150. He has particular expertise in creating efficient, high-quality, reusable components, frameworks, and architectures and is considered a master at maximizing system throughput. Mr. Auer is well-known for his expertise in object technology through many published articles and book contributions (including the "Lazy Optimization: Patterns for Efficient Smalltalk Programming" chapter of "Pattern Languages of Program Design 2", co-authored with Kent Beck) and frequent invitations to participate in industry conferences, panels, and workshops. He founded RoleModel Software in 1997, after almost 9 years as a consultant with Knowledge Systems Corporation. He also serves on the editorial board of "Object Magazine" and is a member of The Hillside Group.

Other Smalltalk tutorials are:

 

(40) Tutorial Withdrawn

 

(41) A Framework for Financial Modeling
Cobb Galleria Centre, Rooms 113-114

Joseph W. Yoder, University of Illinois

This tutorial describes the Financial Modeling Framework, a framework for building financial applications. It is a good example of a black-box framework that provides a domain-specific language and thus avoids most programming in a general purpose language.

The Financial Modeling Framework speeds up the process of building three-tiered client-server applications that examine financial data stored in relational databases. Functions supported by the framework include generating profit and loss statements, balance sheets, detailed analysis of departments, sales regions and business lines, with the ability to drill down to individual transactions. It also allows users to created budgets and to correct errors in the data. The business model, data model, menus, reports and drill-downs are stored in a database. GUIs define these models and reports. The result is a domain-specific object-oriented "Visual Language" for specifying financial models without explicit programming.

The tutorial will examine the architecture of the Financial Modeling Framework and its visual programming environment and how they are used to capture the business logic and develop the GUIs for the finances of any business. The tutorial will also describe the process by which the framework was designed using the GOF design patterns.

Background: Participants should understand what a framework is and should also have a general understanding of the GOF patterns.

Joseph Yoder is a Smalltalk Consultant and is working on his Ph.D. with Professor Ralph Johnson at the University of Illinois Urbana-Champaign. For over two years, the author has been working on applying this framework to develop a fairly large financial modeling project. The system has been built, installed and tested at Caterpillar. Joseph's current focus has been on using patterns and frameworks to develop and implement visual languages for use with business modeling.

The following is a good introduction to this tutorial:

 

(42) Developing Object-Oriented Real-Time Systems with Octopus
Cobb Galleria Centre, Rooms 115-116

Maher Awad, Alcatel Telecom

This tutorial presents the OCTOPUS method which pushed the boundaries of object-oriented methods to provide a systematic and practical approach to object-oriented software development for soft real-time systems.

The OCTOPUS method is based on the popular OMT and Fusion methods and uses the UML notations, but also embodies common practice found in real-time systems. It applies proven object-oriented techniques and enhances them, if necessary, to match the specific needs of real-time systems such as concurrency, synchronization, communication mechanisms, handling of interrupts, hardware interfaces and end-to-end response times.

The OCTOPUS method is driven by the requirements, focuses on software architecture and supports incremental and iterative development. It covers in a well-integrated approach requirements specification, system architecture, subsystem analysis/design, performance analysis and implementation issues specific to real-time systems. Unique features in the method include the flexible OO state modeling approach, the hardware wrapper and the mapping of objects to processes in an optimal way to satisfy the required concurrency and responsiveness (time constraints) on the events in the application domain.

Examples from a real project are presented to demonstrate the method. The tutorial concludes by highlighting the experience with the method and its success in the telecommunication industry.

For more information about OCTOPUS: http://www.prenhall.com/ http://www.nokia.com/company/nrc/octopus.htm

Background: Participants should have a general familiarity with the OO paradigm and real-time systems. Familiarity with an OO programming language will also be useful.

Maher Awad is presently the manager of the software department of the broad band division developing ATM products for the Internet in Alcatel Telecom in Belgium. Previously he worked nine years in Nokia in Finland: four years at Nokia Research Center as the manager of OO technologies for embedded systems area; and five more years in real-time software development and project management at Nokia Telecommunications, Access Systems. With Juha Kuusela and Jurgen Ziegler, he authored a book "Object-Oriented Technology for Real-Time Systems: A Practical Approach Using OMT and Fusion," published by Prentice Hall, 1996. He also authored several papers about OO for RT systems. He has spoken at various international conferences in software and telecommunication engineering such as OOPSLA, ECOOP, OW and CDEC.

Other method tutorials are:

 

(43) Putting Metaclasses to Work
Cobb Galleria Centre, Rooms 117-118

Ira R. Forman, IBM

The purpose of this tutorial is to demystify metaclasses and demonstrate how they can be used to increase productivity and reusability in object-oriented programming. The tutorial starts from first principles to construct an object model that is class-based (every object has a class) with first-class classes (every class is an object).

After the object model is established, we introduce a metaobject protocol for manipulating the model. The metaobject protocol supports a new dimension for inheritance: inheritance of metaclass constraints. Based on this, we describe facilities required for composable metaclasses, that is, how a metaclass imparts to its instances the composite properties of its ancestors. We conclude by demonstrating a number of useful metaclasses that do compose with each other.

Background: The tutorial is intended for working programmers who have an understanding of Object-Oriented Programming. Although the tutorial defines "class", "method", "inheritance", etc., the tutorial is definitely an advanced course and one has to know the basics.

Dr. Ira R. Forman works for IBM in Austin. As a member of IBM's Object Technology Products Group, which has produced the SOMobjects Toolkit, he worked on the SOM Metaclass Framework. He started working in the area of object-oriented programming in 1984, when he worked at ITT where he tested OOPC, the forerunner to Objective-C. Forman received his Ph.D. in Computer Science from the University of Maryland, where he studied under Harlan Mills. Forman's specialties are object-oriented distributed systems and object composition.

Another advance tutorial related to this topic is:

 

(44) Advanced Object Project Management
Waverly Hotel, Galleria

Kenneth S. Rubin, Innolution

Software development projects have to be managed properly to obtain the most benefits from object-oriented technology. To meet and exceed project goals, issues surrounding planning and control, team structure, software development environment, methodology, reuse, quality assurance and measurement must be understood and addressed. This tutorial discusses advanced project management aspects related to these issues. The details of a particular shrink-wrapped, software development project will be used as a case study.

Background: Attendees should be project managers or should have an interest in project management. Experience managing one or more object projects would be helpful.

Kenneth S. Rubin is President of Innolution, a company that provides innovative business solutions in the areas of strategic planning and marketing,and project and transition management. In previous positions, he was Director of New Business Development in the IBM North America Object Technology Practice and Manager of Methodology Development at ParcPlace Systems, Inc., where he led the creation of the Object Behavior Analysis and Design (OBA/D) method and the MethodWorks product. As former manager of ParcPlace Professional Services Department, he directed the company's consulting and training business.

He is the co-author, along with Adele Goldberg, of the book "Succeeding with Objects: Decision Frameworks for Project Management", and the author of over 30 publications on the topics of managing object-oriented projects, object-oriented analysis and design, artificial intelligence and human-computer interaction.

Mr. Rubin is on the Advisory Board of SIGS Publications and the Editorial Board of Distributed Object Computing Magazine. He received his B.Sc. in Computer Science from the Georgia Institute of Technology and his M.Sc. in Computer Science from Stanford University.

Other management tutorials are:

 

 

[ OOPSLA '97 Home Page | SIGPLAN | ACM ]