1 The Laws of Software Evolution Tori Bowman CSSE 375, Rose-Hulman September 25, 2007 *based on Don Bagert’s lesson.

Slides:



Advertisements
Similar presentations
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
Advertisements

These courseware materials are to be used in conjunction with Software Engineering: A Practitioners Approach, 6/e and are provided with permission by R.S.
Configuration management
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Using the Crosscutting Concepts As conceptual tools when meeting an unfamiliar problem or phenomenon.
Software Construction and Evolution - CSSE 375 Software Visualization Tools and Software Evolution Shawn and Steve.
CMMI – Continuous as well as staged model CMMI capability levels – Incomplete, performed, managed, defined, quantitatively managed, optimized Example.
16/05/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestur 39 Lehman´s Laws of Software Evolution Worth a read?
1 Software Maintenance and Evolution CSSE 575: Session 9, Part 1 Software Evolution and Visualizing That! Steve Chenoweth Office Phone: (812)
SWE Introduction to Software Engineering
Software Evolution – part 2
Dr Kettani, Spring 2002 Software Engineering IIFrom Sommerville, 6th edition Software change l Managing the processes of software system change.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
1 Course Intro Construction & Evolution CSSE 375 Steve Chenoweth.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Software evolution.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
How ISO 9001 Fits Into The Software World? Management of Software Projects and Personnel CIS 6516 March 6, 2006 Prepared by Olgu Yilmaz Swapna Mekala.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 6/e.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Supplementary Slides for Software Engineering: A Practitioner's Approach, 6/e Part 1 Supplementary Slides for Software Engineering: A Practitioner's.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CPSC 871 John D. McGregor MMS1 Maintenance & a new trend.
Software evolution. Objectives l To explain why change is inevitable if software systems are to remain useful l To discuss software maintenance and maintenance.
Software change  Managing the processes of software system change.
TOPIC R Software Maintenance, Evolution, Program Comprehension, and Reverse Engineering SEG4110 Advanced Software Design and Reengineering.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
Chapter 1 Software and Software Engineering. A Quick Quiz 1. What percentage of large projects have excess schedule pressure? 25% 50% 75% 100% 2. What.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Software change l Managing the processes of software system change.
1 CS 426 Senior Projects Chapter 3: The Requirements Workflow [Arlow & Neustadt, 2005] January 31, 2012.
Software Requirements Engineering: What, Why, Who, When, and How
Analysis of Schema Evolution for Databases in Open-Source Software MSc Thesis - Ioannis Skoulis Department of Computer Science and Engineering.
 CS 5380 Software Engineering Chapter 9 Software Evolution.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
An Introduction to Software Engineering. Communication Systems.
Module 8: Software Evolution CSEB233 Fundamentals of Software Engineering Badariah Solemon 2010.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
Figures – Chapter 9. Figure 9.1 A spiral model of development and evolution.
SWE311_Ch01 (071) Software & Software Engineering Slide 1 Chapter 1 Software and Software Engineering Chapter 1 Software and Software Engineering.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: Why worry about SW Engineering? 1 Software Engineering CS 421 / SWE 421 Dan Fleck.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
Software Evolution Program evolution dynamics Software maintenance Complexity and Process metrics Evolution processes 1.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Requirements Validation
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Module 8: Software Evolution CSEB233 Fundamentals of Software Engineering Badariah Solemon 2010.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
CS223: Software Engineering Lecture 32: Software Maintenance.
Part 1 Introduction to Software Engineering 1 copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Overview Software Maintenance and Evolution Definitions
Software Engineering (CSI 321)
For University Use Only
Overview: Software and Software Engineering
1.1.1 Software Evolution.
Chapter 27 Software Change.
Presentation transcript:

1 The Laws of Software Evolution Tori Bowman CSSE 375, Rose-Hulman September 25, 2007 *based on Don Bagert’s lesson

State of 375 What’s due? What’s due? Thursday: Status report (documents due Wednesday) Thursday: Status report (documents due Wednesday) Friday: Project help (testing & packaging) Friday: Project help (testing & packaging) This This Legal discussion: F/OSS Legal discussion: F/OSS 2

3 References The Laws of Software Evolution RevisitedThe Laws of Software Evolution Revisited by M. M. Lehman, 21 January 1997

4 Outline Background Background The Laws of Software Evolution The Laws of Software Evolution Why does Lehman call them “Laws”? Why does Lehman call them “Laws”? FEAST – A feedback system for software evolution FEAST – A feedback system for software evolution

5 Background – 1/2 Relate primarily to perfective change Relate primarily to perfective change Developed by M.M. Lehman Developed by M.M. Lehman The Laws themselves have “evolved”, from three in 1968 to eight by 1997 The Laws themselves have “evolved”, from three in 1968 to eight by 1997 Have been empirically demonstrated for at least two systems: Have been empirically demonstrated for at least two systems: OS/360 (IBM mainframe OS in the 1960’s) OS/360 (IBM mainframe OS in the 1960’s) Logica FW (a financial transaction system) Logica FW (a financial transaction system)

6 Background – 2/2 Is largely based on the concept of the existence of positive and negative feedback systems existing in the software environment Is largely based on the concept of the existence of positive and negative feedback systems existing in the software environment Examples of feedback systems: Examples of feedback systems: Users Users Management Management Developers Developers Government Government

Definitions S-type software S-type software Definition: those addressing a problem with a computational solution in an abstract and closed, for example mathematical, domain Definition: those addressing a problem with a computational solution in an abstract and closed, for example mathematical, domain Example: floating point package may be judged correct versus the IEEE standard for floating point Example: floating point package may be judged correct versus the IEEE standard for floating point E-type software Definition: produced because it satisfies some real world need and so is forced to evolve as the reality changes Example: embedded code must fit the hardware it is placed in and must change if the hardware is changed – majority of SW is here 7

