This document discusses software maintenance. It defines software maintenance as modifying software after delivery to correct faults, improve performance, or change attributes. The document then discusses reasons for maintenance like changing requirements or fixing errors. It outlines different maintenance types including corrective, adaptive, perfective and preventive maintenance. The document also examines maintenance models such as quick-fix, iterative enhancement, full-reuse, Boehm's model and Taute's model.
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?
The quality of software systems may be expressed as a collection of Software Quality Attributes. When the system requirements are defined, it is essential also to define what is expected regarding these quality attributes, since these expectations will guide the planning of the system architecture and design.
Software quality attributes may be classified into two main categories: static and dynamic. Static quality attributes are the ones that reflect the system’s structure and organization. Examples of static attributes are coupling, cohesion, complexity, maintainability and extensibility. Dynamic attributes are the ones that reflect the behavior of the system during its execution. Examples of dynamic attributes are memory usage, latency, throughput, scalability, robustness and fault-tolerance.
Following the definitions of expectations regarding the quality attributes, it is essential to devise ways to measure them and verify that the implemented system satisfies the requirements. Some static attributes may be measured through static code analysis tools, while others require effective design and code reviews. The measuring and verification of dynamic attributes requires the usage of special non-functional testing tools such as profilers and simulators.
In this talk I will discuss the main Software Quality attributes, both static and dynamic, examples of requirements, and practical guidelines on how to measure and verify these attributes.
The quality of software systems may be expressed as a collection of Software Quality Attributes. When the system requirements are defined, it is essential also to define what is expected regarding these quality attributes, since these expectations will guide the planning of the system architecture and design.
Software quality attributes may be classified into two main categories: static and dynamic. Static quality attributes are the ones that reflect the system’s structure and organization. Examples of static attributes are coupling, cohesion, complexity, maintainability and extensibility. Dynamic attributes are the ones that reflect the behavior of the system during its execution. Examples of dynamic attributes are memory usage, latency, throughput, scalability, robustness and fault-tolerance.
Following the definitions of expectations regarding the quality attributes, it is essential to devise ways to measure them and verify that the implemented system satisfies the requirements. Some static attributes may be measured through static code analysis tools, while others require effective design and code reviews. The measuring and verification of dynamic attributes requires the usage of special non-functional testing tools such as profilers and simulators.
In this talk I will discuss the main Software Quality attributes, both static and dynamic, examples of requirements, and practical guidelines on how to measure and verify these attributes.
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.
Software Testing and Quality Assurance Assignment 3Gurpreet singh
Short questions :
Que 1 : Define Software Testing.
Que 2 : What is risk identification ?
Que 3 : What is SCM ?
Que 4 : Define Debugging.
Que 5 : Explain Configuration audit.
Que 6 : Differentiate between white box testing & black box testing.
Que 7 : What do you mean by metrics ?
Que 8 : What do you mean by version control ?
Que 9 : Explain Object Oriented Software Engineering.
Que 10 : What are the advantages and disadvantages of manual testing tools ?
Long Questions:
Que 1 : What do you mean by baselines ? Explain their importance.
Que 2 : What do you mean by change control ? Explain the various steps in detail.
Que 3 : Explain various types of testing in detail.
Que 4 : Differentiate between automated testing and manual testing.
Que 5 : What is web engineering ? Explain in detail its model and features.
Learn about software maintenance in detail and why it is so important to your business. Check the different types, primary reasons, strategies, and processes of software maintenance.
For More Information: https://www.albiorixtech.com/blog/software-maintenance-essential-for-your-business/
#SoftwareMaintenance #WebAppDevelopment #MobileAppDevelopment #SoftwareDevelopment
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
Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes.
How to Split Bills in the Odoo 17 POS ModuleCeline George
Bills have a main role in point of sale procedure. It will help to track sales, handling payments and giving receipts to customers. Bill splitting also has an important role in POS. For example, If some friends come together for dinner and if they want to divide the bill then it is possible by POS bill splitting. This slide will show how to split bills in odoo 17 POS.
Palestine last event orientationfvgnh .pptxRaedMohamed3
An EFL lesson about the current events in Palestine. It is intended to be for intermediate students who wish to increase their listening skills through a short lesson in power point.
We all have good and bad thoughts from time to time and situation to situation. We are bombarded daily with spiraling thoughts(both negative and positive) creating all-consuming feel , making us difficult to manage with associated suffering. Good thoughts are like our Mob Signal (Positive thought) amidst noise(negative thought) in the atmosphere. Negative thoughts like noise outweigh positive thoughts. These thoughts often create unwanted confusion, trouble, stress and frustration in our mind as well as chaos in our physical world. Negative thoughts are also known as “distorted thinking”.
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!
This is a presentation by Dada Robert in a Your Skill Boost masterclass organised by the Excellence Foundation for South Sudan (EFSS) on Saturday, the 25th and Sunday, the 26th of May 2024.
He discussed the concept of quality improvement, emphasizing its applicability to various aspects of life, including personal, project, and program improvements. He defined quality as doing the right thing at the right time in the right way to achieve the best possible results and discussed the concept of the "gap" between what we know and what we do, and how this gap represents the areas we need to improve. He explained the scientific approach to quality improvement, which involves systematic performance analysis, testing and learning, and implementing change ideas. He also highlighted the importance of client focus and a team approach to quality improvement.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
How to Create Map Views in the Odoo 17 ERPCeline George
The map views are useful for providing a geographical representation of data. They allow users to visualize and analyze the data in a more intuitive manner.
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxEduSkills OECD
Andreas Schleicher presents at the OECD webinar ‘Digital devices in schools: detrimental distraction or secret to success?’ on 27 May 2024. The presentation was based on findings from PISA 2022 results and the webinar helped launch the PISA in Focus ‘Managing screen time: How to protect and equip students against distraction’ https://www.oecd-ilibrary.org/education/managing-screen-time_7c225af4-en and the OECD Education Policy Perspective ‘Students, digital devices and success’ can be found here - https://oe.cd/il/5yV
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI BUỔI 2) - TIẾNG ANH 8 GLOBAL SUCCESS (2 CỘT) N...
Software Maintenance
1. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
By-
Ameer Hasan Malik
Payal Singhal
ameerhasan.nift@gmail.com
1
Software Maintenance
2. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
Introduction
Software maintenance is the
modification of a software product
after delivery to correct faults, to
improve performance or other
attributes.
A common perception of
maintenance is that it merely
involves fixing defects.
Software maintenance is the general
process of changing a system after
it has been delivered.
2
Software Maintenance
3. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
Reasons for maintaining software
Over a period of time
software’s original
requirement may change to
reflect the customer’s needs.
Errors undetected during
software development may be
found during use and require
correction.
With time new technologies
are introduced such as new
hardware, operating system
etc.
3
Software Maintenance
4. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
4 Cost distribution of SDLC
Software Maintenance
5. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
Software Maintenance Problems
Most computer programs are
difficult and expensive to maintain.
Software changes are poorly
designed and implemented.
The repair and enhancement of
software often injects new bugs that
must later be repaired.
Changes are often not documented.
Changes often cause new faults in
the system.
5
Software Maintenance
6. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
Types of software maintenance
1. Corrective maintenance
2. Adaptive maintenance
3. Perfective maintenance
4. Preventive maintenance
Software Maintenance
6
Bug Fixing
Porting & Migration
Enhancements & scalability
Documentation Enhancements
7. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
1. Corrective Maintenance
Taking existing code and
correcting a fault that causes the
code to behave in some way that
deviates from its documented
requirements.
Focuses on bug fixing and
reporting errors fixing.
i.e. defects generally need to be
corrected either immediately or in
the near future.
Fixing a fault has 20 to 50 %
chances of introducing another
fault.
7
Software Maintenance
8. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
2. Adaptive Maintenance
Taking existing code and
adapting it to provide new
features and functionality. These
are typically part of a new release
of the code and part of a larger
development effort.
Making changes in existing
software to accommodate a
changing environment
includes all work related to how
the software functions.
i.e. relates to enhancing
software functionality.
8
Software Maintenance
9. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
3. Perfective Maintenance
Implementing new or changed
user requirements which
concern functional
enhancements to the software.
These are typically made to
improve the maintainability of
the code such as restructuring it
to make it more easily
understood or to remove
ambiguities.
includes all efforts to improve
the quality of the software.
Includes improving reliability or
efficiency.
9
Software Maintenance
10. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
4. Preventive Maintenance
Includes anticipating future
problems and to improve the
maintainability using techniques
like documenting, commenting
or even re-implementing some
part of documenting.
More commonly known as
Software Re-engineering.
Old system starts as a
specification for new system.
increasing the system’s
maintainability.
10
Software Maintenance
11. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
11 Cost of software maintenance
Software Maintenance
12. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
12 Software Maintenance models
Software Maintenance
Quick-fix model
Iterative Enhancement model
Full-reuse model
Boehm’s Model
Taute’s model
13. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
1. Quick-fix Model
This is basically an adhoc approach
to maintaining software. It is a fire
fighting approach, waiting for the
problem to occur and then trying to
fix it as quickly as possible.
Changes are made at code level as
early as possible without anticipating
future problems.
As a result, the structure of software
degrade rapidly.
Not suitable for large software
systems.
13
Software Maintenance
14. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
2. Iterative Enhancement Model
Incorporates changes in the software based on the analysis of the
existing system.
Assumes complete documentation of software is available in
beginning.
Attemps to control complexity and tries to maintain good design.
The document of each software life cycle phase i.e SRS, design
document, testing document etc. are also modified.
14
Software Maintenance
15. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
15 2. Iterative Enhancement Model(cont.)
Characterize version
Redesign current
and proposed
Implementation modifications
Software Maintenance
16. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
3. Full-reuse Model
Based on reuse of existing software components.
The reuse model has four main steps:
1. Identification of the parts of the old system that are
Need mature reuse culture.
16
Software Maintenance
candidates for reuse.
2. Understanding these system parts.
3. Modification of the old system parts appropriate to the
new requirements.
4. Integration of the modified parts into the new system.
17. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
17 3. Full-reuse Model(cont.)
New system
Components
library
Requirements analysis
Design
Source code
Test data
Old system
Requirements analysis
Design
Source code
Test data
Software Maintenance
18. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
4. Boehm’s Model
• Boehm proposed a model for the maintenance process based upon
the economic models and principles.
• Boehm represent the maintenance process as a closed loop cycle.
• Changes are proposed first.
• Then changes are made.
18
Proposed changes Approved changes
Software Maintenance
Management decisions
Change
implementation
Evaluation
New version of
software
Results
19. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
5. Taute Maintenance Model
• It is a typical maintenance model and has eight phases in cycle fashion.
19
Software Maintenance
1. Change request phase
2. Estimate phase
3. Schedule phase
4. Programming phase
5. Test phase
6. Documentation phase
7. Release phase
8. Operation phase
20. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
20 5. Taute Maintenance Model(cont.)
Software Maintenance
21. S
O
F
T
W
A
R
E
M
A
I
N
T
E
N
A
N
C
E
THANK YOU
21
Software Maintenance