Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon.

Slides:



Advertisements
Similar presentations
ECE 720T5 Fall 2012 Cyber-Physical Systems Rodolfo Pellizzoni.
Advertisements

DIFFERENTIAL EQUATIONS 9. We have looked at a variety of models for the growth of a single species that lives alone in an environment.
1 Software Architecture CSSE 477: Week 5, Day 1 Statistical Modeling to Achieve Maintainability Steve Chenoweth Office Phone: (812) Cell: (937)
FIN 685: Risk Management Topic 5: Simulation Larry Schrenk, Instructor.
Dynamics, Chaos, and Prediction. Aristotle, 384 – 322 BC.
Bifurcation and Resonance Sijbo Holtman Overview Dynamical systems Resonance Bifurcation theory Bifurcation and resonance Conclusion.
A GOAL-BASED FRAMEWORK FOR SOFTWARE MEASUREMENT
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
From Discrete Mathematics to AI applications: A progression path for an undergraduate program in math Abdul Huq Middle East College of Information Technology,
© 2007 The MITRE Corporation. All rights reserved Approved for Public Release; Distribution Unlimited Potential New Ideas from Complexity Science.
NANIA 2D - Daisyworld Graeme Ackland (physicist) Tim Lenton (ecologist) Michael Clark (project student) A model planet showing coupling between life and.
Cluster Validation.
ECIV 301 Programming & Graphics Numerical Methods for Engineers Lecture 3 Programming and Software.
Programming Logic and Design, Introductory, Fourth Edition1 Understanding Computer Components and Operations (continued) A program must be free of syntax.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Statistical Methods for long-range forecast By Syunji Takahashi Climate Prediction Division JMA.
Software maintenance Managing the processes of system change.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
Background Data validation, a critical issue for the E.S.S.
Unit 2: Engineering Design Process
CPSC 871 John D. McGregor MMS1 Maintenance & a new trend.
Introduction to Discrete Event Simulation Customer population Service system Served customers Waiting line Priority rule Service facilities Figure C.1.
CIS Computer Programming Logic
1 Performance Evaluation of Computer Networks: Part II Objectives r Simulation Modeling r Classification of Simulation Modeling r Discrete-Event Simulation.
Chaos Theory and Encryption
Managing Software Projects Analysis and Evaluation of Data - Reliable, Accurate, and Valid Data - Distribution of Data - Centrality and Dispersion - Data.
Higher Grade Computing Studies 2. Languages and Environments Higher Computing Software Development S. McCrossan 1 Classification of Languages 1. Procedural.
1 Chapter 9 Database Design. 2 2 In this chapter, you will learn: That successful database design must reflect the information system of which the database.
 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 ENERGY 211 / CME 211 Lecture 26 November 19, 2008.
