[an error occurred while processing this directive]

Tutorial Chair: Richard Riehle, AdaWorks




COMPONENTWARE TRACK

COMP1
Monday, August 3
915: A.M.-12:45 P.M.


Adaptable components for reuse without rework
Grady H. Campbell, Prosperity Heights Software, USA

Attempts to follow traditional approaches to reuse founder due to uncertainty, complexity, and excessive effort: deciding whether a component with appropriate capability exists, choosing between several components apparently meant for the same purpose, and safely modifying a chosen component to fit a particular need properly.

An approach based on Adaptable Components addresses the reality that reuse routinely requires tailoring to support specific needs. The most effective time to consider and accommodate alternate uses of a component is during its development rather than at the time of reuse. For an Adaptable Component, the developer instruments its representation and provides an interface with which alternate versions can be derived mechanically from a single source without manual rework.

This tutorial will discuss the concept of Adaptable Components and describe techniques and mechanisms for constructing and using them within an object-oriented development. It will identify benefits and implications of this approach for individual developers, projects, and product line businesses. An included exercise will illustrate how differences in similar class definitions, considering potential uses, can suggest opportunities for reuse, providing the basis for a viable Adaptable Component.

About Grady H. Campbell
Grady Campbell has over 25 years experience in the theory and practice of software engineering. He started Prosperity Heights Software in 1996 to promote adoption and use of the Domain-specific Engineering (DsE) methodology by industry worldwide. DsE refines and extends the Reuse-driven Software Processes (RSP, aka Synthesis) methodology which he designed while working at the Software Productivity Consortium in the early '90s. Based on the concept of product families, RSP has been used successfully to institute and refine product line businesses in companies such as Rockwell and Lockheed-Martin, was a basis for the Boeing/Navy project of the DARPA STARS program, and has been adopted as a corporate standard by Thomson-CSF.



COMP2
Tuesday, August 4
9:15 A.M.-12:45 P.M.


Building component software with COM
Raphael Simon, Interactive Software Engineering, USA

The rapidly growing field of distributed computer systems has a critical need for standards. One of the most important of these standards is Microsoft's Component Object Model (COM). This tutorial will introduce the Component Object Model as a mean to achieve communication between components, describing the goals of COM and its major components including ActiveX, OCX and DCOM. It will particularly analyze the object-oriented nature of COM, focusing on such techniques as inheritance, polymorphism, abstraction, separation between interface and implementation, and comparing the COM techniques to those of object-oriented languages such as Eiffel. Some of the concepts will be illustrated through examples from the EiffelCOM library.

About Raphael Simon
Raphael Simon, a graduate of ENSEIHHT in Toulouse, France, is a software engineer at Interactive Software Engineering, where he has worked on Windows object-oriented development tools, OLE, COM, and the EiffelCOM library.



COMP3
Wednesday, August 5
9:15 A.M.-12:45 P.M.


Software component technologies: JavaBeans and ActiveX
Gilda Pour, San Jose State University, USA

The fast growing demand for rapid development of enterprise software applications has created the need for component-based software development - building new software systems by assembling reusable software components. Component-based software development is the new paradigm in application development, and several component technologies have emerged. The two leading technologies are JavaBeans and ActiveX. JavaBeans is the Java-based component technology from Sun, and ActiveX is the COM-based component technology from Microsoft. This tutorial provides participants with the opportunity to enhance their knowledge of JavaBeans, ActiveX, and in general component-based software development.

This tutorial covers the background information required for understanding the related issues and technologies. Each section is accompanied with examples. Major topics covered in this tutorial are:

About Gilda Pour
Dr. Gilda Pour has over ten years of industrial and R&D experience in object-oriented software development for distributed and parallel processing systems. Her current research projects are focused on component-based software development, and architectural and design patterns for distributed object-oriented software systems and Web-based enterprise applications. While working at R&D Laboratories of Hewlett-Packard Company, she has made significant contributions to the design and development of HP's CORBA-compliant ORB, several large-scale distributed object-oriented software systems, and Internet-based applications. She has also worked on a number of research projects funded by Air Force and industry to study and improve the performance of large-scale object-oriented software systems on different parallel architectures including supercomputers. Dr. Pour is currently a professor of Software & Information Engineering and Computer Engineering at San Jose State University. She has directed several R&D projects--focused on the design and development of Web-based enterprise applications--in the Client/Server Laboratory at San Jose State University. She had previously taught a variety of engineering courses at the University of Florida and Florida State University. She has developed and taught courses in object-oriented software development, distributed object computing and middleware, component-based software development, and software architecture. Dr. Pour has already presented several tutorials/workshops on CORBA, distributed object computing and middleware, design and development of Web-based enterprise applications, component technologies, software engineering and management, and software architecture. She has recently given several seminars on related topics to industry and at the University of California/Berkeley Worldwide Program. She also presented her paper titled "JavaBeans and Java with CORBA Expanding Web-Based Enterprise Applications" at the International Workshop on Advanced Software Engineering for the 21st Century. The paper is to be published in the workshop proceedings. She was also on the panel of "The Internet of Today and Tomorrow". On related R&D topics, Dr. Pour has 12 company internal papers as well as several papers that have been published or to be published in near future.

