Dissertations / Theses on the topic 'Software maintenance and evolution'

To see the other types of publications on this topic, follow the link: Software maintenance and evolution.

Create a spot-on reference in APA, MLA, Chicago, Harvard, and other styles

Select a source type:

Consult the top 50 dissertations / theses for your research on the topic 'Software maintenance and evolution.'

Next to every source in the list of references, there is an 'Add to bibliography' button. Press on it, and we will generate automatically the bibliographic reference to the chosen work in the citation style you need: APA, MLA, Harvard, Chicago, Vancouver, etc.

You can also download the full text of the academic publication as pdf and read online its abstract whenever available in the metadata.

Browse dissertations / theses on a wide variety of disciplines and organise your bibliography correctly.

1

Akhlaq, Usman, and Muhammad Usman Yousaf. "Impact of Software Comprehension in Software Maintenance and Evolution." Thesis, Blekinge Tekniska Högskola, Sektionen för datavetenskap och kommunikation, 2010. http://urn.kb.se/resolve?urn=urn:nbn:se:bth-2176.

Full text
Abstract:
The need of change is essential for a software system to reside longer in the market. Change implementation is only done through the maintenance and successful software maintenance gives birth to a new software release that is a refined form of the previous one. This phenomenon is known as the evolution of the software. To transfer software from lower to upper or better form, maintainers have to get familiar with the particular aspects of software i.e. source code and documentation. Due to the poor quality of documentation maintainers often have to rely on source code. So, thorough understanding of source code is necessary for effective change implementation. This study explores the code comprehension problems discussed in the literature and prioritizes them according to their severity level given by maintenance personnel in the industry. Along with prioritizing the problems, study also presents the maintenance personnel suggested methodologies for improving code comprehension. Consideration of these suggestions in development might help in shortening the maintenance and evolution time.
Usman Akhlaq Mirpur, Azad Kashmir, Pakistan Muhammad Usman Yousaf Bhimber, Azad Kashmir, Pakistan
APA, Harvard, Vancouver, ISO, and other styles
2

Keller, Benjamin J. "An algebraic model of software evolution." Thesis, This resource online, 1990. http://scholar.lib.vt.edu/theses/available/etd-03122009-040841/.

Full text
APA, Harvard, Vancouver, ISO, and other styles
3

Gethers, Malcom Bernard II. "Information Integration for Software Maintenance and Evolution." W&M ScholarWorks, 2012. https://scholarworks.wm.edu/etd/1539720326.

Full text
Abstract:
Software maintenance and evolution is a particularly complex phenomenon in the case of long-lived, large-scale systems. It is not uncommon for such systems to progress through years of development history, a number of developers, and a multitude of software artifacts including millions of lines of code. Therefore, realizing even the slightest change may not always be straightforward. Clearly, changes are the central force driving software evolution. Therefore, it is not surprising that a significant effort has been (and should be) devoted in the software engineering community to systematically understanding, estimating, and managing changes to software artifacts. This effort includes the three core change related tasks of (1) expert developer recommendations - identifying who are the most experienced developers to implement needed changes, (2) traceability link recovery recovering dependencies (traceability links) between different types of software artifacts, and (3) software change impact analysis - which other software entities should be changed given a starting point.;This dissertation defines a framework for an integrated approach to support three core software maintenance and evolution tasks: expert developer recommendation, traceability link recovery, and software change impact analysis. The framework is centered on the use of conceptual and evolutionary relationships latent in structured and unstructured software artifacts. Information Retrieval (IR) and Mining Software Repositories (MSR) based techniques are used for analyzing and deriving these relationships. All the three tasks are supported under the framework by providing systematic combinations of MSR and IR analyses on single and multiple versions of a software system. Our approach to the integration of information is what sets it apart from previously reported relevant solutions in the literature. Evaluation on a number of open source systems suggests that such combinations do offer improvements over individual approaches.
APA, Harvard, Vancouver, ISO, and other styles
4

Chow, Kingsum. "Supporting library interface changes in open system software evolution /." Thesis, Connect to this title online; UW restricted, 1996. http://hdl.handle.net/1773/6999.

Full text
APA, Harvard, Vancouver, ISO, and other styles
5

Murphy, Gail C. "Lightweight structural summarization as an aid to software evolution /." Thesis, Connect to this title online; UW restricted, 1996. http://hdl.handle.net/1773/6976.

Full text
APA, Harvard, Vancouver, ISO, and other styles
6

Alhindawi, Nouh. "Supporting source code comprehension during software evolution and maintenance." Thesis, Kent State University, 2014. http://pqdtopen.proquest.com/#viewpdf?dispub=3618939.

Full text
Abstract:

This dissertation addresses the problems of program comprehension to support the evolution of large-scale software systems. The research concerns how software engineers locate features and concepts along with categorizing changes within very large bodies of source code along with their versioned histories. More specifically, advanced Information Retrieval (IR) and Natural Language Processing (NLP) are utilized and enhanced to support various software engineering tasks. This research is not aimed at directly improving IR or NLP approaches; rather it is aimed at understanding how additional information can be leveraged to improve the final results. The work advances the field by investigating approaches to augment and re-document source code with different types of abstract behavior information. The hypothesis is that enriching the source code corpus with meaningful descriptive information, and integrating this orthogonal information (semantic and structural) that is extracted from source code, will improve the results of the IR methods for indexing and querying information. Moreover, adding this new information to a corpus is a form of supervision. That is, apriori knowledge is often used to direct and supervise machine-learning and IR approaches.

The main contributions of this dissertation involve improving on the results of previous work in feature location and source code querying. The dissertation demonstrates that the addition of statically derived information from source code (e.g., method stereotypes) can improve the results of IR methods applied to the problem of feature location. Further contributions include showing the effects of eliminating certain textual information (comments and function calls) from being included when performing source code indexing for feature/concept location. Moreover, the dissertation demonstrates an IR-based method of natural language topic extraction that assists developers in gaining an overview of past maintenance activities based on software repository commits.

The ultimate goal of this work is to reduce the costs, effort, and time of software maintenance by improving the results of previous work in feature location and source code querying, and by supporting a new platform for enhancing program comprehension and facilitating software engineering research.

APA, Harvard, Vancouver, ISO, and other styles
7

Alhindawi, Nouh Talal. "Supporting Source Code Comprehension During Software Evolution and Maintenance." Kent State University / OhioLINK, 2013. http://rave.ohiolink.edu/etdc/view?acc_num=kent1374790792.

Full text
APA, Harvard, Vancouver, ISO, and other styles
8

Decker, Michael John. "srcDiff: Syntactic Differencing to Support Software Maintenance and Evolution." Kent State University / OhioLINK, 2017. http://rave.ohiolink.edu/etdc/view?acc_num=kent150074391000591.

Full text
APA, Harvard, Vancouver, ISO, and other styles
9

Dam, Khanh Hoa, and s3007289@student rmit edu au. "Supporting Software Evolution in Agent Systems." RMIT University. Computer Science and Information Technology, 2009. http://adt.lib.rmit.edu.au/adt/public/adt-VIT20090319.143847.

Full text
Abstract:
Software maintenance and evolution is arguably a lengthy and expensive phase in the life cycle of a software system. A critical issue at this phase is change propagation: given a set of primary changes that have been made to software, what additional secondary changes are needed to maintain consistency between software artefacts? Although many approaches have been proposed, automated change propagation is still a significant technical challenge in software maintenance and evolution. Our objective is to provide tool support for assisting designers in propagating changes during the process of maintaining and evolving models. We propose a novel, agent-oriented, approach that works by repairing violations of desired consistency rules in a design model. Such consistency constraints are specified using the Object Constraint Language (OCL) and the Unified Modelling Language (UML) metamodel, which form the key inputs to our change propagation framework. The underlying change propagation mechanism of our framework is based on the well-known Belief-Desire-Intention (BDI) agent architecture. Our approach represents change options for repairing inconsistencies using event-triggered plans, as is done in BDI agent platforms. This naturally reflects the cascading nature of change propagation, where each change (primary or secondary) can require further changes to be made. We also propose a new method for generating repair plans from OCL consistency constraints. Furthermore, a given inconsistency will typically have a number of repair plans that could be used to restore consistency, and we propose a mechanism for semi-automatically selecting between alternative repair plans. This mechanism, which is based on a notion of cost, takes into account cascades (where fixing the violation of a constraint breaks another constraint), and synergies between constraints (where fixing the violation of a constraint also fixes another violated constraint). Finally, we report on an evaluation of the approach, covering both effectiveness and efficiency.
APA, Harvard, Vancouver, ISO, and other styles
10

Timsina, Achyuta, and Shree Dimna Prajapati. "Mobile Applications Evolution." Thesis, Blekinge Tekniska Högskola, Institutionen för programvaruteknik, 2013. http://urn.kb.se/resolve?urn=urn:nbn:se:bth-2579.

Full text
Abstract:
Due to improved computing power, connectivity and interaction capability of mobile devices, their popularity and general acceptance in mass population has increased in recent years. Mobile applications are software systems running on mobile hand-held devices such as smart phones and tablets. Due to obvious differences in mobile applications, the evolution studies on them is of high importance. The primary objective is to study and compare the mobile applications evolution with the Lehman's laws of software evolution. Next is to identify and report how the software development team size influences mobile applications evolution. The study is conducted on 9 different open source mobile applications among which 5 were developed by single core developer and 4 were developed by multiple core developers. The selected projects' code repository is cloned into local copy and a number of tools are used on those repositories for extraction of relevant metrics from the artifacts. The Lehman laws are tested graphically, analytically and in some cases statistically. Six of the Lehman's laws are tested for validation in sample mobile applications. Among the six laws, I-Continuing Change is found supportive, III-Self Regulation and VI-Continuing Growth are found partial supportive in mobile applications. The II-Increasing complexity and V-Conservation of Familiarity are inconclusive. The IV-Conservation of Organizational Stability is not supportive in our sample mobile applications. Moreover, mobile applications are developed by a single or a few developers. Small team mobile projects have less time between releases compared to large team projects. The growth pattern of mobile applications is different than that predicted by Lehman laws.
APA, Harvard, Vancouver, ISO, and other styles
11

