Date post: | 13-Dec-2015 |
Category: |
Documents |
Upload: | reynard-gordon |
View: | 217 times |
Download: | 0 times |
Anita Gupta 28/05/2009
1
The Profile of Software Changes in Reused vs. Non-Reused Industrial Software Systems
Doctoral thesis presentation,
Anita Gupta
Trondheim, 28th May 2009
Anita Gupta 28/05/2009
2
Overview
• Introduction
• Company Background
• Research Design
• Results and Contributions
• Lessons Learned and Future Work
Anita Gupta 28/05/2009
3
Introduction
• Main focus: Investigate the relation between software changes and software reuse, and propose reuse guidelines based on these insights.– Trouble reports, change requests and changes in the code.
• Research done in a large Norwegian oil and gas company, StatoilHydro ASA.
• The SEVO project – Software EVOlution in Component-Based Software Engineering project (2004 to 2008) tries to understand
software evolution, focusing on CBSE technology.
Anita Gupta 28/05/2009
4
Motivation
• Software organizations (and researchers) have always been looking for effective strategies to develop quality software quicker and cheaper.
• CBSE (Component-Based Software Engineering) is a potential technology to improve quality and time-to-market.– “the development of software by composing independent,
deployable components” [Sommerville04].
• Our ability to develop and maintain such software is still inadequate.
• Software changes is an important source of information for studying software reuse, evolution and maintenance.
Anita Gupta 28/05/2009
5
Research Goal
• Investigate the advantages/disadvantages of systematic software reuse by analysing software change data (including both defect and non-defect changes).
• Then, based on these insights, propose specific reuse guidelines (as an example of improvements) to StatoilHydro ASA, as well as general recommendations to software practitioners.
Anita Gupta 28/05/2009
6
Research Challenges• Indirect indicators of software quality, especially maintainability
and reliability:– Defect density, CR density and change density not standard
quality measures (RQ1).• Software reuse and its relation to software changes:
– Few empirical studies have done convincing cause-effect analysis between software reuse and reduced defect and change density (RQ1).
• Software evolution and maintenance:– Few studies have compared the change profile of a reused
framework vs. software reusing it (RQ2).• Potential advantages/disadvantages of software reuse:
– Challenges to reuse (and CBSE) are organizational, managerial and technological (RQ3).
Anita Gupta 28/05/2009
7
Research Questions
• RQ1. What is the relation between software changes and software reuse, by comparing the reused framework vs. software reusing it?
• RQ2. How do the reused framework and software reusing it evolve over time?
• RQ3. What improvements can be made towards the actual reuse practice at StatoilHydro ASA?
Anita Gupta 28/05/2009
8
Software Reuse and Component
• Software reuse: “is the systematic practice of developing software from a stock of building blocks..” [Morisio02]. – For instance, program libraries, COTS and OSS
components, or entire software architectures. – A reused component in this study is a component
that is reused in more than one product. – Two distinct activities: development for and with
reuse.• Component: one of the parts that make up a software
[emphasis added] system. May be a hardware/software and subdivided into other components [IEEE90].
Anita Gupta 28/05/2009
9
Software Changes
• Defect changes – Trouble Reports (TRs)– Results in several corrective changes
• Non-defect changes – Change Requests (CRs)– Consists of perfective, adaptive and preventive
changes• Changes in the code
– Resulted from:• Defect Changes• Non-Defect Changes• Others
Anita Gupta 28/05/2009
10
Overview
• Introduction
• Company Background• Research Design• Results and Contributions• Lessons Learned and Future Work
Anita Gupta 28/05/2009
11
StatoilHydro ASA Background
• Oil and gas company with 31000 employees.• Reuse strategy was initiated in 2003.• 100 developers in the IT department, 16 of them working
with JEF, DCF and S&A. • Framework is called the “JEF framework” (20 KNSLOC). • JEF is reused in two applications “as-is”:
– DCF, Digital Cargo Files (25 KNSLOC)– S&A, Shipment & Allocation (64 KNSLOC)– and in other projects
• Data from three releases of JEF, DCF and S&A are analysed.
Anita Gupta 28/05/2009
13
Characteristics of the systems
• Seven components in JEF as a combination of COTS (Commercial-Off-the-Shelf), OSS (Open Source System) components, and in-house built code, initially only in-house built.
• Development technology: Java, J2EE, and SPRING framework (OSS).
• Software Configuration Management (SCM): Rational ClearQuest and Rational ClearCase tools.
Anita Gupta 28/05/2009
14
Overview
• Introduction• Company Background
• Research Design• Results and Contributions• Lessons Learned and Future Work
Anita Gupta 28/05/2009
15
Research Design• Quantitative studies - exploring company databases
(“data mining”) and assessing research questions/hypotheses.
• Qualitative studies – textual web pages and documents and oral interview/discussions with developers. Combined with quantitative studies.
• Three case studies and a small survey. • Rationale for mixed methods has been:
– Exploiting all available data, wider insight.– Triangulation of data/methods.
Anita Gupta 28/05/2009
16
Research Overview
Case study of Trouble Reports
(quantitative/qualitative)
2006-2007
Case study of Change Requests(quantitative/qualitative)
2006-2007
Case study of change data related to the source code (quantitative/qualitative)
2008
August 2004 June 2008
C1
C2
P3
P3
P5
P6
P4P2
C3
C3
C1
C3
C4
C4
Paper
Contribution
Results of study A lead to conducting study B
Survey on developers’ views on software
reuse
(quantitative/qualitative)
2004-2005
C4P1
Phase 1 Phase 2 Phase 3
Anita Gupta 28/05/2009
17
Overview
• Introduction• Company Background• Research Design
• Results and Contributions• Lessons Learned and Future Work
Anita Gupta 28/05/2009
18
Results of RQ1
• RQ1: What is the relation between software changes and software reuse, by comparing the reused framework vs. software reusing it? – Systematic software reuse policy have helped to reduce the
defect density of the reused software.– Interface-type defects higher for JEF than DCF and S&A. – Function-type defects higher for DCF and S&A:
• Higher time-to-market pressure, unstable requirements and less quality control.
– Cautious to involve changes into JEF.– The dominant change type is perfective changes, i.e.
new/changed requirements and optimizations.
Anita Gupta 28/05/2009
19
Results of RQ2
• RQ2: How do the reused framework and software reusing it evolve over time? – Good initial design and stable requirements have reduced
the change rate of JEF. – Functionality and development practices affected
maintenance mostly for JEF, DCF and S&A. Age and size affected it least.
– Change profile for JEF and DCF were in line with the stage model proposed by [Bennett00], while S&A was different.
– JEF went faster from the stage of extending capabilities to the stage where minor defect repairs are made than DCF.
Anita Gupta 28/05/2009
20
Results of RQ3
• RQ3: What improvements can be made towards the actual reuse practice at StatoilHydro ASA? – Late-coming developers did not know about the existence of
a reuse training programme. – Shared information and experience repository would be
beneficial for software reuse. – Analysis of CRs and TRs to improve current reuse process.– Updated software change reporting scheme, so that more
correct and more complete information is reported:• Precise effort data • Component level information • Development phase information
Anita Gupta 28/05/2009
21
Back to slide 22
Back to slide 27
Systematic reuse
Software maturity curve
Systematic reuse policy, e.g. to provide incentives to prevent and remove defect earlier in the life cycle
Systematic reuse policy, e.g. less changes performed on the reused components
The inherent properties (e.g. complexity, algorithm, size) of the reused software
Systematic reuse policy, e.g. reuse functionality is more likely to be well defined
Systematic reuse policy, e.g. adoption of a domain specific library
Lower defect density of the function-type defects
+/-
-
-
-
-
-
Lower defect densities of all types of defects, including:
• assignment
• checking
• algorithm
• data
• timing
• interface
• relationship
• GUI
• function
Anita Gupta 28/05/2009
22
Summary of the Findings
• Applications reusing JEF:– Faces more unstable requirements, longer time-to-market
pressure, and less quality control.• The reused software, JEF:
– Does not have a lower defect and change density than non-reused software.
– Does not reduce the density of the most severe defects.• Should define and implement a systematic reuse policy. • We have proposed specific reuse guidelines to StatoilHydro ASA,
and general recommendations to software practitioners.
Anita Gupta 28/05/2009
23
Overall Discussion of Results
• Can we indicate that software developed for reuse is likely to be more stable vs. software developed with reuse? – We cannot!
• The lower defect density, CR density and change density for JEF over its releases:– Software maturity curve, progressively in lower layers.– Software reuse policy.– The inherent properties (e.g. complexity, algorithm, size) of
JEF; is a generic framework, and has less business logic than DCF and S&A. Figure
Anita Gupta 28/05/2009
24
Contributions, RQ and papersContribution Paper
C1. Differences/similarities of the change profile for the reused framework vs. software reusing it. (RQ1)
P2, P4, P6
C2. Differences/similarities of the defect profile for the reused framework vs. software reusing it. (RQ1)
P5
C3. Description of the software change lifecycle for the reused framework vs. software reusing it. (RQ2)
P3, P6
C4. Identification of possible software reuse improvements. (RQ3)
P1, P5, P6
Anita Gupta 28/05/2009
25
Contributions to SEVO project goals
• G1. Better understanding of software evolution, focusing on CBSE technology. Better understanding of software maintenance and reuse benefits and challenges. Contributions C1, C2 and C3.
• G2. Better methods to predict the risks, costs and profile of software evolution in CBSE. Improvements towards software reuse. Feedback given to StatoilHydro ASA. Contribution C4.
• G3. Contributing to a national competence based around these themes, and G4. Disseminating and exchanging the knowledge gained. Results published at international/national conferences and workshops. Masters’ students involved. Contributions C1-C4.
Anita Gupta 28/05/2009
26
Contributions to StatoilHydro ASA• Upgrade defect and change reporting: To include effort data,
and affected software components.
• Improved configuration management: Rational ClearQuest and Rational ClearCase should be better integrated.
• Improvements related to the O&S Masterplan (specific to StatoilHydro ASA): – Specific recommendations towards reuse, and at one place.– Define the terms: quality, time and cost. – The Masterplan should be more precise and to the point. – The organizational regulations should be less strict and more
visible for the users in the company.
Anita Gupta 28/05/2009
27
Overview
• Introduction• Company Background• Research Design• Results and Contributions
• Lessons Learned and Future Work
Anita Gupta 28/05/2009
28
Lessons Learned (1)
• Software reuse: Recommendations to Researchers– Diverse factors influence the relation between
software reuse and (lower) defect density. Figure– Must consider functionalities and software
development practices. – Defect and change request density correlate
significantly with reliability [Li03], but does not represent causality.
Anita Gupta 28/05/2009
29
Lessons Learned (2)
• Software reuse: Recommendations to StatoilHydro ASA practitioners– Improve their way of reporting software changes. – Careful quality control or testing of reused
software to reduce the possible interface defects.– Staff who understand the reused software must be
retained in the organization for a while after initial development of legacy code.
Anita Gupta 28/05/2009
30
Lessons Learned (3)
• Software reuse: Recommendations to Software Practitioners in General– Define and implement a systematic reuse policy to
reduce the defect density of reused software.– GQM feedback – improve precision of data collection
in the short run.– Changes to the development process should be
suggested in the long run. – Recording of available information and simple
analysis.
Anita Gupta 28/05/2009
31
Future Work
– Revising last paper (submitted to IST journal): Added complexity measures, and the new results indicate that JEF has a lower change density than both DCF and S&A.
– Estimate software reliability by defect and change density. – Further studies on software evolution and maintenance. – Test processes for reused vs. non-reused software. – Effort distribution related to removing the causes of the most
costly defects. – Amount of COTS or OSS used in the software projects, and
integration problems. – StatoilHydro ASA’s reuse practices. – Aspects of software components that make them more or
less fit for reuse.– Agile development methods vs. waterfall models.
Anita Gupta 28/05/2009
32
Acknowledgements
• Thanks to SEVO (contract number 159916/V30), and NTNU for financial support.
• Thanks to my supervisor, Prof. Reidar Conradi and colleagues at SEVO and IDI, Dr. Jingyue Li, Odd Petter Slyngstad and Dr. Daniela Cruzes.
• Thanks to StatoilHydro ASA, Harald Rønneberg and Einar Landre, for the permission to perform studies and to publish the results.