Gilda Pour holds a doctoral degree in Computer Science from University of Massachusetts, and an Engineer's degree in Computer & Information Sciences and Engineering with emphasis on Software Engineering from University of Florida. Her M.S. is in Electrical Engineering/Systems and her B.S. in Electrical and Computer Engineering are both from Florida State University.



COMP4
Wednesday, August 5
2:30 P.M.-6:00 P.M.


Component-based development concepts, methods and tools
Balbir Barn, Sterling Software, UK

Greater reuse and improved adaptability in the evolution of applications is a high priority for every organization developing or using software. It has resulted in new approaches to software development based on components - reusable software packages offering services through well-defined interfaces.

This tutorial first considers the interest in component-based development (CBD) by reviewing component concepts by presenting a component conceptual model based on a number of component technologies - COM, CORBA and Enterprise JavaBeans. Three basic questions addressing component concepts are answered in this part; What is CBD? What is a component? What are the major challenges to widespread adoption of CBD?

The tutorial then examines the role of CBD methods and tool support play in bringing CBD to the enterprise by overcoming the challenges identified earlier. A CBD process is described together with the tools that support that process. A CBD approach utilizing alternative competing technologies is described as a counterpoint to the Sterling Software Methods and Tools.

The goals of this tutorial are to ensure that attendees will understand the impact of the key component technologies in the context of CBD. They will understand that new processes and techniques are needed to make CBD a reality within their organization.

About Balbir Barn
Balbir Barn is a Senior Technologist in the Application Development Division of Sterling Software in London, UK. His primary responsibility is for the design and specification of new software products supporting component based development. Other tasks include the delivery of CBD courses supporting the tools.Prior to this, he worked extensively on OO methods and object oriented CASE tool development for Texas Instruments Software (Sterling Software purchased Texas Instruments Software in July 1997). Balbir's research interests are component-based development, and software engineering tools and environments. He has published several papers in these areas. Balbir has a B.Sc. in Computer Science and a Ph.D. in Software Engineering from the University of Bath, UK.



COMP5
Thursday, August 6
2:45 P.M.-6:16 P.M.


Enterprise architecture and component development
Alan Perkins, Visible Systems Corporation, USA

This presentation describes the benefits and techniques for using an enterprise information architecture to develop and manage reusable software components.

The benefits of software component development are often quoted as reusability, modularity, avoidance of duplication, reliability, and flexibility for expansion. Yet very few organizations have been successful in managing their development to realize these benefits. While components could and should be reusable, they usually are not. This is primarily because the components are developed independently with little or no regard for enterprise needs or standards.

The presentation will describe a rigorous and repeatable method that allows organizations to realize full potential of component development and further allows technological independence and tightly defined links between logical models, business requirements, and physical component designs.

The presentation will also describe automated tools that support the entire life cycle of component development and provide the means to document and link the various elements of an enterprise information architecture. These tools are the enabling technology that allow data sharing, software component reuse, and rapid change management to be realized.

Attendees will gain an appreciation for the value of using an enterprise information architecture for effective component development. They will also learn processes and critical success factors for successfully developing and managing truly reusable software components.

About Alan Perkins
Mr. Perkins has over thirty years of business and information management experience.  He has been a systems analyst on the White House staff, director of the US Army Data Processing School in Germany, Vice President of Research and Development for a virtual corporation, and General Manager of a high-tech consulting firm.  He has provided information systems and management consulting to companies such as Asea Brown Boveri (ABB) and Blue Cross/Blue Shield, associations such as the Computer-based Patient Records Institute (CPRI), the Applied Physics Laboratory of Johns Hopkins University, and to government agencies including the U.S. Departments of State and Defense.

Mr. Perkins specializes in helping enterprises manage and meet strategic goals through the use of effective, proven management methods like Enterprise Engineering, Business Process Reengineering (BPR), Total Quality Management (TQM), and Information Engineering (IE). He focuses on the use of information technologies such as executive information systems and data warehousing to support enterprise management processes. His approach provides structure, and standards, and results in a knowledge base which facilitates enterprise-wide communication and performance measurement.

Mr. Perkins is the author of "Information Engineering and Total Quality Management" and "Enterprise Quality Benchmarks," which were presented at Institute of Industrial Engineering (IIE) Symposiums on Productivity and Quality Improvement with a Focus on Government.  These papers were published in the proceedings along with his paper on "Business Engineering Systems and Technologies."  He also wrote "Using CASE for Business Re-Engineering," which was presented at several national Oracle User Group conferences and which has been printed several times.  He also wrote articles, including "Quality Information Systems," for Q-Net, an electronic quality network and information source.  Mr. Perkins has written several papers for Visible -- his most recent papers describe the Visible Enterprise Engineering methodology, the Visible approach to developing strategic information warehouses, the real solution to the Year 2000 problem, and how Visible can help government organizations implement the Government Performance and Results Act (GPRA).

