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:
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.