ICSE-17 Tutorials, Monday, April 24

Full-Day Tutorial M1
The Experience Factory: How to Build and Run One, Frank McGarry (Computer Sciences Corporation) and Vic Basili (U. Maryland-College Park)
This tutorial presents the fundamental concepts behind software process and product improvement using measurement and evaluation in an Experience Factory Organization. It provides a set of examples associated with understanding the software engineering process, product and environment, improving it over time and packaging experience in the form of models and measures to create an experience base that can be reused by future projects. It discusses how this approach is being used in the Software Engineering Laboratory at NASA Goddard Space Flight Center and how it is being expanded to several other sites in NASA. The emphasis is on how to develop and run an Experience Factory. The tutorial assumes some experience in the management or development of software.
Full-Day Tutorial M2
Software Safety, Nancy Leveson (U. Washington)
Building safe software requires changes throughout the entire software development process. This tutorial will focus on the unique problems involved in building such software and describe some techniques that can be used to enhance the safety of software-controlled systems. Topics include the nature of risk and causes of accidents, management and process, requirements analysis, design, human-machine interface design, and verification of safety. Emphasis will be on procedures and techniques that are practical enough to be applied to projects today. Real-project experiences with these techniques in different application areas will be described. The material will be taken from the instructor's new book Safeware: System Safety and Computers, published by Addison-Wesley.
Full-Day Tutorial M3
Design Patterns: Elements of Reusable Object Oriented Software, John Vlissides (IBM Research)
Designing object-oriented software is hard, and designing reusable object-oriented software is even harder. Experience shows that many object-oriented systems exhibit recurring structures or design patterns of communicating and collaborating objects that promote extensibility, flexibility, and reusability. This tutorial describes a set of fundamental design patterns and, through a design scenario, demonstrates how to build reusable object-oriented software with them. Participants will be assumed to already have an understanding of basic object-oriented concepts, such as polymorphism and type versus interface inheritance; participants should also have had some experience designing object-oriented systems. Through this tutorial, participants will acquire experience in using design patterns to solve real problems. The tutorial is based on material in the book Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, published by Addison-Wesley.
Morning Tutorial M4a
Formal Development of Concurrent Systems, Michael Hinchey (U. Cambridge and New Jersey Institute of Technology)
Concurrent systems are typically large and complex, must react to inputs from various sources, meet synchronisation constraints (often within strict time limits), and are generally representative of the most complex computer systems that have yet been built. The aim of this tutorial is to illustrate how formal methods may be successfully applied to the specification, design, implementation and verification of concurrent, distributed and real-time systems. The tutorial is based on the forthcoming text Concurrent Systems: Formal Development in CSP by Michael Hinchey and Stephen Jarvis, to be published by McGraw-Hill in 1995.
Afternoon Tutorial M4p
Software Design Methods for Concurrent and Real-Time Systems, Hassan Gomaa (George Mason U.)
This tutorial surveys the state of the art in software design methods for concurrent and real-time systems. Several design methods for concurrent and real-time systems will be presented; these include Structured Analysis and Design for Real-Time Systems, Design Approach for Real-Time Systems (DARTS), Jackson System Development (JSD), Object-Oriented Design and the Naval Research Laboratory Software Cost Reduction Method. The tutorial will also describe two related methods building on the above methods: Ada-based Design Approach for Real-Time Systems (ADARTS) and Concurrent Design Approach for Real-Time Systems (CODARTS). The tutorial is based on the presenter's book Software Design Methods for Concurrent and Real-Time Systems, published by Addison-Wesley.
Morning Tutorial M5a
Process-Centered Software Engineering Environments, Pankaj Garg (Hewlett-Packard Laboratories) and Mehdi Jazayeri (Tech. U. of Vienna)
This tutorial presents the state of the art and practice in the area of Process-Centered Software Engineering Environments (PSEEs). PSEEs are software engineering environments in which the organization's development processes are defined explicitly by the user and are modeled in the environment. PSEEs can monitor or enforce the process, automate routine parts of it, and produce accurate information on the status of the process. The tutorial presents a comprehensive picture of this emerging area: the key concepts, formalisms, architectures, and representative systems.
Afternoon Tutorial M5p
The ISO 9000 Quality Standards for Software, Gianluigi Caldiera (U. Maryland-College Park)
The ISO 9000 Quality Standards Series has had a wide impact on several sectors of industry. In particular, the standard has become the focus for the quality programs of many industries. ISO has given specific attention to the peculiarity of the systems and software industry with specific guidelines for organisations which develop, supply and maintain software (ISO 9000-3), with a standard on software product evaluation (ISO 9126) and via the SPICE project. This tutorial will present an overview of the ISO 9000 Quality Standards Series, oriented to software practitioners; it will also discuss, from a practical point of view, the issues associated with using this standard in software organisations.
dsr

This information last updated Tue 10 Jan 1995