In the past few years, Mr. Perkins has been a featured speaker at several conferences, including the 1998 Conference of the Special Interest Group on Computer Personnel Research, the annual Southwest Government Technology Conference, the annual PowerSoft conference and many national conferences sponsored by the International Quality and Productivity Center.  Mr. Perkins also conducts private and public seminars and workshops for Visible.



LANGUAGE TRACK

LANG1
Monday, August 3
3:30 P.M.-5:00 P.M.


Resolutions of an object designer
Todd Lauinger, Cargill, USA

This tutorial will present a number of resolutions that I believe object designers should agree to before designing and implementing code for a system.  I have worked with hundreds of object designers and the thousands of classes that have resulted from those designers. From this experience I have distilled design and coding resolutions and corresponding explanations for these resolutions, in order to better the practice of object-oriented design and implementation.

Examples  of the resolutions follow:

  1. I will look to subclass off of base classes
  2. I will avoid using the new method (without parameters) to create an instance of an object.
  3. I will document a clear public interface
  4. I will look to use polymorphism instead of if and case statements
  5. I will use inheritance for generalization/specialization, not code reuse
About Todd Lauinger
Todd Lauinger is currently employed as an I/T Consultant at Cargill, Incorporated.  He has over 9 years of experience developing large, mission-critical software systems for engineering and business organizations.  Four years of this experience is directly developing object-oriented systems in C++ and Smalltalk languages.



LANG2
Tuesday, August 4
9:15 A.M.-12:45 P.M.


Mastering software patterns in C++
Tim DeBruine, SmartPatents, USA

Software developers around the world are discovering the power of design patterns. They are also learning that correctly applying patterns is often harder than they first expect. In this tutorial participants will learn how to effectively recognize and apply patterns throughout the development process by working through several problems in a hands-on, interactive format.

About Tim DeBruine
Tim DeBruine works as a Senior Software Engineer at SmartPatents, Inc., the world's leading provider of analytical software tools for intellectual property management. Tim has spent several years applying object-oriented techniques in a wide variety of domains, including embedded systems, Web-based applications, client/server applications, electronic commerce, and real-time graphics. Mr. DeBruine is currently working on the book "Pattern Vignettes: Applying Patterns to Real World Problems Using C++ (with Luke Hohmann). Mr. DeBruine has a B.S.E.E. from Calvin College.



LANG3
Tuesday, August 4
4:00 P.M.-6:30 P.M.


Ada and the objects
Benjamin M. Brosgol, Aonix, USA

The original Ada language, designed in the early 1980s, was object-based but not fully object-oriented; it supported encapsulation and data abstraction but not inheritance, polymorphism or dynamic binding. A language revision effort culminating in ISO standardization in 1995 has filled this gap. After summarizing Ada's main features, this tutorial explores the language's approach to Object Orientation. The presentation develops an example to motivate and illustrate the key semantic and stylistic points, compares Ada with other OO languages (C++, Eiffel, Java), and explains the rationale for major language design decisions.

Topics include:

After attending this tutorial, the participant will understand Ada's OO model, but will also see the underpinnings of OOP in a way that leads to more effective OO styles with other programming languages.

About Benjamin M. Brosgol
Dr. Brosgol has over 25 years of experience in the computer software industry, with a focus on programming language design and implementation (Ada in particular), software engineering, Object- Oriented technology, Information Systems, and real-time applications.  He has been continually and actively involved with Ada since its inception in the mid-1970s, as a language designer, reviewer, compiler developer, user, and educator.  He was a member of the team that conducted the Ada 95 language revision, where he was responsible for designing the Information Systems support.  He has been conducting Ada courses since 1982, both in the U.S. and abroad, for private industry, government, and academia.  He has long been active in the Ada community and is currently the chairman of ACM's SIGAda (Special Interest Group on Ada).  He is presently the chief Ada technologist at Aonix.



LANG4
Wednesday August 5
2:30 P.M.-6:00 P.M.


OO language comparison: Java, Eiffel and C++
Ian Joyner, Microsoft Research Institute, Australia

This tutorial is based on my upcoming book comparing Eiffel, Java and C++ as three well-known programming languages. While the object models of these languages are very similar, they are very different in the ease with which software can be built. We will examine the differences between the languages, their strengths and weaknesses, in a hard-headed look. The superficial syntactic differences will be looked at, but more importantly, the semantic differences and philosophical basis of each language will be examined.

We will see how these differences apply in actually developing software, as it is not just a question of theoretical niceness, but practical application, and what this means in terms of ensuring quality in software.

Topics will include:

About Ian Joyner
Ian Joyner graduated with B.Sc Honours in Computer Science from Sydney University in 1979. Since then he has been involved in many industry positions, with special interests in making programming more disciplined, languages, and application of object-orientation. Ian has held positions with Burroughs and Unisys, Apple Computer. He worked on a large scale Music Publishing package in Object Pascal and MacApp on the Macintosh, developed an Eiffel compiler for Unisys A Series, and is currently working at Microsoft Research Institute with John Potter on Project Bruce to translate Eiffel into Java, which he presented as a keynote lecture at TOOLS 97, US and Pacific. He has recently released EiffelS on the Macintosh in partnership with Object-Tools, together with the MOTEL framework. Ian is also active in ISO’s Open Distributed Processing standardisation effort.



