Software Evolution

16
Paper Review on Towards a Better Understanding of Software Evolution: An Empirical Study on Open Source Software Presented By Md. Shafiuzzaman MSSE 0310

Transcript of Software Evolution

Page 1: Software Evolution

Paper Reviewon

Towards a Better Understanding of Software Evolution:

An Empirical Study on Open Source Software

Presented ByMd. Shafiuzzaman

MSSE 0310

Page 2: Software Evolution

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

Page 3: Software Evolution

Area of Inquiry

Software Evolution Process

Verify existing laws of software evolution

Analyse evolution patterns

Page 4: Software Evolution

Research Questions

• Verify whether existing software evolution models are sufficient enough to characterize the software evolution process

Page 5: Software Evolution

Lehman’s Eight Laws (1970)i. Continuing Change ii. Increasing Complexityiii. Self Regulationiv. Conservation of Organizational Stabilityv. Conservation of Familiarityvi. Continuing Growthvii.Declining Qualityviii.Feedback System

Page 6: Software Evolution

Applications

• 7 open source project and 653 official releases

Page 7: Software Evolution

I - Continuing Change

• A program must continually adapt to its environment, otherwise it becomes progressively less useful

Page 8: Software Evolution

II - Increasing Complexity

• A program evolves, its complexity increases

Page 9: Software Evolution

III - Self Regulation

• Evolution of large software systems is a self-regulating processSelf Regulation: The system adjusts its size throughout its lifetime

Page 10: Software Evolution

IV - Conservation of Organizational Stability

• Productive output tends to stay constant throughout a program’s life time

Page 11: Software Evolution

V - Conservation of Familiarity

• Incremental system growth tends to decline source code familiarity

Page 12: Software Evolution

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)

Page 13: Software Evolution

VII - Declining Quality

• Software quality appears to be declining over time• Quality metric: defect density (defect/LOC)

Page 14: Software Evolution

VIII - Feedback System

• System growth slows down over time

Page 15: Software Evolution

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

Page 16: Software Evolution

Research Weaknesses and Limitations

• Lack of process data for the open source projects• Limited to evolution aspects of Lehman’s laws