Research Article
Open Access
The Evolution of Software Maintenance
Srinivas Gonepally1* , Kishor Kumar Amuda2 , Praveen Kumar Kumbum3 , Vijay Kumar Adari4 , Vinay Kumar Chunduru5
*Corresponding author:Srinivas Gonepally, Incredible Software Solutions, Research and Development Division, Richardson, TX, 75080, USA.
; E-mail:
@
Received: April 25, 2021; Accepted: May 9, 2021; Published: May 12, 2021
Citation: Srinivas G, Kishor Kumar A, Praveen Kumar K, Vijay Kumar A, Vinay Kumar Ch. (2021). The Evolution of Software Maintenance. J Comp Sci Appl Inform Technol. 6(1): 1-8. DOI:
10.15226/2474-9257/6/1/00150
Abstract:Software maintenance is a critical aspect of the software development life cycle, ensuring the longevity, adaptability, and reliability of
software systems. This paper provides an overview of the evolution of software maintenance practices over the years, tracing its journey from early
ad-hoc approaches to modern, systematic methodologies. The landscape of software maintenance has undergone significant transformations in
response to the growing complexity of software systems, changing user requirements, and advancements in technology. The early stages of software
maintenance were characterized by reactive and ad-hoc methods, where developers addressed issues as they arose without a structured process. As
software systems became more prevalent and sophisticated, the need for systematic maintenance strategies became apparent.
Research significance:Software maintenance is inherently associated with risks, including the introduction of new bugs, system failures, and
security vulnerabilities. Researching the evolution of maintenance practices helps in identifying risk factors and developing strategies to mitigate
them, contributing to the overall reliability and stability of software systems. The field of software maintenance has evolved in response to changes
in technology, software complexity, and user expectations. Researching this evolution helps software professionals adapt to emerging technologies
and trends, such as cloud computing, artificial intelligence, and IoT, ensuring that maintenance practices remain relevant and effective.
Method:TOPSIS, This method involves evaluating the geometric distance between each alternative solution and two reference solutions: the positive
ideal solution and the negative ideal solution. The underlying principle of TOPSIS assumes that the criteria being assessed are of an ascending
nature, where larger values represent better performance. To account for disparate dimensions or scales among the criteria, normalization is often
employed within the TOPSIS framework.
Result:From the result Adaptive Maintenance is got the first rank and Perfective Maintenance is having the lowest rank.
Keywords:software maintenance and evolution, systematic mapping study, traceability, Software Product Management, Software Life Cycle Costing
Models, Maintenance Cost Estimation.
A literature review on software maintenance and evolution
through the analysis of individual changes investigates the
intricacies of tracking and understanding alterations in software.
This examination plays a pivotal role in comprehending the
evolutionary trajectory of software systems. By scrutinizing
individual changes, the review aims to elucidate their impact
on overall software development. This research underscores
the significance of meticulous documentation and analysis
in ensuring effective maintenance practices, software quality
improvement, and long-term sustainability [1] Software
evolution encompasses various types of changes that occur in a
software system over time. These changes can be classified into
adaptive, corrective, perfective, and preventive maintenance.
Adaptive maintenance involves modifications to adapt software
to new environments, while corrective maintenance addresses
and resolves defects. Perfective maintenance enhances software
functionality, and preventive maintenance aims to prevent
potential issues. Understanding these types is crucial for effective
software maintenance, ensuring the system remains robust and
aligned with evolving requirements, ultimately contributing
to sustained software quality and longevity [2] Software
maintenance and evolution represent distinct aspects in the
life cycle of software systems. Maintenance involves corrective,
adaptive, perfective, and preventive changes to address issues
and improve functionality. In contrast, software evolution focuses
on the continuous development and adaptation of software to
meet changing requirements. An approach to software systems
evolution integrates both maintenance and evolutionary
processes, emphasizing the need for a systematic and flexible
strategy to ensure software remains resilient, adaptable, and
aligned with evolving user needs throughout its lifecycle [3]
Software maintenance and evolution examines how traceability
establishing and managing links between software artifacts—
can influence these processes. It investigates how traceability
enhances understanding of system changes, aiding in maintenance
by facilitating the identification of impacted components.
Additionally, traceability supports evolutionary efforts by
providing insights into the relationships between requirements,
design, and code. The study underscores the pivotal role of
traceability in promoting effective maintenance and evolution
practices, ultimately contributing to improved software quality
and manageability [4] An eco systemic and socio-technical view
on software maintenance and evolution involves considering the
broader context in which software operates. Instead of solely
focusing on technical aspects, this perspective acknowledges
the social and ecological factors influencing software systems.
It emphasizes the interconnectedness of technical, human,
and environmental elements in the software ecosystem. This
approach recognizes that successful maintenance and evolution
require understanding not only the code and technical aspects
but also the social dynamics and broader environmental factors
impacting the software throughout its lifecycle. [5] A cost model
for software maintenance and evolution provides a structured
framework to estimate and manage the expenses associated
with maintaining and evolving software systems over their
lifecycle. This model typically includes factors such as corrective
maintenance, adaptive maintenance, perfective maintenance,
and preventive maintenance costs. It considers expenses related
to debugging, enhancements, updates, and proactive measures to
ensure system reliability. The cost model aims to offer insights
into the financial implications of software maintenance and
evolution, aiding organizations in budgeting and decisionmaking for sustained software quality and functionality.[6] The
Evolution Tree is a maintenance-oriented software development
model that conceptualizes software evolution as a branching tree.
Each branch represents a version of the software, and as the tree
evolves, it incorporates changes, updates, and improvements.
This model focuses on continuous development and maintenance
by considering multiple parallel paths, where each branch may
receive corrective, adaptive, perfective, or preventive changes.
The Evolution Tree model emphasizes a structured and adaptable
approach to software evolution, providing a visual representation
of the system’s ongoing development and maintenance processes
in a hierarchical manner [7] Understanding software maintenance
work involves analyzing, updating, and enhancing software to
meet evolving requirements, fix issues, and ensure ongoing
performance, contributing to sustained system effectiveness.
[8] Service-oriented architecture (SOA) and its implications for
software maintenance and evolution involve a modular approach.
Services can be updated independently, easing maintenance
and facilitating evolutionary changes, ensuring adaptability
and scalability in response to evolving requirements [10] Agile
process in a software maintenance and evolution organization
involves implementing iterative and collaborative methodologies.
This transition enhances adaptability, responsiveness to change,
and efficiency in addressing evolving requirements, promoting
a more dynamic and customer-focused approach [11] Tailoring
the software maintenance process for complex systems evolution
projects involves customizing methodologies and practices.
This adaptation ensures that maintenance activities align
with the intricacies of evolving complex systems, optimizing
efficiency, and addressing specific challenges inherent in their
development [12] Partial domain comprehension in software
evolution and maintenance involves understanding specific
aspects of the software domain rather than the entire system.
This targeted comprehension allows for focused updates
and modifications, addressing particular elements crucial for
effective evolution and maintenance [13] Viewpoints as an
evolutionary approach to software system maintenance involve
considering diverse perspectives during the evolution process.
This model accommodates different stakeholders’ views,
allowing for targeted updates based on specific concerns. By
addressing varied viewpoints, it becomes possible to prioritize
and implement changes efficiently, fostering a more adaptive
and inclusive maintenance strategy. This approach ensures that
software evolution aligns with the evolving needs and priorities
of various stakeholders, contributing to a more robust and user-focused software system [14]
Alternative parameters:
Corrective Maintenance, Adaptive
Maintenance, Perfective Maintenance, Preventive Maintenance,
Iterative Maintenance (Agile/DevOps).
Evaluation parameters:
: Efficiency, Flexibility, User Satisfaction,
Time Savings.
Corrective Maintenance:
Corrective maintenance refers to
the process of identifying, analyzing, and fixing issues, bugs, or
defects in a software system. It is a type of maintenance activity
focused on addressing problems that users or stakeholders
have identified in the operational software. The primary goal of
corrective maintenance is to restore the system to its desired
functionality, ensuring that it operates correctly and meets the
specified requirements. This type of maintenance is reactive in
nature, triggered by the detection of faults or malfunctions during
the software’s operational use.
Adaptive Maintenance:
Adaptive maintenance refers to the
modification of a software system to accommodate changes in
its external environment. This type of maintenance is carried out
to ensure that the software remains compatible with evolving
hardware, operating systems, or other external dependencies.
Adaptive maintenance aims to address issues related to changes
in technology, regulations, or business requirements. It involves
adjusting the software to new conditions, such as integrating
with updated third-party components or adapting to shifts in the
organizational or regulatory landscape. The goal is to enhance
the software’s adaptability and longevity in the face of external
changes.
Perfective Maintenance:
Perfective maintenance involves
enhancing and improving a software system’s performance,
reliability, and efficiency without changing its existing
functionalities. Unlike corrective maintenance, which addresses
defects, and adaptive maintenance, which adapts the system to
external changes, perfective maintenance focuses on refining and
optimizing the software.
Preventive Maintenance:
Preventive maintenance, in the
context of software, involves activities undertaken to proactively
avoid potential issues and ensure the long-term health and
stability of a software system. Unlike corrective maintenance,
which addresses existing problems, preventive maintenance is a
proactive strategy aimed at preventing future issues from arising.
Key activities in preventive maintenance may include code
reviews, regular software audits, performance monitoring, and
the application of software updates or patches to address known
vulnerabilities. The goal is to identify and mitigate potential risks before they can lead to system failures, security breaches,
or other problems. By adopting preventive maintenance
practices, organizations can enhance the reliability, security, and
sustainability of their software systems over time.
Iterative Maintenance (Agile/DevOps):
Agile and DevOps,
iterative maintenance refers to the continuous and iterative
nature of development and maintenance processes. This
approach involves frequent, small releases and constant
collaboration between development and operations teams.
Rather than large, infrequent updates, changes are implemented
incrementally, allowing for quicker adaptation to evolving
requirements and the continuous improvement of the software.
In an iterative maintenance model, software is developed and
maintained in short cycles, with regular feedback loops and the
ability to respond to changing needs efficiently. This methodology
aligns with the principles of Agile and DevOps, emphasizing
collaboration, flexibility, and customer feedback throughout the
software development and maintenance lifecycle
Efficiency:
: Efficiency refers to the ability to achieve maximum
output with minimum resources, minimizing waste and
optimizing performance. In various contexts, efficiency can
be measured by how well a system, process, or activity utilizes
resources such as time, energy, and materials to produce desired
outcomes.
Flexibility:
Flexibility refers to the capability of adapting to
change or responding to varying circumstances with ease and
efficiency. In different contexts, flexibility can be applied to
systems, processes, or individuals. In software development
or maintenance, flexibility may refer to the ease with which a
software system can be modified or extended to accommodate
new requirements or changes in the environment. A flexible
software design allows for adjustments without requiring major
restructuring, enabling the system to evolve and adapt over time.
Similarly, in project management or organizational settings,
flexibility involves the ability to adjust plans and approaches in
response to evolving needs or unexpected challenges.
User Satisfaction:
User satisfaction refers to the level of
contentment or fulfillment experienced by users when interacting
with a product, service, or system. It is a subjective measure
that reflects how well a particular offering meets or exceeds the
expectations, needs, and preferences of its users. In the context
of software development or maintenance, user satisfaction is
a crucial metric that gauges the success of a software product.
It is influenced by factors such as usability, functionality,
performance, reliability, and the overall user experience. Positive
user satisfaction indicates that the software aligns well with
the intended users’ requirements and preferences, contributing
to user loyalty, positive feedback, and potential future usage or
adoption. Conversely, low user satisfaction may suggest areas
for improvement and the need for adjustments to enhance the
overall user experience.
Time Savings:
Time savings refer to the reduction in the amount
of time required to complete a task or achieve a particular goal.
It is a measure of increased efficiency and productivity gained
by streamlining processes, optimizing workflows, or employing
more effective tools and methods. In various contexts, including
business, technology, or personal activities, time savings can
result from improvements in efficiency, automation of repetitive
tasks, or the adoption of faster and more efficient approaches.
In the realm of software development or maintenance, for
example, time savings may be achieved through the use of
agile methodologies, automation tools, or other practices that
expedite the development, testing, and deployment processes,
allowing teams to deliver software solutions more quickly and
responsively.
Method:
The assessment of the TOPSIS ranking algorithm
involved the application of an enhanced methodology for
comparing uncertainty through a weighted average. Within the
TOPSIS framework, a commonly employed method includes
incorporating multiple responses to enhance issue resolution,
thereby minimizing confusion regarding the assigned weights
to each solution while maintaining manageability. This approach
maintains a global perspective consistently [15]. The modern
TOPSIS methodology employs an effective and advanced ranking
mechanism to select alternatives that are closely aligned with the
optimal solution while being significantly distant from the worst case scenario. In cases where a superior response falls short, the
associated cost increases, whereas an improved superior response
widens the criteria for advantages and reduces the criteria for
cost. The TOPSIS technique, as outlined in previous work [16],
relies on detailed attribute records encompassing crucial FMCDM
traits, two fuzzy membership activities, the TOPSIS algorithm,
and a data gathering spreadsheet. The title of this methodology
delves into its rationale for usage, ongoing challenges, limitations,
and offers recommendations for researchers to enhance the
adoption and utilization of FMCDM [17]. The inclusion of TOPSIS
as an additional metric is attributed to its distinctive features,
such as reduced components, increased stability, and a range of
response values that capture various shifts in values, making it a
more favorable alternative to heuristics. The decision to pursue
TOPSIS development was based on its unique qualities [18].
TOPSIS, an acronym for “Technique for Order of Preference by
Similarity to Ideal Solution,” evaluates alternatives by employing
five distinct distance measurements. It achieves this by illustrating
a numerical example that involves the computation of randomly
generated issues of varying magnitudes. This method thoroughly
compares preference ranking sequences, considering criteria such
as the consistency ratio, odds ratio of optimal alternatives, and
average Pearson correlation coefficients. The initial component
addresses the relationship between two variables, while the
second assesses the impact of measurements by contrasting
hypothetical outcomes with the mean count of coefficients.
Regression on rows is employed in this process. The compromise
programming approach introduces the concept of “Proximity to
Ideal,” which considers two criteria: “majority” and “minimum,”
aiming to maximize “group utility” for each grievance. These
distance measures are applied within the TOPSIS technique to formulate solutions that effectively address both short-term and long-term challenges. It’s essential to emphasize that the significance
of these aspects is not taken into consideration. TOPSIS is often seen as a rational approach, but it has faced criticism. One critique is
that it was initially designed for addressing multi-objective decision-making (MODM) concerns without accounting for the relative
importance of criteria or the problem’s nature. In this method, the shortest distance corresponds to the Positive Ideal Solution (PIS),
while the longest distance corresponds to the Negative Ideal Solution (NIS). A “condition of satisfiability” for each criterion is then
defined, along with a maximum-minimum operator for these criteria. Previous research has highlighted that incorporating Harmony
can assist in resolving overlapping usages. Despite criticisms, TOPSIS is regarded as an effective method for optimizing regulatory
functioning, as per findings from earlier studies. This approach involves the comparison, differentiation, and assessment of multiple
alternatives. Building on this framework, the current study aims to broaden the application of TOPSIS to practical group decision making scenarios related to assignments. The paper introduces a comprehensive and efficient selection method, concluding with the
implementation of TOPSIS. The research initiates by exploring the influence of the Weighted Euclidean (EW) approach on decision making and evaluation procedures, considering various statistical data and theoretical insights. Subsequently, the investigation delves
into the impacts of EW on the TOPSIS technique, particularly in terms of specific and bilateral stage selections within decision-making
or evaluation. Additionally, E-TOPSIS manages the integration of EW into the selection or assessment process [22].
Results and Discussion
Top
Table 1: The evolution of Software maintenance
Table 1.The evolution of Software maintenance |
|
Efficiency |
Flexibility |
User Satisfaction |
Time Savings |
Corrective Maintenance |
8 |
5 |
9 |
25 |
Adaptive Maintenance |
7 |
4 |
8 |
20 |
Perfective Maintenance |
9 |
3 |
7 |
30 |
Preventive Maintenanc |
6 |
2 |
8 |
15 |
Iterative Maintenance (Agile/DevOps) |
8 |
3 |
9 |
22 |
Table 1 shows compare above table Corrective Maintenance: High Time Savings (25) due to addressing immediate issues but slightly lower on Efficiency
(8). Scores well in User Satisfaction (9) as it resolves identified problems. Moderate Flexibility (5) as it reacts to issues rather than proactively adapting
to changes. Adaptive Maintenance: Moderate across all criteria with a notable focus on Efficiency (7) and Time Savings (20). Shows adaptability (4)
but is not as flexible as some other maintenance types. User Satisfaction (8) is decent, as it adapts to changes in the external environment. Perfective
Maintenance: High on Efficiency (9) and Time Savings (30) due to enhancements and optimizations. Relatively lower on Flexibility (3) since it focuses
on improving existing functionalities. Good User Satisfaction (7) as it enhances overall system performance and capabilities. Preventive Maintenance:
Moderate Efficiency (6) and User Satisfaction (8). Lower Flexibility (2) as it aims to prevent future issues rather than adapting to current changes.
Moderate Time Savings (15) as it involves proactive measures but may not show immediate results. Iterative Maintenance (Agile/DevOps): High scores
across all criteria, especially in User Satisfaction (9). Emphasizes Efficiency (8) and Flexibility (3) through continuous and iterative development.
Demonstrates good Time Savings (22) by delivering frequent and incremental updates.
Table 2: Normalized Data
Table 2.Normalized Data |
Normalized Data |
Efficiency |
Flexibility |
User Satisfaction |
Time Savings |
0.4666 |
0.2916 |
0.4888 |
0.4871 |
0.4082 |
0.2333 |
0.4345 |
0.3897 |
0.5249 |
0.1750 |
0.3802 |
0.5845 |
0.3499 |
0.1166 |
0.4345 |
0.2923 |
0.4666 |
0.1750 |
0.4888 |
0.4287 |
Table 2 shows Normalized data is a process of scaling or adjusting numerical values within a dataset to a common scale, typically between 0 and 1, in
order to facilitate comparisons. This is often done to remove the effects of different units, scales, or magnitudes across different variables, allowing for
a fair and meaningful comparison between them. Normalization ensures that each variable contributes proportionately to the analysis. In the provided
dataset, the values for Flexibility, User Satisfaction, and Time Savings have been normalized. Let’s take the Flexibility column as an example: Original
Flexibility values: 8, 7, 9, 6, 9 Normalized Flexibility values: 0.2916, 0.2333, 0.1750, 0.1166, 0.1750.The normalization process involves the following
steps: Identify the Range: Determine the range of values for each variable (e.g., Flexibility, User Satisfaction, Time Savings). Subtract the Minimum Value:
Subtract the minimum value of the variable from each individual value to shift the entire range. Divide by the Range or Standard Deviation: Divide each
adjusted value by the range (or standard deviation) of the variable. This ensures that the values are scaled within a common range. The normalized
data is useful for analyses where the relative relationships between variables are more important than the specific numerical values. In this case, the
normalized values range between 0 and 1, making it easier to compare the relative importance of Flexibility, User Satisfaction, and Time Savings across
different types of software maintenance.