Persson, Simone. "List of Security Concerns within Continuous Software Evolution." Thesis, KTH, Skolan för elektroteknik och datavetenskap (EECS), 2018. http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-254881.

Full text
Abstract:
The amount of data being collected is increasing astronomically. Hence questions about privacy and data security are becoming more important than ever. A fast-changing culture is also reflected in the demands and requirements placed on software systems. Products and services need to evolve with the demands and feedback from customers to stay relevant on the market. Working methods and technologies have been refined to afford updating software continuously. However, rapidly changing software cause concern for the quality and level of security in the release. This thesis is a comprehensive literature study, reviewing the challenges of ensuring secure practises for continuously evolving software. The problem solved by the thesis is lack of an overall picture of the security concerns during continuous evolution. The findings are summarised in a checklist of areas of concern for security when maintaining and updating systems with continuous practises in cloud environments. This study shows that ensuring security, while delivering continuous releases, is a daunting task. It requires close collaboration between teams handling different aspects of software. This, in turn, entails a widening of competences to include knowledge about the work of other departments. It is concluded that personnel with this wide range of skill will be hard to acquire.
I en tid då mängden data som samlas in om individer ökar i ohindrad takt, blir frågor om integritet och informationssäkerhet viktigare än någonsin. Kraven på snabb utveckling och förändring präglar även metoderna för mjukvaruutveckling. Produkter och tjänster måste konstant anpassas efter kundernas önskemål för att förbli relevant på marknaden. Arbetssätt och teknologier har utvecklats över tid för att möjliggöra mjukvara som uppdateras kontinuerligt. Konstant föränderlig mjukvara leder dock till oro för kvalitén och säkerheten av uppdateringarna. Den här uppsatsen är en litteraturstudie som undersöker utmaningarna att säkerställa säkerhet för mjukvara som uppdateras kontinuerligt. Problemet som löses genom studien är den saknade helhetsbilden av säkerhetsproblem vid kontinuerligt föränderlig mjukvara. Resultatet sammanfattas i en checklista för områden som väcker oro för säkerheten vid arbetssätt som tillåter kontinuerliga uppdateringar i moln-miljöer. Studien visar att leverera säkra lösningar kontinuerligt är en svår uppgift. Det kräver nära samarbete mellan team som sköter olika delar av mjukvaruutveckling. Detta fordrar vida kompetenser som inkluderar förståelse av varandras arbete. Att finna personal med tillräckligt vida kompetenser uppskattas vara problematiskt.
APA, Harvard, Vancouver, ISO, and other styles
12

Hönel, Sebastian. "Efficient Automatic Change Detection in Software Maintenance and Evolutionary Processes." Licentiate thesis, Linnéuniversitetet, Institutionen för datavetenskap och medieteknik (DM), 2020. http://urn.kb.se/resolve?urn=urn:nbn:se:lnu:diva-94733.

Full text
Abstract:
Software maintenance is such an integral part of its evolutionary process that it consumes much of the total resources available. Some estimate the costs of maintenance to be up to 100 times the amount of developing a software. A software not maintained builds up technical debt, and not paying off that debt timely will eventually outweigh the value of the software, if no countermeasures are undertaken. A software must adapt to changes in its environment, or to new and changed requirements. It must further receive corrections for emerging faults and vulnerabilities. Constant maintenance can prepare a software for the accommodation of future changes. While there may be plenty of rationale for future changes, the reasons behind historical changes may not be accessible longer. Understanding change in software evolution provides valuable insights into, e.g., the quality of a project, or aspects of the underlying development process. These are worth exploiting, for, e.g., fault prediction, managing the composition of the development team, or for effort estimation models. The size of software is a metric often used in such models, yet it is not well-defined. In this thesis, we seek to establish a robust, versatile and computationally cheap metric, that quantifies the size of changes made during maintenance. We operationalize this new metric and exploit it for automated and efficient commit classification. Our results show that the density of a commit, that is, the ratio between its net- and gross-size, is a metric that can replace other, more expensive metrics in existing classification models. Models using this metric represent the current state of the art in automatic commit classification. The density provides a more fine-grained and detailed insight into the types of maintenance activities in a software project. Additional properties of commits, such as their relation or intermediate sojourn-times, have not been previously exploited for improved classification of changes. We reason about the potential of these, and suggest and implement dependent mixture- and Bayesian models that exploit joint conditional densities, models that each have their own trade-offs with regard to computational cost and complexity, and prediction accuracy. Such models can outperform well-established classifiers, such as Gradient Boosting Machines. All of our empirical evaluation comprise large datasets, software and experiments, all of which we have published alongside the results as open-access. We have reused, extended and created datasets, and released software packages for change detection and Bayesian models used for all of the studies conducted.
APA, Harvard, Vancouver, ISO, and other styles
13

Newman, Christian D. "A SOURCE CODE TRANSFORMATION LANGUAGE TO SUPPORT SOFTWARE EVOLUTION." Kent State University / OhioLINK, 2017. http://rave.ohiolink.edu/etdc/view?acc_num=kent1500560236029486.

Full text
APA, Harvard, Vancouver, ISO, and other styles
14

De, Souza Santos Gustavo Jansen. "Assessing and improving code transformations to support software evolution." Thesis, Lille 1, 2017. http://www.theses.fr/2017LIL10034/document.

Full text
Abstract:
Dans le domaine du développement logiciel, le changement est la seule constante. Les logiciels évoluent parfois de façon substantielle et, pendant ce processus, des séquences de transformation de code (par exemple, créer une classe, puis surcharger une méthode) sont systématiquement appliquées dans le système (e.g. à certaines classes dans une même hiérarchie). De par la nature répétitive de ces transformations, il est nécessaire d’automatiser leur support afin d’assurer que ces séquences de transformations sont appliquées de façon consistante sur la globalité du système.Dans cette thèse, nous proposons d’améliorer les transformations de code pour mieux aider les développeurs dans l’application de transformation de code systématiques et complexes. Nous couvrons deux aspects:• Le support automatisé pour composer et appliquer des séquences de transformations de code. Nous réalisons une recherche de l’existence de telles séquences dans de vrais logiciels. Nous proposons un outil pour appliquer automatiquement ces séquences dans les systèmes que nous avons analysés. • La détection de violations de bons principes dans la conception lors d’efforts de transformation. Nous proposons un outil qui recommande des transformations additionnelles pour résoudre les violations de conception qui ont pu être détectées après avoir effectué les transformations de refactoring.Nous évaluons les approches proposées quantitativement et qualitativement sur des cas d’étude issus du monde réel, parfois avec l’aide des experts du système analysé. Les résultats obtenus montrent la pertinence de nos approches
In software development, change is the only constant. Software systems sometimes evolve in a substantial way and, during this process, sequences of code transformations (e.g., create a class, then override a method) are systematically performed in the system (e.g., to some classes in the same hierarchy). Due to the repetitive nature of these transformations, some automated support is needed to ensure that these sequences of transformations are consistently applied to the entire system.In this thesis we propose to improve source code transformations to better sup- port developers performing more complex and systematic code transformations. We cover two aspects: • The automated support to compose and apply sequences of code transformations. We undergo an investigation on the existence of these sequences in real-world software systems. We propose a tool to automatically apply these sequences in the systems we analyzed. • The detection of design violations during a transformation effort. We undergo an investigation on cases of systematic application of refactoring transformations. We proposed a tool that recommends additional transformations to fix design violations that are detected after performing refactoring transformations.We evaluated the proposed approaches quantitatively and qualitatively in real-world case studies and, in some cases, with the help of experts on the systems under analysis. The results we obtained demonstrate the usefulness of our approaches
APA, Harvard, Vancouver, ISO, and other styles
15

Svahnberg, Mikael. "Variability in Evolving Software Product Lines." Licentiate thesis, Karlskrona, Sweden : Kaserntryckeriet AB, 2000. http://urn.kb.se/resolve?urn=urn:nbn:se:bth-00174.

Full text
Abstract:
Software reuse is perceived as the key to successful software development because of the potential for shortened time to market, increased quality and reduced costs. In recent years software product lines have emerged as a promising way to achieve large scale software reuse. Challenges against successful reuse when developing in a software product line involves management of the differences between products, and the differences between different releases of the products. In this thesis we present the experiences from a series of case studies within four software companies. Based on these we present a taxonomy of the technical solutions to manage product differences, a historical essay of how components in a software product line can evolve and what mechanisms that are used to support this evolution. From this we elaborate on the connection between evolution and variability, i.e. the ability of the software architecture and components to support the differences between products. We argue that evolution is strongly connected to variability, and that by foreseeing the evolution, the software can be instrumented with appropriate variability mechanisms accordingly. Moreover, we argue that some types of evolution are more frequent than others, and that the efforts should mainly go in the direction of foreseeing and instrumenting for these types of evolution.
APA, Harvard, Vancouver, ISO, and other styles
16

Cavalcante, Hora André. "Assessing and improving rules to support software evolution." Thesis, Lille 1, 2014. http://www.theses.fr/2014LIL10114/document.

