SlideShare una empresa de Scribd logo
1 de 39
Chapter No. 5

Maintenance



                1
Study Resources:
  Reference Books

• Analysis and design of information systems: James A. Senn.
  Page no. 694
• System Analysis And Design: Jalote. Page No. 11
• Software Engineering : Pressman. Page No. 762
• Software Engineering Concepts: Richard Fairley. Page No. 311-
  328



                                                             2
5.1.   Types of Maintenance
       The process of changing of a system after it
       has been delivered and is in use is called
       Software maintenance.
•      Why maintenance is required:
    • Not as rewarding as exciting as developing systems. It is
      perceived as requiring neither skill nor experience.
    • Users are not fully cognizant of the maintenance problem or
      its high cost.
    • Few tools and techniques are available for maintenance.
    • A good test plan is lacking.

                                                                3
5.1.   Types of Maintenance
Why maintenance is required:

   • Standards, procedures, and guidelines are poorly defined
     and enforced.
   • Maintenance is viewed as a necessary evil, often delegated
     to junior programmers. There are practically no
     maintenance manager job classification in the MIS field.
   • Programs are often maintained without care for structure
       and documentation.



                                                                  4
5.1.   Types of Maintenance
Types of software maintenance

1.     Corrective maintenance
2.     Adaptive maintenance
3.     Perfective maintenance
4.     Preventive maintenance



                                5
1. Corrective maintenance
• Maintenance which is required when an item has
  failed or worn out, to bring it back to working
  order.
• In most cases this is expensive.
• When equipment fails, need to replace, coding
  errors.
• Cost of this type of maintenance is must not
  greater that preventive maintenance.
• Is concern with fixing reported errors in the
  software.

                                                    6
2. Adaptive maintenance

• Changing the s/f to new environment i.e.
  changing h/w platform, operating system.

• Addition of new features, capabilities, up
  gradations, new requirements, new problems.

• Isolation of system-dependent features.


                                                7
3. Perfective maintenance
• Perfective maintenance involves implementing
  new functional or non-functional system
  requirements.
• Enhance the system by improving efficiency,
  reliability, functionality, or maintainability.
• Corrective and adaptive maintenance are reactive.
• Perfective maintenance, in contract, is proactive.
• The idea is to fix the system before it breaks

                                                   8
4. Preventive maintenance

• The objective of preventive maintenance is to
  anticipate problems and correct them before
  they occur.

• System performance monitoring is an
  important key to preventive maintenance.


                                                  9
5.2.   Maintenance Cost
Software maintenance costs around 50% of total
software life-cycle cost.
How to reduce maintenance cost:

•      Maintenance management audit
•      Software system audit
•      Software modification


                                                 10
Maintenance management audit
• This evaluates the quality of maintenance
  effort .
• Follow-up of all requests of maintenance.
• Total hours worked are spent on error
  corrections, addition/changes/deletions, and
  improvements.
• Organization must have a well-defined
  maintenance reduction program.

                                                 11
Software system audit
1. Overall view of the system documents and an
   assessment of the quality of data files and data
   bases and system maintainability, reliability and
   efficiency.
2. Determination of functionality and assignment of
   preliminary ranking value.
3. Detail program audit – ranking value, mean time
   between failure(MTBF), size of the maintenance
   backlog. This determines system availability to
   users.
                                                  12
Software modification
1. Program rewrites , which includes logic
   simplification, documentation updates, error
   correction.
2. System level updates, which includes system
   level documentations, up to date DFDs or
   system      flowcharts,   cross-   references
   programs.
3. Reaudit of low-ranking programs to make
   sure that the errors have been corrected.

                                               13
5.3.   Reverse Engineering

•   Process of creating specifications that describe the action
    of existing applications.

•   Reverse engineering can also be performed to recreate the

       information describing the intent of existing systems.

•   Reverse engineering is an important concept that fits with

       evolution of information systems.


                                                                14
5.3.   What is Reverse Engineering ?


       Forward Engineering

                    Requirements


                        Design


                     Source Code


                       Behavior
                                       15