Figure 1:The evolution of Software maintenance
Figure 1 illustrate graphical representation of the evolution of Software maintenance
Figure 2:Normalized Data
Figure 2 illustrate graphical representation of Normalized data
Table 3: WEIGHT
TABLE 3.Weight |
Weight |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
Table 3 shows weight. All the values in the matrix are the same (e.g., 0.25 in this case), which could indicate that each element in a set is given equal weight or importance. This could be used in various applications, such as when calculating averages or distributing resources equally. |
Table 3 shows weight. All the values in the matrix are the same (e.g.,
0.25 in this case), which could indicate that each element in a set
is given equal weight or importance. This could be used in various
applications, such as when calculating averages or distributing
resources equally.
Table 4: Weighted normalized decision matrix
TABLE 3.Weight |
Weight |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
0.25 |
Table 3 shows weight. All the values in the matrix are the same (e.g., 0.25 in this case), which could indicate that each element in a set is given equal weight or importance. This could be used in various applications, such as when calculating averages or distributing resources equally. |
Table 4 shows weighted normalized decision matrix the normalized
values for each criterion are then multiplied by their respective weights.
This step accounts for the relative significance of each criterion. For
example, if the first column represents Flexibility and the weight
assigned to Flexibility is 0.1166, the values in the first column of each row
are multiplied by 0.1166 to get the weighted contribution of Flexibility
for each alternative. The weighted normalized decision matrix allows
decision-makers to consider multiple criteria, each with its own level of
importance, and systematically evaluate and compare alternatives based
on these criteria. The resulting values in the matrix provide a quantitative
representation of the overall performance of each alternative considering
the specified criteria and their assigned weights. The alternative with the
highest overall weighted score is often considered the most favorable
option.