Full text
Abstract:
Les systèmes logiciels évoluent pour ajouter de nouvelles fonctionnalités, corriger des bugs ou refactoriser du code source. Durant ce processus, certains problèmes peuvent survenir provoquant l'inconsistance ou l'échec des systèmes en évolution et avec leurs clients, ce qui aboutit finalement à une baisse de la qualité du code. Pour faire face à ces problèmes, il est possible d'utiliser des règles. Ces règles peuvent être créées par des experts ou extraites de précédentes versions du code source. Nous soutenons que les approches existantes : (i) n'analysent pas précisément les avantages des règles créées par des experts; (ii) gagneraient à mieux utiliser les dépôt de codes sources pour extraire des règles basées sur l'historique, et (iii) devraient analyser à grande échelle et sur des cas réels l'impact de l'évolution du code source sur les clients. Dans cette thèse, nous proposons d'analyser et d'améliorer les règles pour aider les développeurs à mieux suivre l'évolution du code source. Pour cela, nous étudions trois aspects différents :- Les avantages prévus par les règles créées par des experts : nous analysons précisément ces règles pour comprendre si elles valent la peine d'être adoptées malgré le coût pour les produire.- L'amélioration des règles basées sur l'historique : nous proposons deux solutions pour extraire de meilleures règles à partir du dépôt de codes sources.- L'impact de l'évolution du code source sur un écosystème logiciel : nous étudions les conséquences de l'évolution de code source sur des systèmes clients dans le contexte d'un écosystème de grande échelle.Les résultats que nous avons obtenus démontrent l'utilité de nos approches
Software systems evolve by adding new features, fixing bugs or refactoring existing source code. During this process, some problems may occur causing evolving systems and their clients to be inconsistent or to fail, decreasing code quality. One solution to deal with such maintainability problems is the usage of rules to ensure consistency. These rules may be created by experts or extracted from source code repositories, which are commonly evaluated in small-scale case studies. We argue that existing approaches lack of: (i) a deep understanding of the benefits provided by expert-based rules, (ii) a better use of source code repositories to extract history-based rules, and (iii) a large-scale analysis of the impact of source code evolution on the actual clients.In this thesis we propose to analyze and improve rules to better support developers keeping track of source code evolution. We cover three aspects: - The benefits provided by expert-based rules: we report on an investigation of rules created based on expert opinion to understand whether they are worthwhile to be adopted given the cost to produce them.- The improvement of history-based rules: we propose two solutions to extract better rules from source code history.- The impact of source code evolution on a software ecosystem: we undergo an investigation, in a large-scale ecosystem, on the awareness of the client systems about source code evolution. We evaluated the proposed approaches qualitatively and quantitatively. The results we obtained demonstrate the usefulness of our approaches
APA, Harvard, Vancouver, ISO, and other styles
17

Newman, Christian D. "NORMALIZING-REFACTORINGS: SIMPLIFYING THE CONSTRUCTION OF SOURCE CODE TRANSFORMATIONS." Kent State University / OhioLINK, 2013. http://rave.ohiolink.edu/etdc/view?acc_num=kent1385057030.

Full text
APA, Harvard, Vancouver, ISO, and other styles
18

Teyton, Cédric. "Gestion des bibliothèques tierces dans un contexte de maintenance logicielle." Thesis, Bordeaux, 2014. http://www.theses.fr/2014BORD0123/document.

Full text
Abstract:
Les logiciels dépendent de bibliothèques tierces pour réduire les coûts liés à leur développement et à leur maintenance. Elles proposent un ensemble de fonctionnalités robustes dont les développeurs peuvent tirer parti depuis une interface de programmation. Cependant, cette forte dépendance entre un logiciel et ses bibliothèques oblige les développeurs à reconsidérer leur rôle lorsque le logiciel évolue. Dans cette thèse, nous identifions plusieurs problématiques impliquant les bibliothèques tierces dans un contexte de maintenance logicielle. Plus particulièrement, une bibliothèque peut ne plus répondre aux besoins d’un logiciel et doit être remplacée par une nouvelle.Nous nommons cette opération une migration de bibliothèque.Nous soulevons dans ce contexte trois points qui caractérisent les difficultés rencontrées par les développeurs. Vers quelle bibliothèque migrer ? Comment appliquer la migration ? Avec l’aide de quels développeurs ? Cette thèse discute de solutions et apporte des contributions autour de ces problèmes. Nous présentons plusieurs approches et les évaluons lors de différents cas d’étude. L’analyse de l’évolution logicielle sera notre support de travail, dont la méthodologie est basée sur l’observation des changements de logiciels. Nous décrivons les limites actuelles de nos contribu-tions et ouvrons des perspectives futures pour enrichir l’état de l’art dans ce domaine
Software depend on third-party libraries to reduce development and maintenance costs. Developers have access to robust functionalities through an application programming interface designed by these libraries. However, due to the strong relationship with these libraries, developers have to reconsider their position when the software evolves. In this thesis, we identify several re-search problems involving these third-party libraries in a context of software maintenance. More specifically, a library may not satisfy the software new requirements and has to be replaced by anew one. We call this operation a library migration.We leverage three points that characterize the impediments met by developers in this situation.To which library should they migrate ? How to migrate their software ? Who can help them in this case ? This thesis suggests answers and exposes several contributions to these problems. We define three approaches that are evaluated through several case studies. To achieve this work, weuse a methodology based on software evolution analysis to observe and understand how software change. We describe numerous perspectives to overcome the current limitations of our solutions
APA, Harvard, Vancouver, ISO, and other styles
19

Zimmermann, Théo. "Challenges in the collaborative evolution of a proof language and its ecosystem." Thesis, Université de Paris (2019-....), 2019. http://www.theses.fr/2019UNIP7163.

Full text
Abstract:
Dans cette thèse, je présente l'application de méthodes et de connaissances en génie logiciel au développement, à la maintenance et à l'évolution de Coq —un assistant de preuve interactif basé sur la théorie des types— et de son écosystème de paquets. Coq est développé chez Inria depuis 1984, mais sa base d’utilisateurs n’a cessé de s’agrandir, ce qui suscite désormais une attention renforcée quant à sa maintenabilité et à la participation de contributeurs externes à son évolution et à celle de son écosystème de plugins et de bibliothèques.D'importants changements ont eu lieu ces dernières années dans les processus de développement de Coq, dont j'ai été à la fois un témoin et un acteur (adoption de GitHub en tant que plate-forme de développement, tout d'abord pour son mécanisme de pull request, puis pour son système de tickets, adoption de l'intégration continue, passage à des cycles de sortie de nouvelles versions plus courts, implication accrue de contributeurs externes dans les processus de développement et de maintenance open source). Les contributions de cette thèse incluent une description historique de ces changements, le raffinement des processus existants et la conception de nouveaux processus, la conception et la mise en œuvre de nouveaux outils facilitant l’application de ces processus, et la validation de ces changements par le biais d’évaluations empiriques rigoureuses.L'implication de contributeurs externes est également très utile au niveau de l'écosystème de paquets. Cette thèse contient en outre une analyse des méthodes de distribution de paquets et du problème spécifique de la maintenance à long terme des paquets ayant un seul responsable
In this thesis, I present the application of software engineering methods and knowledge to the development, maintenance, and evolution of Coq —an interactive proof assistant based on type theory— and its package ecosystem. Coq has been developed at Inria since 1984, but has only more recently seen a surge in its user base, which leads to much stronger concerns about its maintainability, and the involvement of external contributors in the evolution of both Coq, and its ecosystem of plugins and libraries.Recent years have seen important changes in the development processes of Coq, of which I have been a witness and an actor (adoption of GitHub as a development platform, first for its pull request mechanism, then for its bug tracker, adoption of continuous integration, switch to shorter release cycles, increased involvement of external contributors in the open source development and maintenance process). The contributions of this thesis include a historical description of these changes, the refinement of existing processes, and the design of new ones, the design and implementation of new tools to help the application of these processes, and the validation of these changes through rigorous empirical evaluation.Involving external contributors is also very useful at the level of the package ecosystem. This thesis additionally contains an analysis of package distribution methods, and a focus on the problem of the long-term maintenance of single-maintainer packages
APA, Harvard, Vancouver, ISO, and other styles
20

Guimarães, Júlio Henrique dos Nogueira e. Oliveira. "Método para manutenção de sistema de software utilizando técnicas arquiteturais." Universidade de São Paulo, 2008. http://www.teses.usp.br/teses/disponiveis/3/3141/tde-29012009-134316/.

Full text
Abstract:
Diversos negócios hoje são suportados por sistemas de software. Acredita-se que o uso de Arquitetura de Software é fundamental para atingir alcançar as metas de negócio e qualidade. Visto que o conjunto de requisitos que levou à construção de uma determinada arquitetura pode mudar, tal arquitetura pode tornar-se inadequada. Em diversas situações é preciso conviver com os sistemas existentes, portanto é preciso alterá-los para as novas necessidades. Manutenção de sistemas usando técnicas de evolução arquiteturais tem se mostrado um eficaz caminho para alterar um sistema à nova situação. O objetivo deste trabalho é apresentar um método para manutenção de sistemas de software usando técnicas arquiteturais de forma a convergir mais rapidamente à adequação da arquitetura destes sistemas. Algumas técnicas do método incluem avaliação de arquitetura de software, levantamento de riscos, provas de conceito construtivas e destrutivas e métricas estáticas e dinâmicas de software. O método proposto foi aplicado em contextos de laboratório e da indústria, permitindo a verificação de pontos fortes e críticos para realizar seu refinamento e tais aplicações são também relatadas neste trabalho. Embora as aplicações do método proposto tenham sido diferentes, tanto no objetivo principal quanto no desenrolar das atividades, seus resultados foram considerados bastante satisfatórios, tanto no contexto de ensino quanto no contexto de indústria.
Several business today are supported by software systems. It is believed that the use of software architecture is fundamental to achieve the business goals and quality. Since the set of requirements that led to the construction of a given architecture may change, such an architecture may become inadequate. In many situations we must live with existing systems, so we must change them to meet the new needs. Systems maintenance using architectural evolution techniques has proven to be an effective path to take a system to the new situation. This works goal is to provide a method for maintenance of software systems using architectural techniques in order to converge more rapidly to match the architecture of these systems. Some techniques used in the method include software architecture evaluation, risks survey, constructive and destructive proofs of concept, static and dynamic software metrics. The proposed method was applied in contexts of laboratory and industry, allowing the verification of strengths and critical points to guide its refinement and such applications are also reported in this work. Although the applications of the proposed method has been different in both the main goal and the conduct of activities, their results were considered very satisfactory, both in the education and the industry context.
APA, Harvard, Vancouver, ISO, and other styles
21

