SlideShare a Scribd company logo
1 of 51
Download to read offline
Software Evolution
         Nicolas Anquetil
         RMod team
         rmod.lille.inria.fr
●   Why this course?
    –   Soft. Maint. is important
    –   Soft. Maint. is poorly understood
    –   Soft. Maint. is poorly performed
●   Goals
    –   You like maintenance
    –   You understand
        ●   Why it exists
        ●   Why you did not like it
        ●   Why you should like it
What is it?
Definition

        Software maintenance is the
   modification of a software product after
    delivery to correct faults, to improve
      performance or other attributes.
              ISO/IEC 14764:2006 Software Engineering —
             Software Life Cycle Processes — Maintenance
Definition
Legacy software: A system which continues to
 be used because of the cost of replacing or
   redesigning it and often despite its poor
competitiveness and compatibility with modern
equivalents. The implication is that the system
  is large, monolithic and difficult to modify.
                    mondofacto.com/facts/dictionary
Legacy Software

      1 sheet ≃ 60 lines of code (LOC)

      both sides = 120 LOC
Legacy Software

           10 sheets = 1200 LOC
                       (1.2 KLOC)
Legacy Software
Windows NT 3.1
 (1993)
 4 to 5 MLOC   3,75 m    3,20 m




                        Encyclopedia Britanica
                         (15 ed., 32 volumes)
Legacy Software
Windows NT 3.1
 (1993)
 4 to 5 MLOC
                 41,7 m   46 m
Windows server
 2003
50 MLOC
Legacy Sofware
●   Linux kernel 3.6
    16 MLOC
●   MacOS X 10.4
    86 MLOC
●   Debian 5.0
    324 MLOC
Relevance?
●   Estimations:
    –   120 billion LOC maintained in 1990
        (Ulrich, 1990)
    –   200 billion in 2000 (Sommerville, 2000)
Relevance?
●   Annual cost in USA > $70 billion
    (Sutherland, 1995; Edelstein,
    1993)
●   Nokia spent $90 million on Y2K
●   US government spent > $8 billion
Relevance?
●   Cost of maintenance in a
    software life
                               90%
                       75%
               55%
       40%
                                              from Pigoski
                                              1996

               early    late
       1970s                   1990   2000…
               1980s   1980s
●
    Dominant activity in software
    engineering
●
    Yet, still poorly understood and
    despised
    –   Punishment, probation
    –   No career advancement
True/False ?
●   Maintenance can be eliminated   true false

    with perfect development
●   Maintenance will be solved by
    modern technology (ex. Model
    Driven Development)
●   Maintenance is difficult and
    boring
True/False ?
●   Maintenance can be eliminated   true false

    with perfect development
●   Maintenance will be solved by
    modern technology (ex. Model
    Driven Development)
●   Maintenance is difficult and
    boring
●   Development techniques improve all
    the time
    –   Software processes (Agile, TDD)
    –   Software quality (CMMI)
    –   Tools (IDEs, xUnit)
    –   Languages (AOP, MDD)
●   Maintenance problem still exist !
●   Maintenance categories:
    –   Adaptive
                           21%
    –   Perfective        4% 25%

    –   Corrective            50%

    –   Preventive
●   For hardware, maintenance is
    replacement of used parts
●   For software:
    –   Source code doesn't wear (erode)
    –   Maintenance is mainly evolution
Software systems must be
continually adapted or they become
  progressively less satisfactory
               First law of software evolution
                              [Lehman, 1974]
●   A system works within the real world
●   The world change:
    –   New business opportunities
    –   Growing user expectations
    –   New laws
    –   …
●   Software systems must evolve or
    die (not useful)
●   Maintenance is mainly due to
    external causes
●   Maintenance (evolution) is
    inevitable
●   Better (or perfect) software
    development cannot change that
Maintenance is a sign of success !
 The system is used and useful,
      the users want more
The Mussel shack
●   Once upon a time, a fisherman in
    Dunkerque opened a small
    mussel selling point
The Mussel shack
●   Business was good
The Mussel shack
●   Business was very good
The Mussel shack
●   Employees asked for a cafeteria
The Mussel shack
●   Directors requested their dinning
    room
The Mussel shack
●   Law imposed an emergency exit
The Mussel shack
●   Concurrents have fitness room,
    added a piscine
The Mussel shack
●   and they lived happily ever after
    …
Moral

   The better the system, the more
       maintenance (evolution)
            it will require !
