Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Software Evolution


Published on

Paper Review on Towards a Better Understanding of Software Evolution: An Empirical Study on Open Source Software

Published in: Software
  • Login to see the comments

Software Evolution

  1. 1. Paper Review on Towards a Better Understanding of Software Evolution: An Empirical Study on Open Source Software Presented By Md. Shafiuzzaman MSSE 0310
  2. 2. Introduction of the Paper • Authors: Guowu Xie, Jianbo Chen, Iulian Neamtiu, Department of Computer Science and Engineering, University of California, USA • Published in: IEEE International Conference on Software Maintenance • Publication Year: 2009
  3. 3. Area of Inquiry  Software Evolution Process Verify existing laws of software evolution Analyse evolution patterns
  4. 4. Research Questions • Verify whether existing software evolution models are sufficient enough to characterize the software evolution process
  5. 5. Lehman’s Eight Laws (1970) i. Continuing Change ii. Increasing Complexity iii. Self Regulation iv. Conservation of Organizational Stability v. Conservation of Familiarity vi. Continuing Growth vii. Declining Quality viii. Feedback System
  6. 6. Applications • 7 open source project and 653 official releases
  7. 7. I - Continuing Change • A program must continually adapt to its environment, otherwise it becomes progressively less useful
  8. 8. II - Increasing Complexity • A program evolves, its complexity increases
  9. 9. III - Self Regulation • Evolution of large software systems is a self-regulating process  Self Regulation: The system adjusts its size throughout its lifetime
  10. 10. IV - Conservation of Organizational Stability • Productive output tends to stay constant throughout a program’s life time
  11. 11. V - Conservation of Familiarity • Incremental system growth tends to decline source code familiarity
  12. 12. VI - Continuing Growth • Programs usually grow over time to accommodate pressure for change and satisfy increasing set of requirements • LOC • Number of modules • Number of definitions (types, global variables, and functions)
  13. 13. VII - Declining Quality • Software quality appears to be declining over time • Quality metric: defect density (defect/LOC)
  14. 14. VIII - Feedback System • System growth slows down over time
  15. 15. Observations • Laws I, II, III, and VI are confirmed • Continuing Change • Increasing Complexity • Self Regulation • Continuing Growth • ‘Conservation of Organizational Stability, Conservation of Familiarity, Declining Quality, Feedback System’ can’t be validated
  16. 16. Research Weaknesses and Limitations • Lack of process data for the open source projects • Limited to evolution aspects of Lehman’s laws