5.3.   What is Reverse Engineering ?


       Forward Engineering        Reverse Engineering

                    Requirements


                        Design


                     Source Code


                       Behavior
                                                        16
5.3.   What is Reverse Engineering?

1. A systematic methodology for analyzing the design of an
   existing device or system, either as an approach to study
   the design or as a prerequisite for re-design.

2. Is the process of analysing a subject system to identify the
    system’s components and their interrelationships and
    create representations of the system in another form or at

    a higher level of abstraction.
                                     — Chikofsky & Cross, 1990
                                                             17
5.3.   What is Reverse Engineering?
3. Analysing software with a view to understanding its
    design and specification

4. May be part of a re-engineering process but may also be
    used to re-specify a system for re-implementation

5. Builds a program data base and generates information
    from this

6. Program understanding tools (browsers, cross-reference
    generators, etc.) may be used in this process

7. To derive design information at the highest level possible
                                                                18
Software Reengineering Process
                                Program       Modularised       Original data
 Original
                             documentation     program
 program

                 Reverse
               engineering
                                                         Data
Source code                    Program               reengineering
 translation                 modularisation

                 Program
                 structure
               improvement
                               Structured              Reengineered
                                program                    data




                                                                            19
The Reverse Engineering Process

                                                        Program stucture
                Automated                                  diagrams
                 analysis
                                System
System to be                               Document      Data stucture
                             information
re-engineered                              generation     diagrams
                                 store
                 Manual
                annotation                                Traceability
                                                           matrices




                                                                    20
The Reverse Engineering Process
1. Collect Information

2. Examine Information

3. Extract the Structure

4. Record Functionality

5. Record Data-flow

6. Record Control-flow


                                  21
5.3.   What is Reverse Engineering?

                      Abstraction System


Reverse Engineering                    Forward Engineering
      Abstraction                       Re-Implementation




               Old system          New System


                                                       22
5.3.   What is Reverse Engineering?

• RE encompasses any activity that is done to
  determine how a product works, to learn the
  ideas and technology that were used in
  developing that product.
• RE can be done at many levels
• RE generally      belongs       to   Software
  Maintenance

                                              23
5.3.   Difference - Reverse Engineering &
           Reengineering
• Reverse engineering is the general process of analyzing a
    technology specifically to ascertain how it was designed or how
    it operates. This kind of inquiry engages individuals in a
    constructive learning process about the operation of systems
    and products.
•    Reverse engineering as a method is not confined to any
    particular purpose, but is often an important part of the scientific
    method and technological development.
• Reverse-engineering is taking apart a finished product for the
    purposes of learning how it works.
                                                                     24
5.3.   Difference - Reverse Engineering &
           Reengineering
• Re-engineering is the bridge used by legacy software to
     migrate    to     an   organization’s   new   maintenance
     environment.
•     Less formally, Re-engineering is the modification of a
     software system that takes place after it has been reverse
     engineered, generally to add new functionality, or to
     correct errors.
•     Re-engineering is simply a new re-implementation of a
     product with better engineering.                       25
5.3.   Difference - Reverse Engineering &
       Reengineering


• Reverse engineering is to take a bridge
 apart (separately) to see how it was built.


• Re-engineering is to throw a bridge away
 and rebuild it from scratch.

                                               26
5.3.   Why do we need RE ?

  • Recovery of lost information
       – providing proper system documentation

  • Assisting with maintenance
       – identification of side effects and anomalies

  • Migration to another hw/sw platform

  • Facilitating software reuse
                                                        27
5.3. Why     do we need RE ?


• Benefits
  – maintenance cost savings
  – quality improvements
  – competitive advantages
  – software reuse facilitation




                                  28
Scope and Task of Reverse Engineering

 • program understanding
              Problem/Application
                    domain


         Mapping



              Program/Implemen.
                    domain
                                    29
Scope and Task of Reverse Engineering

• Redocumentation          and/or     document
  generation
• Recovery of design approach and design
  details at any level of abstraction
• Identifying reusable components and
  components that need restructuring
• Recovering business rules
• Understanding high-level system description.
                                             30
