ICSE-17 Tutorials, Tuesday, April 25
- Full-Day Tutorial T1
- Software Process Improvement: Methods and Lessons Learned, Bill
Curtis (TeraQuest Metrics Inc.)
The software engineering community is learning, as has virtually every
other area of engineering, that advances in productivity and quality
do not materialize just because technology has been thrown at a
problem. A software process movement emerged in the mid-1980s when
shortcomings in managing development and maintenance processes were
recognized as prime inhibitors of growth in software productivity and
quality. There is convincing evidence that companies undertaking
serious process improvement programs can reduce the number of defects
they deliver to customers by two orders of magnitude, while increasing
productivity by a factor of two or three.
This tutorial will help participants understand how to systematically
approach the improvement of their software development operations. By
hearing lessons learned from successful process improvement programs,
they will develop greater confidence in their ability to make needed
changes in their software operations.
- Full-Day Tutorial T2
- Systems Requirements Engineering, Anthony Finkelstein (City
University, London)
Requirements engineering is widely recognised as a priority area in
the development of software-intensive systems and products. Recent
progress in research on requirements engineering has given rise to a
body of new concepts, methods and tools which are ready for industrial
use.
The objectives of this tutorial are to introduce the important
concepts in requirements engineering. Requirements engineering is the
branch of systems engineering concerned with the real-world goals for,
service provided by, and constraints on software-intensive systems.
It is also concerned with the relationship of these factors to precise
specifications of system behaviour, and to their evolution over time
vvand across system families. The tutorial will address: the problems
of establishing the goals, services, and constraints of a software-
intensive system; the problems of using these goals, services and
constraints as a basis for specifications of system behaviour; and the
problems of managing requirements in the context of system evolution.
- Full-Day Tutorial T3
- Gathering Requirements using Contextual Inquiry: Knowing Your
User, Anne Smith Duncan and Dennis Wixon (Digital Equipment Corporation)
This tutorial provides a foundation for conducting field research with
customers and incorporating those findings into product development.
How to incorporate Contextual Inquiry (CI) techniques into the
development process will be explicitly addressed. Through a group
exercise, the tutorial will also cover the limitations in traditional
methods for requirements gathering. The distinctions of CI will be
illustrated via an exercise which provides guidance and experience.
Various alternatives to interviews as part of requirements gathering
will be discussed; these alternatives include: post-observation
inquiry, artifact walkthrough, future scenario, and prototype test-
drive. Finally, the links between CI and quality processes,
engineering methods, and usability techniques will be illustrated with
examples.
- Morning Tutorial T4a
- Operational Profiles, John Musa (AT&T Bell Laboratories)
Operational profiles are rapidly spreading in software engineering
practice. They make system testing more realistic and more efficient,
they improve system engineering, and they provide a basis for better
focusing software development. This tutorial will describe how to
develop operational profiles and how to use them in software
development; the connections between operational profiles and software
reliability engineering will also be presented. The tutorial is
particularly intended for engineers and managers who develop software-
based systems, and for instructors and students in software
engineering and computer science.
- Afternoon Tutorial T4p
- Improved Formal Technical Reviews: Beyond Fagan Code Inspections,
Philip Johnson (U. Hawaii-Manoa)
Formal, group-based review of software artifacts is now recognized as
a cornerstone of software quality assurance methods. Studies provide
evidence that formal technical review (FTR) can be more effective at
discovering errors than testing, and that it can discover different
kinds of errors than testing. The most well-known and widely
attempted FTR technique, Fagan code inspection, is almost 20 years
old and is but one among many FTR methods. Some of these methods
successfully challenge the conventional wisdom concerning FTR. Other
methods explore the impact of computer support for FTR, in contrast to
the entirely manual nature of inspection. This tutorial will provide
researchers and practitioners with an overview of the spectrum of FTR
methods that have been developed.
- Morning Tutorial T5a
- Understanding Software Productivity, Walt Scacchi (U. Southern
California)
What affects software productivity and how do we improve it? This is
a basic and recurring question in software engineering. Many within
the software engineering are often asked to answer this question with
respect to some new tool, technique, methodology or project management
strategy. Unfortunately, most answers that are given are speculative
in nature, and not grounded or substantiated with systematic empirical
evidence. This tutorial will examine what is currently known and
unknown about software productivity through (a) review and comparative
analysis of published empirical studies and measures of software
productivity, and what affects it, and (b) synthesizing what can be
done to better measure, understand and improve software productivity.
- Afternoon Tutorial T5p
- Understanding Software Systems using Reverse Engineering
Technologies, Hausi Müller (U. Victoria)
The need for maintaining and improving software and information
systems has risen dramatically over the past decade. Re-engineering
involves capturing, preserving, and extending knowledge about
software, analyzing and understanding software, and finally changing,
improving and evolving software. Reverse engineering is the process
of generating new information about software (such as synthesizing
abstractions and generating different views) and has been particularly
useful in the re-engineering arena. This tutorial will concentrate on
the program understanding aspects of re-engineering large, existing
software and information systems; its primary purpose is to review the
state of the art in program understanding, with particular focus on
reverse engineering technologies in the context of software
maintenance and evolution of information systems.
dsr
This information last updated Tue 10 Jan 1995