True/False ?
●   Maintenance can be eliminated   true false

    with perfect development
●   Maintenance will be solved by
    modern technology (ex. Model
    Driven Development)
●   Maintenance is difficult and
    boring
New techniques
●   Cobol > 60% of all code in the
    world [eWeeks, 2001]
●   180 GLOC in use, + 1GLOC/year
    [Gartner, 2006]
New techniques
●   Cobol – 1959
New techniques
●   New techniques do not target
    Cobol programs/programmers
    (We can safely ignore:
    –   Object Cobol
    –   Aspect Cobol)
New techniques
●   New techniques do not target
    existing legacy software
    –   Miss 90+ % of the market
New techniques
●   New techniques (models) are still
    programs
    –   Programs are models of the world
●   They will need to be maintained
True/False ?
●   Maintenance can be eliminated   true false

    with perfect development
●   Maintenance will be solved by
    modern technology (ex. Model
    Driven Development)
●   Maintenance is difficult and
    boring
More difficult?
●   Intrinsically more difficult than
    development
    –   Information missing on existing system
    –   Must preserve some backward compatibility
        (existing data, user habits, …)
    –   More chaotic (reaction to external events)
    –   Less resources
    –   …
Boring?
●   Difficult ≠ Boring
Boring?
●   Easy ≠ Interesting
Boring?
●   The problem is cultural first
    –   Maintenance is not taught (implies it is
        not important?
    –   Computer science evolves fast (“newer
        is better”)
    –   Seen as punishment/probation
Boring?
●   Maintenance is difficult
●   Can be seen as an interesting
    challenge
●   A good way to learn many things
    (e.g. programming tricks)
Boring?
●   First need to change perception

      "Legacy code" often differs from its
       suggested alternative by actually
            working and scaling.
                               Bjarne Stroustrup
Boring?
●   First need to change perception
●   Lack of interest worsen it:
    –   ill prepared
    –   performed by “less competent”
        employees
Boring?
●   First need to change perception
●   There is lots of money to make
    and interesting things to do in
    software evolution
True/False ?
●   Maintenance can be eliminated   true false

    with perfect development
●   Maintenance will be solved by
    modern technology (ex. Model
    Driven Development)
●   Maintenance is difficult and
    boring
Closing remarks
●   Software evolution is very
    important
●   Typically ill-perceived
●   There is an important cultural
    problem (misunderstanding)

More Related Content

What's hot

Sdlc cource in_mumbai
Sdlc cource in_mumbaiSdlc cource in_mumbai
Sdlc cource in_mumbaivibrantuser
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2Rupesh Vaishnav
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSaravanan Manoharan
 
Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)ShudipPal
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycleGurban Daniel
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life CycleVivek Gupta
 
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM IIIEmbedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM IIINi
 
Intro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsIntro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsRadu_Negulescu
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleSlideshare
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSuresh Koujalagi
 
S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)Jayesh Buwa
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLESIvano Malavolta
 

What's hot (20)

Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Sdlc cource in_mumbai
Sdlc cource in_mumbaiSdlc cource in_mumbai
Sdlc cource in_mumbai
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 
Software engineering
Software engineering Software engineering
Software engineering
 
Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)Software Engineering (Software Configuration Management)
Software Engineering (Software Configuration Management)
 
Software development life cycle
Software development life cycleSoftware development life cycle
Software development life cycle
 
Software Devlopment Life Cycle
Software Devlopment Life CycleSoftware Devlopment Life Cycle
Software Devlopment Life Cycle
 
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM IIIEmbedded Systems Q and A M.Sc.(IT) PART II SEM III
Embedded Systems Q and A M.Sc.(IT) PART II SEM III
 
Software development process
Software development processSoftware development process
Software development process
 
1.sdlc
1.sdlc1.sdlc
1.sdlc
 
Software process
Software processSoftware process
Software process
 
Intro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle ModelsIntro to Software Engineering - Life Cycle Models
Intro to Software Engineering - Life Cycle Models
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Sdlc
SdlcSdlc
Sdlc
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 
Sdlc models
Sdlc modelsSdlc models
Sdlc models
 
S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)S.D.L.C (Software Development Life Cycle.)
S.D.L.C (Software Development Life Cycle.)
 
Software Development Life Cycle
Software Development Life Cycle Software Development Life Cycle
Software Development Life Cycle
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 

Similar to Software evolution evangelisation

Fifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynoteFifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynoteGeoff Halprin
 