Levels of abstractions
 • Application
    – Application concepts, business rule, policies
 • Function
    – Logical and functional specification, non-functional
      requirement
 • Structure
    – Data and control flow, dependency graphs
    – Structure and subsystem charts
    – Architectures
 • Implementation
    – Symbol tables, source text
                                                             31
5.3.   Reverse Engineering

•Reverse engineering is required because of


        •To understand data
        •To understand processing

        •To modify user interface



                                              32
5.3.   Reverse Engineering

Processes of Reverse Engineering:


        1. Abstraction level

        2. Completeness

        3. Directionality




                                    33
5.4.   Introduction to legacy systems
•      Legacy systems are considered to be potentially problematic by many

       software engineers for several reasons.

•      These systems can be hard to maintain, improve, and expand because

       there is a general lack of understanding of the system .

•      A legacy system is an antiquated (OLD FACHIONED) computer system

       or application program which continues to be used because the user

       (typically an organization) does not want to replace or redesign it.


                                                                              34
5.4.   Introduction to legacy systems

•      An old method, technology, computer system, or application
       program.

•      Continues to be used, typically because it still functions for
       the users' needs, even though newer technology or more

       efficient methods of performing a task are now available   .
•      Older software systems that remain vital to an organisation.



                                                                      35
5.4.   Introduction to legacy systems

•      These systems are often hard to maintain, improve, and expand
       because there is a general lack of understanding of the system;

•      The designers of the system have left the organization, so there is
       no one left to explain how it works.

•      Lack of understanding can be exacerbated by inadequate
       documentation, or manuals getting lost over the years.

•      Integration with newer systems may also be difficult because new
       software may use completely different technologies.


                                                                         36
5.4.   Introduction to legacy systems
Despite these problems, organizations can have compelling reasons for
keeping a legacy system, such as:
1. The costs of redesigning the system are prohibitive because it is
   large, monolithic, and/or complex.
2. The system requires close to 100% availability, so it cannot be
   taken out of service, and the cost of designing a new system with a
   similar availability level are high.
3. The way the system works is not well understood. Such a situation
   can occur when the designers of the system have left the
   organization, and the system has either not been fully documented
   or such documentation has been lost over the years.
4. The user expects that the system can easily be replaced when this
   becomes necessary.
5. The system works satisfactorily, and the owner sees no reason for
   changing it.
                                                                    37
5.5. Role of documentation in maintenance and
    types of documentation.

•   It is one of the oldest recommended practices and yet has
    been, and continues to be, renowned for its absence.

•   Software maintenance is traditionally defined as any
    modification made on a software system after its delivery.

•   predominant activity in software engineering




                                                            38
5.5.   TYPES OF DOCUMENTATION

• Types of documentation include:

•      Requirements
•      Architecture/Design
•      Technical
•      End User
•      Marketing


                                    39

Más contenido relacionado

La actualidad más candente

Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringAli Raza
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
Dynamic Testing
Dynamic TestingDynamic Testing
Dynamic TestingJimi Patel
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Mohamed Sami El-Tahawy
 
McCall Software Quality Model in Software Quality Assurance
McCall Software Quality Model in Software Quality Assurance McCall Software Quality Model in Software Quality Assurance
McCall Software Quality Model in Software Quality Assurance sundas Shabbir
 
OO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented DevelopmentOO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented DevelopmentRandy Connolly
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGSaqib Raza
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Angelin R
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuseMarco Brambilla
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSachithra Gayan
 
Software Prototyping
Software PrototypingSoftware Prototyping
Software Prototypingdrjms
 
6 basic steps of software development process
6 basic steps of software development process6 basic steps of software development process
6 basic steps of software development processRiant Soft
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentZahid Hussain
 
Code refactoring
Code refactoringCode refactoring
Code refactoringLalit Kale
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life CycleSlideshare
 

La actualidad más candente (20)

Software Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse EngineeringSoftware Re-engineering Forward & Reverse Engineering
Software Re-engineering Forward & Reverse Engineering
 