Figure 3:Weighted normalized decision matrix
Figure 3 illustrate graphical representation of Weighted normalized decision matrix has done.
Figure 4:Result for the evolution of Software maintenance
Figure 4 illustrate graphical representation of final result for the evolution of Software maintenance si positive, si negative and ci value.
Table 5: Weighted normalized decision matrix
Table 5.Positive and Negative matrix |
Positive Matrix |
Negative matrix |
0.1312 |
0.0729 |
0.0950 |
0.0731 |
0.0875 |
0.0292 |
0.1222 |
0.1461 |
0.1312 |
0.0729 |
0.0950 |
0.0731 |
0.0875 |
0.0292 |
0.1222 |
0.1461 |
0.1312 |
0.0729 |
0.0950 |
0.0731 |
0.0875 |
0.0292 |
0.1222 |
0.1461 |
0.1312 |
0.0729 |
0.0950 |
0.0731 |
0.0875 |
0.0292 |
0.1222 |
0.1461 |
|
0.1312 |
0.0729 |
0.0950 |
0.0731 |
0.0875 |
0.0292 |
0.1222 |
0.1461 |
Table 5 shows positive and negative matrix. Positive Matrix: The Positive Matrix consists of all positive values. All the values in this matrix are nonnegative, meaning they are greater than or equal to zero. Each row contains the same set of values, and each value in the row appears to be identical
(e.g., all values in the first row are the same, all values in the second row are the same, and so on).Negative Matrix: The Negative Matrix is labeled as
such, suggesting it may contain negative values. However, all the values in the Negative Matrix are zero or non-negative (greater than or equal to zero).
Similar to the Positive Matrix, each row in the Negative Matrix contains the same set of values, and each value in the row appears to be identical.
Table 6: Weighted normalized decision matrix
Table 6.Final result of the evolution of Software maintenance |
SI Plus |
Si Negative |
Ci |
Rank |
|
|
|
|
0.0576 |
0.0579 |
0.5013 |
3 |
0.0429 |
0.0602 |
0.5838 |
1 |
0.0787 |
0.0535 |
0.4048 |
5 |
0.0633 |
0.0743 |
0.5399 |
2 |
0.0544 |
0.0508 |
0.4828 |
4 |
Table 6 shows si plus and ci and si negative values. Corrective Maintenance: SI Plus (0.0576): This could represent a positive impact
on the system’s stability or performance resulting from corrective maintenance activities. SI Negative (0.0579): This might indicate a
negative impact or degradation in system stability or performance due to corrective maintenance. CI (0.5013): It could represent the
overall change or impact on the system’s complexity as a result of corrective maintenance. Adaptive Maintenance: SI Plus (0.0429):
Positive impact on the system due to adaptive maintenance. SI Negative (0.0602): Negative impact on the system due to adaptive
maintenance. CI (0.5838): Overall change in system complexity resulting from adaptive maintenance. Perfective Maintenance: SI
Plus (0.0787): Positive impact on the system due to perfective maintenance. SI Negative (0.0535): Negative impact on the system
due to perfective maintenance. CI (0.4048): Overall change in system complexity resulting from perfective maintenance. Preventive
Maintenance: SI Plus (0.0633): Positive impact on the system due to preventive maintenance. SI Negative (0.0743): Negative impact on
the system due to preventive maintenance. CI (0.5399): Overall change in system complexity resulting from preventive maintenance.
Iterative Maintenance (Agile/DevOps): SI Plus (0.0544): Positive impact on the system due to iterative maintenance. SI Negative
(0.0508): Negative impact on the system due to iterative maintenance. CI (0.4828): Overall change in system complexity resulting
from iterative maintenance.