Mehta, Alok. "Evolving legacy system's features into fine-grained components using regression test-cases." Link to electronic thesis, 2002. http://www.wpi.edu/Pubs/ETD/Available/etd-1211102-163800.

Full text
Abstract:
Dissertatio (Ph. D.)--Worcester Polytechnic Institute.
Keywords: software maintenance; software evolution; regression test-cases; components; legacy system; incremental software evolution methodology; fine-grained components. Includes bibliographical references (p. 283-294).
APA, Harvard, Vancouver, ISO, and other styles
22

Mertz, Jhonny Marcos Acordi. "Understanding and automating application-level caching." reponame:Biblioteca Digital de Teses e Dissertações da UFRGS, 2017. http://hdl.handle.net/10183/156813.

Full text
Abstract:
O custo de serviços na Internet tem encorajado o uso de cache a nível de aplicação para suprir as demandas dos usuários e melhorar a escalabilidade e disponibilidade de aplicações. Cache a nível de aplicação, onde desenvolvedores manualmente controlam o conteúdo cacheado, tem sido adotada quando soluções tradicionais de cache não são capazes de atender aos requisitos de desempenho desejados. Apesar de sua crescente popularidade, este tipo de cache é tipicamente endereçado de maneira ad-hoc, uma vez que depende de detalhes específicos da aplicação para ser desenvolvida. Dessa forma, tal cache consiste em uma tarefa que requer tempo e esforço, além de ser altamente suscetível a erros. Esta dissertação avança o trabalho relacionado a cache a nível de aplicação provendo uma compreensão de seu estado de prática e automatizando a identificação de conteúdo cacheável, fornecendo assim suporte substancial aos desenvolvedores para o projeto, implementação e manutenção de soluções de caching. Mais especificamente, este trabalho apresenta três contribuições: a estruturação de conhecimento sobre caching derivado de um estudo qualitativo, um levantamento do estado da arte em abordagens de cache estáticas e adaptativas, e uma técnica que automatiza a difícil tarefa de identificar oportunidades de cache O estudo qualitativo, que envolveu a investigação de dez aplicações web (código aberto e comercial) com características diferentes, permitiu-nos determinar o estado de prática de cache a nível de aplicação, juntamente com orientações práticas aos desenvolvedores na forma de padrões e diretrizes. Com base nesses padrões e diretrizes derivados, também propomos uma abordagem para automatizar a identificação de métodos cacheáveis, que é geralmente realizado manualmente por desenvolvedores. Tal abordagem foi implementada como um framework, que pode ser integrado em aplicações web para identificar automaticamente oportunidades de cache em tempo de execução, com base na monitoração da execução do sistema e gerenciamento adaptativo das decisões de cache. Nós avaliamos a abordagem empiricamente com três aplicações web de código aberto, e os resultados indicam que a abordagem é capaz de identificar oportunidades de cache adequadas, melhorando o desempenho das aplicações em até 12,16%.
Latency and cost of Internet-based services are encouraging the use of application-level caching to continue satisfying users’ demands, and improve the scalability and availability of origin servers. Application-level caching, in which developers manually control cached content, has been adopted when traditional forms of caching are insufficient to meet such requirements. Despite its popularity, this level of caching is typically addressed in an adhoc way, given that it depends on specific details of the application. Furthermore, it forces application developers to reason about a crosscutting concern, which is unrelated to the application business logic. As a result, application-level caching is a time-consuming and error-prone task, becoming a common source of bugs. This dissertation advances work on application-level caching by providing an understanding of its state-of-practice and automating the decision regarding cacheable content, thus providing developers with substantial support to design, implement and maintain application-level caching solutions. More specifically, we provide three key contributions: structured knowledge derived from a qualitative study, a survey of the state-of-the-art on static and adaptive caching approaches, and a technique and framework that automate the challenging task of identifying cache opportunities The qualitative study, which involved the investigation of ten web applications (open-source and commercial) with different characteristics, allowed us to determine the state-of-practice of application-level caching, along with practical guidance to developers as patterns and guidelines to be followed. Based on such patterns and guidelines derived, we also propose an approach to automate the identification of cacheable methods, which is often manually done and is not supported by existing approaches to implement application-level caching. We implemented a caching framework that can be seamlessly integrated into web applications to automatically identify and cache opportunities at runtime, by monitoring system execution and adaptively managing caching decisions. We evaluated our approach empirically with three open-source web applications, and results indicate that we can identify adequate caching opportunities by improving application throughput up to 12.16%. Furthermore, our approach can prevent code tangling and raise the abstraction level of caching.
APA, Harvard, Vancouver, ISO, and other styles
23

CAVALCANTI, Yguaratã Cerqueira. "An automated approach to assign software change requests." Universidade Federal de Pernambuco, 2014. https://repositorio.ufpe.br/handle/123456789/12391.

Full text
Abstract:
Submitted by Nayara Passos (nayara.passos@ufpe.br) on 2015-03-13T13:04:40Z No. of bitstreams: 2 TESE Yaguaratã Cerqueira Cavalcanti.pdf: 2989671 bytes, checksum: cdde3d6cea6de1cabb90748865421b78 (MD5) license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
Made available in DSpace on 2015-03-13T13:04:40Z (GMT). No. of bitstreams: 2 TESE Yaguaratã Cerqueira Cavalcanti.pdf: 2989671 bytes, checksum: cdde3d6cea6de1cabb90748865421b78 (MD5) license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) Previous issue date: 2014
The efficient management of Change Requests (CRs) is fundamental for successful software maintenance; however the assignment of CRs to developers is an expensive aspect in this regard, due to the time and expertise demanded. To overcome this, researchers have proposed automated approaches for CR assignment. Although these proposals present advances to this topic, they do not consider many factors inherent to the assignments, such as: developers’ workload, CRs severity, interpersonal relationships, and developers know-how. Actually, as we demonstrate in this work, CR assignment is a complex activity and automated approaches cannot rely on simplistic solutions. Ideally, it is necessary to consider and reason over contextual information in order to provide an effective automation. In this regarding, this work proposes, implements, and validates a context-aware architecture to automate CR assignment. The architecture emphasizes the need for considering the different information available at the organization to provide a more context-aware solution to automated CR assignment. The development of such architecture is supported by evidence synthesized from two empirical studies: a survey with practitioners and a systematic mapping study. The survey provided us with a set of requirements that automated approaches should satisfy. In the mapping study, in turn, we figured out how state-of-the-art approaches are implemented in regarding to these requirements, concluding that many of them are not satisfied. In addition, new requirements were identified in this mapping study. For the implementation of the proposed architecture, we developed a strategy to automate CR assignments which is based on two main components: a Rule-Based Expert System (RBES) and an Information Retrieval (IR) model. The strategy coordinately applies these two components in different steps to find the potential developer to a CR. The RBES takes care of the simple and complex rules necessary to consider contextual information in the assignments, e.g., to prevent assigning a CR to a busy or unavailable developer. Since these rules vary from one organization/project to another, the RBES facilitates their modification for different contexts. On the other hand, the IR model is useful to make use of the historical information of CR assignments to match CRs and developers. Results from the validation study showed that our solution is promising. It is, by comparing the solution with an approach that uses only a machine learning algorithm, such as the Support Vector Machine (SVM), we could improve the accuracy of assignments by almost 50%. The analysis of the solution’s payoff also pointed that such an accuracy is able to pay for the efforts necessary to deploy the solution.-------------------------------------O gerenciamento eficiente de solicitações de mudança (SM) é fundamental para o sucesso das atividades de manutenção e evolução de software. Entretanto, a atribuição de SMs a desenvolvedores é um aspecto custoso desse gerenciamento, pois demanda tempo e conhecimento apropriado do projeto de software. Várias pesquisas já propuseram métodos de atribuição automática de SMs. Embora representem avanços na área, existem fatores inerentes a atribuição de SMs que não são considerados nessas pesquisas e são essenciais para a automação. Como demonstrado nesse trabalho, a atribuição automática deve, por exemplo, considerar a carga de trabalho, a experiência e o conhecimento dos desenvolvedores, a prioridade e a severidade das SMs, a afinidade dos desenvolvedores com os problemas descritos nas SMs, e até mesmo os relacionamentos interpessoais. Para tornar esse cenário ainda mais complexo, esses fatos podem variar de acordo com o projeto de software que está sendo desenvolvido. Assim, uma solução para o problema de atribuição de SMs depende de informações contextuais. Assim, esse trabalho propõe, implementa e valida uma solução arquitetural sensível ao contexto para atribuição automática de SMs. Dado o aspecto contextual da solução, a arquitetura considera diversas fontes de informações presentes na organização, assim como a necessidade de se desenvolver algorítimos que implementem diferentes estratégias de atribuição. Nossa proposta de solução é embasada em resultados de duas pesquisas quantitativas: um estudo de mapeamento sistemático da literatura, e uma pesquisa de questionário com desenvolvedores de software. Esse último forneceu um conjunto de requisitos que a solução automatizada deve satisfazer para que as estratégias de atribuição sejam atendidas, enquanto o mapeamento da literatura identificou técnicas, algoritmos, e outros requisitos necessários a automação. A implementação da arquitetura segue uma estratégia de automação, definida nesse trabalho, que possui dois componentes principais: um sistema especialista baseado em regras (SEBR); e um modelo de recuperação de informação (MRI) com técnicas de aprendizagem. Em nossa estratégia, esses dois componentes são executados alternadamente em momentos diferentes a fim de atribuir uma SM automaticamente. O SEBR processa regras, considerando informações contextuais do projeto de software e da organização que o desenvolve. O MRI é utilizado para fazer o casamento entre SMs e desenvolvedores de acordo com o histórico de atribuições. Os resultados do estudo de validação apontaram que a solução é promissora. Isto é, ao compararmos nossa solução com uma abordagem que utiliza apenas um algoritmo de aprendizado de máquina, como o Support Vector Machine (SVM), pudemos melhorar em quase 50% a acurácia de atribuição. Já a análise de custo de implantação apontou que a acurácia atingida pela solução possui um bom custo benefício.
APA, Harvard, Vancouver, ISO, and other styles
24