Offshoring software development in Switzerland: You can do it
Offshoring software development in Switzerland: You can do itOffshoring software development in Switzerland: You can do it
Offshoring software development in Switzerland: You can do itAlexandre Masselot
 
Ian_Sommerville_Software_Engineering_6th.pdf
Ian_Sommerville_Software_Engineering_6th.pdfIan_Sommerville_Software_Engineering_6th.pdf
Ian_Sommerville_Software_Engineering_6th.pdfjyotineeli1
 
RubyConfLT2012: Legacy / long running projects
RubyConfLT2012: Legacy / long running projectsRubyConfLT2012: Legacy / long running projects
RubyConfLT2012: Legacy / long running projectsVidmantas Kabošis
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectivelyAshutosh Agarwal
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentZahid Hussain
 
NRB MAINFRAME DAY 03 - Toine Straathof - Legacy compute: modernisation is not...
NRB MAINFRAME DAY 03 - Toine Straathof - Legacy compute: modernisation is not...NRB MAINFRAME DAY 03 - Toine Straathof - Legacy compute: modernisation is not...
NRB MAINFRAME DAY 03 - Toine Straathof - Legacy compute: modernisation is not...NRB
 
Ordina Accelerator program 2019 - DevOps CI-CD
Ordina Accelerator program 2019 - DevOps CI-CDOrdina Accelerator program 2019 - DevOps CI-CD
Ordina Accelerator program 2019 - DevOps CI-CDBert Koorengevel
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software EngineeringSADEED AMEEN
 
Best Practices - Software Engineering
Best Practices - Software EngineeringBest Practices - Software Engineering
Best Practices - Software Engineering3Quill Softwares
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an IntroductionAjit Nayak
 
Future Research Challenges in Software Evolution
Future Research Challenges in Software EvolutionFuture Research Challenges in Software Evolution
Future Research Challenges in Software EvolutionTom Mens
 

Similar to Software evolution evangelisation (20)

Fifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynoteFifteen Years of DevOps -- LISA 2012 keynote
Fifteen Years of DevOps -- LISA 2012 keynote
 
1
11
1
 
Offshoring software development in Switzerland: You can do it
Offshoring software development in Switzerland: You can do itOffshoring software development in Switzerland: You can do it
Offshoring software development in Switzerland: You can do it
 
Ian_Sommerville_Software_Engineering_6th.pdf
Ian_Sommerville_Software_Engineering_6th.pdfIan_Sommerville_Software_Engineering_6th.pdf
Ian_Sommerville_Software_Engineering_6th.pdf
 
software engineering ch-1
software engineering ch-1software engineering ch-1
software engineering ch-1
 
RubyConfLT2012: Legacy / long running projects
RubyConfLT2012: Legacy / long running projectsRubyConfLT2012: Legacy / long running projects
RubyConfLT2012: Legacy / long running projects
 
AGrabowski res
AGrabowski resAGrabowski res
AGrabowski res
 
mehdi-refactoring.pptx
mehdi-refactoring.pptxmehdi-refactoring.pptx
mehdi-refactoring.pptx
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-development
 
merged (1).pdf
merged (1).pdfmerged (1).pdf
merged (1).pdf
 
NRB MAINFRAME DAY 03 - Toine Straathof - Legacy compute: modernisation is not...
NRB MAINFRAME DAY 03 - Toine Straathof - Legacy compute: modernisation is not...NRB MAINFRAME DAY 03 - Toine Straathof - Legacy compute: modernisation is not...
NRB MAINFRAME DAY 03 - Toine Straathof - Legacy compute: modernisation is not...
 
Ch01lect1 et
Ch01lect1 etCh01lect1 et
Ch01lect1 et
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
Ordina Accelerator program 2019 - DevOps CI-CD
Ordina Accelerator program 2019 - DevOps CI-CDOrdina Accelerator program 2019 - DevOps CI-CD
Ordina Accelerator program 2019 - DevOps CI-CD
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Best Practices - Software Engineering
Best Practices - Software EngineeringBest Practices - Software Engineering
Best Practices - Software Engineering
 
Software Engineering an Introduction
Software Engineering an IntroductionSoftware Engineering an Introduction
Software Engineering an Introduction
 
Se 20150507
Se 20150507Se 20150507
Se 20150507
 
Future Research Challenges in Software Evolution
Future Research Challenges in Software EvolutionFuture Research Challenges in Software Evolution
Future Research Challenges in Software Evolution
 

