Sunday Full-Day Tutorials
(Noon – 7:00pm)Sunday Evening
(7:30-10:00pm) FREE!Monday Full-Day Tutorials
(9am – 5:30pm)Monday Morning Tutorials
(9am – 12:30pm)Monday Afternoon Tutorials
(2-5:30pm) SIGAda '99 will offer two days of outstanding tutorials led by some of the most respected technical leaders in the industry. More than a dozen half and full-day sessions have been selected to meet the needs of software developers in today’s demanding environments.Our tutorial program features a full line-up of Ada 95 and object-oriented technology sessions and covers a broad range of disciplines including systems and software engineering, software process standards-based development, architecture, software tools, reuse, and the World Wide Web.
|
|
|
|
|
|
Sunday Full-Day Tutorials (Noon – 7:00pm) |
|||
|
|
High Integrity Ada Tasking | John S. Harbaugh | TBD |
|
|
Implementing Design Patterns in Ada95 | Matthew S. Heaney |
|
|
|
Introduction to the Personal Software Engineering Project Management Process (PPMP) | A. Winsor Brown |
|
|
|
SW-CMM Version 2 - The New Capability Maturity Models & CMM-Integration Initiative Status | Rick Hefner |
|
|
|
From Here to UML: The New “Standard” for OO | Shan Barkataki |
|
|
|
Java for Ada Programmers | Ben Brosgol |
|
|
|
Introduction to the Ada95 Programming Language | David A. Cook,
Leslie Dupaix |
|
|
(7:30-10:00pm) |
Introduction to Web Technologies for Effective Dissemination of Information
(Send email to: colket@acm.org if interested in participating.) |
Currie Colket,
Clyde Roby, Brad Balfour, John McCormick |
|
|
Monday Full-Day Tutorials (9am – 5:30pm) |
|||
|
|
Embedded-Real-Time Ada 95 | Pat Rogers |
|
|
|
Real-Time and Non-Real-Time CORBA Programming for Ada 95 | Brad Balfour |
|
|
|
A Guided Tour of the Personal Software Process for Ada (PSPA) | A. Winsor Brown,
George Huling |
|
|
Monday Morning Tutorials (9am – 12:30pm) |
|||
|
|
Using GNAT for the Java platform | Gary Dismukes |
|
|
|
Systems Programming in Ada | Bryce Bardin |
|
|
|
Software Metrology Basics | Hans-Ludwig Hausen |
|
|
Monday Afternoon Tutorials (2-5:30pm) |
|||
|
|
Building Ada Development Tools with ASIS-for-GNAT | Sergey Rybin,
Vasily Fofanov |
|
|
|
Windows Development with Ada | Örjan Leringe |
|
|
|
MetaH, an Architecture Description and Implementation Language and Toolset | Bruce A. Lewis |
|
Sunday Full-Day Tutorials (Noon – 7:00pm)
SF1: High Integrity Ada Tasking,
John
S. Harbaugh
The outlook for embedded systems has never been more exciting! Fast processors and cheap memory are fueling an explosion of sophisticated applications, from “smart cards” to drive-by-wire automobiles to integrated e-phones. Recent research has led to a compact and reliable tasking model, the so-called Ravenscar profile, designed specifically for high-integrity, efficient, real-time systems. In this tutorial, attendees will learn how to write concurrent (multi-threaded) applications that are consistent with the Ravenscar profile, while using Ada95. Students will also learn how to assure that real-time programs will meet their deadlines using Rate Monotonic Analysis.
SF2: Implementing Design Patterns in Ada95,
Matthew
Heaney
The patterns movements, made popular by the book Design Patterns, is sweeping across the software community. In this tutorial, attendees will learn how to implement design patterns in Ada95. This tutorial is illustrated with myriad idioms for module structure, object-oriented programming, data synchronization, and inter-process communication. In essence, participants will learn techniques that facilitate the construction of large software systems written in Ada 95, including patterns for distribution and real time.
SF3: Introduction to the Personal Software
Engineering Project Management Process (PPMP),
A.
Winsor Brown
PPMP is a proven way to expose software engineers to the software management activities of estimating, planning and tracking; and to the popular Personal Software Process (PSP) approach to process definition and development. PPMP, like PSP, focuses on individual skills, these scale up across trained developers to provide excellent organization performance in the Software CMM's Key Process Areas (KPAs). This tutorial includes four simplified in-class exercises to reinforce the training, and also introduces participants to tools and techniques to increase personal productivity in other areas such as writing and software development.
(See Monday tutorial MF3 for a logical follow-on.)
SF4: CMM Integration: The New Capability
Maturity Models,
Rick Hefner
For almost a decade, the Capability Maturity Model for Software (SW-CMM) has been a business imperative for improving and assessing contractor and commercial organizations' software processes and capabilities. Now, the underlying SW-CMM model is about to change. The joint DoD-industry CMM Integration (CMMI) project is developing a suite of integrated capability maturity models (CMMs) to support multi-discipline (software, systems engineering, integrated product development, etc.) process improvement. Next summer, CMMI models will replace the current SW-CMM, System Engineering Capability Model (EIA/IS 731), and other CMMs currently used by industry. This tutorial will cover the current state of the CMMI project, including tchanges in models' structure and content, assessment methods, available training materials, and strategies for transition to the new CMMI framework. Information on obtaining free copies of the draft models and providing your review comments to the CMMI project will be provided.
SF5: From Here to UML: The New “Standard”
for OO,
Shan Barkataki
The Unified Modeling Language (UML), the result of collaboration by Booch, Rumbaugh & Jacobson to merge their OO notational methods, is a new ANSI and ISO standard modeling language for software development, and is certain to play a significant role in future software projects. Participants in this tutorials will gain an understanding of the UML concepts and techniques, and be able to convert and augment existing OMT/Booch/Coad-Yourdon models to UML. In addition, attendees will be able to create analysis and design models using UML, and perform critical evaluation of UML work products. Participants should be familiar with any 3rd generation object-oriented method.
SF6: Java for Ada Programmers,
Ben Brosgol
This tutorial will consist of four parts: Part One will cover Java fundamentals, basic properties of classes, and run-time models. Part Two will cover lexical properties, expressions and statements, data type topics, and OOP (inheritance, polymorphism, dynamic binding, and interfaces). Part Three will cover exceptions, threads, and advanced OO features (such as cloning and inner classes). Part Four will cover the Abstract Windowing Toolkit and applets. Participants will know how to write Java applications and applets after this tutorial, and also will understand how Java conpares with other languages, particularly Ada. Knowledge of Ada 83 or Ada 95 is useful for this tutorial.
SF7: Introduction to the Ada95 Programming Language,
David
A. Cook and Leslie Dupaix
This tutorial is designed to be a gentle introduction to the Ada 95 programming language. It assumes no knowledge of the language, although some experience in another high-level language would be helpful. Rather than focusing on the syntax of Ada, this tutorial focuses on the concepts of the language, such as: typing; tasking (parallel processing); exception handling; object-oriented programming; and packaging. This tutorial is designed to inform participants about the strength of the Ada language, and to discuss why Ada should be used for code that requires reliability and maintainability.
(7:30-10:00pm): Introduction to Web
Technologies for Effective Dissemination of Information,
Currie Colket, Clyde Roby, Brad Balfour, and John McCormick
This tutorial is oriented towards providing the basic information to disseminate information effectively using the World Wide Web. The tutorial addresses effective designs for web pages, the use of html for developing web pages, incorporation of graphics, and using ftp and automated tools (both UNIX and PC-based) to streaming the dissemination process. Strategies for announcements, configuration management, mailing lists, and databases are addressed. The ACM host machine will be used as a model. Although this tutorial is specifically designed to support the needs of SIGAda Working Groups and SIGAda Chapters, the information will be useful to all interested in learning how to set up a WWW home page. (Send email to: colket@acm.org if interested in participating.)
Monday Full-Day Tutorials (9am – 5:30pm)
MF1: Embedded-Real-Time Ada 95,
Pat
Rogers
This tutorial focuses on the use of Ada in applications in which reliability and timeliness are of utmost importance. This tutorial examines the approaches, advantages, and problems of Ada for real-time systems, and examines the role of the compilation and runtime support system. The course covers models for reliable storage management, and the two most popular strategies for dealing with processor management: Cyclic Executive model and the Rate-Monotonic Analysis (RMA) model. Other topics include Ada’s user-defined storage management capabilities, RTSE tailoring, and the Real-Time and systems Programming Annexes.
MF2: Real-Time and Non-Real-Time CORBA
Programming for Ada 95,
Brad Balfour
This tutorial is aimed at Ada 95 developers interested in using CORBA technology in their Ada 95 applications to create high-performance distributed client/server applications and/or to mix Ada 95 with other languages on heterogeneous computing platforms. Familiarity with object-oriented programming in Ada 95 will be helpful, but not required. No experience or knowledge of CORBA is assumed.
MF3: A Guided Tour of the Personal Software
Process for Ada (PSPA),
A.
Winsor Brown and George Huling
PSPA teaches the popular
Personal Software Process (PSP) using Ada, for which PSP is especially
well suited. PSP,
generally taught as independent
of language and design technique, demonstrates in the small the integration
of process
and product engineering,
with explicit activities aimed to enhance reuse, high-quality development,
and software
evolution. PSPA exploits
Ada's source code structuring and strong typing to accelerate PSP's productivity
and quality
improvements. Via a combination
of lecture, discussion, and in-class exercises, participants can jump start
their
understanding of PSP's advanced
tools and techniques, including faster, better personal reviews.
(See Sunday tutorial
SF3
for a complement to this tutorial -- not a prerequisite.)
Monday Morning Tutorials (9am – 12:30pm)
MA1: Using GNAT for the Java platform,
Gary
Dismukes
The objective of this tutorial is to teach how to write Ada applications for the Java platform using JGNAT (the GNAT Ada 95 toolchain for the Java Virtual Machine). Topics covered will include GNAT basics, concurrency, real-time programming, and interfacing native Ada code to Java. In addition, attendees will understand how to achieve seamless interoperability between Ada and Java, along with use of the Java API (Applications Programming Interface). Attendees should have a reasonable understanding of Ada, and knowledge of object-oriented programming in Ada is helpful, but not required.
MA2: Systems Programming in Ada,
Bryce
Bardin
This is a comprehensive tutorial on the elements of real-time systems programming in Ada. Attendees will learn how to write low-level, hardware-dependent programs in Ada95. Topics will include how Ada addresses some of the many concerns of real-time systems programming. Some of the concerns are: dealing efficiently with hardware and external devices; memory leaks and storage management; control over data structures and the representation of data; interfacing with other languages; timing; and techniques for maximizing portability within the systems programming domain. Attendees should have knowledge of Ada83 or Ada 95.
MA3: Software Metrology Basics,
Hans-Ludwig
Hausen
The overall aim of this tutorial is to make attendees familiar with the methods and principles of software metrics for procedural, object-oriented, and agent systems. Attendees will exercise proven techniques for goal directed measurement. Topics covered also include scaling and assessment as part of an industry proven, standardized procedure for concurrent software quality assurance and final evaluation for certification. This tutorial includes basic principles of measurement and metric, metrics-based quality engineering, and language-based metrication (how metrics can be effectively integrated into compilers or interpreters).
Monday Afternoon Tutorials (2-5:30pm)
MP1: Building Ada Development Tools with
ASIS-for-GNAT,
Sergey
Rybin and Vasily Fofanov
This tutorial will explain how you can build your own development and program analysis tools when working with GNAT. The existing GNAT toolset and different approaches to tool development will be presented. The use of the Ada Semantic Interface Specification (ASIS) as a tool-building technology is covered in detail. The discussion will also provide examples of ASIS-based tools and the ASIS implementation for GNAT. Participants should have a good understanding of Ada semantics. Basic experience in programming with GNAT is helpful, but not required.
MP2: Windows Development with Ada,
Örjan Leringe
This tutorial demonstrates how Microsoft Windows applications can be developed using Ada95. The working principles of Windows are presented, by showing how Windows programs traditionally are built using C. The tutorial goes on to show how these programs can be written just as well (or better) using Ada and the Win32Ada binding. Since OO frameworks, like the Microsoft Foundation Classes (MFC), provide access to Windows on a higher (and more structured) level than programmer-managed loops, MFC principles and an Ada binding are also featured. Other tools and bindings for Windows applications (such as Claw from R&R software, and GUIBuilder from Aonix) are presented.
MP3: MetaH, an Architecture Description and
Implementation Language and Toolset,
Bruce
A. Lewis
MetaH is a powerful technology for rapidly developing and evolving high assurance systems in Ada. MetaH was developed by DARPA and Honeywell, and is the basis for a standard Avionics Architecture language by the Society of Automotive Engineers (SAE). Attendees will understand how to use MetaH to specify: how code modules are combined to form an application; target behavior; the hardware target system; and how the software is allocated to the hardware. This tutorial assumes a general understanding of embedded time-critical system and software development methods. Expertise in Ada is not required.