Van, den Weghe Matthias. "Creating Markup : Exploring the concept of users defining syntax." Thesis, Uppsala universitet, Institutionen för informatik och media, 2016. http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-296633.

Full text
Abstract:
A variety of markup languages exist for formatting text and exporting to HTML. These languages are tailored to the needs in a specific context by specialising tags, selecting tags and limiting the number of possible distinctions to a subset of what is available in HTML. However, limiting the number of possible distinctions creates problems when changes occur in the context. The real world is ever-changing, thus that which models it must be able to reflect the changes in the operational environment to remain relevant and satisfactory. Incorporating new requirements and adjusting to the changes in requirements means adapting and evolving. This thesis explores giving document authors the possibility to extend and modify the repertoire of available markup tags when new user requirements demand it. What is presented is a prototype which allows the user to tailor the markup and also adapt it to changes in the environment. The system allows users to create their own set of markup tags, annotate their documents with them, and export a generated XML document. Users create the tag and assign a meaning to it, when changes occur in the requirements they can be implemented by modifying the tags, extending the repertoire by adding tags, or changing the meaning of a defined tag.
APA, Harvard, Vancouver, ISO, and other styles
25

Santelices, Raul A. "Change-effects analysis for effective testing and validation of evolving software." Diss., Georgia Institute of Technology, 2012. http://hdl.handle.net/1853/44737.

Full text
Abstract:
The constant modification of software during its life cycle poses many challenges for developers and testers because changes might not behave as expected or may introduce erroneous side effects. For those reasons, it is of critical importance to analyze, test, and validate software every time it changes. The most common method for validating modified software is regression testing, which identifies differences in the behavior of software caused by changes and determines the correctness of those differences. Most research to this date has focused on the efficiency of regression testing by selecting and prioritizing existing test cases affected by changes. However, little attention has been given to finding whether the test suite adequately tests the effects of changes (i.e., behavior differences in the modified software) and which of those effects are missed during testing. In practice, it is necessary to augment the test suite to exercise the untested effects. The thesis of this research is that the effects of changes on software behavior can be computed with enough precision to help testers analyze the consequences of changes and augment test suites effectively. To demonstrate this thesis, this dissertation uses novel insights to develop a fundamental understanding of how changes affect the behavior of software. Based on these foundations, the dissertation defines and studies new techniques that detect these effects in cost-effective ways. These techniques support test-suite augmentation by (1) identifying the effects of individual changes that should be tested, (2) identifying the combined effects of multiple changes that occur during testing, and (3) optimizing the computation of these effects.
APA, Harvard, Vancouver, ISO, and other styles
26

Oliva, Gustavo Ansaldi. "Identificação e visualização de dependências em sistemas de software orientados a objetos." Universidade de São Paulo, 2011. http://www.teses.usp.br/teses/disponiveis/45/45134/tde-07112014-162346/.

Full text
Abstract:
Degradação do design é um problema central investigado na área de evolução de software. A densa rede de interdependências que emerge entre classes e módulos ao longo do tempo resulta em código difícil de mudar, não reutilizável e que não comunica por si só sua intenção. Dentre outros motivos, designs degradam porque requisitos mudam de maneiras não antecipadas pelo design inicial, ou seja, as modificações no código introduzem dependências novas e não planejadas entre classes e módulos do sistema. A gerência de dependências visa reduzir a degradação do design por meio de uma série de mecanismos que auxiliam na administração da complexidade estrutural inerente de sistemas orientados a objetos. Neste trabalho, investigamos as técnicas de identificação de dependências estruturais e lógicas. Em particular, por meio de um estudo de larga escala, comparamos os conjuntos desses dois tipos de dependências. Em seguida, conduzimos um estudo de caso a fim de identificar as origens de dependências lógicas. Por fim, fazemos um levantamento das técnicas de visualização de dependências e mostramos a ferramenta XFlow.
Design degradation is a central problem investigated in the area of software evolution. The dense web of interdependencies that emerges among classes and modules over time results in code that is hard to change, not reusable and that does not communicate its intention. Among other reasons, designs degrade because requirements changes in ways that were not anticipated by the initial design, i.e. the changes in code introduce new and unplanned dependencies among classes and modules of the system. Dependency management aims to reduce design degradation by means of a series of mechanisms that helps in the management of the inherent structural complexity of object oriented systems. In this work, we investigate structural and logical dependencies identification techniques. In particular, by means of a large scale study, we compare the sets of these two kinds of dependencies. Afterwards, we conduct a case study in order to uncover the origins of logical dependencies. Finally, we survey dependency visualization techniques and present the XFlow tool.
APA, Harvard, Vancouver, ISO, and other styles
27

Silva, Luciana Lourdes. "Técnicas para compreensão de rastros de execução de programas orientados a objetos." Universidade Federal de Uberlândia, 2011. https://repositorio.ufu.br/handle/123456789/12504.

Full text
Abstract:
Several attempts to facilitate understanding the behavior of software systems have been proposed. Perfective changes in well-established software systems are easier to perform when the development team has a solid understanding of the internals. However, it is reasonable to assume that the use of an open source system to incorporate new features and obtain a new software product is an appealing approach instead of coding a new product from scratch. Considering this scenario, and considering that it is not uncommon that systems are poorly documented, there is no widely accepted approach to guide the perfective maintenance for developers with low understanding of the system or that recovers high-level information about both the structure and the behavior of large systems. This work proposes a new approach to simplify comprehension tasks of object oriented programs through the analysis of summarized execution traces. The approach is perfomed on two techniques: The rst technique enables the separation of common parts of source code from specic parts related to important features that drive the addition of the new one. An evaluation is done to verify if the summarized execution traces helps the technique to locate potential elements of code that can guide the development of a new feature. The evaluation was conducted with real-world systems and with meaningful evolution tasks. The second is based on a technique that reconstructs structural and behavioral highlevel diagrams by the analysis of summarized execution traces. Precision and recall were evaluated using two third-party open-source systems, including the webserver Tomcat. The result suggests the feasibility for using the approach on real world large scale systems.
Várias abordagens para facilitar a compreensão do comportamento de sistemas de software têm sido propostas. Mudanças perfectivas em sistemas de software bem estabelecidos são mais fáceis de executar quando a equipe de desenvolvimento tem um entendimento sólido do código fonte. Mas é razoável assumir que o uso de um sistema de código aberto para incorporar novas características e obter um novo produto de software é uma abordagem interessante, ao invés de codificar um novo produto a partir do zero. Em consideração a este cenário e considerando que não é incomum sistemas pobres em documentação, não existe uma abordagem amplamente aceita para guiar em mudanças perfectivas desenvolvedores com baixo conhecimento do sistema ou que recupera informações em alto nível de abstração sobre a estrutura e comportamento de sistemas complexos. Este trabalho propõe uma nova abordagem para simplificar tarefas de compreensão de programas orientados a objetos através da análise de rastros de execução sumarizados. A abordagem é aplicada sobre duas técnicas: a primeira permite a separação de partes comuns do código fonte das partes específicas relacionadas a características importantes que conduz a adição de uma nova. Uma avaliação é feita para verificar se os rastros de execução sumarizados ajudam a técnica na localização de elementos potenciais de código que podem guiar o desenvolvimento de uma nova característica. A avaliação foi realizada com sistemas do mundo real e com tarefas de evolução significativas. A segunda é baseada na reconstrução de diagramas estruturais e comportamentais de alto nível baseada na análise de rastros de execução sumarizados. É apresentada uma avaliação do desempenho da abordagem em termos de precisão e recall em dois sistemas públicos de terceiros, dentre eles o servidor Web Tomcat. O resultado sugere a viabilidade da abordagem para uso em sistemas reais de larga escala.
Mestre em Ciência da Computação
APA, Harvard, Vancouver, ISO, and other styles
28

Sanlaville, Rémy. "Architecture logicielle : une expérimentation industrielle avec Dassault Systèmes." Phd thesis, Université Joseph Fourier (Grenoble), 2002. http://tel.archives-ouvertes.fr/tel-00004589.

Full text
Abstract:
L'architecture logicielle est un domaine récent du génie logiciel qui a reçu une attention particulière ces dix dernières années. Les éditeurs de logiciels ont pris conscience qu'une architecture est un facteur critique dans la réussite du développement et facilite la maintenance et l'évolution du logiciel. Elle contribue à la maîtrise des grands logiciels. L'architecture logicielle permet d'améliorer ces aspects grâce à l'étude des structures de haut niveau du logiciel. De nombreuses avancées ont été proposées au niveau de la formalisation par des Langages de Description d'Architecture (ADLs: Architecture Description Languages), du raisonnement et de l'analyse au niveau architectural. Bien que la communauté scientifique ait réalisé des progrès significatifs, les résultats restent essentiellement académiques. Les retombées de ces recherches ont du mal à pénétrer le milieu industriel. Ce rapport de thèse relate notre expérience avec Dassault Systèmes : répondre aux besoins de Dassault Systèmes pour le développement de ses logiciels en utilisant une approche basée sur l'architecture logicielle. Dassault Systèmes est le leader mondial de la Conception Assistée par Ordinateur (CAO) avec son logiciel phare CATIA V5 (~5 MLoc). Pour atteindre cet objectif, nous avons parcouru les principales approches pour la description d'une architecture logicielle et tenté de les appliquer dans notre contexte industriel. Nous expliquerons les difficultés que nous avons rencontrées pour les utiliser et montrerons pourquoi ces approches ne sont pas adaptées pour la maintenance et l'évolution d'un logiciel tel que CATIA V5. Nous décrirons notre démarche basée sur l'analyse des besoins architecturaux des différents acteurs de Dassault Systèmes qui a permis de fournir des solutions concrètes et exploitables. Enfin, nous expliciterons ces besoins architecturaux et présenterons les divers prototypes que nous avons développés pour y répondre.
APA, Harvard, Vancouver, ISO, and other styles
29