LANG5
Thursday, August 6
9:00 A.M.-12:30 P.M.


Developing COM business objects with Visual Basics 5.0
Mitchell Goldstein, Virtual Partners, USA

This session is a discussion on techniques of employing features of COM and Visual Basic 5.0 to implement industrial strength business objects for use in a distributed environment. A real example of such an implementation is presented from requirements through the specification, design and implementation process.

Topics covered are:

About Mitchell Goldstein
Mitch Goldstein is the Chief Architect for Virtual Partners Inc., a software integration and consulting firm based in Poughkeepsie, NY. Mitch has nearly fifteen years of experience in the data processing field, specializing in the design and implementation of object-oriented and multi-tiered distributed systems. Mitch has experience in designing large-scale deployments of CORBA, COM/DCOM, IBM/MQSeries and Tuxedo systems using C++, Java, Visual Basic and other object- based languages on Microsoft Windows and UNIX platforms. Currently, Mitch is focusing on developing a distributed object-oriented business system for Greenwich Associates, a leading strategic consultant and financial market research firm in Greenwich, Connecticut.

Previously, Mitch served as Enterprise Architect for the Technology Services Group of DMR-TRECOM (formerly Trecom Business Systems) where his responsibilities included technical leadership for several key clients in the financial, insurance, pharmaceutical and telecommunications industries. Mitch also served as an instructor and lecturer and authored several methodology documents and development standards, many of which were adopted at the corporate level.  Mitch has given several talks at Microsoft-sponsored and other events and was the primary instructor for C, C++, Visual Basic, Windows NT, 32-bit API  and CORBA fundamentals for DMR TRECOM's training and re-skilling programs.

Prior to that, Mitch was an independent consultant working for several Wall Street investment firms, primarily re-designing and deploying trading and financial systems in the Microsoft Windows and X-Windows environments using Visual Basic and C/C++.  Mitch's experience with distributed systems began with the design and development of a distributed retail branch automation system for Chemical Bank using the VAX/VMS platform, the first of its kind in the industry.



TECHNOLOGY TRACK

TECH1
Monday, August 3
9:15 A.M.-12:45 P.M.


Object databases and multi-tier architectures
Nimish Doshi, Versant Object Technology, USA

This tutorial will demonstrate the nature of an object database, some terminology, and the features that are available today and will be needed in the future. It will go over a specific ODB example problem and present some introductory discussions covering the Object Database Management Group (ODMG). Finally, the tutorial will present a brief overview on using object databases within Multi-tier environments. A Java example will be provided.

About Nimish Doshi
Nimish Doshi is senior systems engineer at Versant Object Technology. He previously worked at Bellcore as a software engineer in provisioning systems and computer security, and his research there  lead to past TOOLS papers covering object-oriented scripting for database access and objects  used as communication agents for database access.



TECH2
Tuesday, August 4
9:15 A.M.-12:45 P.M.


Real-time development with the Shlaer-Mellor method
Stephen J. Mellor, Project Technology, USA

The challenges of developing high performance, high reliability, and high quality real-time software systems are too much for ad hoc and informal engineering techniques that might have worked in the past on less demanding systems. New techniques for managing these growing complexities are required to meet today's time-to-market and productivity demands. This tutorial illustrates how to manage these complexities to successfully meet these real-world challenges using a well-defined engineering process that covers the entire lifecycle.

We show how to:

This approach produces a number of beneficial results:


This method evolved from real-time projects at Lawrence Berkeley National Labs and is used world-wide in complex real-time applications, including the F-16 fighter plane, complex telephony switches, multimedia servers, automobile control systems, computer peripherals, and life-critical medical devices.

About Stephen J. Mellor
Stephen J. Mellor is best known in the real-time community for his contribution to the development of Object-Oriented Analysis and the Shlaer-Mellor Method.  He is currently Senior Vice President of Project Technology, Inc., where he serves as co-researcher, with Sally Shlaer, for Project Technology's extensions and applications of the Shlaer-Mellor Method.  Mr. Mellor is also a member of the editorial board for IEEE Software.  Mr. Mellor is currently working with the OMG to define extensions to the Unified Modeling Language (UML) that will benefit real-time developers.



TECH3
Wednesday, August 5
9:15 A.M.-12:45 P.M.


Creating Internet applications with object-oriented components
Frieder Monninger, Object Tool Gmbh, Germany

The Internet has not automatically improved software engineering. The same problems remain - and this tutorial will show how they can be resolved. It tells how object-oriented components can be assembled into applications running on an internet server, and how they can be controlled on the client side using forms created by rapid application development.

