Chapter No. 5Maintenance                1
Study Resources:  Reference Books• Analysis and design of information systems: James A. Senn.  Page no. 694• System Analys...
5.1.   Types of Maintenance       The process of changing of a system after it       has been delivered and is in use is c...
5.1.   Types of MaintenanceWhy maintenance is required:   • Standards, procedures, and guidelines are poorly defined     a...
5.1.   Types of MaintenanceTypes of software maintenance1.     Corrective maintenance2.     Adaptive maintenance3.     Per...
1. Corrective maintenance• Maintenance which is required when an item has  failed or worn out, to bring it back to working...
2. Adaptive maintenance• Changing the s/f to new environment i.e.  changing h/w platform, operating system.• Addition of n...
3. Perfective maintenance• Perfective maintenance involves implementing  new functional or non-functional system  requirem...
4. Preventive maintenance• The objective of preventive maintenance is to  anticipate problems and correct them before  the...
5.2.   Maintenance CostSoftware maintenance costs around 50% of totalsoftware life-cycle cost.How to reduce maintenance co...
Maintenance management audit• This evaluates the quality of maintenance  effort .• Follow-up of all requests of maintenanc...
Software system audit1. Overall view of the system documents and an   assessment of the quality of data files and data   b...
Software modification1. Program rewrites , which includes logic   simplification, documentation updates, error   correctio...
5.3.   Reverse Engineering•   Process of creating specifications that describe the action    of existing applications.•   ...
5.3.   What is Reverse Engineering ?       Forward Engineering                    Requirements                        Desi...
5.3.   What is Reverse Engineering ?       Forward Engineering        Reverse Engineering                    Requirements ...
5.3.   What is Reverse Engineering?1. A systematic methodology for analyzing the design of an   existing device or system,...
5.3.   What is Reverse Engineering?3. Analysing software with a view to understanding its    design and specification4. Ma...
Software Reengineering Process                                Program       Modularised       Original data Original      ...
The Reverse Engineering Process                                                        Program stucture                Aut...
The Reverse Engineering Process1. Collect Information2. Examine Information3. Extract the Structure4. Record Functionality...
5.3.   What is Reverse Engineering?                      Abstraction SystemReverse Engineering                    Forward ...
5.3.   What is Reverse Engineering?• RE encompasses any activity that is done to  determine how a product works, to learn ...
5.3.   Difference - Reverse Engineering &           Reengineering• Reverse engineering is the general process of analyzing...
5.3.   Difference - Reverse Engineering &           Reengineering• Re-engineering is the bridge used by legacy software to...
5.3.   Difference - Reverse Engineering &       Reengineering• Reverse engineering is to take a bridge apart (separately) ...
5.3.   Why do we need RE ?  • Recovery of lost information       – providing proper system documentation  • Assisting with...
5.3. Why     do we need RE ?• Benefits  – maintenance cost savings  – quality improvements  – competitive advantages  – so...
Scope and Task of Reverse Engineering • program understanding              Problem/Application                    domain  ...
Scope and Task of Reverse Engineering• Redocumentation          and/or     document  generation• Recovery of design approa...
Levels of abstractions • Application    – Application concepts, business rule, policies • Function    – Logical and functi...
5.3.   Reverse Engineering•Reverse engineering is required because of        •To understand data        •To understand pro...
5.3.   Reverse EngineeringProcesses of Reverse Engineering:        1. Abstraction level        2. Completeness        3. D...
5.4.   Introduction to legacy systems•      Legacy systems are considered to be potentially problematic by many       soft...
5.4.   Introduction to legacy systems•      An old method, technology, computer system, or application       program.•    ...
5.4.   Introduction to legacy systems•      These systems are often hard to maintain, improve, and expand       because th...
5.4.   Introduction to legacy systemsDespite these problems, organizations can have compelling reasons forkeeping a legacy...
5.5. Role of documentation in maintenance and    types of documentation.•   It is one of the oldest recommended practices ...
5.5.   TYPES OF DOCUMENTATION• Types of documentation include:•      Requirements•      Architecture/Design•      Technica...
Upcoming SlideShare
Loading in …5
×

5 chap - MAINTENANCE

789 views

Published on

PROF. SUJIT H. KARANDE

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
789
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
46
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

5 chap - MAINTENANCE

  1. 1. Chapter No. 5Maintenance 1
  2. 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. 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. 4. 5.1. Types of MaintenanceWhy 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. 5.1. Types of MaintenanceTypes of software maintenance1. Corrective maintenance2. Adaptive maintenance3. Perfective maintenance4. Preventive maintenance 5
  6. 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. 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. 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. 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. 10. 5.2. Maintenance CostSoftware maintenance costs around 50% of totalsoftware life-cycle cost.How to reduce maintenance cost:• Maintenance management audit• Software system audit• Software modification 10
  11. 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. 12. Software system audit1. 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. 13. Software modification1. 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. 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. 15. 5.3. What is Reverse Engineering ? Forward Engineering Requirements Design Source Code Behavior 15
  16. 16. 5.3. What is Reverse Engineering ? Forward Engineering Reverse Engineering Requirements Design Source Code Behavior 16
  17. 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. 18. 5.3. What is Reverse Engineering?3. Analysing software with a view to understanding its design and specification4. May be part of a re-engineering process but may also be used to re-specify a system for re-implementation5. Builds a program data base and generates information from this6. Program understanding tools (browsers, cross-reference generators, etc.) may be used in this process7. To derive design information at the highest level possible 18
  19. 19. Software Reengineering Process Program Modularised Original data Original documentation program program Reverse engineering DataSource code Program reengineering translation modularisation Program structure improvement Structured Reengineered program data 19
  20. 20. The Reverse Engineering Process Program stucture Automated diagrams analysis SystemSystem to be Document Data stucture informationre-engineered generation diagrams store Manual annotation Traceability matrices 20
  21. 21. The Reverse Engineering Process1. Collect Information2. Examine Information3. Extract the Structure4. Record Functionality5. Record Data-flow6. Record Control-flow 21
  22. 22. 5.3. What is Reverse Engineering? Abstraction SystemReverse Engineering Forward Engineering Abstraction Re-Implementation Old system New System 22
  23. 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. 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. 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. 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. 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. 28. 5.3. Why do we need RE ?• Benefits – maintenance cost savings – quality improvements – competitive advantages – software reuse facilitation 28
  29. 29. Scope and Task of Reverse Engineering • program understanding Problem/Application domain Mapping Program/Implemen. domain 29
  30. 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. 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. 32. 5.3. Reverse Engineering•Reverse engineering is required because of •To understand data •To understand processing •To modify user interface 32
  33. 33. 5.3. Reverse EngineeringProcesses of Reverse Engineering: 1. Abstraction level 2. Completeness 3. Directionality 33
  34. 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. 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. 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. 37. 5.4. Introduction to legacy systemsDespite these problems, organizations can have compelling reasons forkeeping 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. 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. 39. 5.5. TYPES OF DOCUMENTATION• Types of documentation include:• Requirements• Architecture/Design• Technical• End User• Marketing 39

×