Ahmad, Adeel. "Contribution à la multi-modélisation des applications distribuées pour le contrôle de l'évolution des logiciels." Thesis, Littoral, 2011. http://www.theses.fr/2011DUNK0387/document.

Full text
Abstract:
Le contrôle de l'évolution des logiciels exige une compréhension profonde des changements et leur impact sur les différents artefacts du système. Nous proposons une approche de multi-modélisation pour l'analyse d'impact du changement pour une compréhension des effets des modifications prévus ou réels dans les systèmes distribués. Ce travail consiste à élaborer une modélisation des artefacts logiciels et de leur différents liens d'interdépendance pour construire un système à base de connaissance permettant, entre autres, d'assister les développeurs et les chargés de l'évolution des logiciels pour étblir une évaluation a priori de l'impact des modifications.La modélisation que nous élaborons intègre deux descriptions majeures des logiciels, dans un premier temps, la description structurelle sous-jacente qui englobe l'ensemble des niveaux granulaires et l'abstraction des constituants logiciels, et ensuite la description qualitative conçue pour s'intégrer à la description précédente. Deux modèles, d'abord élaborés individuellement pour les deux descriptions respectives, ont été intégrés ou mis en correspondance dans l'objectif d'étudier l'impact de toute modification et sa potentielle propagation à travers les constituants logiciels concernés. Lors de chaque modification, il devient alors possible d'établir un bilan qualitatif de son impact. La modélisation intégrée est élaborée pour se prêter à un raisonnement à base de règles expertes. La modélisation proposée est en cours d'expérimentation et validation à travers le développement d'une plate-forme d'implémentation basée sur l'environnement Eclipse
The software evolution control requires a complete understanding of the changes and their impact on the various systems artifacts. We propose a multi-modeling approach for the change impact analysis to provide assistance in understanding the effects of projected or actual changes in distributed software systems. This work elaborate the modeling of software artifacts along with their various interdependencies to build a knowledge-based system, which allows, among others, an assistance for the software developers or maintenance engineers to establish an a priori evaluation of impact of changes. The model we develop integrates two major descriptions of software, at first, the underlying structural description that encompasses the levels of granularity and abstraction of software artifacts, and then the qualitative description designed to integrate the structural description. Initially, the formal models are designed separately for the respective descriptions, and then these are integrated for the objective to study the change impact and its potential propagation through the affected software artifacts. For a change, it is important to establish a qualitative assessment of its impact. The integrated modeling leads to a reasoning based on expert rules. The proposed model is being tested and validated through the development of a platform, implemented in the Eclipse environment
APA, Harvard, Vancouver, ISO, and other styles
30

Taylor, Mark John. "Methodologies and software maintenance." Thesis, University of Salford, 1998. http://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.265393.

Full text
APA, Harvard, Vancouver, ISO, and other styles
31

Sayyad, Shirabad Jelber. "Supporting software maintenance by mining software update records." Thesis, University of Ottawa (Canada), 2003. http://hdl.handle.net/10393/29004.

Full text
Abstract:
It is well known that maintenance is the most expensive stage of the software life cycle. Most large real world software systems consist of a very large number of source code files. Important knowledge about different aspects of a software system is embedded in a rich set of implicit relationships among these files. Those relationships are partly reflected in system documentation at its different levels, but more often than not are never made explicit and become part of the expertise of system maintainers. Finding existing relations between source code components is a difficult task, especially in the case of legacy systems. When a maintenance programmer is looking at a piece of code in a source file, one of the important questions that he or she needs to answer is: "which other files should I know about, i.e. what else might be relevant to this piece of code?". This is an example of a more general Relevance Relation that maps a set of entities in a software system into a relevance value. How can we discover and render explicit these relationships without looking over the shoulder of a programmer involved in a maintenance task? We turn to inductive methods that are capable of extracting structural patterns or models from data. They can learn concepts or models from experience observed in the past to predict outcomes of future unseen cases. This thesis lies at the intersection of two research fields, which has been widely ignored by researchers in the machine learning and software engineering communities. It investigates the application of inductive methods to daily software maintenance at the source code level. Therefore in this thesis we first lay out the general idea of relevance among different entities in a software system. Then using inductive learning methods and a variety of data sources used by maintenance programmers, we extract (i.e. learn) what we call a maintenance relevance relation among files in a large legacy system. In effect we learn from past maintenance experience in the form of problem reports and update records, to be able to make predictions that are useful in future maintenance activities. This relation, which is called the Co-update relation, predicts whether updating one source file may require a change in another file. To learn the Co-update relation we have performed a large number of experiments using syntactic features such as function calls or variable definitions. We have also performed experiments that use text based features such as source code comments and problem reports, and the combination of these features. The results obtained show that while using syntactic features is encouraging in terms of the predictive power of the results of learning, using text based features yields highly accurate models, with precision and recall measures that make these models viable to be used in a real world setting. As part of the contribution of this thesis we also report on challenges encountered in the process and the lessons learned.
APA, Harvard, Vancouver, ISO, and other styles
32

Revelle, Meghan Kathleen. "Supporting feature-level software maintenance." W&M ScholarWorks, 2010. https://scholarworks.wm.edu/etd/1539623567.

Full text
Abstract:
Software maintenance is the process of modifying a software system to fix defects, improve performance, add new functionality, or adapt the system to a new environment. A maintenance task is often initiated by a bug report or a request for new functionality. Bug reports typically describe problems with incorrect behaviors or functionalities. These behaviors or functionalities are known as features. Even in very well-designed systems, the source code that implements features is often not completely modularized. The delocalized nature of features makes maintaining them challenging. Since maintenance tasks are expressed in terms of features, the goal of this dissertation is to support software maintenance at the feature-level. We focus on two tasks in particular: feature location and impact analysis via feature coupling.;Feature location is the process of identifying the source code that implements a feature, and it is an essential first step to any maintenance task. There are many existing techniques for feature location that incorporate various types of analyses such as static, dynamic, and textual. In this dissertation, we recognize the advantages of leveraging several types of analyses and introduce a new approach to feature location based on combining dynamic analysis, textual analysis, and web mining algorithms applied to software. The use of web mining for feature location is a novel contribution, and we show that our new techniques based on web mining are significantly more effective than the current state of the art.;After using feature location to identify a feature's source code, maintenance can be completed on that feature. Impact analysis should then be performed to revalidate the system and determine which other features may have been affected by the modifications. We define three feature coupling metrics that capture the relationship between features based on structural information, textual information, and their combination. Our novel feature coupling metrics can be used for impact analysis to quantify the strength of coupling between pairs of features. We performed three empirical studies on open-source software systems to assess the feature coupling metrics and established three major results. First, there is a moderate to strong statistically significant correlation between feature coupling and faults. Second, feature coupling can be used to correctly determine about half of the other features that would be affected by a change to a given feature. Finally, we found that the metrics align with developers' opinions about pairs of features that are actually coupled.
APA, Harvard, Vancouver, ISO, and other styles
33

Breidenbach, Jeff. "Survivable software distribution and maintenance." Thesis, Massachusetts Institute of Technology, 1997. http://hdl.handle.net/1721.1/42793.

Full text
Abstract:
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 1997.
Includes bibliographical references (leaves 79-82).
by Jeff Breidenbach.
Ph.D.
APA, Harvard, Vancouver, ISO, and other styles
34

Foster, John R. "Cost factors in software maintenance." Thesis, Durham University, 1993. http://etheses.dur.ac.uk/1561/.

Full text
APA, Harvard, Vancouver, ISO, and other styles
35

Morrison, David J. "Prediction of software maintenance costs." Thesis, Edinburgh Napier University, 2001. http://researchrepository.napier.ac.uk/Output/3601.

