Software Project Management Lecture 1 Introduction to Software Project Management
Dec 18, 2015
Software Project Management 2
Overview Software engineering Software project management Formal methods
Software Project Management 3
Software Crisis Faulty software Delay in completion time Over budgeted Difficult to maintain software
Software Project Management 4
Some UK projects Home Office asylum seeker Casework system:
£80m; abandoned 2001 (Siemens). Pathway UK benefits identity card system:
abandoned 1999 with £1bn losses (ICLFujitsu). Datacentre for UK cabinet office: £85m,
cancelled in 2004 (ITNET). MRC Laboratory of Molecular Biology, FAMIS
purchasing system: £55m; ‘operating failure’ (LogicaGMC).
UK e-University: £62m; abandoned 2004 (Sun, though only £20m of the full figure).
Software Project Management 5
American experience 25% of development projects are abandoned probability of cancellation rises to 50% for
largest developments average project overshoots schedule by 50% 75% of systems are regarded as ‘operating
failures’ U.S. Bureau of Labor Statistics, 1997
Software Project Management 6
Some important facts Relative cost of the software in a
system is growing Increase in demand for software Increase in size and complexity of
software Increase in performance of
hardware
Software Project Management 7
Software EngineeringAn initial, loose definition:
“the establishment and use of sound engineering principles in order to obtain, economically, software that is reliable and works efficiently on real machines”
[Bauer, 1969]
Software Project Management 8
A more useful definition “The application of scientific and engineering efforts to 1. transform an operational need into a system through the use of an iterative process of definition, analysis, design, test, and validation; 2. ensure the compatibility of all interfaces […]; 3. integrate reliability, maintainability, disposability, […] to meet cost, schedule, and technical performance objectives.”
[Blanchard, 1998]
Software Project Management 9
Software Engineering Aimed at large software Systematic and well-defined
techniques, methodologies and tools
To design, code, test and maintain quality software
Within a resource constrained environment
Software Project Management 10
Large Software Developed by more than one person Effective communications are
important – standards, documentation, etc
Management issues Techniques and methodologies are
useful only if automated systems can be built upon them
Software Project Management 11
Phases of Software Development Requirements analysis and
specification Design Coding Testing Installation Maintenance
Software Project Management 12
Some important observations Maintenance is the most expensive
phase and coding is the least expensive phase
The earlier the detection of faults, the less expensive the correction of faults
Software Project Management 13
Characteristics of software Simple and elegant mathematical
representation Logic intensive Cannot have partial completion Design costs are relatively
expensive
Software Project Management 14
What is a project? Key characteristics of a project:
A planned activity Specific objectives or products Work to be carried out in several
phases Limited resources Deadline Large and complex
Software Project Management 15
Major differences between software products and hardware products
Progress of software development is not obviously visible
Modifications of software products are more easy and flexible
Software products are usually more complex than the hardware products in terms of development or construction cost
Software Project Management 16
Major processes in developing a software system
Feasibility study Project planning Project execution
Software Project Management 17
Feasibility Study Analyze the general requirements,
costs and the functionalities and services provided by the system to be developed
Aimed to determine whether a system should be developed or not
Can be viewed as a project itself
Software Project Management 18
Important factors in planning a software project To know the nature of the system
to be developed A management information system or
a control system To know clearly the objectives and
products of the project How to evaluate the objectives and
products after the completion of the project
Software Project Management 19
What is management? Management involves the following
activities: Planning Staffing Innovating Directing Monitoring Liaising …?
Software Project Management 20
What is software project management? Understand the characteristics of
software products Understand what is meant by a
project Understand what is meant by
management
Software Project Management 21
Common problems with software projects Lack of quality standards and measures Lack of measurable milestones Difficult to make the progress visible Poor communications Poor documentation Frequent changes of requirements Over budget and late delivery of
software
Software Project Management 22
Major issues of software project management to be covered
Software development models Software size and cost estimation Software project planning Software risk management Resource allocation Standards: ISO 9000 and CMM Performance tracking and reporting
Software Project Management 23
Major issues of software project management to be covered (cont’d)
Software project configuration management
Software project team management
Software Project Management 24
Main problems encountered with requirements and specifications
Ambiguous Incomplete Inconsistent
Software Project Management 25
Main problems encountered with requirements and specifications (cont’d)
To overcome these problems via Formality – achieving precision Abstraction – concentrating on
essential parts
Software Project Management 26
Formal Methods Mathematically based techniques
Providing a precise and concise language
Supporting formality Supporting abstraction Supporting logical reasoning May support automation
Software Project Management 27
Example: traffic light control
• Simple 4-way crossroads
• Traffic lights control each entry
• Roads run North-South and East-West
N
Software Project Management
28
type Light == red | redamber | green | amber, Junction :: ns : Light ew : Light timer : Nat value nextLight : Light → Light nextLight(l) is case l of red → redamber, redamber → green, green → amber, amber → red end,
Software Project Management
29
limit : Junction → Nat limit(j) is if ns(j) isin {amber, redamber} \/ ew(j) isin {amber, redamber} then 1 else 4 end, next : Junction → Junction next(j) is if limit(j) ≤ timer(j) then mk_Junction(nextLight(ns(j)), nextLight(ew(j)), 0) else mk_Junction(ns(j), ew(j), timer(j) + 1) end, safe : Junction → Bool safe(j) is ~ (ns(j) = green /\ ew(j) = green)
Software Project Management 30
Critical properties Safety:
Not both green at the same time: G(safe(junction)) i.e. Globally (in all states), the junction is safe
Liveness: In each direction, lights will eventually go green: G(F(ns(junction) = green)) i.e. Globally, in the Future, North-South is green /\ G(F(ew(junction) = green))
Software Project Management 31
Is the junction safe and live?
Safe? – depends on what state it starts in
Live? – yes
We can model check the specification to prove these.
Software Project Management
32
transition_system [T] local junction : Junction := mk_Junction(red, red, 0) in [change] true ==> junction' = next(junction) end ltl_assertion [safe] T |- G(safe(junction)), [live_ns] T |- G(F(ns(junction) = green)), [live_ew] T |- G(F(ew(junction) = green))
Software Project Management
33
Counterexample for 'safe':========================Step 0:junction = mk_Junction(red, red, 0)------------------------Step 1:junction = mk_Junction(red, red, 1)...Step 4:junction = mk_Junction(red, red, 4)------------------------Step 5:junction = mk_Junction(redamber, redamber, 0)...Step 7:junction = mk_Junction(green, green, 0)
Summary:The assertion 'safe' is invalid.The assertion 'live_ns' is valid.The assertion 'live_ew' located at is valid.
Software Project Management 34
What are formal methods for? Clarify and fix requirements Support early analysis:
Static analysis Testing Model checking Proof
Provide a basis for implementation
Software Project Management 35
Specification languages The traffic light example was
written in RAISE There are many formal methods,
some general purpose, some specialised
Software Project Management 36
A good slogan You may not be able to avoid
making mistakes … But you must find them before
they cost too much!
Software Project Management 37
Modelling Modern software engineering is
based on making models A formal model (eg in RAISE)
supports more analysis than in informal one (eg in UML)
Increasingly, implementations will be derived from models: programmers will be obsolete
Software Project Management 38
References Hughes, B., and Cotterell, M.
(1999) Software Project Management, McGraw Hill
Dean, C.N., and Hinchey, M.G. (1996) Teaching and Learning Formal Methods, Academic Press
Sommerville, I. (2001) Software Engineering, Pearson Education.