Top Banner
Software Project Management Lecture 1 Introduction to Software Project Management
39
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Project Management Lecture 1 Introduction to Software Project Management.

Software Project Management

Lecture 1Introduction to Software

Project Management

Page 2: Software Project Management Lecture 1 Introduction to Software Project Management.

Software Project Management 2

Overview Software engineering Software project management Formal methods

Page 3: Software Project Management Lecture 1 Introduction to Software Project Management.

Software Project Management 3

Software Crisis Faulty software Delay in completion time Over budgeted Difficult to maintain software

Page 4: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 5: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 6: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 7: Software Project Management Lecture 1 Introduction to Software Project Management.

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]

Page 8: Software Project Management Lecture 1 Introduction to Software Project Management.

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]

Page 9: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 10: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 11: Software Project Management Lecture 1 Introduction to Software Project Management.

Software Project Management 11

Phases of Software Development Requirements analysis and

specification Design Coding Testing Installation Maintenance

Page 12: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 13: Software Project Management Lecture 1 Introduction to Software Project Management.

Software Project Management 13

Characteristics of software Simple and elegant mathematical

representation Logic intensive Cannot have partial completion Design costs are relatively

expensive

Page 14: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 15: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 16: Software Project Management Lecture 1 Introduction to Software Project Management.

Software Project Management 16

Major processes in developing a software system

Feasibility study Project planning Project execution

Page 17: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 18: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 19: Software Project Management Lecture 1 Introduction to Software Project Management.

Software Project Management 19

What is management? Management involves the following

activities: Planning Staffing Innovating Directing Monitoring Liaising …?

Page 20: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 21: Software Project Management Lecture 1 Introduction to Software Project 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

Page 22: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 23: Software Project Management Lecture 1 Introduction to Software Project Management.

Software Project Management 23

Major issues of software project management to be covered (cont’d)

Software project configuration management

Software project team management

Page 24: Software Project Management Lecture 1 Introduction to Software Project Management.

Software Project Management 24

Main problems encountered with requirements and specifications

Ambiguous Incomplete Inconsistent

Page 25: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 26: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 27: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 28: Software Project Management Lecture 1 Introduction to Software Project Management.

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,

Page 29: Software Project Management Lecture 1 Introduction to Software Project Management.

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)

Page 30: Software Project Management Lecture 1 Introduction to Software Project Management.

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))

Page 31: Software Project Management Lecture 1 Introduction to Software Project Management.

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.

Page 32: Software Project Management Lecture 1 Introduction to Software Project Management.

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))

Page 33: Software Project Management Lecture 1 Introduction to Software Project Management.

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.

Page 34: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 35: Software Project Management Lecture 1 Introduction to Software Project Management.

Software Project Management 35

Specification languages The traffic light example was

written in RAISE There are many formal methods,

some general purpose, some specialised

Page 36: Software Project Management Lecture 1 Introduction to Software Project Management.

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!

Page 37: Software Project Management Lecture 1 Introduction to Software Project Management.

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

Page 38: Software Project Management Lecture 1 Introduction to Software Project Management.

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.

Page 39: Software Project Management Lecture 1 Introduction to Software Project Management.

Software Project Management 39

References RAISE:

http://www.iist.unu.edu/raise Dines Bjørner (2006) Software

Engineering, Springer