1. The document discusses various types of software maintenance including corrective, adaptive, perfective, and preventive maintenance.
2. It also covers the importance of documentation for software maintenance and the different types of documentation like requirements, architecture/design, technical, end user, and marketing documentation.
3. Reverse engineering is described as the process of analyzing a system to understand its components and structure in order to modify, redesign or recreate the system at a higher level of abstraction.
Migration of form based legacy systems towards service-oriented computing is a challenging task, requiring the adaptation of the legacy interface to the interaction paradigm of Web services. In this paper, a wrapping methodology is proposed to make interactive functionalities of legacy systems accessible as Web Services. The wrapper that is used for interacting with the legacy system acts as an interpreter of a Finite State Automaton that describes the Model of the Interaction between user and legacy system. This model is obtained by black box reverse engineering techniques. A migration process and a software architecture that allow a functionality of a legacy system to be exported as a web service are presented in the paper.
Webinar topic: Migration from Procedural to OOP (Indonesian)
Presenter: Achmad Mardiansyah
In this webinar series, We are discussing a migration of the PHP development model from Procedural to OOP (Object Oriented Programming). This slide is a part of PHP ID (PHP Indonesia) Online Learning #6.
Please share your feedback or webinar ideas here: http://bit.ly/glcfeedback
Check our schedule for future events: https://www.glcnetworks.com/schedule/
Follow our social media for updates: Facebook, Instagram, YouTube Channel, and telegram
Recording available on Youtube
https://youtu.be/y3w6H04yPDU
This is a detail lecture about software re-engineering. To make software more maintainable. This lecture also give detail about software reverse engineering. When to re-engineer and how to re-engineer software.
Migration of form based legacy systems towards service-oriented computing is a challenging task, requiring the adaptation of the legacy interface to the interaction paradigm of Web services. In this paper, a wrapping methodology is proposed to make interactive functionalities of legacy systems accessible as Web Services. The wrapper that is used for interacting with the legacy system acts as an interpreter of a Finite State Automaton that describes the Model of the Interaction between user and legacy system. This model is obtained by black box reverse engineering techniques. A migration process and a software architecture that allow a functionality of a legacy system to be exported as a web service are presented in the paper.
Webinar topic: Migration from Procedural to OOP (Indonesian)
Presenter: Achmad Mardiansyah
In this webinar series, We are discussing a migration of the PHP development model from Procedural to OOP (Object Oriented Programming). This slide is a part of PHP ID (PHP Indonesia) Online Learning #6.
Please share your feedback or webinar ideas here: http://bit.ly/glcfeedback
Check our schedule for future events: https://www.glcnetworks.com/schedule/
Follow our social media for updates: Facebook, Instagram, YouTube Channel, and telegram
Recording available on Youtube
https://youtu.be/y3w6H04yPDU
This is a detail lecture about software re-engineering. To make software more maintainable. This lecture also give detail about software reverse engineering. When to re-engineer and how to re-engineer software.
Following presentation answers:
- Why do we need evolution?
- What happens if we do not evolve the software?
- What are the types of software evolution?
- What are Lehman's laws
- What are the strategies for evolution?
Following presentation answers:
- Why do we need evolution?
- What happens if we do not evolve the software?
- What are the types of software evolution?
- What are Lehman's laws
- What are the strategies for evolution?
Renewable energy is energy that is collected from renewable resources that are naturally replenished on a human timescale. It includes sources such as sunlight, wind, the movement of water, and geothermal heat.[2] Although most renewable energy sources are sustainable, some are not. For example, some biomass sources are considered unsustainable at current rates of exploitation.[3][4] Renewable energy often provides energy for electricity generation to a grid, air and water heating/cooling, and stand-alone power systems.
Since 2011, the amount of renewable Energies within global production grew from 20 to 28%. Thereby fossil and nuclear production shrunk from 68 to 60% and 12 to 10%. The share of hydrogenpower decreased from 16 to 15% while power from sun and wind increased from 2 up to 10% while bio- and biothermal energies grew from 2 on 3%. There are 3.146 Gigawatt installed in 135 countries, while 156 countries have laws ruling renewable energie sector.Renewable energy technology projects are typically large-scale, but they are also suited to rural and remote areas and developing countries, where energy is often crucial in human development.[22][23] As most of the renewable energy technologies provide electricity, renewable energy is often deployed together with further electrification, which has several benefits: electricity can move heat or objects efficiently, and is clean at the point of consumption.[24][25] In addition, electrification with renewable energy is more efficient and therefore leads to significant reductions in primary energy requirements.[26] In 2021, China accounted for almost half of the global increase in renewable electricity.Renewable energy stands in contrast to fossil fuels, which are being used far more quickly than they are being replenished. Renewable energy resources and significant opportunities for energy efficiency exist over wide geographical areas, in contrast to other energy sources, which are concentrated in a limited number of countries. Rapid deployment of renewable energy and energy efficiency, and technological diversification of energy sources, would result in significant energy security and economic benefits.[17] Solar and wind power have got much cheaper.[30] In some cases it will be cheaper to transition to these sources as opposed to continuing to use the current, inefficient, fossil fuels. It would also reduce environmental pollution such as air pollution caused by the burning of fossil fuels, and improve public health, reduce premature mortalities due to pollution and save associated health costs that could amount to trillions of dollars annually.[31][32] Multiple analyses of decarbonization strategies have found that quantified health benefits can significantly offset the costs of implementing these strategies.[33][34]
Climate change concerns, coupled with the continuing fall in the costs of some renewable energy equipment, such as wind turbines and solar panels, are driving increased use.
How to Add Chatter in the odoo 17 ERP ModuleCeline George
In Odoo, the chatter is like a chat tool that helps you work together on records. You can leave notes and track things, making it easier to talk with your team and partners. Inside chatter, all communication history, activity, and changes will be displayed.
Executive Directors Chat Leveraging AI for Diversity, Equity, and InclusionTechSoup
Let’s explore the intersection of technology and equity in the final session of our DEI series. Discover how AI tools, like ChatGPT, can be used to support and enhance your nonprofit's DEI initiatives. Participants will gain insights into practical AI applications and get tips for leveraging technology to advance their DEI goals.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Dr. Vinod Kumar Kanvaria
Exploiting Artificial Intelligence for Empowering Researchers and Faculty,
International FDP on Fundamentals of Research in Social Sciences
at Integral University, Lucknow, 06.06.2024
By Dr. Vinod Kumar Kanvaria
Thinking of getting a dog? Be aware that breeds like Pit Bulls, Rottweilers, and German Shepherds can be loyal and dangerous. Proper training and socialization are crucial to preventing aggressive behaviors. Ensure safety by understanding their needs and always supervising interactions. Stay safe, and enjoy your furry friends!
This slide is special for master students (MIBS & MIFB) in UUM. Also useful for readers who are interested in the topic of contemporary Islamic banking.
Safalta Digital marketing institute in Noida, provide complete applications that encompass a huge range of virtual advertising and marketing additives, which includes search engine optimization, virtual communication advertising, pay-per-click on marketing, content material advertising, internet analytics, and greater. These university courses are designed for students who possess a comprehensive understanding of virtual marketing strategies and attributes.Safalta Digital Marketing Institute in Noida is a first choice for young individuals or students who are looking to start their careers in the field of digital advertising. The institute gives specialized courses designed and certification.
for beginners, providing thorough training in areas such as SEO, digital communication marketing, and PPC training in Noida. After finishing the program, students receive the certifications recognised by top different universitie, setting a strong foundation for a successful career in digital marketing.
A workshop hosted by the South African Journal of Science aimed at postgraduate students and early career researchers with little or no experience in writing and publishing journal articles.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
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
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
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