Full text
Abstract:
This thesis is concerned with predicting the costs of maintaining a computer program prior to the software being developed. The ubiquitous nature of software means that software maintenance is an important activity, and evidence exists to support the contention that it is the largest and most costly area of endeavour within the software domain. Given the levels of expenditure associated with software maintenance, an ability to quantify future costs and address the determinants of these costs can assist in the planning and allocation of resources. Despite the importance of this field only a limited understanding of the factors that determine future maintenance costs exists, and maintenance estimation is more frequently applied to existing software. A hypothesis has been postulated that suggests the inherent maintainability of the software, the scale of the activity and the degree of change that pertains will determine future software maintenance costs. The variables that contribute to the maintainability of the software have been explored through a survey of past projects, which was undertaken using a questionnaire. This was designed with assistance from three separate teams of professional software engineers. The questionnaire requires 69 numerical or ordinal responses to a series of questions pertaining to characteristics including program structure, computer architecture, software development methodology, project management processes and maintenance outcomes. Factor analysis methods were applied and five of the most powerful predictors are identified. A linear model capable of predicting maintainability has been developed. Validation was undertaken through a series of follow-up interviews with several survey respondents, and by further statistical analysis utilising hold-out samples and structural equation modelling. The model was subsequently used to develop predictive tools intended to provide management support by both providing a categorical assessment of future maintainability, and a quantitative estimate of probable maintenance costs. The distinction between essential corrective maintenance, and other elective forms of maintenance is considered. Conclusions are drawn regarding the efficacy and limitations of tools that can be developedt o supportm anagemendt ecisionm aking. Subjectt o further work with a largers ampleo f projects,p referablyf rom within a singleo rganisationi,t is concluded i that useful tools could be developed to make both categorical ('acceptable' versus 'not acceptable') and static (initial) quantitative predictions. The latter is dependent on the availability of a software development estimate. Some useful predictive methods have also been applied to dynamic (continuing) quantitative prediction in circumstances where a trend develops in successive forecasts. Recommendationfosr furtherw ork arep rovided.T hesei nclude: U Factor analysis and linear regression has been applied to a sample of past software projects from a variety of application areas to identify important input variables for use in a maintainability prediction model. Maintainability is regarded as an important determinant of maintenance resource requirements. The performance of these variables within a single organisation should be confirmed by undertaking a further factor analysis and linear regression on projects from within the target organisation. u The robustness of model design within this target organisation should be considered by applying a sensitivity analysis to the input variables. u This single organisation maintainability predictor model design should be validated by confirmatory interviews with specialists and users from within the target organisation. u Aggregate scale has been identified as another predictor of overall maintenance resource requirements, and the relationship between development and maintenance effort explored for the general case. It is desirable that development and corrective maintenance scale relationships should be explored within a single organisation. Within this environment the association between standardised effort and maintainability should be confirmed, and the value of the logistic model as a descriptor of the relationship verified. u The approacht o quantifying non-correctivem aintenanceth at has been outlined requiresf iirther developmentT. he relationshipb etweena nnualc hanget raffic and maintenancec ostss houldb e modelled,a ssuminga prior knowledgeo f the scale and maintainability determinants. uA sensitivity analysis should be applied to the predictive system that has been developed, recognising the potential for error in the values of the input variables that may pertain. uA goal of this further research should be the development of a suite of soft tools, designed to enable the user to develop a software maintenance estimation system.
APA, Harvard, Vancouver, ISO, and other styles
36

Barnes, Jeffrey M. "Software Architecture Evolution." Research Showcase @ CMU, 2013. http://repository.cmu.edu/dissertations/291.

Full text
Abstract:
Many software systems eventually undergo changes to their basic architectural structure. Such changes may be prompted by new feature requests, new quality attribute requirements, changing technology, or other reasons. Whatever the causes, architecture evolution is commonplace in real-world software projects. Today’s software architects, however, have few techniques to help them plan such evolution. In particular, they have little assistance in planning alternatives, making trade-offs among these different alternatives, or applying best practices for particular domains. To address this, we have developed an approach for assisting architects in planning and reasoning about software architecture evolution. Our approach is based on modeling and analyzing potential evolution paths that represent different ways of evolving the system. We represent an evolution path as a sequence of transitional architectural states leading from the initial architecture to the target architecture, along with evolution operators that characterize the transitions among these states. We support analysis of evolution paths through the definition and application of constraints that express rules governing the evolution of the systemand evaluation functions that assess path quality. Finally, a set of these modeling elements may be grouped together into an evolution style that encapsulates a body of knowledge relevant to a particular domain of architecture evolution. We evaluate this approach in three ways. First, we evaluate its applicability to real-world architecture evolution projects. This is accomplished through case studies of two very different software organizations. Second, we undertake a formal evaluation of the computational complexity of verifying evolution constraints. Finally, we evaluate the implementability of the approach based on our experiences developing prototype tools for software architecture evolution.
APA, Harvard, Vancouver, ISO, and other styles
37

Pei, Breivold Hongyu. "Software Architecture Evolution and Software Evolvability." Licentiate thesis, Mälardalen University, School of Innovation, Design and Engineering, 2009. http://urn.kb.se/resolve?urn=urn:nbn:se:mdh:diva-4540.

Full text
Abstract:

Software is characterized by inevitable changes and increasing complexity, which in turn may lead to huge costs unless rigorously taking into account change accommodations. This is in particular true for long-lived systems. For such systems, there is a need to address evolvability explicitly during the entire lifecycle, carry out software evolution efficiently and reliably, and prolong the productive lifetime of the software systems.

In this thesis, we study evolution of software architecture and investigate ways to support this evolution.           The central theme of the thesis is how to analyze software evolvability, i.e. a system’s ability to easily accommodate changes. We focus on several particular aspects: (i) what software characteristics are necessary to constitute an evolvable software system; (ii) how to assess evolvability in a systematic manner; (iii) what impacts need to be considered given a certain change stimulus that results in potential requirements the software architecture needs to adapt to, e.g. ever-changing business requirements and advances of technology.

To improve the capability in being able to on forehand understand and analyze systematically the impact of a change stimulus, we introduce a software evolvability model, in which subcharacteristics of software evolvability and corresponding measuring attributes are identified. In addition, a further study of one particular measuring attribute, i.e. modularity, is performed through a dependency analysis case study.

We introduce a method for analyzing software evolvability at the architecture level. This is to ensure that the implications of the potential improvement strategies and evolution path of the software architecture are analyzed with respect to the evolvability subcharacteristics. This method is proposed and piloted in an industrial setting.

The fact that change stimuli come from both technical and business perspectives spawns two aspects that we also look into in this research, i.e. to respectively investigate the impacts of technology-type and business-type of change stimuli.

APA, Harvard, Vancouver, ISO, and other styles
38

Kagdi, Huzefa H. "Mining Software Repositories to Support Software Evolution." Kent State University / OhioLINK, 2008. http://rave.ohiolink.edu/etdc/view?acc_num=kent1216149768.

Full text
APA, Harvard, Vancouver, ISO, and other styles
39

Lohmann, Wolfgang. "On language processors and software maintenance /." Berlin : Logos-Verl, 2009. http://d-nb.info/995106479/04.

Full text
APA, Harvard, Vancouver, ISO, and other styles
40

LUCAS, ANA PAULA LIMA. "SOFTWARE MAINTENANCE MANAGEMENT: A CASE STUDY." PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO, 2016. http://www.maxwell.vrac.puc-rio.br/Busca_etds.php?strSecao=resultado&nrSeq=30262@1.

Full text
Abstract:
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO
COORDENAÇÃO DE APERFEIÇOAMENTO DO PESSOAL DE ENSINO SUPERIOR
PROGRAMA DE EXCELENCIA ACADEMICA
A organização participante deste trabalho buscou implantar atividades relacionadas à manutenção de software em função de problemas relacionados à grande ocorrência de defeitos, constantes retrabalhos, entre outros. Para suprimir esses problemas, inicialmente, foi elaborado um estudo preliminar do sistema em questão, avaliando o estado atual da manutenção de software. Diante do diagnóstico realizado, ficou evidente a necessidade de mudanças na maneira como eram conduzidas as atividades de manutenção do sistema. Com isso, iniciou-se a busca por alternativas de melhorias com objetivo de reduzir a ocorrência de defeitos e também aumentar a manutenibilidade do sistema. Sabendo quais são os problemas e o que poderia ser feito para melhorar, propôs-se adotar algumas práticas do modelo de maturidade de manutenção de software - SMmm e integrar os conceitos destas práticas em um processo definido e adaptado às necessidades do sistema. Para apoiar essa implementação, a infraestrutura utilizada foi a plataforma Team Foundation Service - TFS que colaborou com a implementação das práticas selecionadas segundo as exigências do modelo SMmm, resultando em um processo definido apoiado pelo TFS que implementa parcialmente o modelo SMmm. Este trabalho apresenta um estudo de caso com o objetivo de avaliar os benefícios proporcionados pela utilização de algumas práticas do modelo SMmm. A avaliação realizada confronta os dados do estudo preliminar com dados coletados após adoção das práticas, os resultados analisados apontaram uma redução significativa da quantidade de defeitos.
The company participating in this work sought to implement activities related to software maintenance due to problems related to the great occurrence of defects, constant rework, among others. To suppress these problems, a preliminary study of the system in question has been elaborated, evaluating the current state of software maintenance. In view of the diagnosis, the necessity of changes became evident concerning the way that the system maintenance activities were conducted. With this, the search for alternatives of improvements began with the objective of reducing the occurrence of defects and also increase the maintainability of the system. Knowing the problems and what could be done to improve; it was proposed to accede some practices of the software maintenance maturity model - SMmm and to integrate the concepts of these practices into a defined process and adapted to the needs of the system. To support this implementation, the infrastructure used was the Team Foundation Service - TFS platform that collaborated with the implementation of the selected practices according to the requirements of the SMmm model, resulting in a defined process supported by the TFS that partially implements the SMmm model. This paper presents a case study with the objective of evaluating the benefits provided by the use of some practices of the SMmm model. The evaluation carried out compared the data from the preliminary study with data collected after adoption of the practices, the analyzed results pointed out a significant reduction in the number of issues.
APA, Harvard, Vancouver, ISO, and other styles
41

Gautier, Robert John. "Evolution and software reuse." Thesis, Aberystwyth University, 1996. http://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.394336.

Full text
APA, Harvard, Vancouver, ISO, and other styles
42

Svahnberg, Mikael. "Supporting Software Architecture Evolution." Doctoral thesis, Ronneby : Blekinge Institute of Technology, 2003. http://urn.kb.se/resolve?urn=urn:nbn:se:bth-00232.

