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
 
Turbo Charge Software Development with Xsemble
Turbo Charge Software Development with XsembleTurbo Charge Software Development with Xsemble
Turbo Charge Software Development with XsembleAshish Belagali
 
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
 

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
 
Turbo Charge Software Development with Xsemble
Turbo Charge Software Development with XsembleTurbo Charge Software Development with Xsemble
Turbo Charge Software Development with Xsemble
 
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
 

Recently uploaded

NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...Amil baba
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...Nguyen Thanh Tu Collection
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxheathfieldcps1
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptxMaritesTamaniVerdade
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...pradhanghanshyam7136
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfNirmal Dwivedi
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - Englishneillewis46
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Jisc
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxPooja Bhuva
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsKarakKing
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jisc
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the ClassroomPooky Knightsmith
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfDr Vijay Vishwakarma
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 

Recently uploaded (20)

NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 

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)