This tutorial will focus on ways of using the new features that Ada 95 provides. Examples will take the form of complete programs and the form of program frameworks. Emphasis will be on rules that help the developer to understand the trade-offs that occur when using a given set of Ada 95 features in different ways. Topics to be addressed include: kinds of inheritance (visible and private); the interactions between tagged types and child libraries; common building blocks using protected types; and multiple inheritance, mix-ins and generics.Transitioning Your Workforce
Attendees at this tutorial should have a basic familiarity with Ada 95. They should have read the Ada 95 manuals and/or attended previous tutorials on Ada 95 basics. Extensive Ada 95 experience is neither required nor expected.
This tutorial is on how managers plan and control the change associated with incorporating new languages, methods, and processes into their organization. many organizations and managers recognize that problems will arise as they start to change their methods, tools, and processes for developing software systems. These problems often manifest themselves as negative trends in productivity and resistance to change. This tutorial will help the individual or organization transition their workforce by answering critical questions like: "Where do I start?", "What issues do I need to address?", "How does training fit in?", "What is the sequence of events?", and "How do I manage the change?"Introduction to CORBA
This tutorial is appropriate for managers, training coordinators, project leaders, or software engineers interested in transitioning their workforce to new technologies (OO, Ada, software engineering methods, etc.).
The Object Management Group’s (OMG’s) CORBA specification has important implications to developers of object-oriented systems. The Common Object Request Broker Architecture (CORBA) extends the benefits of object-orientation across distributed heterogeneous environments, including multiple languages and multiple operating systems. CORBA compliance implies heterogeneous interoperability across a variety of platforms.Microsoft Platform Strategy
This tutorial is intended for managers and developers of object-oriented and legacy applications in networked environments. The level of this workshop is introductory; there are no prerequisites.
This tutorial will focus on Microsoft's client/server platforms and supporting core technologies. The intent of the tutorial is to provide the attendee with an understanding of how these platforms will evolve over time and assess the impact on future software development. It is targeted for business and technical decision makers as well as developers interested in Microsoft's future platform directions. No prerequisites are required to attend.
Ada 95 is rich with new features that support and extend the real-time programming abilities of the language. This tutorial discusses the new features of Ada 95, including the changes to the "core" language, and also the systems programming and real-time systems annexes. It covers topics such as ceiling-locking, tasking priorities, synchronous and asynchronous task control, and scheduling.CORBA and the Future of Application Development: An Overview for the System Integrator
This tutorial is intended for those who have a desire to learn the basics of using Ada 95 for real-time programming, or those who are familiar with real-time programming and wish to learn more about the "unique" features of Ada 95. A working knowledge of basic Ada syntax is required.
Recognizing the urgent need for a high-level interoperability standard, the software industry has formed a consensus, via the Object Management Group (OMG), called the Common Object Request Broker Architecture (CORBA) specification. OMG has more than 450 member companies. CORBA is being proclaimed by many magazines and industry pundits as the next-generation application architecture.IBM’s Platform Strategy: Second Generation Client/Server Tools (OS/2 Warp)
This tuturial will present an overview of CORBA and the vast array of uses in the system integration projects. It is appropriate for both managers and software engineers.
Application developers are under intense competitive pressure to actively re-engineer and right-size functions. They are expected to write more advanced applications in less time and often with less resources. The trend is moving towards teamwork and collaboration between programmers. Organizations are demanding tools that will make it easier for developers to collaborate on projects, share and reuse application code and quickly incorporate code changes.Economic Analysis for Software Developers
This tutorial will explore the trend toward collaboration and how new productivity tools, designed for the rapid development of clientt/server applications in team environments, are helping programmers and organizations meet their rapidly changing needs. The tutorial will also discuss data integrity and configuration management issues.
This tutorial will center on how developers can help their clients see real benefits in the investment they are about to make. What cost factors are relevant? What are the major areas where benefits can be harvested? How do you present this to the client. The audience ought to be familiar with basic economic principles including discounted cash flow, net present value and return on capital/investment.
Object-oriented methods can substantially improve achievement of software-engineering and system-building goals. Choosing a method means looking at the support it offers for the object-oriented paradigm, for the application domain of the software developer, and for software-engineering principles, practices, and goals. In this presentation we shall explore how these needs are answered by various current object-oriented methods, including Booch, Buhr, Coad, Colbert, Rumbaugh, and Shlaer-Mellor.Design of Concurrent Software in Ada
An understanding of basic terms such as object, class, and inheritance will be assumed. Participants should have a general familiarity with object-oriented concepts and languages such as Ada or C++. Experience developing large real-time or distributed systems is useful but not required.
This tutorial presents a direct approach to the design of concurrent software in Ada. Participants learn how to construct simple, elegant, and deadlock-free concurrent systems. The seminar introduces a design approach called “entity-life modeling” that is useful in various concurrent applications and particularly where the software controls real-world processes that may contend for resources. The concurrent designs are illustrated by programs in Ada 83 and Ada 95. A restrictive concurrency definition that forms the theoretical basis for the method is also briefly introduced.The World-Wide Web: A Live Demonstration of How to Surf the Net
This tutorial is primarily intended for practitioners and focuses on the practical aspects of entity-life modeling. Participants should be software analysts and designers with a knowledge of Ada tasking.
This tutorial will include a brief introduction to the World-Wide Web, its culture, and its capabilities both current and future. The remainder of the tutorial will include instructions on how to get connected to the Web, how to create a home page, how to browse the Web, how to perform financial transactions on the Web, and how to conduct business on the Web.
The tutorial is intended for anybody with an interest in the how-to’s of the World-Wide Web.
Programming languages typically do not provide a mechanism for specifying interfaces in a manner appropriate for remote access to procedures or data, while distributed systems generally do not support object references or polymorphism. The Object Management Group (OMG) has developed the Interface Definition Language (IDL) as a part of OMG’s Common Object Request Broker Architecture (CORBA) to define the mechanism for transparent access to objects in a network.From Structured Enterprises to Object Systems
This tutorial will present an IDL-to-Ada 95 mapping that is cleaner and simpler than the IDL to C++ mapping. The tutorial will also include an overview of a full CORBA implementation for Ada 95 that conforms to the mapping.
DOD software engineers today are faced with the problem of designing object-oriented systems based upon IDEF0 and 1X enterprise models. While the mechanics of this transition are not complex, the underlying ways of approaching problems are significantly different. This tutorial focuses on methods used to help IDEF-oriented managers and object-oriented software engineers communicate their models more effectively.
This tutorial is intended for systems engineers and software analysts who are interested in improving the communication between functional models and object-oriented models. Specifically, engineers who are working with enterprise models or are familiar with IDEF and know general object-oriented techniques will benefit the most from this tutorial.
Fresco is an object-oriented application programming interface (API) for graphical user interfaces, covering functionality in Xlib and Xt, and adding structured graphics and application embedding. Fresco versions are also planned for Windows NT and Chicago. A CORBA interface will allow Ada 95 Fresco applications to interoperate transparently with Fresco/C++ applications. Developers using Fresco in Ada 95 can not only use components built with non-Ada language code, but can build graphical widgets and systems in Ada 95 that are usable from non-Ada language code.Systematic Object-Oriented Analysis and Design with the Fusion Method
This tutorial will present a review of Fresco and will discuss experiences reimplementing the sample C++ implementation of Fresco in Ada 95. The presentation is intended for both managers and software engineers.
Fusion is an object-oriented method that was developed to meet the needs of HP’s large and diverse software engineering community. As a second generation method, Fusion integrates the best aspects of earlier techniques and provides a systematic process that supports each phase of development, from high-level analysis to code generation. Since its introduction, the use of Fusion has spread rapidly within HP. it is being used to develop a broad range of products, from printer drivers to network protocol managers for multi-user systems and embedded firmware for electronic test equipment. Following the publication of a textbook on Fusion, an enthusiastic user community has grown up outside of HP.Applied Object Technology
This tutorial will explain the Fusion method and its underlying rationale. It will also present HP’s experiences with introducing Fusion into actual use on live projects. The conclusion will include a report on future developments with Fusion.
This tutorial will present lessons learned and success factors as applied to a large client/server application. It will primarily cover the case history of applying object technology to the billing and order entry system of an international telecommunications company. Other comparative case studies will be introduced as well.
Attendees should be familiar with basic object-oriented concepts. The tutorial will be particularly useful to those who desire to either compare notes or who are now trying to make a decision about a methodology or approach.
Software reengineering is a rapidly advancing subfield of software engineering that is concerned with defining reliable and repeatable processes for changing existing information systems to adapt to changing missions requirements or business needs. This tutorial provides an overview of the state of the art of technologies that support software reengineering -- with an emphasis upon a highly successful approach to software reengineering that is based upon knowledge-based technologies that were originally developed for the RADC Knowledge Based Assistant Program. While KBSA technology focuses upon synthesis, reverse-engineering and reengineering are extensions of KBSA technologies that emphasize automated abstraction and adaptation. Manual business process reengineering and software reengineering efforts often fail or exceed cost and schedule. Automated software reengineering can minimize the costs of salvaging and preserving those existing mission critical software assets that have an enduring role in the future business process.Engineering Software Solutions Using Cleanroon
Participants should have an undergraduate background in computer science or equivalent industrial experience.
Software development has a fundamental need to evolve from a craft discipline to an engineering discipline. This tutorial will address the key concepts of Cleanroon Software Engineering, a practical, mature, and highly effective engineering-based approach to developing essentially failure-free software solutions,. The intent of this tutorial is to present the fundamental principles of Cleanroon and then to discuss how these principles are applied as practices to support software specification, design and implementation, certification, and management. Case studies and results from a number of projects will also be discussed.Object-Oriented Domain Engineering
This tutorial emphasizes an object paradigm that supports concurrent, robust objects. The paradigm is applied to modeling both the life cycle model of roles, products, and their interrelationships and the superimposed process models that define the steps applied in the various roles to produce the intended products. The process models include a dual life cycle of domain and application engineering. Domain engineering is focused upon modeling key features of the product lines within a domain. Application engineering follows domain engineering for specific application projects. By identifying commonalities and differences with the more generic “domain engineering models,” application engineers can “reuse” major portions of the domain engineering models and focus upon developing a much smaller set of modeling extensions to reflect what is unique to their specific application.