Recently uploaded

Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1GloryAnnCastre1
 
Mythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWMythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWQuiz Club NITW
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4JOYLYNSAMANIEGO
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...DhatriParmar
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Developmentchesterberbo7
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdfMr Bounab Samir
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSMae Pangan
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvRicaMaeCastro1
 
Mental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young mindsMental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young mindsPooky Knightsmith
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfPatidar M
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxSayali Powar
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDhatriParmar
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptxDhatriParmar
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfJemuel Francisco
 

Recently uploaded (20)

Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1Reading and Writing Skills 11 quarter 4 melc 1
Reading and Writing Skills 11 quarter 4 melc 1
 
Mythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITWMythology Quiz-4th April 2024, Quiz Club NITW
Mythology Quiz-4th April 2024, Quiz Club NITW
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4Daily Lesson Plan in Mathematics Quarter 4
Daily Lesson Plan in Mathematics Quarter 4
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
Blowin' in the Wind of Caste_ Bob Dylan's Song as a Catalyst for Social Justi...
 
Using Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea DevelopmentUsing Grammatical Signals Suitable to Patterns of Idea Development
Using Grammatical Signals Suitable to Patterns of Idea Development
 
MS4 level being good citizen -imperative- (1) (1).pdf
MS4 level   being good citizen -imperative- (1) (1).pdfMS4 level   being good citizen -imperative- (1) (1).pdf
MS4 level being good citizen -imperative- (1) (1).pdf
 
Paradigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTAParadigm shift in nursing research by RS MEHTA
Paradigm shift in nursing research by RS MEHTA
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
 
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnvESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
ESP 4-EDITED.pdfmmcncncncmcmmnmnmncnmncmnnjvnnv
 
Mental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young mindsMental Health Awareness - a toolkit for supporting young minds
Mental Health Awareness - a toolkit for supporting young minds
 
Active Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdfActive Learning Strategies (in short ALS).pdf
Active Learning Strategies (in short ALS).pdf
 
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptxBIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
BIOCHEMISTRY-CARBOHYDRATE METABOLISM CHAPTER 2.pptx
 
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptxDecoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
Decoding the Tweet _ Practical Criticism in the Age of Hashtag.pptx
 
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
Unraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptxUnraveling Hypertext_ Analyzing  Postmodern Elements in  Literature.pptx
Unraveling Hypertext_ Analyzing Postmodern Elements in Literature.pptx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdfGrade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
Grade 9 Quarter 4 Dll Grade 9 Quarter 4 DLL.pdf
 