Problem Solving Techniques. Compiler n Is a computer program whose purpose is to take a description of a desired program coded in a programming language.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Property of Jack Wilson, Cerritos College1 CIS Computer Programming Logic Programming Concepts Overview prepared by Jack Wilson Cerritos College.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Chaos Theory MS Electrical Engineering Department of Engineering
Complexity: Ch. 2 Complexity in Systems 1. Dynamical Systems Merely means systems that evolve with time not intrinsically interesting in our context What.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Unifying Dynamical Systems and Complex Networks Theories ~ A Proposal of “Generative Network Automata (GNA)” ~ Unifying Dynamical Systems and Complex Networks.
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
©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.
Chapter 9 – Software Evolution 1Chapter 9 Software evolution.
Dynamics, Chaos, and Prediction. Aristotle, 384 – 322 BC.
1 Experience from Studies of Software Maintenance and Evolution Parastoo Mohagheghi Post doc, NTNU-IDI SEVO Seminar, 16 March 2006.
Modelling concepts Modelling in discrete time (difference equations, also known as updating equations) Modelling in continuous time (differential equations)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Monitoring of a condition of economic systems on the basis of the analysis of dynamics of entropy A.N. Tyrsin 1, O.V. Vorfolomeeva 2 1 – Science and Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
Team 5 Binge Thinkers (formerly known as People doing Math) Statistical Analysis of Vibrating Beam Peter Gross Keri Rehm Regal Ferrulli Anson Chan.
Objective ICT : Internet of Services, Software & Virtualisation FLOSSEvo some preliminary ideas.
Implementing Dynamic Data Assimilation in the Social Sciences Andy Evans Centre for Spatial Analysis and Policy With: Jon Ward, Mathematics; Nick Malleson,
MEER 111 – Global Research Solving Real-World Problems with Evolutionary Algorithms Daniel Tauritz, Ph.D. Associate Professor of Computer Science.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
S5.40. Module Structure 30% practical tests / 70% written exam 3h lectures / week (except reading week) 3 x 2h of computer labs (solving problems practicing.
Overview Software Maintenance and Evolution Definitions
Dimension Review Many of the geometric structures generated by chaotic map or differential dynamic systems are extremely complex. Fractal : hard to define.
The Systems Engineering Context
Chaos Theory and Encryption
Chapter 27 Software Change.
Measurement What is it and why do it? 2/23/2019
Chapter 19 Technical Metrics for Software
Chapter 8 Software Evolution.
Modeling and Prediction of Cancer Growth Louisa Owuor, Dr. Monika Neda
Revision Absolute value Inequalities Limits Functions Modeling
UML  UML stands for Unified Modeling Language. It is a standard which is mainly used for creating object- oriented, meaningful documentation models for.
Presentation transcript:

Chaos Theory for Software Evolution Rui Gustavo Crespo Technical University of Lisbon

2/22Software Evolution Behaviours Laws of Software Evolution (1)  MM Lehman informal laws of software evolution 1  Continuing change: a program used in a real-world environment must change.  Increasing entropy: the program structure becomes more complex, unless efforts are made to avoid the complexity.  Statistically smooth growth: the global system metrics appear locally stochastic in time and space but are self-regulating and statistically smooth. 1 Lehman, M.M.: Programs, Life Cycles and Laws of Software Evolution. IEEE Special Issue on Software Engineering, 68(9),

3/22Software Evolution Behaviours Laws of Software Evolution (2)  Valid laws must be:- 1. Unambiguous: the underlying system model must be clear (better formally). 2. Falsifiable: model predictions are checked against collected data and the law remains valid until tests fail.  Thesis:  Program organization plays a role in maintenance, and may be measured with LRC (“Long-range correlation”) metrics.  Program evolution follows Verhulst population model.

4/22Software Evolution Behaviours F 2 (l) = [  BW(l,l 0 )] 2 - [  BW(l,l 0 )] 2  BW(l,l 0 ) = BW(l 0 +l)-BW(l 0 ) LRC metrics (1) 1. Encode symbols (data types int, struct,... and instruction keywords if, while,...) with a balanced numeric code. 2. Identify the Brownian walk graph BW BW(0) = 0 BW(n) = BW(n-1) + Code(S n ) 3. Evaluate the root of mean square flutuation about the average of displacement.

5/22Software Evolution Behaviours LRC metrics (2) F(l)  l   = 0.5, random programs  0.5<  <1, meaningful programs

6/22Software Evolution Behaviours LRC metrics (3) [A]  values for 36 compilers, coded in C Average: 0,82

7/22Software Evolution Behaviours LRC metrics (4)  for 36 random programs, same keyword distribution (similar results for same number of lines) Average: 0,48

8/22Software Evolution Behaviours LRC metrics (5)  values for 36 random C programs, same number of lines, same keyword distribution Average: 0,62

9/22Software Evolution Behaviours LRC metrics (6)  values for source and object files are strongly correlated

10/22Software Evolution Behaviours Process dynamics (1) Pierre Verhulst, Belgian mathematician, studied models of human population growth in the 19 th century  Growth with unlimited resources du/dt=  u,  >0 Solution is an exponential function u(t)=u(t 0 )e  (t-t0)  Growth with limited resources du/dt=  (  -u)u,  is the upper limit X t+1 =  X t (1-X t ) X t \in [0,1],  \in [0,4] Verhulst model, or logistic map

11/22Software Evolution Behaviours Process dynamics (2)

12/22Software Evolution Behaviours Process dynamics (3)

13/22Software Evolution Behaviours Process dynamics (4) Oscilation period is 2 n

14/22Software Evolution Behaviours Process dynamics (5) BTW, predator and prey populations (e.g., wolves and rabbits), are ruled by the same kind of equations  dr/dt=   (    - w)r  dw/dt=   (r -   )w Solution of the differential equations are sinusoidal functions, with different phases

15/22Software Evolution Behaviours Process dynamics (6) The behaviour is cahotic

16/22Software Evolution Behaviours Process dynamics (7)  Software processes also “compete” for resources (time, man-power, …)  Interaction between components is non-linear: small changes in a module may stop other modules to work properly  Proposal: link Verhulst  values to  Program organization, and  Ideas formation

17/22Software Evolution Behaviours Process dynamics (8)  norm = 2|  -0.5|;  =  t+1 /  t (1-  t ) Ideas formation Ideas covergenceSingle Idea Implementation Time Product Attributes Information Criativity Process Form Chaos Bifurcation Normal  3,4 0 3,0

18/22Software Evolution Behaviours Process dynamics (9) BeanMetaData.java versions in JBOSS (Jul 2000-Oct 2002) ChaoticNormal Bifurcation

19/22Software Evolution Behaviours Process dynamics (10)

20/22Software Evolution Behaviours Process dynamics (11) EJBVerifier20.java versions in JBOSS (May 2000-Sep 2002) Chaotic Normal Bifurcation

21/22Software Evolution Behaviours Process dynamics (12)

22/22Software Evolution Behaviours  It is possible to measure program organization and automatically highlight version behaviours  Next steps:  Check LRC validity and Verhulst model in other applications / languages / process phases  Improve Verhulst model (sometimes,  >4)  Identify faster  algorithms Cardoso,AI; Kokol,P.; Lenic,M.; Crespo,R.G.; Complexity-based Evaluation of Systems Evolution; in Advances in UML/XML Based Software Evolution; IRM Press; 2004 (in print) Conclusions