Software Reengineering
Software ReengineeringSoftware Reengineering
Software Reengineering
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
Dynamic Testing
Dynamic TestingDynamic Testing
Dynamic Testing
 
Software reengineering
Software reengineeringSoftware reengineering
Software reengineering
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
McCall Software Quality Model in Software Quality Assurance
McCall Software Quality Model in Software Quality Assurance McCall Software Quality Model in Software Quality Assurance
McCall Software Quality Model in Software Quality Assurance
 
OO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented DevelopmentOO Development 1 - Introduction to Object-Oriented Development
OO Development 1 - Introduction to Object-Oriented Development
 
Surface realization
Surface realizationSurface realization
Surface realization
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC)
 
Software engineering: design for reuse
Software engineering: design for reuseSoftware engineering: design for reuse
Software engineering: design for reuse
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Software Prototyping
Software PrototypingSoftware Prototyping
Software Prototyping
 
SDLC
SDLCSDLC
SDLC
 
6 basic steps of software development process
6 basic steps of software development process6 basic steps of software development process
6 basic steps of software development process
 
Lecture 1-intro-to-software-development
Lecture 1-intro-to-software-developmentLecture 1-intro-to-software-development
Lecture 1-intro-to-software-development
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Code refactoring
Code refactoringCode refactoring
Code refactoring
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 

Destacado

Software re engineering
Software re engineeringSoftware re engineering
Software re engineeringdeshpandeamrut
 
Legacy Software Maintenance And Management
Legacy Software Maintenance And ManagementLegacy Software Maintenance And Management
Legacy Software Maintenance And ManagementValueCoders
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 
10 software maintenance
10 software maintenance10 software maintenance
10 software maintenanceakiara
 
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Maintenance,Re-engineering &Reverse Engineering in Software EngineeringMaintenance,Re-engineering &Reverse Engineering in Software Engineering
Maintenance, Re-engineering &Reverse Engineering in Software EngineeringManish Kumar
 
Software Engineering unit 5
Software Engineering unit 5Software Engineering unit 5
Software Engineering unit 5Abhimanyu Mishra
 
Software maintenance
Software maintenance Software maintenance
Software maintenance Rajeev Sharan
 
Chapter 9 software maintenance
Chapter 9 software maintenanceChapter 9 software maintenance
Chapter 9 software maintenancedespicable me
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsAtul Karmyal
 
7. The Software Development Process - Maintenance
7. The Software Development Process - Maintenance7. The Software Development Process - Maintenance
7. The Software Development Process - MaintenanceForrester High School
 

Destacado (15)

Software re engineering
Software re engineeringSoftware re engineering
Software re engineering
 
Legacy Software Maintenance And Management
Legacy Software Maintenance And ManagementLegacy Software Maintenance And Management
Legacy Software Maintenance And Management
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
10 software maintenance
10 software maintenance10 software maintenance
10 software maintenance
 
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
Maintenance,Re-engineering &Reverse Engineering in Software EngineeringMaintenance,Re-engineering &Reverse Engineering in Software Engineering
Maintenance, Re-engineering &Reverse Engineering in Software Engineering
 
Software Engineering unit 5
Software Engineering unit 5Software Engineering unit 5
Software Engineering unit 5
 
Slides chapter 1
Slides chapter 1Slides chapter 1
Slides chapter 1
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Software Maintenance
Software MaintenanceSoftware Maintenance
Software Maintenance
 
12 software maintenance
12 software maintenance12 software maintenance
12 software maintenance
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
 
Chapter 9 software maintenance
Chapter 9 software maintenanceChapter 9 software maintenance
Chapter 9 software maintenance
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
7. The Software Development Process - Maintenance
7. The Software Development Process - Maintenance7. The Software Development Process - Maintenance
7. The Software Development Process - Maintenance
 

Similar a 5 chap - MAINTENANCE

Lecture - 7-10.pptx
Lecture - 7-10.pptxLecture - 7-10.pptx
Lecture - 7-10.pptxFarHana74914
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptHumzaWaris1
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed descriptionSaileshSingh27
 
Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019MuhammadTalha436
 