Full text
Abstract:
Today it is more a rule than an exception that software systems have a lifecycle of more than several years. Hence, software evolution is inevitable. During the life span of a software system the domain in which the system is working evolves and changes. This causes changes to the software system, and the software system may also be evolved to satisfy new markets. The ability to evolve gracefully, and thus the long-term success of a software system, is to a large extent governed by its software architecture and the ability of the software architecture to fulfil requirements on quality attributes and to adapt to evolving requirements. In this thesis we study evolution of software architectures and what can be done to support this evolution. We focus on three particular aspects of evolution support: how to ensure that the correct blend of quality attributes is met (architecture selection), the technical means available for supporting changes in the software system (variability), and what types of changes that are likely to occur during evolution (categories of evolution). We introduce a method for architecture evaluation and selection that focus on ensuring that the selected software architecture is the architecture candidate with the most potential for fulfilling a particular blend of quality attributes. The method is based on quantification of expert opinions and focused discussions where these expert opinions differ. The architecture evaluation and selection method is studied in both an academic and in an industry setting. We also introduce a taxonomy of techniques for realising variability in a software system and study how the techniques in this taxonomy are applied in different evolution situations. The taxonomy is based on several industry case studies. Two industry cases are studied in further detail and the evolution of these systems are followed over a number of releases and generations. During this evolution it is shown how variability mechanisms are used to also support evolution, and that there are typical cases of evolution that a software system can be prepared to cope with. The contribution of this thesis is that it increases the understanding of how evolution occurs in a software system, how to create software that is flexible enough to support evolution and how to evaluate and select a software architecture that meets a particular blend of quality attributes. Together this ensures that a software system is based on a software architecture that fits the current quality requirements and that is flexible in the right places so that it is able to evolve gracefully.
APA, Harvard, Vancouver, ISO, and other styles
43

Williamsson, Ia. "Total Quality Maintenance (TQMain) A predictive and proactive maintenance concept for software." Thesis, Blekinge Tekniska Högskola, Avdelningen för för interaktion och systemdesign, 2006. http://urn.kb.se/resolve?urn=urn:nbn:se:bth-2281.

Full text
Abstract:
This thesis describes an investigation of the possibility to apply a maintenance concept originally developed for the industry, on software maintenance. Today a large amount of software development models exist but not many of them treat maintenance as a part of the software life cycle. In most cases maintenance is depicted as an activity towards the end of the software life cycle. The high cost ascribed to software maintenance motivates for improvements. The maintenance concept TQMain proposed in this thesis distinguishes from other maintenance concepts by its use of preventive, predictive and proactive maintenance strategies. TQMain uses a common database to store real-time data from various departments and uses it for analyse and assessment to track the development of deviations in the condition of the production process and product quality at an early stage. A continuous cyclic improvement of the maintenance strategy is reached by comparing the data from the real-time measurements with data from the database. The ISO/IEC Software engineering – Product qualities is used as a source of empiric data to conclude that the correct quality characteristics are used for identifying software product quality and its characteristics and compare them with the characteristics of industrial product quality. The results presented are that in the conceptual outline of TQMain measures are obviously not the same as in software maintenance, but the aspect of product quality is common for both. The continuous cyclic improvement of the product quality that TQMain features together with the aspect of detecting potential failures before they occur would, judging from the conceptual outline of TQMain be applicable on software maintenance.
APA, Harvard, Vancouver, ISO, and other styles
44

Capretz, Miriam Akemi Manabe. "A software maintenance method based on the software configuration management discipline." Thesis, Durham University, 1992. http://etheses.dur.ac.uk/6017/.

Full text
Abstract:
Software maintenance has until recently been the neglected phase in the software engineering process, despite the fact that maintenance of existing software systems may account for over half of all efforts expended by a software organization. Research into software maintenance, compared to other phases of the software engineering process is rare. Moreover, it is widely accepted that current software maintenance methods and techniques are unable to cope with the complexity inherent in maintaining software systems. This thesis is concerned with the development of a method, named Configuration Management Formalization for Maintenance (COMFORM), designed for the maintenance of existing software systems. COMFORM provides guidelines and procedures for carrying out a variety of activities performed during software maintenance. It accommodates a change control framework, around which the Software Configuration Management discipline is applied. Redocumentation is another problem tackled by COMFORM, which gathers together the documentation necessary to improve the maintainability and quality of existing software systems. This is achieved by the use of forms representing the output of each phase of a proposed software maintenance model. The information obtained by filling in forms is formalized according to a data model, which provides a common basis for the representation of the method's functionality. Finally, a prototype of COMFORM has been implemented, so that the procedures and guidelines set up by the method can be enforced and followed by its users.
APA, Harvard, Vancouver, ISO, and other styles
45

Buckee, Caroline O'Flaherty. "The evolution and maintenance of pathogen diversity." Thesis, University of Oxford, 2005. http://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.433383.

Full text
APA, Harvard, Vancouver, ISO, and other styles
46

Linares-Vasquez, Mario. "Supporting Evolution and Maintenance of android Apps." W&M ScholarWorks, 2016. https://scholarworks.wm.edu/etd/1477068301.

Full text
Abstract:
Mobile developers and testers face a number of emerging challenges. These include rapid platform evolution and API instability; issues in bug reporting and reproduction involving complex multitouch gestures; platform fragmentation; the impact of reviews and ratings on the success of their apps; management of crowd-sourced requirements; continuous pressure from the market for frequent releases; lack of effective and usable testing tools; and limited computational resources for handheld devices. Traditional and contemporary methods in software evolution and maintenance were not designed for these types of challenges; therefore, a set of studies and a new toolbox of techniques for mobile development are required to analyze current challenges and propose new solutions. This dissertation presents a set of empirical studies, as well as solutions for some of the key challenges when evolving and maintaining android apps. In particular, we analyzed key challenges experienced by practitioners and open issues in the mobile development community such as (i) android API instability, (ii) performance optimizations, (iii) automatic GUI testing, and (iv) energy consumption. When carrying out the studies, we relied on qualitative and quantitative analyses to understand the phenomena on a large scale by considering evidence extracted from software repositories and the opinions of open-source mobile developers. From the empirical studies, we identified that dynamic analysis is a relevant method for several evolution and maintenance tasks, in particular, because of the need of practitioners to execute/validate the apps on a diverse set of platforms (i.e., device and OS) and under pressure for continuous delivery. Therefore, we designed and implemented an extensible infrastructure that enables large-scale automatic execution of android apps to support different evolution and maintenance tasks (e.g., testing and energy optimization). In addition to the infrastructure we present a taxonomy of issues, single solutions to the issues, and guidelines to enable large execution of android apps. Finally, we devised novel approaches aimed at supporting testing and energy optimization of mobile apps (two key challenges in evolution and maintenance of android apps). First, we propose a novel hybrid approach for automatic GUI-based testing of apps that is able to generate (un)natural test sequences by mining real applications usages and learning statistical models that represent the GUI interactions. In addition, we propose a multi-objective approach for optimizing the energy consumption of GUIs in android apps that is able to generate visually appealing color compositions, while reducing the energy consumption and keeping a design concept close to the original.
APA, Harvard, Vancouver, ISO, and other styles
47

Cooper, Simon D. "Measurement for the management of software maintenance." Thesis, Durham University, 1993. http://etheses.dur.ac.uk/5676/.

Full text
Abstract:
This thesis addresses the problem of bringing maintenance, in a commercial environment, under management control, and also increasing the profile of maintenance in a corporate picture, bringing it onto a par with other components of the business. This management control will help reduce costs and also the time scales inherent in maintenance activity. This objective is achieved by showing how the measurement of the products and processes involved in maintenance activity, at a team level, increases the visibility of the tasks being tackled. This increase in visibility provides the ability to impose control on the products and processes and provides the basis for prediction and estimation of future states of a project and the future requirements of the team. This is the foundation of good management. Measurement also provides an increase in visibility for higher management of the company, forming a basis for communication within the corporate strategy, allowing maintenance to be seen as it is, and furnished with the resources it requires. A method for the introduction of a measurement strategy, and collection system, is presented, supported by the examination of a database of maintenance information collected by a British Telecom research team, during a commercial software maintenance exercise. A prototype system for the collection of software change information is also presented, demonstrating the application of the method, along with the results of its development and the implications for both software maintenance management and the technical tasks of implementing change.
APA, Harvard, Vancouver, ISO, and other styles
48

Deraman, Aziz B. "A computer-aided software maintenance process model." Thesis, University of Manchester, 1992. http://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.261996.

Full text
APA, Harvard, Vancouver, ISO, and other styles
49

Wolfangel, Christian. "Empirische Untersuchung von Maintenance-Prozessen objektorientierter Software." [S.l. : s.n.], 2002. http://www.bsz-bw.de/cgi-bin/xvms.cgi?SWB10361119.

Full text
APA, Harvard, Vancouver, ISO, and other styles
50

Mohan, Michael. "Automated software maintenance using search-based refactoring." Thesis, Queen's University Belfast, 2018. https://pure.qub.ac.uk/portal/en/theses/automated-software-maintenance-using-searchbased-refactoring(f3e1a3fd-7150-45d8-b29d-4b973ba38137).html.

Full text
Abstract:
Search-based software maintenance (SBSM) is an area of research that uses refactorings, software metrics and search-based optimisation algorithms to automate aspects of the software maintenance process. Refactorings are used to improve the structure of software without affecting its functionality. Search-based optimisation algorithms can be adapted to use refactorings to modify software, relying on metrics to deduce how successful the refactorings have been along the way. The research conducted in this thesis aims to explore the research area of SBSM and experiment with methods to automate software refactoring using optimisation algorithms. The current state of the art in the area is inspected and gaps are identified in the current literature. In particular, the need for further investigation of multi-objective and many-objective optimisation techniques, as well as experimentation with the metrics used to measure the software, is present. In order to experiment with different ways to optimise software for quality an automated refactoring tool is developed. Using this tool, novel aspects of the software are investigated and used as measures to assess and then improve the quality of the software. A multi-objective optimisation algorithm is used so that in addition to quality other, more complex properties are also improved. Using the automated maintenance tool and the underlying approaches, a methodology is presented to automate the refactoring process. Four different areas of importance are investigated as objectives for automated refactoring. The main contributions of the research work are the developed automated refactoring tool, the 4 objectives constructed to measure different aspects of the software code and the methodology developed to maintain the code using the 4 separate measures with a many-objective optimisation algorithm.
APA, Harvard, Vancouver, ISO, and other styles
We offer discounts on all premium plans for authors whose works are included in thematic literature selections. Contact us to get a unique promo code!

To the bibliography