Lecture 01 Fundamentals of Software Engi

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Textbooks

Software Engineering (8th ed.) (Ian Sommerville)


Fundamentals of
U Software Engineering B [Somm] – copies in school library, cheap from Amazon
Software Engineering – A Practitioner’s Approach
(R.S. Pressman) [Pres] – cheap from Amazon
Dr Peter Breuer, School of Computer Science
Earlier editions are also appropriate.
ptb@cs.bham.ac.uk January 2012
We will produce lists of particular recommended reading
sections from these texts as we go.
[Software Engineering is . . . ] an engineering disci-
pline which is concerned with all aspects of software
production [Sommerville (2004)]

University of University of
Birmingham Birmingham

Software Engineering Module Aims

Module code 21936


Two lectures per week Provide an understanding of the
Monday 12.00 LG 33 Learning Centre background, motivation, general techniques
Tuesday 12.00 LR 6 Arts
for the production and maintenance of real-life software
Occasional exercise class/extra lecture
systems
To Be Determined
Examine a commonly used methodology for production
My office hour
of object-oriented software
Tuesday 2-3pm, Room CS F132
Module is 80% exam, 20% assessed Software Engineering is . . . the establishment and
exercise – compete in an open source development use of sound engineering principles in order to eco-
completion data – end of term nomically obtain software that is reliable and works
You’ll find lecture summaries online at efficiently on real machines [Bauer (1969)]
http://www.cs.bham.ac.uk/˜ptb/lectures/FSE/index.html

University of University of
Birmingham Birmingham

Module Content 1.1 Evolution of Software Systems

programming considered an ‘art’


1 Introduction
1 Evolution of software systems — 1955-1965 Custom batch systems of limited distribution
2 Software lifecycles maintenance starts to be a major resource drain
3 System and software failures — 1965-1975 Multiuser, real time and database systems pro-
2 The principle elements of software development duced by ‘software houses’
1 Requirements analysis systematic software engineering methodologies appear
2 Design principles — 1975-1985 Distributed and embedded systems for low cost
3 Implementation issues platforms and PCs
4 Establishing program correctness (testing)
increased complexity makes software cost significant
5 Project estimation, scheduling, management
— 1985- Desktops and mobile devices running AI appli-
3 Introduction to object-oriented software development
cations and parallel systems
1 Overview of the Unified Process and UML
2 Use cases and domain class models
The context in which software development takes place is
3 Models and class responsibilities
continually evolving – engineering = costs−−; quality++
University of University of
Birmingham Birmingham

Classification of Computer Systems Classification of Computer Systems

Engineering and scientific software Real time systems


astronomical, meteorological computations, CAD/CAM monitor, analyze, or control ‘real world’ aspects
number crunching! Often on special hardware must respond within time limit; fast
Business systems Embedded systems
pay-roll, accounts, stock-control systems car ignition, braking, engine control; fridge, radio
huge amounts of data; standard techniques like real time system, but also small, low-power
System software PC software
compilers, operating systems, networked systems word-processors, spreadsheets, games
hardware-oriented; fast, efficient; large and complex graphical user interface
AI software
[SE is] the application of a systematic, disciplined, expert systems, neural networks
quantifiable approach to the development, operation, represent and manipulate abstract symbolic ‘knowledge’
and maintenance of software [IEEE (1993)]
Diverse application areas with differing characteristics & needs!
University of University of
Birmingham Birmingham
A Sweeping Division into Two Broad Classes Software and Hardware costs

Bespoke systems
Relative cost
most computer systems up to 1980s date software hardware
single customer; functionality is result of contract
pre 1960 30% 70%
expensive to buy - whole cost paid by one client
circa 1970 70% 30%
Generic systems
now 90% 10%
became widespread with advent of PCs
development has a market in mind, not one customer Absoute cost
functionality is fluid; cheap to buy – costs spread where date annual software %GDP
Currently expenditure
number of copies of generic systems in use far outstrips USA 1980 $40 billion 2
any other, but . . . USA 1995 $250 billion 10
total money spent on bespoke systems is far larger!

University of University of
Birmingham Birmingham

Why does Software Cost So Much More Now? The Situation is Not Uniform!

Economics 101 says – not enough production capacity to


match demand Some software systems are complex, one-offs
producers do not produce enough, not enough producers, E.g. new air-traffic control system; new airport luggage
not capable of enough output . . . system
software production is still a cottage industry needs new method of design, production, testing, etc.
still ‘hand-crafted’ process; labour-intensive Some systems are routine variations on a theme
software development methods are relatively backward E.g. new web system for internet shopping interface
machinery to produce software is under-utilized and
well-understood production method can be used again
primitive
It depends!
Complexity has moved from hardware to software –
usually a new system contains both
standard hardware is used
standard, well-understood, easy-to-generate technologies
Legacy software maintenance takes away resources one-off, innovative, intellectually demanding elements
original design was often one-off, not future-proof!

University of University of
Birmingham Birmingham

Costing Software Examples of the Cost of Software

Average # lines of code per developer per day


typical measure of productivity for finished system: Medium-sized system
64,000 lines of code
DSL / (NP × TT )
3,200 person days (@ 20 LOC/person/day)
DSL: total Delivered Source-code Lines
13.7 person years (@ 22 days/month, 10 months/year)
NP: Number of programmers employed
TT: Total Time needed to produce system cost per developer is £50,000 pa
includes equipment, building, travel, heating, lighting
Average figure: 20 LOC/day/programmer
£685,000 total project cost
ranges between
2: complex systems (e.g. operating system code) Realizable in 6 months by 17-person in-house team
100: straightforward systems (e.g. database application) ‘one year’ more plausible time-scale, 6 person team
If programmer were paid by output small- to medium-sized software houses employ
sometimes would earn £100,000 pa relatively small teams
sometimes would earn £2,000 pa

University of University of
Birmingham Birmingham

Examples of the Cost of Software Estimating System Size

Time required to produce software increases


exponentially with complexity
Large(ish)-sized system Find average of an arbitrary list of numbers
2,000,000 lines of code 1 person hour
100,000 person days (@ 20 LOC/person/day) Produce alphabetically ordered frequency count of
454 person years (@ 22 days/month, 10 months/year) identifiers in any Java program
total cost £27.2 million (@ £50,000/person/year)
few person weeks
So capital outlay of £27 million before first profit Compile source program in small high-leve language
can add loan and start-up costs to that! 1 person year
The cost per person pery year is crucial Run on-line reservation system for airline
5 person years
costs much lower in ‘Third World’
Operating system for large multi-user computer system
100 person years

University of University of
Birmingham Birmingham
Estimating Production Team Size Looking Forward

Above 1 year, elapsed time impractical


reduce time to year-scale by sharing work across n persons
organisation of the people is important This course studies development of very large systems
organisation of the software is important bigger than the size understandable by one person
Differences between your experience and ‘real world’ E.g. operating system kernel (10 million LOC)
E.g. air-traffic control system (100 million LOC)
type LOC persons life change maint. pay risk requires your imagination!
academic 1K 1 short rare none none slight Next lecture will
‘real’ 100K many long freq. diverse vital! major start looking at software lifecycles, and
software attributes
No one person expects to understand the whole product many new terms will be defined, so take notes!
corollary: if you can understand it, it is not real
corollary: partial understanding is normal

University of University of
Birmingham Birmingham

You might also like