Ch2.Part2.Modified.ppt
Ch2.Part2.Modified.pptCh2.Part2.Modified.ppt
Ch2.Part2.Modified.pptMelisa521270
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering processRaheel Aslam
 
Ian Sommerville, Software Engineering, 9th Edition Ch2
Ian Sommerville,  Software Engineering, 9th Edition Ch2Ian Sommerville,  Software Engineering, 9th Edition Ch2
Ian Sommerville, Software Engineering, 9th Edition Ch2Mohammed Romi
 
Reverse engineering
Reverse  engineeringReverse  engineering
Reverse engineeringYuffie Valen
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineeringParminder Singh
 
3Audit Software & Tools.pptx
3Audit Software & Tools.pptx3Audit Software & Tools.pptx
3Audit Software & Tools.pptxjack952975
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering Huda Alameen
 
Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdmguestc990b6
 
Bse 3105 lecture 4-software re-engineering
Bse 3105  lecture 4-software re-engineeringBse 3105  lecture 4-software re-engineering
Bse 3105 lecture 4-software re-engineeringAlonzee Tash
 

Similar a 5 chap - MAINTENANCE (20)

Lecture - 7-10.pptx
Lecture - 7-10.pptxLecture - 7-10.pptx
Lecture - 7-10.pptx
 
ISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.pptISE_Lecture Week 2-SW Process Models.ppt
ISE_Lecture Week 2-SW Process Models.ppt
 
Software Maintenance with detailed description
Software Maintenance with detailed descriptionSoftware Maintenance with detailed description
Software Maintenance with detailed description
 
Ch2
Ch2Ch2
Ch2
 
Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019Sofware Engineering Important Past Paper 2019
Sofware Engineering Important Past Paper 2019
 
Ch2.Part2.Modified.ppt
Ch2.Part2.Modified.pptCh2.Part2.Modified.ppt
Ch2.Part2.Modified.ppt
 
software Engineering process
software Engineering processsoftware Engineering process
software Engineering process
 
Software process
Software processSoftware process
Software process
 
Ian Sommerville, Software Engineering, 9th Edition Ch2
Ian Sommerville,  Software Engineering, 9th Edition Ch2Ian Sommerville,  Software Engineering, 9th Edition Ch2
Ian Sommerville, Software Engineering, 9th Edition Ch2
 
Reverse engineering
Reverse  engineeringReverse  engineering
Reverse engineering
 
Software reverse engineering
Software reverse engineeringSoftware reverse engineering
Software reverse engineering
 
G213538
G213538G213538
G213538
 
3Audit Software & Tools.pptx
3Audit Software & Tools.pptx3Audit Software & Tools.pptx
3Audit Software & Tools.pptx
 
Softweare Engieering
Softweare Engieering Softweare Engieering
Softweare Engieering
 
Se lec 3
Se lec 3Se lec 3
Se lec 3
 
Presentation2
Presentation2Presentation2
Presentation2
 
Software Engineering The Multiview Approach And Wisdm
Software Engineering   The Multiview Approach And WisdmSoftware Engineering   The Multiview Approach And Wisdm
Software Engineering The Multiview Approach And Wisdm
 
Bse 3105 lecture 4-software re-engineering
Bse 3105  lecture 4-software re-engineeringBse 3105  lecture 4-software re-engineering
Bse 3105 lecture 4-software re-engineering
 
software engineering
software engineering software engineering
software engineering
 
Unit5.pptx
Unit5.pptxUnit5.pptx
Unit5.pptx
 

Más de sujitkumar Sujit.Karande (6)

Dss 08
Dss 08Dss 08
Dss 08
 
Sample question format
Sample question formatSample question format
Sample question format
 
Lect1
Lect1Lect1
Lect1
 
Strategic role of information
Strategic role of informationStrategic role of information
Strategic role of information
 
6 chap
6 chap6 chap
6 chap
 
Dss2
Dss2Dss2
Dss2
 

Último

How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17Celine George
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfVanessa Camilleri
 
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
 
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptxmary850239
 