Software evolution evangelisation

  • 1. Software Evolution Nicolas Anquetil RMod team rmod.lille.inria.fr
  • 2. Why this course? – Soft. Maint. is important – Soft. Maint. is poorly understood – Soft. Maint. is poorly performed
  • 3. Goals – You like maintenance – You understand ● Why it exists ● Why you did not like it ● Why you should like it
  • 4. What is it? Definition Software maintenance is the modification of a software product after delivery to correct faults, to improve performance or other attributes. ISO/IEC 14764:2006 Software Engineering — Software Life Cycle Processes — Maintenance
  • 5. Definition Legacy software: A system which continues to be used because of the cost of replacing or redesigning it and often despite its poor competitiveness and compatibility with modern equivalents. The implication is that the system is large, monolithic and difficult to modify. mondofacto.com/facts/dictionary
  • 6. Legacy Software 1 sheet ≃ 60 lines of code (LOC) both sides = 120 LOC
  • 7. Legacy Software 10 sheets = 1200 LOC (1.2 KLOC)
  • 8. Legacy Software Windows NT 3.1 (1993) 4 to 5 MLOC 3,75 m 3,20 m Encyclopedia Britanica (15 ed., 32 volumes)
  • 9. Legacy Software Windows NT 3.1 (1993) 4 to 5 MLOC 41,7 m 46 m Windows server 2003 50 MLOC
  • 10. Legacy Sofware ● Linux kernel 3.6 16 MLOC ● MacOS X 10.4 86 MLOC ● Debian 5.0 324 MLOC
  • 11. Relevance? ● Estimations: – 120 billion LOC maintained in 1990 (Ulrich, 1990) – 200 billion in 2000 (Sommerville, 2000)
  • 12. Relevance? ● Annual cost in USA > $70 billion (Sutherland, 1995; Edelstein, 1993) ● Nokia spent $90 million on Y2K ● US government spent > $8 billion
  • 13. Relevance? ● Cost of maintenance in a software life 90% 75% 55% 40% from Pigoski 1996 early late 1970s 1990 2000… 1980s 1980s
  • 14. Dominant activity in software engineering ● Yet, still poorly understood and despised – Punishment, probation – No career advancement
  • 15. True/False ? ● Maintenance can be eliminated true false with perfect development ● Maintenance will be solved by modern technology (ex. Model Driven Development) ● Maintenance is difficult and boring
  • 16. True/False ? ● Maintenance can be eliminated true false with perfect development ● Maintenance will be solved by modern technology (ex. Model Driven Development) ● Maintenance is difficult and boring
  • 17. Development techniques improve all the time – Software processes (Agile, TDD) – Software quality (CMMI) – Tools (IDEs, xUnit) – Languages (AOP, MDD) ● Maintenance problem still exist !
  • 18. Maintenance categories: – Adaptive 21% – Perfective 4% 25% – Corrective 50% – Preventive
  • 19. For hardware, maintenance is replacement of used parts ● For software: – Source code doesn't wear (erode) – Maintenance is mainly evolution
  • 20. Software systems must be continually adapted or they become progressively less satisfactory First law of software evolution [Lehman, 1974]
  • 21. A system works within the real world ● The world change: – New business opportunities – Growing user expectations – New laws – …
  • 22. Software systems must evolve or die (not useful) ● Maintenance is mainly due to external causes
  • 23. Maintenance (evolution) is inevitable ● Better (or perfect) software development cannot change that
  • 24. Maintenance is a sign of success ! The system is used and useful, the users want more
  • 25. The Mussel shack ● Once upon a time, a fisherman in Dunkerque opened a small mussel selling point
  • 26. The Mussel shack ● Business was good
  • 27. The Mussel shack ● Business was very good
  • 28. The Mussel shack ● Employees asked for a cafeteria
  • 29. The Mussel shack ● Directors requested their dinning room
  • 30. The Mussel shack ● Law imposed an emergency exit
  • 31. The Mussel shack ● Concurrents have fitness room, added a piscine
  • 32. The Mussel shack ● and they lived happily ever after …
  • 33. Moral The better the system, the more maintenance (evolution) it will require !
  • 34. True/False ? ● Maintenance can be eliminated true false with perfect development ● Maintenance will be solved by modern technology (ex. Model Driven Development) ● Maintenance is difficult and boring
  • 35. New techniques ● Cobol > 60% of all code in the world [eWeeks, 2001] ● 180 GLOC in use, + 1GLOC/year [Gartner, 2006]
  • 36. New techniques ● Cobol – 1959
  • 37. New techniques ● New techniques do not target Cobol programs/programmers (We can safely ignore: – Object Cobol – Aspect Cobol)
  • 38. New techniques ● New techniques do not target existing legacy software – Miss 90+ % of the market
  • 39. New techniques ● New techniques (models) are still programs – Programs are models of the world ● They will need to be maintained
  • 40. True/False ? ● Maintenance can be eliminated true false with perfect development ● Maintenance will be solved by modern technology (ex. Model Driven Development) ● Maintenance is difficult and boring
  • 41. More difficult? ● Intrinsically more difficult than development – Information missing on existing system – Must preserve some backward compatibility (existing data, user habits, …) – More chaotic (reaction to external events) – Less resources – …
  • 42. Boring? ● Difficult ≠ Boring
  • 43. Boring? ● Easy ≠ Interesting
  • 44. Boring? ● The problem is cultural first – Maintenance is not taught (implies it is not important? – Computer science evolves fast (“newer is better”) – Seen as punishment/probation
  • 45. Boring? ● Maintenance is difficult ● Can be seen as an interesting challenge ● A good way to learn many things (e.g. programming tricks)
  • 46. Boring? ● First need to change perception "Legacy code" often differs from its suggested alternative by actually working and scaling. Bjarne Stroustrup
  • 47. Boring? ● First need to change perception ● Lack of interest worsen it: – ill prepared – performed by “less competent” employees
  • 48. Boring? ● First need to change perception ● There is lots of money to make and interesting things to do in software evolution
  • 49. True/False ? ● Maintenance can be eliminated true false with perfect development ● Maintenance will be solved by modern technology (ex. Model Driven Development) ● Maintenance is difficult and boring
  • 51. Software evolution is very important ● Typically ill-perceived ● There is an important cultural problem (misunderstanding)