software process improvement zcurrent problems zpromising approaches/solutions znature of software...
TRANSCRIPT
Software Process Improvement
Current ProblemsPromising Approaches/SolutionsNature of Software EngineeringSoftware Engineering ResearchRecent Developments and the Future
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
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”.
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]
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)
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.
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.
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.
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.
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.
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.
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.
Summary
Future TopicsProcess Models and
ImprovementFormal MethodsClean RoomEmpirical basis of Software
Engineering