The tutorial explains the protocol used between the client (the WEB browser) and the server (the application). It will also demonstrate how multiple customized versions of the application can run on the same server using COM technology. The technique used is that of a "Virtual Machine" implementing e-business applications on the server side. By exploiting this powerful machine the client application can be created surprisingly quickly using simple drag & drop operations.

Nevertheless the applications are object-oriented, modular and easily maintainable. They can be adapted to the requirements of different customers without sacrificing the design or even the text of the underlying classes.

About Frieder Monninger
Frieder Monninger has 25 years experience with object oriented programming, and has presented many seminars related to OO. During the last few years he has been working on object oriented rapid prototyping. One result of this work is the Display Machine, whose technology has now been transferred to the internet. He is co-author of the Visual Eiffel environment.



TECH4
Wednesday, August 5
2:30 P.M.-6:00 P.M.


Nuts & bolts of object-oriented distributed computing
Murat Karaorman, University of California in Santa Barbara, USA

This tutorial covers mostly practical issues in developing distributed and concurrent applications over the TCP/IP networks and the world-wide-web in a Java-centric approach. Concrete examples are given in the traditional style (C/Unix) as well as modern styles (Java, scripted languages, etc.)

After a brief introduction of basic communication mechanisms (sockets, datagrams, general concepts), mid-level protocols and distributed computing mechanisms (remote procedure calls, communication protocols, interprocess and client-server style communication) are covered. Finally, high-level mechanisms and some real-world applications are presented (Java remote-method invocation (RMI), intelligent agents/objects, etc.). Synchronization, multi-threaded applications, correctness, and performance issues are also examined.

Standards-based techniques are also presented in a comparative fashion. These include language-independent standards such as CORBA; platform dependent protocols such as COM/DCOM, ActiveX; and language-dependent protocols such as Java RMI, HORB.

Practical issues around security, object distribution, synchronization programming, and techniques to extend and use existing protocols are covered.

About Murat Karaorman
Murat Karaorman holds a M.S. degree in Computer Science from Bilkent University and is a Ph.D. candidate at the University of California in Santa Barbara. Graduate research involves library based extensions to object-oriented languages for concurrency, distributed computing and synchronization. Industry research experience involves speech recognition; audio and computer telephony interfaces as research engineer at Panasonic Speech Technology Laboratory in Santa Barbara. Earlier research includes extending Eiffel Language with Concurrency Libraries. Recent research work (pending publications) includes building library-based extensions to Java Remote Method Invocation(RMI) for asynchronous remote calls, active objects and synchronization programming.



TECH5
Thursday, August 6
9:00 A.M.-12:30 P.M.


Object-oriented formal specifications
Kasi Periyasamy, University of Manitoba, Canada

Recent developments in research on formal methods made formal specification languages to be widely used in industrial applications. In particular, formal specification languages are mainly used to understand and/or to analyze requirements of software systems, though they can be used at all stages of software development. When combined with object-oriented approach, formal specification languages have cumulative advantages such as analyzing properties of objects in isolation and supporting reusability.

In this tutorial, I describe the object-oriented formal specification language Object-Z and how it can be used to capture requirements of a software system. Object-Z is an object-oriented extension of the formal specification language Z.

About Kasi Periyasamy
Dr. Kasi Periyasamy is an Associate Professor at the University of Manitoba, in Canada. He has been working on the application of formal methods for the past ten years. He has used VDM, Z and Object-Z specification languages in his research work. he has developed a real-time extension to the Object-Z specificatoin language called Real-Time Object-Z (RTOZ), in collaboration with Dr. Alagar at Concordia University in Montréal. Dr. Periyasamy is co-author of the book "Specification of Software Systems".

Dr. Periyasamy has taught undergraduate and graduate courses on formal methods and object- oriented software development, both at the University of Manitoba and at Concordia University. He has given short courses to industries on object-oriented analysis and design.



METHODOLOGY TRACK

METH1
Monday, August 3
3:30 P.M.-5:00 P.M.


Modeling complex behavior simply or how much is too much?
Stephen J. Mellor, Project Technology, USA

Complex dynamic behavior doesn't have to mean complex models. State Machines are a standard technique used by real-time developers for describing dynamic behavior. They work because they capture complex behavior in a graphical manner for easier understanding.

Recently, hierarchical state models such as Harel statecharts have been vigorously promoted over flat (Mealy-Moore) state models as a panacea for complexity management.  Unfortunately, hierarchical state models have a number of severe shortcomings: complex, difficult to learn notation; too many ways of saying the same thing; ill-defined semantics; layers of content-free hierarchy adding to and hiding system complexity; and so on.

All is not lost.  This class will illustrate the shortcomings of hierarchical state models and show how to overcome them--while using industry standard UML notation. Specifically, we will show how to partition a system into objects of consistent granularity, each of which has simple behavior; how to make objects communicate with one another simply; how to model concurrency and how to restrict it; how to model competition for resources and other necessary serializations.

Attendees will leave with a much better understanding of how to capture complex dynamic behavior in graphical state models that are easy to understand and program.