ARTERIAL BLOOD GAS ANALYSIS........pptx
ARTERIAL BLOOD  GAS ANALYSIS........pptxARTERIAL BLOOD  GAS ANALYSIS........pptx
ARTERIAL BLOOD GAS ANALYSIS........pptxAneriPatwari
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Association for Project Management
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfPrerana Jadhav
 
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
 
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
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQuiz Club NITW
 
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
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operationalssuser3e220a
 
ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6Vanessa Camilleri
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQuiz Club NITW
 
Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Celine George
 

Último (20)

How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17How to Fix XML SyntaxError in Odoo the 17
How to Fix XML SyntaxError in Odoo the 17
 
ICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdfICS2208 Lecture6 Notes for SL spaces.pdf
ICS2208 Lecture6 Notes for SL spaces.pdf
 
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
 
4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx4.9.24 School Desegregation in Boston.pptx
4.9.24 School Desegregation in Boston.pptx
 
ARTERIAL BLOOD GAS ANALYSIS........pptx
ARTERIAL BLOOD  GAS ANALYSIS........pptxARTERIAL BLOOD  GAS ANALYSIS........pptx
ARTERIAL BLOOD GAS ANALYSIS........pptx
 
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
Team Lead Succeed – Helping you and your team achieve high-performance teamwo...
 
Narcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdfNarcotic and Non Narcotic Analgesic..pdf
Narcotic and Non Narcotic Analgesic..pdf
 
prashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Professionprashanth updated resume 2024 for Teaching Profession
prashanth updated resume 2024 for Teaching Profession
 
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
 
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
 
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...
 
Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"Mattingly "AI & Prompt Design: Large Language Models"
Mattingly "AI & Prompt Design: Large Language Models"
 
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITWQ-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
Q-Factor HISPOL Quiz-6th April 2024, Quiz Club NITW
 
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
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operational
 
ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6ICS 2208 Lecture Slide Notes for Topic 6
ICS 2208 Lecture Slide Notes for Topic 6
 
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptxINCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
 
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITWQ-Factor General Quiz-7th April 2024, Quiz Club NITW
Q-Factor General Quiz-7th April 2024, Quiz Club NITW
 
Faculty Profile prashantha K EEE dept Sri Sairam college of Engineering
Faculty Profile prashantha K EEE dept Sri Sairam college of EngineeringFaculty Profile prashantha K EEE dept Sri Sairam college of Engineering
Faculty Profile prashantha K EEE dept Sri Sairam college of Engineering
 
Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17Tree View Decoration Attribute in the Odoo 17
Tree View Decoration Attribute in the Odoo 17
 

