Introduction to Software Engineering

Lecture 1 - Background

Dr Jim Briggs, 24 September 1998

What is the course about?

How to produce

Large vs. small-scale programming

Typical software project sizes:

Type

People

Duration

Size

Trivial

1

1-4 wks

500L

Small

1

1-6 mths

1-2KL

Medium

2-20

1-3 yrs

5-100KL

Large

100-1000

4-5 yrs

1ML

Huge

2000-5000

5-10 yrs

1-10ML

K(M)L = Thousands (Millions) of delivered source lines of program

Note change in productivity - 6,000 lines pa to 200 lines pa.

Importance of LSP - Financial

Software is becoming a dominant factor in the finances of many companies, and for most developed nations.

Importance of LSP - Social

Computers are becoming all pervasive and their errors (caused by software faults) can be catastrophic.

Problems of LSP - Economic/Managerial

One US Air Force Project for a "Command and Control" system.

This is an extreme, but not unique case. In 1988, a bank cancelled a project after spending $60M without fixing their problems!

LSP & Software Engineering

Software Engineering is the name given to the disciplined approach to producing large scale programs.

The goal of Software Engineering is the construction of systems in a cost-effective and timely manner so that they meet their initial requirements and they can be modified in a controlled fashion to satisfy changes in their requirements.

It is analogous to other engineering disciplines, although Software Engineering is less well developed.

We will use LSP to refer to the problem and SE to refer to the (emerging) solutions.

What is Software Engineering?

Definition similar to other engineering disciplines

Software Engineering is the application of science, mathematics, principles and tools by which computers are made useful to man by means of software, which comprises computer programs, associated procedures and documentation.

The science underlying software engineering is ill developed, but some is relevant (e.g. machine theory) and there is applicable mathematics, and there are many principles and tools (themselves computer programs) which can be used in software engineering.

Project Stages in SE

Typical set of Stages:

  1. Initial Conception
  2. Requirements Analysis
  3. Specification
  4. High Level Design (Architecture) - identification of modules
  5. Low Level Design and Module Test
  6. System Integration & Testing
  7. Acceptance Testing
  8. Use and "Maintenance"
    1. Error Correction
    2. Enhancement - adding facilities
  9. Replacement by new System

There may be other stages, e.g. prototyping.

This may cover 25 or 30 years, and often maintenance is the dominant cost.

Problems of LSP - NOT Programming

Sample of US projects - distribution of effort

Project type

Analysis & design

Coding

Test & Integrate

C & C

35%

17%

48%

Space

34%

20%

46%

Operating System

33%

15%

50%

Scientific

44%

26%

30%

Business

44%

28%

28%

Problems mainly in:

Problems of LSP - Maintenance

A goal of SE is to carry out development so as to make maintenance comparatively easy - in essence this means that, inter alia:

Problems of LSP - Productivity

Productivity varies with people, project size and development technology.

Productivity depends on project type.

Productivity depends on many factors, is difficult to predict, and difficult to control. The cost of communication is high - breaking down systems in to largely independent modules is critical to success in LSP.

Course plan

Schedule

Session

Subject

1

Introduction

2

Software engineering as a process

3

Characteristics of large-scale systems

4

Requirements and specifications 1

5

Requirements and specifications 2

6

The CORE requirements methodology

7

Software validation 1

8

Software validation 2

9

Software project management 1

10

Software project management 2

11

Revision session

Assessment

Exam during the semester 1 exam period.

Recommended books

To buy...

Ian Sommerville, Software engineering, Addison-Wesley (5th edition 1996).

Alternative purchases...

Roger Pressman, Software engineering - a practitioner's approach, McGraw-Hill.

Supplementary reading...

Fred Brooks, The mythical man-month, Addison-Wesley.

Alan Davis, Software requirements, Prentice-Hall.

Alan Gillies, Software quality - theory and management, Chapman & Hall.