About Stephen J. Mellor
Stephen J. Mellor is best known in the real-time community for his contribution to the development of Object-Oriented Analysis and the Shlaer-Mellor Method.  He is currently Senior Vice President of Project Technology, Inc., where he serves as co-researcher, with Sally Shlaer, for Project Technology's extensions and applications of the Shlaer-Mellor Method.  Mr. Mellor is also a member of the editorial board for IEEE Software.  Mr. Mellor is currently working with the OMG to define extensions to the Unified Modeling Language (UML) that will benefit real-time developers.



METH2
Wednesday, August 5
9:15 A.M.-12:45 P.M.


BON: Seamless, reversible, contract-based analysis and design
Kim Walden, Enea Data, Sweden

Software reuse on a broad scale is generally recognized as the major potential of object technology. The BON method is focused on two software development principles, which play crucial roles in attaining this goal.

First, analysis and design must serve not only as help to produce an initial version of a software product, but as major support during its full lifecycle. It must be straightforward to update the high-level models when changes are performed during implementation and maintenance, and still keep full consistency. This requires reversibility, that is seamless mapping in both directions between successive models.

Second, reusable components need to be precisely specified. To avoid ambiguity, we need more than the usual set of vague natural language comments. Each software module must carry a contract specifying exactly what can be expected from its services, and what must be taken care of by the clients.

The tutorial gives an overview of the BON method, which is centered around seamlessness, reversibility, and software contracting. As a consequence, the method uses a consistent set of concepts and notations throughout the software lifecycle, thus avoiding the impedance mismatches of traditional approaches such as ER-modeling or finite state machines. Besides the principles above, typed interface descriptions, scalability, and space economy are stressed.

A small case study is used to explain the basic concepts and systematic tasks of the BON development process.

About Kim Walden
Kim Walden was on the team developing the DEC Simula compiler in the warly 1970s. He has more than 20 years experience with industrial software development, research, consultancy, and education. Dr. Walden is the co-author of the book "Seamless Object-Oriented Software Architecture".



METH3
Wednesday, August 5
2:30 P.M.-6:00 P.M.


Design by Contract: the Eiffel method
Bertrand Meyer, Interactive Software Engineering, USA

To deliver on its promises, object-oriented technology must be able to produce systems that are reliable (correct and robust). Only under these conditions will the other quality factors advertized for the method, in particular the increase in reusability and extendibility, yield the expected benefits for software practitioners.

It is indeed possible to use object-oriented technology to produce, almost routinely, software systems that reach a degree of reliability without any equivalent in conventional methods, languages and tools. This requires a strict application of pure object-oriented concepts, in particular seamlessness (the use of a consistent method and notation throughout the software lifecycle), information hiding, automatic garbage collection, static typing, and the combination of static typing and dynamic binding. Another key component of this approach is the notion of design by contract, which leads to the production of system whose correctness is built-in rather than ensured ex post facto.

The presentation will explain the theory of Design by Contract and its applications through a number of examples. It will show how the ideas lead to sound architectural principles in the design of large-scale systems, make it possible to control the use of inheritance, and yield a disciplined approach to the handling of abnormal cases.

About Bertrand Meyer
Bertrand Meyer is president of Interactive Software Engineering, providing reusable software components and libraries for mission-critical developments. He also holds a position as Adjunct Professor at Monash University, where he is active in the "Trusted Components" project.

He has directed the development of widely used O-O tools and libraries totaling hundreds of thousands of lines, and authored several best-sellers on software engineering and object technology. He is the editor of the Object Technology column of IEEE Computer and of the Prentice Hall O-O Series.

Bertrand Meyer holds an engineering degree from Ecole Polytechnique, Paris (France), a Masters from Stanford University and a PhD from the University of Nancy (France). He is an associate member of the applications section of the French Academy of Sciences and the recipient of the 1997 Software Development-Jolt Product Excellence award for his book Object-Oriented Software Construction, 2nd Edition.



METH4
Thursday, August 6
9:00 A.M.-12:30 P.M.


Putting metaclasses to work
Ira R. Forman, IBM, USA

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 ancestor metaclasses.

We conclude by demonstrating a number of useful metaclass that do compose with each other.

About Ira R. Forman
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 Programming Technology Center.  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.



METH5
Thursday August 6
2:45 P.M.-6:15 P.M.


Analysis by contract: An introduction to UML's Object Constraint Language (OCL)
Richard Mitchell, Brighton University, UK

Towards the end of 1997, the Object Management Group accepted a proposal from Rational Software Corporation and others that the Unified Modeling Language, UML, be adopted as a standard.

At the heart of UML are a number of visual modeling notations for describing class models, state models, and so on. UML also contains an Object Constraint Language, OCL, for adding precision to models. OCL can be used to add preconditions, postconditions and invariants to classes or types, allowing the principles of design by contract to be applied to analysis-level models. The precision that this affords will be increasingly important as the software industry moves further towards component-based development.

The tutorial will introduce the key features of OCL. By means of a small case study in object-oriented analysis, it will then show how OCL can be used to add precision to analysis-level models.

The case study will emphasize:

