This document discusses software maintenance and evolution. It covers topics like:
- Software needs to change over time to meet new requirements and fix errors
- Maintenance includes fault repair, system adaptation, and functionality changes
- There are different strategies for software evolution like maintenance, architectural transformation, and reengineering
- Maintenance is important but inefficient due to issues like lack of documentation and high turnover
- Proper management of maintenance through techniques like change management can help reduce costs
These slides, covering the topics of Software Maintenance and Evolution, are introductory slides to the course LINGI2252 “Software Maintenance and Evolution”, given by Prof. Kim Mens at UCL, Belgium
These slides, covering the topics of Software Maintenance and Evolution, are introductory slides to the course LINGI2252 “Software Maintenance and Evolution”, given by Prof. Kim Mens at UCL, Belgium
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.
Quality defects in TMT Bars, Possible causes and Potential Solutions.PrashantGoswami42
Maintaining high-quality standards in the production of TMT bars is crucial for ensuring structural integrity in construction. Addressing common defects through careful monitoring, standardized processes, and advanced technology can significantly improve the quality of TMT bars. Continuous training and adherence to quality control measures will also play a pivotal role in minimizing these defects.
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.
Quality defects in TMT Bars, Possible causes and Potential Solutions.PrashantGoswami42
Maintaining high-quality standards in the production of TMT bars is crucial for ensuring structural integrity in construction. Addressing common defects through careful monitoring, standardized processes, and advanced technology can significantly improve the quality of TMT bars. Continuous training and adherence to quality control measures will also play a pivotal role in minimizing these defects.
Cosmetic shop management system project report.pdfKamal Acharya
Buying new cosmetic products is difficult. It can even be scary for those who have sensitive skin and are prone to skin trouble. The information needed to alleviate this problem is on the back of each product, but it's thought to interpret those ingredient lists unless you have a background in chemistry.
Instead of buying and hoping for the best, we can use data science to help us predict which products may be good fits for us. It includes various function programs to do the above mentioned tasks.
Data file handling has been effectively used in the program.
The automated cosmetic shop management system should deal with the automation of general workflow and administration process of the shop. The main processes of the system focus on customer's request where the system is able to search the most appropriate products and deliver it to the customers. It should help the employees to quickly identify the list of cosmetic product that have reached the minimum quantity and also keep a track of expired date for each cosmetic product. It should help the employees to find the rack number in which the product is placed.It is also Faster and more efficient way.
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdffxintegritypublishin
Advancements in technology unveil a myriad of electrical and electronic breakthroughs geared towards efficiently harnessing limited resources to meet human energy demands. The optimization of hybrid solar PV panels and pumped hydro energy supply systems plays a pivotal role in utilizing natural resources effectively. This initiative not only benefits humanity but also fosters environmental sustainability. The study investigated the design optimization of these hybrid systems, focusing on understanding solar radiation patterns, identifying geographical influences on solar radiation, formulating a mathematical model for system optimization, and determining the optimal configuration of PV panels and pumped hydro storage. Through a comparative analysis approach and eight weeks of data collection, the study addressed key research questions related to solar radiation patterns and optimal system design. The findings highlighted regions with heightened solar radiation levels, showcasing substantial potential for power generation and emphasizing the system's efficiency. Optimizing system design significantly boosted power generation, promoted renewable energy utilization, and enhanced energy storage capacity. The study underscored the benefits of optimizing hybrid solar PV panels and pumped hydro energy supply systems for sustainable energy usage. Optimizing the design of solar PV panels and pumped hydro energy supply systems as examined across diverse climatic conditions in a developing country, not only enhances power generation but also improves the integration of renewable energy sources and boosts energy storage capacities, particularly beneficial for less economically prosperous regions. Additionally, the study provides valuable insights for advancing energy research in economically viable areas. Recommendations included conducting site-specific assessments, utilizing advanced modeling tools, implementing regular maintenance protocols, and enhancing communication among system components.
Vaccine management system project report documentation..pdfKamal Acharya
The Division of Vaccine and Immunization is facing increasing difficulty monitoring vaccines and other commodities distribution once they have been distributed from the national stores. With the introduction of new vaccines, more challenges have been anticipated with this additions posing serious threat to the already over strained vaccine supply chain system in Kenya.
Courier management system project report.pdfKamal Acharya
It is now-a-days very important for the people to send or receive articles like imported furniture, electronic items, gifts, business goods and the like. People depend vastly on different transport systems which mostly use the manual way of receiving and delivering the articles. There is no way to track the articles till they are received and there is no way to let the customer know what happened in transit, once he booked some articles. In such a situation, we need a system which completely computerizes the cargo activities including time to time tracking of the articles sent. This need is fulfilled by Courier Management System software which is online software for the cargo management people that enables them to receive the goods from a source and send them to a required destination and track their status from time to time.
Water scarcity is the lack of fresh water resources to meet the standard water demand. There are two type of water scarcity. One is physical. The other is economic water scarcity.
Student information management system project report ii.pdfKamal Acharya
Our project explains about the student management. This project mainly explains the various actions related to student details. This project shows some ease in adding, editing and deleting the student details. It also provides a less time consuming process for viewing, adding, editing and deleting the marks of the students.
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...Amil Baba Dawood bangali
Contact with Dawood Bhai Just call on +92322-6382012 and we'll help you. We'll solve all your problems within 12 to 24 hours and with 101% guarantee and with astrology systematic. If you want to take any personal or professional advice then also you can call us on +92322-6382012 , ONLINE LOVE PROBLEM & Other all types of Daily Life Problem's.Then CALL or WHATSAPP us on +92322-6382012 and Get all these problems solutions here by Amil Baba DAWOOD BANGALI
#vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore#blackmagicformarriage #aamilbaba #kalajadu #kalailam #taweez #wazifaexpert #jadumantar #vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore #blackmagicforlove #blackmagicformarriage #aamilbaba #kalajadu #kalailam #taweez #wazifaexpert #jadumantar #vashikaranspecialist #astrologer #palmistry #amliyaat #taweez #manpasandshadi #horoscope #spiritual #lovelife #lovespell #marriagespell#aamilbabainpakistan #amilbabainkarachi #powerfullblackmagicspell #kalajadumantarspecialist #realamilbaba #AmilbabainPakistan #astrologerincanada #astrologerindubai #lovespellsmaster #kalajaduspecialist #lovespellsthatwork #aamilbabainlahore #Amilbabainuk #amilbabainspain #amilbabaindubai #Amilbabainnorway #amilbabainkrachi #amilbabainlahore #amilbabaingujranwalan #amilbabainislamabad
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Sw Maintenance.ppt
1. 2004 by SEC
Software Engineering
Software Maintenance
Dr. R. P. Mahapatra
Professor & HOD CSE
SRMIST,NCR Campus, Modinagar, Ghaziabad
2. 2
2004 by SEC
Unit-5
Software Maintenance
9.1 Software Evolution
9.2 Types of Software Maintenance
9.3 Maintenance Techniques
9.4 The Management of Maintenance
9.5 Reengineering, Reverse Engineering and Forward
Engineering
3. 3
2004 by SEC
Software Evolution
It is impossible to produce system of any size which do not
need to be changed. Once software is put into use, new
requirements emerge and existing requirements changes as the
business running that software changes.
Parts of the software may have to be modified to correct
errors that are found in operation, improve its performance or
other non-functional characteristics.
All of this means that, after delivery, software systems always
evolve in response to demand for change.
4. 4
2004 by SEC
Program Evolution Dynamic
Law Description
Continuing change A program that is used in real-world environment
necessarily must change or become progressively
less useful in that environment.
Increasing complexity As an evolving program changes, its structure
tends to become more complex. Extra resources
must be devoted to preserving and simplify the
structure.
Program evolution dynamic is the study of system change.
The majority of work in this area has been carried out by
Lehman and Belady. From these studies , they proposed a sets
of laws concerning system change.
5. 5
2004 by SEC
Program Evolution Dynamic (cont’d)
Law Description
Large program evolution Program evolution is self-regulation process.
System attributes such as size, time between
release and the number of report errors are
approximately invariant for each system
release
Organizational stability Over a program’s lifetime, its rate of
development is approximately constant and
independent of the resources devoted to the
system development
Conservation of familiarity Over the lifetime of system, the incremental
change in each release is approximately
constant.
6. 6
2004 by SEC
Software Evolution Approaches
There are a number of different strategies for software change.
– Software maintenance
– Architectural transformation
– Software re-engineering.
Software maintenance
– Changes to the software are made in response to changed requirements
but the fundamental structure of the software remains stable. This is
most common approach used to system change.
7. 7
2004 by SEC
Software Evolution Approaches
(cont’d)
Architectural transformation
– This is a more radical approach to software change then maintenance as
it involves making significant change to the architecture of the system.
Software re-engineering
– This is different from other strategies in that no new functionality is
added to the system.
– System re-engineering may involve some structural modifications but
dose not usually involves major architectural change.
8. 8
2004 by SEC
9.2 Types of Software Maintenance
9. 9
2004 by SEC
Software Maintenance
Software maintenance is the general process of changing a
system after it has been diverted.
The change may be simple changes to correct coding errors,
more extensive changes to correct design errors or significant
enhancement to correct specification error or accommodate
new requirements.
10. 10
2004 by SEC
Maintenance to repair software faults
– Changing a system to correct deficiencies in the way meets
its requirements
Maintenance to adapt software to a different operating
environment
– Changing a system so that it operates in a different environment
(computer, OS, etc.) from its initial implementation
Maintenance to add to or modify the system’s
functionality
– Modifying the system to satisfy new requirements
Types of Maintenance
11. 11
2004 by SEC
Maintenance effort distribution
software
adaption
(18%)
Fault repair
(17%)
functionality
addition or
modification
(65%)
12. 12
2004 by SEC
Maintenance Examples
Y2K
– many, many systems had to be updated
– language analyzers (find where changes need to be made)
Anti-Virus Software
– don't usually have to update software, but must send virus definitions
Operating System Patching
– Microsoft, Apple, Linux/Unix
– OS is core to use of computer, so it must be constantly maintained
Commercial Software in General
– customers need to be informed of updates
– updates have to be easily available - web is good tool
13. 13
2004 by SEC
The Maintenance Process
Maintenance process vary considerably depending on the
types of software being maintained, the development
processes used in an organization and people involved in the
process.
Change
requests
Impact
analysis
Release
planning
Change
implementation
System
release
Fault
repair
Flat form
adaptation
System
enhancement
Overview of the Maintenance Process
14. 14
2004 by SEC
Change Requests
Change requests are requests for system changes from users,
customers or management
In principle, all change requests should be carefully analysed
as part of the maintenance process and then implemented
In practice, some change requests must be implemented
urgently
– Fault repair
– Changes to the system’s environment
– Urgently required business changes
15. 15
2004 by SEC
Change Implementation
Requirements
updating
Software
development
Requirements
analysis
Proposed
changes
Change implementation
16. 16
2004 by SEC
Why is Maintenance Inefficient?
Factors adversely effect maintenance
– Lack of models or ignorance of available models (73%)
– Lack of documentation (67.6%)
– Lack of time to update existing documentation (54.1%)
Other factors (1994 study)
– Quality of original application
– Documentation quality
– Rotation of maintenance people
17. 17
2004 by SEC
Why is Maintenance Inefficient?
(cont’d)
More factors (Yip ’95 study)
– Lack of human resources
– Different programming styles conflict
– Lack of documentation and tools
– Bad maintenance management
– Documentation policy
– Turnover
18. 18
2004 by SEC
9.4 The Management of Maintenance
19. 19
2004 by SEC
Model of Maintenance Effort
Model of maintenance effort M = p + K^(c-d)
M = total maintenance effort over entire lifecycle
p = productive efforts: analysis, design, code, test
c = complexity due to lack of structured design and documentation
d = degree of familiarization with the system
K = empirically determined constant
20. 20
2004 by SEC
What Affects the Maintainability of an
Application?
Application age
– (software rust?) older programs were probably worse written and have
probably been patched more
Size
– measured in KLOC, number of input/output files
Programming language
– 4gls are supposed to produce more maintainable code than 3gls
21. 21
2004 by SEC
What Affects the Maintainability of an
Application? (cont’d)
Processing environment
– files harder to maintain than databases, real-time harder than batch
Analysis and design methodologies
– well designed software is supposed to be much easier to maintain
Structured programming
– there is conflicting evidence whether this really helps
22. 22
2004 by SEC
What Affects the Maintainability of an
Application? (cont’d)
Modularization
– (central thesis of all the oo techniques) small reasonably self contained
pieces of code should be easier to maintain
Documentation generation
– maintenance of documentation is as expensive as maintenance of code
End-user involvement
– some researchers believe when end users are more involved
maintenance decreases
Maintenance management
– scheduling and the attitudes of management to affects productivity
23. 23
2004 by SEC
Problems in Managing Maintenance
Changing priorities
– chaotic nature of maintenance requests, the length of maintenance tasks
causing new requests to come along before an ongoing task is done.
Inadequate testing methods
– lack of time set aside for testing, of comprehensive test data, of
rigorous testing requirements as a standard for signing off.
Performance measurement difficulties
– how do you measure individual or group performance?
System documentation incomplete or non-existent
– training takes a long time for learning an application so programmers
get stuck on one piece of software.
Adapting to the rapidly changing business environment
– hardware and software also become obsolete.
24. 24
2004 by SEC
Usually greater than development costs (2* to
100* depending on the application)
Affected by both technical and non-technical
factors
Increases as software is maintained.
Maintenance corrupts the software structure so
makes further maintenance more difficult.
Ageing software can have high support costs
(e.g. old languages, compilers etc.)
Maintenance Costs
25. 25
2004 by SEC
Maintenance Costs (cont’d)
Time and money (software that costs £ 10 a line to develop costs £ 400 a
line to maintain)
Organizations become maintenance bound and cannot produce new
software
Customer dissatisfaction when seemingly legitimate requests for repair or
modification cannot be addressed in a timely manner
Reduction in overall software quality as changes introduce latent errors in
the maintained software
Upheaval caused during development efforts when staff must be “pulled”
to work on a maintenance task
26. 26
2004 by SEC
Development/Maintenance Costs
0 50 100 150 200 250 300 350 400 450 500
System 1
System 2
Development costs Maintenance costs
$
27. 27
2004 by SEC
Team stability
– Maintenance costs are reduced if the same staff are involved with
them for some time
Contractual responsibility
– The developers of a system may have no contractual responsibility
for maintenance so there is no incentive to design for future change
Staff skills
– Maintenance staff are often inexperienced and have limited domain
knowledge
Program age and structure
– As programs age, their structure is degraded and they become
harder to understand and change
Maintenance Cost Factors
28. 28
2004 by SEC
Change Management
Change is a fact of life for large software. A defined change
management process and associated CASE tools ensure that
these changes are recorded and applied to the system in a
cost-effective way.
The change management process should come into effect
when the software associated document is put under the
control of the configuration management team.
Change management procedures should be designed to ensure
that the costs and benefits of change are properly analyzed
and changes to a system are made in a controlled way.
29. 29
2004 by SEC
9.5 Re-engineering, Reverse Engineering and
Forward Engineering,
30. 30
2004 by SEC
Software Rejuvenation
Re-documentation
– Creation or revision of alternative representations of software
at the same level of abstraction
– Generates:
data interface tables, call graphs, component/variable cross
references etc.
Restructuring
– transformation of the system’s code without changing its behavior
31. 31
2004 by SEC
Software Rejuvenation
Reverse Engineering
– Analyzing a system to extract information about the behavior and/or
structure
also Design Recovery - recreation of design abstractions from
code, documentation, and domain knowledge
– Generates:
structure charts, entity relationship diagrams, DFDs, requirements
models
Re-engineering
– Examination and alteration of a system to reconstitute it in another
form
– Also known as renovation, reclamation
32. 32
2004 by SEC
Re-structuring or re-writing part or all of a
legacy system without changing its
functionality
Applicable where some but not all sub-systems
of a larger system require frequent
maintenance
Re-engineering involves adding effort to make
them easier to maintain. The system may be re-structured
and re-documented
When system changes are mostly confined to
part of the system then re-engineer that part
When hardware or software support becomes
obsolete
System Re-engineering
33. 33
2004 by SEC
Re-engineering Advantages
Reduced risk
– There is a high risk in new software development. There may be
development problems, staffing problems and specification
problems
Reduced cost
– The cost of re-engineering is often significantly less than the costs
of developing new software
34. 34
2004 by SEC
Forward Engineering and Re-engineering
Understanding and
transformation
Existing
software system
Re-engineered
system
Design and
implementation
System
specification
New
system
Software re-engineering
Forward engineering
35. 35
2004 by SEC
Re-Engineering Cost Factors
The quality of the software to be re-engineered
The tool support available for re-engineering
The extent of the data conversion which is required
The availability of expert staff for re-engineering
36. 36
2004 by SEC
The Program Translation Process
[SOM2004]
Automatically
translate code
Design translator
instructions
Identify source
code differences
Manually
translate code
System to be
re-engineered
System to be
re-engineered
Re-engineered
system
37. 37
2004 by SEC
Program Structure Improvement
Maintenance tends to corrupt the structure of a program. It
becomes harder and harder to understand
The program may be automatically restructured to remove
unconditional branches
Conditions may be simplified to make them more readable
38. 38
2004 by SEC
Module types
Data abstractions
– Abstract data types where data structures and associated operations
are grouped
Hardware modules
– All functions required to interface with a hardware unit
Functional modules
– Modules containing functions that carry out closely related tasks
Process support modules
– Modules where the functions support a business process or process
fragment
39. 39
2004 by SEC
Data Abstraction Recovery
Analyse common data areas to identify logical abstractions
Create an abstract data type or object class for each of these
abstractions
Provide functions to access and update each field of the data
abstraction
Use a program browser to find calls to these data
abstractions and replace these with the new defined
functions
40. 40
2004 by SEC
Data Re-engineering
Involves analysing and reorganising the data structures (and
sometimes the data values) in a program
May be part of the process of migrating from a file-based
system to a DBMS-based system or changing from one
DBMS to another
Objective is to create a managed data environment
41. 41
2004 by SEC
Data Conversion
Data re-engineering may involve changing the data structure
organisation without changing the data values
Data value conversion is very expensive. Special-purpose
programs have to be written to carry out the conversion
42. 42
2004 by SEC
Reverse Engineering
Analysing software with a view to understanding its design
and specification
May be part of a re-engineering process but may also be
used to re-specify a system for re-implementation
Builds a program data base and generates information from
this
Program understanding tools (browsers, cross-reference
generators, etc.) may be used in this process