Figure 5:Rank
Figure 5 Shows the Rank for the evolution of Software maintenance. Adaptive Maintenance is got the first rank and Perfective Maintenance is having
the lowest rank.
The evolution of software maintenance has traversed a
remarkable trajectory, mirroring the dynamic landscape of the
software development industry. Originating with a primary focus
on corrective maintenance, addressing defects and bugs, the field
gradually embraced preventive measures within the structured
Waterfall model. The advent of the Spiral model ushered in adaptive
maintenance, fostering iterative approaches to accommodate
changing user needs and technological advancements. With
the rise of agile methodologies, particularly emphasizing
evolutionary maintenance, the software development landscape
witnessed increased flexibility and responsiveness to evolving
requirements. The synergy of development and operations in
DevOps, coupled with the prevalence of Continuous Integration
and Continuous Deployment (CI/CD), further streamlined
maintenance processes. Cloud computing and the Software as
a Service (SaaS) paradigm introduced centralized hosting and
automated updates, significantly enhancing convenience and
efficiency. Recent trends underscore a heightened focus on user
experience and customer satisfaction, aligning maintenance
efforts with user feedback. As the industry looks toward the future,
the integration of artificial intelligence and automation is poised
to redefine maintenance practices, offering predictive analytics
and proactive solutions. The journey of software maintenance
showcases a continual commitment to enhancing reliability,
adaptability, and user satisfaction, driven by advancements that
promise further innovation and efficiency in addressing the
evolving demands of software systems.
- Benestad, Hans Christian, Bente Anda, and Erik Arisholm. "Understanding software maintenance and evolution by analyzing individual changes: a literature review." Journal of Software Maintenance and Evolution: Research and Practice 21, no. 6 (2009): 349-378.
- Chapin, Ned, Joanne E. Hale, Khaled Md Khan, Juan F. Ramil, and Wui‐Gee Tan. "Types of software evolution and software maintenance." Journal of software maintenance and evolution: Research and Practice 13, no. 1 (2001): 3-30.
- Parets, Jose, and Juan Carlos Torres. "Software maintenance versus software evolution: an approach to software systems evolution." In Proceedings IEEE Symposium and Workshop on Engineering of Computer-Based Systems, pp. 134-141. IEEE, 1996.
- Tian, Fangchao, Tianlu Wang, Peng Liang, Chong Wang, Arif Ali Khan, and Muhammad Ali Babar. "The impact of traceability on software maintenance and evolution: A mapping study." Journal of Software: Evolution and Process 33, no. 10 (2021): e2374.
- Mens, Tom. "An ecosystemic and socio-technical view on software maintenance and evolution." In 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 1-8. IEEE, 2016.
- Sneed, Harry M. "A cost model for software maintenance & evolution." In 20th IEEE International Conference on Software Maintenance, 2004. Proceedings., pp. 264-273. IEEE, 2004.
- Tomer, Amir, and Stephen R. Schach. "The evolution tree: A maintenance-oriented software development model." In Proceedings of the Fourth European Conference on Software Maintenance and Reengineering, pp. 209-214. IEEE, 2000.
- Bendifallah, Salah. "Understanding software maintenance work." IEEE Transactions on software engineering 3 (1987): 311-323.
- Lewis, Grace A., and Dennis B. Smith. "Service-oriented architecture and its implications for software maintenance and evolution." In 2008 Frontiers of Software Maintenance, pp. 1-10. IEEE, 2008.
- Svensson, Harald, and Martin Host. "Introducing an agile process in a software maintenance and evolution organization." In Ninth European Conference on Software Maintenance and Reengineering, pp. 256-264. IEEE, 2005.
- Donzelli, Paolo. "Tailoring the software maintenance process to better support complex systems evolution projects." Journal of Software Maintenance and Evolution: Research and Practice 15, no. 1 (2003): 27-40.
- Petrenko, Maksym, Václav Rajlich, and Radu Vanciu. "Partial domain comprehension in software evolution and maintenance." In 2008 16th IEEE International Conference on Program Comprehension, pp. 13-22. IEEE, 2008.
- Alencar, Paulo, Donald Cowan, Torsten Nelson, and Carlos J. Lucena. "Viewpoints as an evolutionary approach to software system maintenance." In 1997 Proceedings International Conference on Software Maintenance, pp. 260-267. IEEE, 1997.
- Behzadian, Majid, S. KhanmohammadiOtaghsara, MortezaYazdani, and Joshua Ignatius. "A state-of the-art survey of TOPSIS applications." Expert Systems with applications 39, no. 17 (2012): 13051-13069.https://doi.org/10.1016/j.eswa.2012.05.056
- Salih, Mahmood M., B. B. Zaidan, A. A. Zaidan, and Mohamed A. Ahmed. "Survey on fuzzy TOPSIS state-of-the-art between 2007 and 2017." Computers & Operations Research 104 (2019): 207-227.https://doi.org/10.1016/j.cor.2018.12.019
- Shukla, Atul, Pankaj Agarwal, R. S. Rana, and Rajesh Purohit. "Applications of TOPSIS algorithm on various manufacturing processes: a review." Materials Today: Proceedings 4, no. 4 (2017): 5320-5329.https://doi.org/10.1016/j.matpr.2017.05.042
- Opricovic, Serafim, and Gwo-HshiungTzeng. "Compromise solution by MCDM methods: A comparative analysis of VIKOR and TOPSIS." European journal of operational research 156, no. 2 (2004): 445-455.https://doi.org/10.1016/S0377-2217(03)00020-1
- Jahanshahloo, Gholam Reza, F. HosseinzadehLotfi, and Mohammad Izadikhah. "An algorithmic method to extend TOPSIS for decision-making problems with interval data." Applied mathematics and computation 175, no. 2 (2006): 1375-1384.https://doi.org/10.1016/j.amc.2005.08.048
- Kuo, Ting. "A modified TOPSIS with a different ranking index." European journal of operational research 260, no. 1 (2017): 152-160.https://doi.org/10.1016/j.ejor.2016.11.052
- Shih, Hsu-Shih, Huan-JyhShyur, and E. Stanley Lee. "An extension of TOPSIS for group decision making." Mathematical and computer modelling 45, no. 7-8 (2007): 801-813.https://doi.org/10.1016/j.mcm.2006.03.023
- Chen, Pengyu. "Effects of the entropy weight on TOPSIS." Expert Systems with Applications 168 (2021): 114186.https://doi.org/10.1016/j.eswa.2020.114186