About Richard Mitchell
Richard Mitchell is Professor of Computing at the University of Brighton, UK, where he has been teaching and researching object technology since the 1980s. His research addresses the use of contracts at all levels of software development. Richard has presented papers and tutorials on adding precision to OO modeling in many countries around the world. He is a qualified instructor for Catalysis, an advanced methodology that embodies the principles of design by contract at all levels of modeling, and is targeted at component-based development. Richard is lead author of a forthcoming book on the use of OCL within UML.



MANAGEMENT TRACK

MGMT1
Monday, August 3
9:15 A.M.-12:45 P.M.


Surviving your OO project
Alistair Cockburn, Humans and Technology

This tutorial presents over 60 strategies, truths, fixes and recommendations to help keep your project and team alive through delivery.  It goes over success and failure stories that shed light on the lessons to be learned, then reviews, in sequence, steps that can be taken to reduce the project's risk. These include reasons for selecting (or rejecting!) object technology in the first place, selecting the project, the project's goals, the team, the education, and the tools.  A second round of lessons cover issues that arise in the first, second and third increments of a system's delivery, ways to tune the organization between increments.  The third round covers trying to train large numbers of developers, and analyzes sentences you should never hear. A sample of project management patterns are reviewed at the end.

About Alistair Cockburn
Alistair Cockburn, consulting fellow at Humans and Technology, is a specialist in human factors in software development, particularly OO projects. Besides being an active software designer, he wrote the OO methodology for the IBM Consulting Group in 1992, helped lead major projects on two continents, and was most recently special advisor to the Central Bank of Norway for software project management and object technology. His lectures and courses are requested throughout the world. Mr. Cockburn continually debriefs projects to learn more of what makes projects and teams work. "Surviving Object-Oriented Projects" was published as a book in 1997.



MGMT2
Monday, August 3
3:30 P.M.-5:00 P.M.


Managing OO software development for the year 2000 and beyond
Madhu S. Singh, Bellcore, USA

It is a well-known fact that a majority of software development projects, especially OO based software, never get completed in time and within stipulated budgets. To reap the fullest benefits of exciting technology and keep the software development project on track, it is essential that project management principles be applied to manage software development projects.

A project is a temporary endeavor undertaken to create a unique product or service. The probability of successfully completing a project is at its lowest (risk and uncertainty are highest) at the start of the project and gets progressively higher as the project advances. Project Management is the application of knowledge, skills, tools, and techniques to project activities in order to meet or exceed stakeholder needs and expectations from a project.

This tutorial will discuss in details the theory and practice of project management with appropriate examples drawn from various software development projects. The following major topics will be discussed:

About Madhu Singh
Dr. Madhu Singh is a Senior Project Manager at Bellcore (currently located in Rome, Italy, consulting with major European telecom companies) and has over 20 years of experience in systems engineering, information management technology including the Object-Oriented paradigm, large software development life cycles, and repository technology. He received his Master of Science degree from G.B. Pant University (India) and Ph.D. from the University of Maryland (USA). He has consulted for system analysis design, and integration to Bellcore internal projects as well as Regional Bell Operating Companies (RBOCs) and has conducted courses and seminars on information management included Object-Oriented analysis and design, systems engineering (life cycle perspective, integrating different systems), information modeling, data administration, and CASE tools. He is also an adjutant Professor of Computer Science and Information Management, Graduate School of Management, Rutgers University and an active member and contributor to several U.S. and International standards organizations. He has been Panel and Workshop chair of the TOOLS USA conferences from 1992-1998. He is a certified Project Management Professional (PMP) and his current interest involves applying Object-Oriented techniques to large software system development and software project management.



MGMT3
Tuesday, August 4
4:00 P.M.-6:30 P.M.


Object-oriented software estimation
Jerry A. Smith, Semaphore, USA

Estimating the effort, time, and cost of object-oriented software projects is a difficult task. Generating reliable, repeatable, and accurate estimates can only be achieved through the use of appropriate estimating models that reflect the iterative and incremental nature of object technology.

For too long, those responsible for generating estimates have been using traditional techniques, based on non object-oriented software lifecycles, to make broad "guesses" at answering the effort and duration questions. In doing so, these estimators ultimately fail to deliver accurate and repeatable answers, leading to deep mistrust and abuse of the estimation process.

This presentation addresses the complex issues associated with estimating object-oriented software development projects. In doing so, the audience is introduced to:

This presentation is technical in nature and should be attended by people who have sought answers to the questions like:

About Jerry A. Smith
Mr. Smith is the Chief Technical Officer (CTO) of a global consulting and training company that specializes in object-oriented technology. He has specialized in software development, object- oriented technology, and management for over 15 years. He is the principle scientist for a long- term, multi-project research effort focusing on the best-practice techniques used to transfer and retain information and knowledge. In a former life, Mr. Smith was a United States Naval Pilot responsible for flying the A6E Intruder.



MGMT4
Thursday, August 6
9:00 A.M.-12:30 P.M.


Software Reuse: Architecture, process and organization for business success
Martin L. Griss, Hewlett-Packard Laboratories, USA

