advanced topics in software engineering cmpe 550 fall 2008
TRANSCRIPT
![Page 1: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/1.jpg)
Advanced Topics in Software Engineering
Cmpe 550
Fall 2008
![Page 2: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/2.jpg)
Is There a Problem?
• 7 out of every 10 major high risk development programs are encountering software problems and rate is increasing.
• The development of large applications in excess of 5000 function points (~500,000 LOC) is one of the most risky business undertakings in the modern world
![Page 3: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/3.jpg)
Is There a Problem?
• The risks of cancellation or major delays rise rapidly as the overall application size increases– 65% of large systems (over 1,000,000 LOC)
are cancelled before completion– 50% for systems exceeding half million LOC– 25 % for those over 100,000 LOC
• Failure or cancellation rate of large software systems is over 20%
![Page 4: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/4.jpg)
Is There a Problem?
• After surveying 8,000 IT projects, Standish Group reported about 30% of all projects were cancelled.
• Average cancelled project in U.S. is about a year behind schedule and has consumed 200% of expected budget
• Work on cancelled projects comprises about 15% of total U.S. software efforts, amounting to as much as $14 billion in 1993 dollars.
![Page 5: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/5.jpg)
Is There a Problem?
• Of completed projects, 2/3 experience schedule delays and cost overruns
• 2/3 of completed projects experience low reliability and quality problems in first year of deployment
• Software errors in fielded systems typically range from 0.5 to 3.0 occurrences per 1000 lines of code
![Page 6: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/6.jpg)
• Have you ever been on a project where the software was never finished or used?
• What were some of the problems?
![Page 7: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/7.jpg)
Types of Problem Projects
• Mission Impossible– Likely to succeed, happy workers
• Ugly– Likely to succeed, unhappy workers
• Kamikaze– Unlikely to succeed, happy workers
• Suicide– Unlikely to succeed, unhappy workers
![Page 8: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/8.jpg)
Understanding the Problem
![Page 9: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/9.jpg)
Understanding the Problem
![Page 10: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/10.jpg)
Software Evolution (Maintenance)
• Belady and Lehman’s Laws:– Software will continually change.– Software will become increasingly
unstructured as it is changed.
• Leveson’s Law:– Introducing computers will not reduce
personnel numbers or costs.
![Page 11: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/11.jpg)
• Is software engineering more difficult than hardware engineering?
• Why or why not?
![Page 12: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/12.jpg)
Why is software engineering hard?
• "Curse of flexibility"
• Organized complexity
• Intangibility
• Lack of historical usage information
![Page 13: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/13.jpg)
The Curse of Flexibility
• "Software is the resting place of afterthoughts."• No physical constraints
– To enforce discipline on design, construction and modification– To control complexity
• So flexible that start working with it before fully understanding what need to do
• The untrained can get partial success.– "Scaling up is hard to do"
• ‘‘And they looked upon the software and saw that it was good. But they just had to add one other feature ...’’
![Page 14: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/14.jpg)
Complexity
• The underlying factor is intellectual manageability• 1. A "simple" system has a small number of unknowns in
its interactions within the system and with its environment.
• 2. A system becomes intellectually unmanageable when the level of interactions reaches the point where they cannot be thoroughly– planned– understood– anticipated– guarded against
![Page 15: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/15.jpg)
Dealing with Complexity
• Analytic Reduction (Descartes)– Divide system into distinct parts for analysis
purposes.– Examine the parts separately.
• Three important assumptions:– The division into parts will not distort the phenomenon
being studied.– Components are the same when examined singly as
when playing their part in the whole.– Principles governing the assembling of the
components into the whole are themselves straightforward.
![Page 16: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/16.jpg)
Dealing with Complexity
• Statistics– Treat as a structureless mass with
interchangeable parts.– Use Law of Large Numbers to describe
behavior in terms of averages.
• Assumes components sufficiently regular and random in their behavior that they can be studied statistically.
![Page 17: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/17.jpg)
Software
• Too complex for complete analysis:– Separation into non-interacting subsystems
distorts the results.– The most important properties are emergent.
• Too organized for statistics– Too much underlying structure that distorts
the statistics.
![Page 18: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/18.jpg)
AREAS FOR FUTURE RESEARCH
why software is important?
SW Research FP6
•Fixed communications•Mobile communications•PDAs•Home Platforms
New Services
![Page 19: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/19.jpg)
SOFTWARELifeblood of the Information Society
• The crucial component in this interconnected world will be the software
• Software technologies are already crucially important for the development of advanced products and services
![Page 20: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/20.jpg)
SOFTWAREThe Market
• The European Software Market – Forms about a third of the global software
market– Has expected annual growth of 3-4% in the
coming 5 years– 2005: 74 billion Euros
• Software accounts for the 10% of the total ICT market in Europe
![Page 21: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/21.jpg)
Research Challenges
• Trend to large, heterogenous, distributed sw systems leads to an increase in system complexity
• Software and service productivity lags behind requirements
• Increased complexity takes sw developers further from stakeholders
• Importance of interoperability, standardisation and reuse of software increasing.
![Page 22: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/22.jpg)
Research Challenges
• Service Engineering
• Complex Software Systems
• Open Source Software
• Software Engineering Research
![Page 23: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/23.jpg)
Software Engineering Research Approaches
• Balancing theory and praxis
• How engineering research differs from scientific research
• The role of empirical studies
• Models for SE research
![Page 24: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/24.jpg)
The need to link research with practice
• Why after 25 years of SE has SE research failed to influence industrial practice and the quality of resulting software?
• Potts argues that this failure is caused by treating research and its application by industry as separate, sequential activities.
• What he calls the research-then-transfer approach. The solution he proposes is the industry-as-laboratory approach.
.
Colin Potts, Software Engineering Research Revisited, IEEE Software, September 1993
![Page 25: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/25.jpg)
Research-then-Transfer
Incremental Refinementof research solutions
Problem evolves invisibly to the research community
ProblemV1
Wide gulf bridgedby indirect, anecdotal knowledge
ResearchSolutionV1
Technologytransfer Gapbridged byhard, but frequentlyinappropriate technology
ProblemV2
ProblemV3
ProblemV4
ResearchSolutionV2
ResearchSolutionV3Research
SolutionV4
![Page 26: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/26.jpg)
Research-then-Transfer Problems
• Both research and practice evolve separately• Match between current problems in industry
and research solutions is haphazard• No winners
![Page 27: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/27.jpg)
Disadvantages of Research-then-Transfer
• Research problems described and understood in terms of solution technology - whatever is current research fashion. Connection to practice is tenuous.
• Concentration is on technical refinement of research solution - OK but lacks industrial need as focus, so effort may be misplaced.
• Evaluation is difficult as research solutions may use technology that is not commonly used in industry
• Delay in evaluation means problem researchers are solving has often evolved through changes in business practice, technology etc.
• Transfer is difficult because industry has little basis for confidence in proposed research solution.
![Page 28: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/28.jpg)
Industry-as-Laboratory Approach to SE research
ProblemV2
Problem
V1
Problem
V3
Problem
V4
ResearchSolution
V1
ResearchSolution
V2
ResearchSolution
V3
ResearchSolution
V4
![Page 29: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/29.jpg)
Advantages of Industry-as-Laboratory Approach
• Stronger connection at start because knowledge of problem is acquired from the real practitioners in industry, often industrial partners in a research consortium.
• Connection is strengthened by practitioners and researchers constantly interacting to develop the solution
• Early evaluation and usage by industry lessens the Technology Transfer Gap.
• Reliance on Empirical Research– shift from solution-driven SE to problem-focused SE
– solve problems that really do matter to practitioners
![Page 30: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/30.jpg)
Early SEI industrial survey research
• What a SEI survey* learned from industry:– There was a thin spread of domain knowledge in most
projects– Customer requirements were extremely volatile.
• These findings point towards research combining work on requirements engineering with reuse - instead of the approach of researching these topics by separate SE research communities - as is still found today!
*From ‘A field study of the Software Development Process
for Large Systems’, CACM, November 1988.
![Page 31: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/31.jpg)
Further Results from Potts et al Early 90s Survey
23 software development organizations (during 1990-92). (Survey focused on Requirements Modeling process)
• Requirements were invented not elicited.• Most development is maintenance.• Most specification is incremental.• Domain knowledge is important.• There is a gulf between the developer and user• User-interface requirements continually change.• There is a preference for office-automation tools over
CASE tools to support development. I.e. developers found using a WP + DB more useful than any CASE tools.
![Page 32: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/32.jpg)
Industry-as-Laboratory emphasizes Real Case Studies
Advantages of case studies over studying problems in research lab.
• Scale and complexity - small, simple (even simplistic) cases avoided - these often bear little relation to real problems.
• Unpredictability - assumptions thrown out as researchers learn more about real problems
• Dynamism - a ‘real’ case study is more vital than a textbook account
The real-world complications of industrial case studies are more likely to throw up representative problems and phenomena than research laboratory examples influenced by the researchers’ preconceptions.
![Page 33: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/33.jpg)
Need to consider Human/Social Context in SE research
• Not all solutions in software engineering are solely technical.
• There is a need to examine organizational, social and cognitive factors systematically as well.
• Many problems are “people problems”, and require “people-orientated” solutions.
![Page 34: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/34.jpg)
Theoretical SE research
• While there is still a place for innovative, purely speculative research in Software Engineering, research which studies real problems in partnership with industry needs to be given a higher profile.
• These various forms of research ideally complement one another.
• Neither is particularly successful if it ignores the other.• Too industrially focused research may lack adequate
theory!
• Academically focused research may miss the practice!
![Page 35: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/35.jpg)
Research models for SE
• Problem highlighted by Glass*: Most SE Research in 1990s was Advocacy Research.
Better research models needed.
• The software crisis provided the platform on which most 90s research was founded.
• SE Research ignored practice, for the most part; lack of practical application and evaluation were gapping holes in most SE research.
• Appropriate research models for SE are needed.* Robert Glass, The Software -Research Crisis, IEEE Software, November 1994
![Page 36: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/36.jpg)
Methods underlying Models
• Scientific method
• Engineering method
• Empirical method
• Analytical methodFrom W.R.Adrion, Research Methodology in Software
Engineering, ACM SE Notes, Jan. 1993
![Page 37: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/37.jpg)
Scientific method
Observe real world
Propose a model or theoryof some real world phenomena
Measure and analyzeabove
Validate hypotheses of the model or theory
If possible, repeat
![Page 38: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/38.jpg)
Engineering method
Observe existing solutions
Propose better solutions
Build or develop bettersolution
Measure, analyze, andevaluate
Repeat until no further improvements are possible
![Page 39: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/39.jpg)
Empirical method
Propose a model
Develop statistical or otherbasis for the model
Apply to case studies
Measure and analyze
Validate and then repeat
![Page 40: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/40.jpg)
Analytical method
Propose a formal theory or set ofaxioms
Develop a theory
Derive results
If possible, compare withempirical observations
Refine theory if necessary
![Page 41: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/41.jpg)
Need to move away from purely analytical method
• The analytical method was the most widely used in mid-90s SE research, but the others need to be considered and may be more appropriate in some SE research.
• Good research practice combines elements on all these approaches.
![Page 42: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/42.jpg)
4 important phases for any SE research project (Glass)
• Informational phase - Gather or aggregate information via
– reflection
– literature survey
– people/organization survey– case studies
• Propositional phase - Propose and build hypothesis, method or algorithm, model, theory or solution
• Analytical phase - Analyze and explore proposal leading to demonstration and/or formulation of principle or theory
• Evaluation phase - Evaluate proposal or analytic findings by means of experimentation (controlled) or observation (uncontrolled, such as case study or protocol analysis) leading to a substantiated model, principle, or theory.
![Page 43: Advanced Topics in Software Engineering Cmpe 550 Fall 2008](https://reader030.vdocument.in/reader030/viewer/2022033021/56649ee45503460f94bf2ddb/html5/thumbnails/43.jpg)
Software Engineering Research Approaches
• The Industry-as-Laboratory approach links theory and praxis
• Engineering research aims to improve existing processes and/or products
• Empirical studies are needed to validate Software Engineering research
• Models for SE research need to shift from the analytic to empirical.