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
AbstractTop
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.

IntroductionTop
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]

Materials and MethodTop
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 DiscussionTop
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.
ConclusionTop
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.

ReferencesTop
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Bendifallah, Salah. "Understanding software maintenance work." IEEE Transactions on software engineering 3 (1987): 311-323.
  9. 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.
  10. 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.
  11. 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.
  12. 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.
  13. 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.
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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

 

 
Listing : ICMJE   

Creative Commons License Open Access by Symbiosis is licensed under a Creative Commons Attribution 4.0 Unported License