software process improvement zcurrent problems zpromising approaches/solutions znature of software...

13
Software Process Improvement Current Problems Promising Approaches/Solutions Nature of Software Engineering Software Engineering Research Recent Developments and the Future

Upload: arabella-parsons

Post on 30-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

Software Process Improvement

Current ProblemsPromising Approaches/SolutionsNature of Software EngineeringSoftware Engineering ResearchRecent Developments and the Future

Page 2: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

Software Chronic Crisis

Studies in the USA have shown: For every 6 new large-scale software systems

put into operation, 2 others are cancelled!The average software development project

over shoots its schedule by half (and larger projects generally do worse).

Around 75% of all large systems are “operating failures” i.e. do not function as intended or are not used at all. [Source of USA figures: Software Productivity Research]

W. Wayt Gibbs, Software Chronic Crisis, Scientific American, September 1994

Page 3: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

History

Programming has been an established activity undergoing refinement for more than 50 years.

Over 25 years ago, in Autumn 1968, the “Software Crisis” was acknowledged, and the establishment of “Software Engineering” was proposed as a means of solving the Software Crisis of 1968 where SE is the “application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software”.

Page 4: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

Current Situation However, today the vast majority of code is still hand

crafted from programming languages by artisans using techniques they neither measure nor are able to repeat consistently.

But academics have made some progress in formal methods and in instituting software engineering degrees.

Industry has made some progress towards market structures and technology supporting reusable software parts.

Even so, a research innovation typically requires 18 years to become standard industrial practice.

[SEI finding]

Page 5: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

Current trends: The decade ahead A combination of academic industry and government is

needed to hoist software development to the level of an industrial age engineering discipline within the decade (2005)

As we move into the Information Age, error-free software will become the expected norm.

This will be especially true for embedded software in consumer products.

The amount of s/w in consumer products is doubling every 2 years e.g. TV 500Kb, Shaver 2Kb

Existing problems in attempts to develop error-free Real-Time s/w for defense applications do not give us confidence (Gilles Kahn of INRIA)

Page 6: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

Large System Integration Problem

Example 1987 CA Department of Motor Vehicles commissioned system to merge state’s driver and vehicle registration systems.

Goal was one-stop renewal kiosks in 1993Costs exploded 6.5 times and delivery

date receded to 1998Project cut after 7 years and $44.3 M

dollars investment loss.

Page 7: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

Large and growing systems...

In general, software systems have seen an order of magnitude growth in size every decade (for some industries this has occurred every half decade). [SEI finding]

Software disasters inevitable unless software development became engineering discipline with roots in science and mathematics.

Page 8: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

Some Solutions

Progress on Software Process, e.g. the SEI’s Capability Maturity Model (CMM)

5 Level Model - 1 is Chaotic, 2 is Repeatable, 3 is Defined, 4 is Managed and 5 is Optimising

But 75% of companies are at Level 1 and 24% are at Levels 2 and 3.

USA Space Shuttle software maintenance is at Level 5.

Page 9: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

Mathematical Foundations and Formal Methods

Progress on error-free software is slow.Plan in mid90s to beta-test new version of Windows

by 20,000 volunteer. [Microsoft Chief Architect C Simonyi]

This is expensive, inefficient and usually impractical.View of Martyn Thomas founder of Praxis is that we

should rely on mathematical analysis of formal specifications to predict how software will behave.

Applicable to either on most critical parts or whole systems.

Page 10: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

Clean Room Approach and Improved Testing

Clean Room = Application of rigorous engineering techniques from electronic engineering

Coupled with new approaches to testing emphasizing probabilities of execution paths. Putting testing on a more scientific basis.

Page 11: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

Progress on Software Reuse

There is some work on component based development, reusable parts and standardisation to support reuse

But more research is needed before this becomes widespread industrial practice.

Page 12: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

No Single SolutionA combination of Approaches is needed - there

is no silver bullet!In addition, Software Engineering needs a

better empirical basis - we need more experiments!

E.g. Software productivity measurement problems No reliable data No uniform measures No quality considerations (1000 lines of spaghetti or

lasagna.

Page 13: Software Process Improvement zCurrent Problems zPromising Approaches/Solutions zNature of Software Engineering zSoftware Engineering Research zRecent Developments

Summary

Future TopicsProcess Models and

ImprovementFormal MethodsClean RoomEmpirical basis of Software

Engineering