60 research outputs found

    The state of software maintenance

    Get PDF
    A state of software maintenance survey is presented, indicating the incongruity of the simultaneous existence of important and neglect in this field. An overview is given of selected developments and activities covering the following topics: the "Maintenance Problem", models, methods for improving maintenance, metrics, maintenance information management, standards, maintenance of existing code, and surveys. The paper concludes with a prognosis of what is ahead in maintenance: a battle and tradeoff between the forces for maintaining the base of existing software and the forces for the evolution of new systems. An Appendix is provided for the reader who desires information about a software maintenance conference and a special interest group

    An empirical study evaluating depth of inheritance on the maintainability of object-oriented software

    Get PDF
    This empirical research was undertaken as part of a multi-method programme of research to investigate unsupported claims made of object-oriented technology. A series of subject-based laboratory experiments, including an internal replication, tested the effect of inheritance depth on the maintainability of object-oriented software. Subjects were timed performing identical maintenance tasks on object-oriented software with a hierarchy of three levels of inheritance depth and equivalent object-based software with no inheritance. This was then replicated with more experienced subjects. In a second experiment of similar design, subjects were timed performing identical maintenance tasks on object-oriented software with a hierarchy of five levels of inheritance depth and the equivalent object-based software. The collected data showed that subjects maintaining object-oriented software with three levels of inheritance depth performed the maintenance tasks significantly quicker than those maintaining equivalent object-based software with no inheritance. In contrast, subjects maintaining the object-oriented software with five levels of inheritance depth took longer, on average, than the subjects maintaining the equivalent object-based software (although statistical significance was not obtained). Subjects' source code solutions and debriefing questionnaires provided some evidence suggesting subjects began to experience diffculties with the deeper inheritance hierarchy. It is not at all obvious that object-oriented software is going to be more maintainable in the long run. These findings are sufficiently important that attempts to verify the results should be made by independent researchers

    Application Portfolio Diversity and Software Maintenance Productivity:An Empirical Analysis

    Get PDF
    The research addresses the issue of productivity in application software maintenance. Specifically, it examines the effect of diversity in tools, techniques, hardware and software associated with the portfolio being maintained. In manufacturing environments, there is some evidence to suggest that production of products where there is little sharing of inputs and production processes reduces focus and results in lower manufacturing performance (Skinner, 1974). In economics, it is argued that there are cost complementarities or economies of scope in sharing common inputs and processes among various products with commonalities in production, and diseconomies of scope when inputs and processes differ (Panzar and Willig, 1977, 1981). In the software maintenance context, the issue of diversity and its effect on productivity is particularly salient. Software maintenance is work done to enhance software functionality, correct errors and improve the performance of software (Schneidewind, 1987). It is a costly activity for organizations, requiring from 50 to 80% of the Information Systems (IS) budget and representing more than threefourths of software costs on a life cycle basis (Arthur, 1988). Application portfolio diversity, i.e.,differences in technical platforms, software languages, and development tools and techniques in the set of the organization\u27s software systems, arises as a consequence of the organization\u27s information technology infrastructure decisions. To meet a particular customer need, an IS group acquires or develops software using a certain tool, methodology, and hardware platform. However, it may be that the software does not fit well into the organization\u27s existing technical platform. Furthermore, the software may have been developed using a different methodology or tools than other software systems in the organization\u27s portfolio. This diversity may have the result of increased difficulty in software maintenance because software enhancement can require modification of multiple software systems that have been created using a variety of languages, tools and techniques. The results of our analysis suggest that software portfolio diversity reduces productivity in software maintenance. Potential inefficiencies from diversity in software maintenance can arise from several causes. Switching costs are incurred due to multiple, varied process flows and frequent change over in processes required when modifying software created using different methodologies and tools. Diversity may also increase the difficulty of software quality control, testing and verification; for example, inefficiencies may occur due to the complexities of conducting system and integration testing across multiple technical platforms. Finally, there may be costs due to the difficulties in selecting project team members with the multiple and varied skills required to modify diverse sets of software

    Semantic Literature Review Pada Survey Teknik Pemeliharaan Software

    Get PDF
    Teknik pemeliharaan software adalah segala metode yang berhubungan dengan aktivitas untuk menjaga life-cycle sebuah software. Survey yang dilakukan terhadap teknik pemeliharaan software sudah pernah dilakukan oleh peneliti sebelumnya termasuk Lientz, Swanson, dll. Survey kali ini mengangkat latar belakang masalah yang berbeda; yaitu pesatnya perkembangan jenis teknik pemeliharaan yang tidak sebanding dengan kepastian tingkat akurasi, keefektifan penggunaan serta cost yang harus dikeluarkan. Survey yang dimaksud bertujuan untuk memberikan tinjauan komprehensif kepada pembaca tentang kegunaan, kelebihan, kekurangan teknik-teknik pemeliharaan software dalam penelitian kurun waktu 1978-2020. Metode survey yang digunakan adalah systematic literature review terhadap paper significant yang membahas isu terkait. Manfaat yang diharapkan, dapat memberikan pembaca gambaran dan pilihan penggunaan teknik pemeliharaan yang tepat guna untuk masalah pemeliharaan yang mereka hadapi. Survey menghasilkan 24 jenis teknik software. Tujuh diantaranya (reverse engineering, corrective, perfective, adaptive, restructuring, model maintenance, reengineering) masuk ke dalam klasifikasi teknik yang paling sering dibahas dalam penelitian kurun waktu 1978-2020. Dari hasil survey tersebut, didapatkan temuan berupa rekomendasi pilihan teknik pemeliharaan untuk contoh kasus Pembuatan framework maintenance, Pemeliharaan pada aplikasi berbasis web, dan Pemeliharaan Cryptologic System

    Optimizing Software Clustering using Hybrid Bee Colony Approach

    Get PDF
    Maintenance of software is the most expensive and complicated phase of the software development lifecycle. It becomes more cumbersome if the architecture of the software system is not available. Search-based optimization is found to be a technique very efficient in recovering the architecture of such a system. In this paper, we propose a technique which is based on a combination of artificial honey bee swarm intelligent algorithm and genetic algorithm to recover this architecture. In this way, it will be very helpful to software maintainers for efficient and effective software maintenance. In order to evaluate the success of this approach, it has been applied to a few real-world module clustering problems. The results we obtained support our claim that this approach produces architecture significantly better than the existing approaches. Keywords: Artificial bee colony algorithm, Genetic algorithm, Software clustering, Software Modularization

    Software maintenance: the need for standardization

    Get PDF
    Procedures are proposed to assist the Navy Management Systems Support Office in performing software maintenance. Hardware and software maintenance are contrasted. The key difference between the two -- the ease which software can be changed -- leads to the need for managing software change. Standardization of software is proposed as the method for managing software change. A model of software maintenance is advanced as the function for standardizing software maintenance. (kr)Prepared for: Navy Management Systems Support Office, Norfolk, VAhttp://archive.org/details/softwaremaintenanc00schnApproved for public release; distribution is unlimited

    Engineering adaptive user interfaces using monitoring-oriented programming

    Get PDF
    User interfaces which adapt based on usage patterns, for example based on frequency of use of certain features, have been proposed as a means of limiting the complexity of the user interface without specialising it unnecessarily to particular user profiles. However, from a software engineering perspective, adaptive user interfaces pose a challenge in code structuring, and separation of the different layers of user interface and application state and logic can introduce interdependencies which make software development and maintenance more challenging. In this paper we explore the use of monitoring-oriented programming to add adaptive features to user interfaces, an approach which has been touted as a means of separating certain layers of logic from the main system. We evaluate the approach both using standard software engineering measures and also through a user acceptance experiment - by having a number of developers use the proposed approach to add adaptation logic to an existing application.peer-reviewe
    • …
    corecore