Object technology is believed to be crucial in achieving the long sought-after goal of widespread reuse. This goal is the most frequently stated reason for adopting OT. Unfortunately, many people naively equate reuse with objects, expecting it to "automatically" ensure reuse, but often do not get much reuse. Based on my experience with reuse at HP, Objectory and Rational, and with many customers, I know that without extensive changes to support component-based development and systematic reuse, OT as used today will not succeed in giving users reuse. Without an explicit reuse agenda, and a systematic approach to the design and use of reusable components and frameworks, OO reuse will not succeed. In almost all cases of successful reuse, architecture, a dedicated component development and support group, management support, and a stable domain were the keys to success. These largely non-technical issues seem to be more important to successful reuse than the specific language or design chosen.

In this tutorial I address this architecture/process/organization question systematically. I describe an exciting and coherent approach, which applies Object-Oriented Business Engineering concepts of BPR to restructure a software development organization to offer reuse at a large scale. This is outlined as a generic and customizable "Reuse Business" framework. Since the transition to a Reuse Business is a complex and risky endeavor, it is important to do it systematically. The approach therefore combines the techniques of BPR, change management and incremental reuse adoption.

To obtain a true systematic OO reuse process, I have augmented the Use Case Driven Object-Oriented Software Engineering (OOSE) with specific reuse-oriented architectures and processes, coupled with organization and infrastructure guidelines and training. The work is based on the new Unified Modeling Language (UML 1.1), taking full advantage of the features for packages, stereotypes, facades, patterns, etc.

I have extended the OOSE process to start from a business model of the target organization, with specific architecture and component design steps. Component and framework engineering includes explicit design and implementation guidelines, building on a catalog of architectures, patterns, designs and mechanisms. I provide a structured approach to produce layered, modular architectures.

About Martin L. Griss
Martin L. Griss is a Principal Laboratory Scientist at Hewlett-Packard Laboratories, Alto, California, where for the last 15 years he has researched software engineering processes and systems, systematic software reuse, and object-oriented development. He created and led the first HP corporate reuse program. He led HP efforts to standardize UML for the OMG. He was previously director of the Software Technology Laboratory at HP Laboratories, and an Associate Professor of Computer Science at the University of Utah. He has over 25 years of experience in software engineering, is co-author of the best-selling book "Software Reuse: Architecture, Process and Organization for Business Success," writes a column for the "Object Magazine", has written over 40 articles and lectures widely on systematic reuse and software process improvement. He received a Ph.D. (Physics) from the University of Illinois in 1971.



MGMT5
Thursday, August 6
2:45 P.M.-6:15 P.M.


OO Metrics
Christine Mingins, Monash University, Australia

OO system development can be viewed as an iterative process of naming, specifying, coding, testing and committing classes to the production repository. This tutorial demonstrates a method and some practical metrics which combine project management and product analysis to assist in achieving the following outcomes and benefits:

About Christine Mingins
Christine Mingins is a Senior Lecturer at Monash University, Australia, with extensive teaching and consulting experience in Object Oriented methods and research interests in software quality metrics.



PRE-STOT
Thursday, August 6
2:45 P.M.-6:15 P.M.


Using a multi-term project to teach OO programming and design
James McKim, Rensselaer at Hartford, USA

The Object Oriented Paradigm is touted as a software development methodology that promotes reuse, models the problem space, facilitates maintenance, incorporates changes easily, shortens the development lifecycle, encourages good software engineering techniques, and cures the common cold! A course in Object Oriented Programming and Design should address these claims. One way (perhaps the only way) for students of the paradigm to test such claims and to gain appreciation of the paradigm's benefits (and costs) is to participate in the building of a substantial product.

In this Tutorial, I argue that the project should spread over several terms with ongoing enhancements and redesigns. A project built from scratch in one term is necessarily too small to be realistic. The students who build it will have such a complete grasp of it that they can't really tell whether it's easy to make changes because they have a good OO design or whether it's just because they know the system so well.

An ongoing, multi-term project has the advantages of being more realistic, of exposing students to issues at a depth that simply cannot be attained in a small project, and of forcing students to absorb a sizable existing system (or at least some part of it) before they can make changes. The latter requirement is where students (really) see the need for a modeling notation such as UML and for a common set of "tricks of the trade" as exemplified by design patterns.

About James McKim
James C. McKim, Jr. holds a B.A., M.S., and Ph.D. degree in mathematics from the University of Iowa, and a M.S. degree in computer science from Rensselaer. He is currently a Professor of Computer Science at Rensselaer at Hartford. Dr. McKim has more than twenty years experience teaching mathematics and computer science. He has authored, coauthored and reviewed a number of textbooks and articles in both areas. He has been teaching, publishing, and consulting in the OO arena for the past seven years and has given numerous tutorials at OO conferences, including TOOLS and OOPSLA. His research interests include object oriented programming and design in general, and class interface specification in particular.


Refer to the Conference Schedule for more scheduling information


[an error occurred while processing this directive]