8 The Laws of Software Evolution I - Continuing Change: An E-type (evolutionary type) program that is used must be continually adapted else it becomes progressively less satisfactory. This is due in part to the fact that the software never exactly matches the desired operational domain (the “Software Uncertainty Principle”).

9 The Laws of Software Evolution II – Increasing Complexity: As a program is evolved its complexity increases unless work is done to maintain or reduce it. Related to the Second Law of Thermodynamics: “In all energy exchanges, if no energy enters or leaves the system, the potential energy of the state will always be less than that of the initial state." This is also commonly referred to as entropy. Related to the Second Law of Thermodynamics: “In all energy exchanges, if no energy enters or leaves the system, the potential energy of the state will always be less than that of the initial state." This is also commonly referred to as entropy. This law exists because as the E-type software is adapted to the changing operational environment, there is not only an increasing number of interactions, but an increasing number of interactions that were adds-on to the original design of the system. If effort is expended to combat this (through re- engineering and other techniques) this means less effort for new functionality. This law exists because as the E-type software is adapted to the changing operational environment, there is not only an increasing number of interactions, but an increasing number of interactions that were adds-on to the original design of the system. If effort is expended to combat this (through re- engineering and other techniques) this means less effort for new functionality.

10 The Laws of Software Evolution III – Self Regulation: The program evolution process is self regulating with close to normal distribution of measures of product and process attributes. From Lehman’s paper: “Checks and balances will have been established by…management to ensure that operational rules are followed and organizational goals…are met…[This is] one example of feedback driven growth and stabilization mechanisms…[They] establish a disciplined dynamics whose parameters are, in least in part normally distributed.”

11 The Laws of Software Evolution IV – Conservation of Organizational Stability (invariant work rate): The average effective global activity rate [total effort expended] on an evolving system is invariant over the product lifetime. This law on the face of it doesn’t make sense. However, various forces are at work that often counteracts attempts to increase productivity e.g. management increasing the number of people on a project increases communication overhead. (This was first described in The Mythical Man- Month by Fred Brooks.)

12 The Laws of Software Evolution V – Conservation of Familiarity: During the active life of an evolving program, the content of successive releases is statistically invariant. From Lehman’s paper: “One of the factors that determines the progress of a software development is the familiarity of all involved with its goals. The more changes & additions [in a] particular release, the more difficult is for all concerned to be aware, to understand and to appreciate what is required of them…The larger the work package the more challenging mastery of the matter to be acquired.”

13 The Laws of Software Evolution VI – Continuing Growth: Functional content of a program must be continually increased to maintain user satisfaction over its lifetime. This is not the same as the first law, which refers to the fact that software never exactly matches its operational domain. For the sixth law, the reason is that various factors mean that user demands for more functionality will increase over time, and thus the functional content must also increase.

14 The Laws of Software Evolution VII – Declining Quality: E-type programs will be perceived as of declining quality unless rigorously maintained and adapted to a changing operational environment. Otherwise, the system is perceived as older and less useful.

15 The Laws of Software Evolution VIII – Feedback System: E-type programming processes constitute multi-loop, multi-level feedback systems and must be treated as such to be successfully improved. Multi-loop means that it is an iterative process and multi-level refers to the fact that it occurs in more than one aspect of the software and its documentation.

16 Why does Lehman call them “Laws”? - 1/2 From his paper: From his paper: Observed phenomena reflected the behavior of human designers, implementers, managers and users. Thus they could not be laws in the normal sense of the word Observed phenomena reflected the behavior of human designers, implementers, managers and users. Thus they could not be laws in the normal sense of the word Phenomenology they reflect could be altered at will, by education for example. Phenomenology they reflect could be altered at will, by education for example. Behavior described was intimately bound up with a particular organization and/or a particular [operating] system… Behavior described was intimately bound up with a particular organization and/or a particular [operating] system… As such the observed phenomena lacked the generality that use of the term law implies… As such the observed phenomena lacked the generality that use of the term law implies…

17 Why does Lehman call them “Laws”? - 2/2 From his paper (continued): From his paper (continued): Laws reflect the cooperative activity of many individual and organizational behavior. Laws reflect the cooperative activity of many individual and organizational behavior. Their analysis requires: experience in disciplines removed from computer science and software engineering, psychology, organizational theory and management science Their analysis requires: experience in disciplines removed from computer science and software engineering, psychology, organizational theory and management science Observed behavior reflects the environment within which software engineering operates and the laws governing that behavior are not part of that discipline. Observed behavior reflects the environment within which software engineering operates and the laws governing that behavior are not part of that discipline. “From the point of view of software engineering they must be accepted as laws…” “From the point of view of software engineering they must be accepted as laws…”

18 FEAST – A feedback system for software evolution 1/3 FEAST stands for Feedback, Evolution And Software Technology. FEAST stands for Feedback, Evolution And Software Technology. It seeks to investigate the role and influence of feedback in the evolution of E-type software systems and on the improvement of the software process It seeks to investigate the role and influence of feedback in the evolution of E-type software systems and on the improvement of the software process

19 FEAST – A feedback system for software evolution 2/3 Hypothesis As complex feedback systems E-type software processes evolve strong system dynamics and the global stability tendency of other feedback systems Supporting observation Processes adopted, applied and improved in industry, will naturally evolve positive feedback to drive organisational growth and negative feedback controls - checks and balances

20 FEAST – A feedback system for software evolution 3/3 Preliminary Results Preliminary Results Were for one particular system Were for one particular system Suggest that the system dynamics is so strong that its parameters are fixed quite early in the life cycle of the evolving system Suggest that the system dynamics is so strong that its parameters are fixed quite early in the life cycle of the evolving system There has been further work since then There has been further work since then