This is the ever-changing slide page.

This page provides pointers to the overhead slides.

The class slides are currently in PostScript format only: your browser should be able to use GhostView, or something similar, as a helper.


The Software Crisis
From a Scientific American article of this title comes a number of background issues, observations, and case studies for consideration.

C++ Overview
These slides provide an overview of the main features of C++, beginning with a comparison of struct and class and ending with templates.

GP Overview
The GP environment is summarized, and its main features are outlined.

Issues in Software Development
Large-scale software development is characterized, and the main issues encountered in dealing with such development are reviewed.

Software Development Process
Classical textbook models of the software development life cycle are surveyed.

Overview of Project Management Issues
Various aspects of project management responsibility and management activity are surveyed. This is material from Chapter 3 of Sommerville with a few additions to include the management issues that arise in managing the contract purchase of software rather than its development. As an example that contracting for software to be developed can also be done badly, here is a link to an article on what can go wrong if the purchaser does not keep a sharp eye on the developer.

Overview of Personnel Management Issues
Material from Chapter 28 of Sommerville dealing with the structure of teams, group dynamics, and human learning.

Establishing Software Requirements
Material from Chapters 4 and 7 of Sommerville is presented on the various levels of requirements that may be found in a development project, their formulation and use by various people in the client and developer side, and the need for orderly revision and change.

Some Diagrammatic Design Tools
Material from Chapters 6, 12, 14, and 15 of Sommerville is presented on various analysis and design approaches and some sketching methods that can be used to capture aspects of the analysis and design.

Aspects of Software Quality
Software quality is a great big fuzzy area.
Material from Chapter 12 of Sommerville is presented along with some material from several other authors.
These slides are still in their formative stages.

ISO 9000
Software quality is a great big fuzzy area.
However, the ISO wants to change all that.

Major Aspects of the Testing Process
Testing covers a large range of activities, confronts various categories of information, and the information is assessed in a variety of ways to govern and manage software development.

White Box Testing and Cyclomatic Complexity
Real program development teams will often have to guarantee that critical software is absolutely correct. This material presents a method for determining all possible paths through code as a prelude to determining data that will exercise these paths. A byproduct of this approach is a measure of the complexity of the code.

Metrics and Estimation
How do you measure the size of a software product (particularly before it is built)? How do you estimate its cost? What are the products of a software development project? How can you compare quality of products? Some of these issues are addressed directly in the slides of this topic, and others of these issues are hinted at.