5 chap - MAINTENANCE

  • 2. Study Resources: Reference Books • Analysis and design of information systems: James A. Senn. Page no. 694 • System Analysis And Design: Jalote. Page No. 11 • Software Engineering : Pressman. Page No. 762 • Software Engineering Concepts: Richard Fairley. Page No. 311- 328 2
  • 3. 5.1. Types of Maintenance The process of changing of a system after it has been delivered and is in use is called Software maintenance. • Why maintenance is required: • Not as rewarding as exciting as developing systems. It is perceived as requiring neither skill nor experience. • Users are not fully cognizant of the maintenance problem or its high cost. • Few tools and techniques are available for maintenance. • A good test plan is lacking. 3
  • 4. 5.1. Types of Maintenance Why maintenance is required: • Standards, procedures, and guidelines are poorly defined and enforced. • Maintenance is viewed as a necessary evil, often delegated to junior programmers. There are practically no maintenance manager job classification in the MIS field. • Programs are often maintained without care for structure and documentation. 4
  • 5. 5.1. Types of Maintenance Types of software maintenance 1. Corrective maintenance 2. Adaptive maintenance 3. Perfective maintenance 4. Preventive maintenance 5
  • 6. 1. Corrective maintenance • Maintenance which is required when an item has failed or worn out, to bring it back to working order. • In most cases this is expensive. • When equipment fails, need to replace, coding errors. • Cost of this type of maintenance is must not greater that preventive maintenance. • Is concern with fixing reported errors in the software. 6
  • 7. 2. Adaptive maintenance • Changing the s/f to new environment i.e. changing h/w platform, operating system. • Addition of new features, capabilities, up gradations, new requirements, new problems. • Isolation of system-dependent features. 7
  • 8. 3. Perfective maintenance • Perfective maintenance involves implementing new functional or non-functional system requirements. • Enhance the system by improving efficiency, reliability, functionality, or maintainability. • Corrective and adaptive maintenance are reactive. • Perfective maintenance, in contract, is proactive. • The idea is to fix the system before it breaks 8
  • 9. 4. Preventive maintenance • The objective of preventive maintenance is to anticipate problems and correct them before they occur. • System performance monitoring is an important key to preventive maintenance. 9
  • 10. 5.2. Maintenance Cost Software maintenance costs around 50% of total software life-cycle cost. How to reduce maintenance cost: • Maintenance management audit • Software system audit • Software modification 10
  • 11. Maintenance management audit • This evaluates the quality of maintenance effort . • Follow-up of all requests of maintenance. • Total hours worked are spent on error corrections, addition/changes/deletions, and improvements. • Organization must have a well-defined maintenance reduction program. 11
  • 12. Software system audit 1. Overall view of the system documents and an assessment of the quality of data files and data bases and system maintainability, reliability and efficiency. 2. Determination of functionality and assignment of preliminary ranking value. 3. Detail program audit – ranking value, mean time between failure(MTBF), size of the maintenance backlog. This determines system availability to users. 12
  • 13. Software modification 1. Program rewrites , which includes logic simplification, documentation updates, error correction. 2. System level updates, which includes system level documentations, up to date DFDs or system flowcharts, cross- references programs. 3. Reaudit of low-ranking programs to make sure that the errors have been corrected. 13
  • 14. 5.3. Reverse Engineering • Process of creating specifications that describe the action of existing applications. • Reverse engineering can also be performed to recreate the information describing the intent of existing systems. • Reverse engineering is an important concept that fits with evolution of information systems. 14
  • 15. 5.3. What is Reverse Engineering ? Forward Engineering Requirements Design Source Code Behavior 15
  • 16. 5.3. What is Reverse Engineering ? Forward Engineering Reverse Engineering Requirements Design Source Code Behavior 16
  • 17. 5.3. What is Reverse Engineering? 1. A systematic methodology for analyzing the design of an existing device or system, either as an approach to study the design or as a prerequisite for re-design. 2. Is the process of analysing a subject system to identify the system’s components and their interrelationships and create representations of the system in another form or at a higher level of abstraction. — Chikofsky & Cross, 1990 17
  • 18. 5.3. What is Reverse Engineering? 3. Analysing software with a view to understanding its design and specification 4. May be part of a re-engineering process but may also be used to re-specify a system for re-implementation 5. Builds a program data base and generates information from this 6. Program understanding tools (browsers, cross-reference generators, etc.) may be used in this process 7. To derive design information at the highest level possible 18
  • 19. Software Reengineering Process Program Modularised Original data Original documentation program program Reverse engineering Data Source code Program reengineering translation modularisation Program structure improvement Structured Reengineered program data 19
  • 20. The Reverse Engineering Process Program stucture Automated diagrams analysis System System to be Document Data stucture information re-engineered generation diagrams store Manual annotation Traceability matrices 20
  • 21. The Reverse Engineering Process 1. Collect Information 2. Examine Information 3. Extract the Structure 4. Record Functionality 5. Record Data-flow 6. Record Control-flow 21
  • 22. 5.3. What is Reverse Engineering? Abstraction System Reverse Engineering Forward Engineering Abstraction Re-Implementation Old system New System 22
  • 23. 5.3. What is Reverse Engineering? • RE encompasses any activity that is done to determine how a product works, to learn the ideas and technology that were used in developing that product. • RE can be done at many levels • RE generally belongs to Software Maintenance 23
  • 24. 5.3. Difference - Reverse Engineering & Reengineering • Reverse engineering is the general process of analyzing a technology specifically to ascertain how it was designed or how it operates. This kind of inquiry engages individuals in a constructive learning process about the operation of systems and products. • Reverse engineering as a method is not confined to any particular purpose, but is often an important part of the scientific method and technological development. • Reverse-engineering is taking apart a finished product for the purposes of learning how it works. 24
  • 25. 5.3. Difference - Reverse Engineering & Reengineering • Re-engineering is the bridge used by legacy software to migrate to an organization’s new maintenance environment. • Less formally, Re-engineering is the modification of a software system that takes place after it has been reverse engineered, generally to add new functionality, or to correct errors. • Re-engineering is simply a new re-implementation of a product with better engineering. 25
  • 26. 5.3. Difference - Reverse Engineering & Reengineering • Reverse engineering is to take a bridge apart (separately) to see how it was built. • Re-engineering is to throw a bridge away and rebuild it from scratch. 26
  • 27. 5.3. Why do we need RE ? • Recovery of lost information – providing proper system documentation • Assisting with maintenance – identification of side effects and anomalies • Migration to another hw/sw platform • Facilitating software reuse 27
  • 28. 5.3. Why do we need RE ? • Benefits – maintenance cost savings – quality improvements – competitive advantages – software reuse facilitation 28
  • 29. Scope and Task of Reverse Engineering • program understanding Problem/Application domain Mapping Program/Implemen. domain 29
  • 30. Scope and Task of Reverse Engineering • Redocumentation and/or document generation • Recovery of design approach and design details at any level of abstraction • Identifying reusable components and components that need restructuring • Recovering business rules • Understanding high-level system description. 30
  • 31. Levels of abstractions • Application – Application concepts, business rule, policies • Function – Logical and functional specification, non-functional requirement • Structure – Data and control flow, dependency graphs – Structure and subsystem charts – Architectures • Implementation – Symbol tables, source text 31
  • 32. 5.3. Reverse Engineering •Reverse engineering is required because of •To understand data •To understand processing •To modify user interface 32
  • 33. 5.3. Reverse Engineering Processes of Reverse Engineering: 1. Abstraction level 2. Completeness 3. Directionality 33
  • 34. 5.4. Introduction to legacy systems • Legacy systems are considered to be potentially problematic by many software engineers for several reasons. • These systems can be hard to maintain, improve, and expand because there is a general lack of understanding of the system . • A legacy system is an antiquated (OLD FACHIONED) computer system or application program which continues to be used because the user (typically an organization) does not want to replace or redesign it. 34
  • 35. 5.4. Introduction to legacy systems • An old method, technology, computer system, or application program. • Continues to be used, typically because it still functions for the users' needs, even though newer technology or more efficient methods of performing a task are now available . • Older software systems that remain vital to an organisation. 35
  • 36. 5.4. Introduction to legacy systems • These systems are often hard to maintain, improve, and expand because there is a general lack of understanding of the system; • The designers of the system have left the organization, so there is no one left to explain how it works. • Lack of understanding can be exacerbated by inadequate documentation, or manuals getting lost over the years. • Integration with newer systems may also be difficult because new software may use completely different technologies. 36
  • 37. 5.4. Introduction to legacy systems Despite these problems, organizations can have compelling reasons for keeping a legacy system, such as: 1. The costs of redesigning the system are prohibitive because it is large, monolithic, and/or complex. 2. The system requires close to 100% availability, so it cannot be taken out of service, and the cost of designing a new system with a similar availability level are high. 3. The way the system works is not well understood. Such a situation can occur when the designers of the system have left the organization, and the system has either not been fully documented or such documentation has been lost over the years. 4. The user expects that the system can easily be replaced when this becomes necessary. 5. The system works satisfactorily, and the owner sees no reason for changing it. 37
  • 38. 5.5. Role of documentation in maintenance and types of documentation. • It is one of the oldest recommended practices and yet has been, and continues to be, renowned for its absence. • Software maintenance is traditionally defined as any modification made on a software system after its delivery. • predominant activity in software engineering 38
  • 39. 5.5. TYPES OF DOCUMENTATION • Types of documentation include: • Requirements • Architecture/Design • Technical • End User • Marketing 39