• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 60
  • 20
  • 10
  • 4
  • 1
  • 1
  • Tagged with
  • 116
  • 116
  • 41
  • 39
  • 29
  • 24
  • 22
  • 19
  • 17
  • 17
  • 14
  • 14
  • 13
  • 12
  • 12
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
21

Software Quality Evaluation for Evolving Systems in Distributed Development Environments

Jabangwe, Ronald January 2015 (has links)
Context: There is an overwhelming prevalence of companies developing software in global software development (GSD) contexts. The existing body of knowledge, however, falls short of providing comprehensive empirical evidence on the implication of GSD contexts on software quality for evolving software systems. Therefore there is limited evidence to support practitioners that need to make informed decisions about ongoing or future GSD projects. Objective: This thesis work seeks to explore changes in quality, as well as to gather confounding factors that influence quality, for software systems that evolve in GSD contexts. Method: The research work in this thesis includes empirical work that was performed through exploratory case studies. This involved analysis of quantitative data consisting of defects as an indicator for quality, and measures that capture software evolution, and qualitative data from company documentations, interviews, focus group meetings, and questionnaires. An extensive literature review was also performed to gather information that was used to support the empirical investigations. Results: Offshoring software development work, to a location that has employees with limited or no prior experience with the software product, as observed in software transfers, can have a negative impact on quality. Engaging in long periods of distributed development with an offshore site and eventually handing over all responsibilities to the offshore site can be an alternative to software transfers. This approach can alleviate a negative effect on quality. Finally, the studies highlight the importance of taking into account the GSD context when investigating quality for software that is developed in globally distributed environments. This helps with making valid inferences about the development settings in GSD projects in relation to quality. Conclusion: The empirical work presented in this thesis can be useful input for practitioners that are planning to develop software in globally distributed environments. For example, the insights on confounding factors or mitigation practices that are linked to quality in the empirical studies can be used as input to support decision-making processes when planning similar GSD projects. Consequently, lessons learned from the empirical investigations were used to formulate a method, GSD-QuID, for investigating quality using defects for evolving systems. The method is expected to help researchers avoid making incorrect inferences about the implications of GSD contexts on quality for evolving software systems, when using defects as a quality indicator. This in turn will benefit practitioners that need the information to make informed decisions for software that is developed in similar circumstances.
22

A wide spectrum type system for transformation theory

Ladkau, Matthias January 2009 (has links)
One of the most difficult tasks a programmer can be confronted with is the migration of a legacy system. Usually, these systems are unstructured, poorly documented and contain complex program logic. The reason for this, in most cases, is an emphasis on raw performance rather than on clean and structured code as well as a long period of applying quick fixes and enhancements rather than doing a proper software reengineering process including a full redesign during major enhancements. Nowadays, the old programming paradigms are becoming an increasingly serious problem. It has been identified that 90% of the costs of a typical software system arise in the maintenance phase. Many companies are simply too afraid of changing their software infrastructure and prefer to continue with principles like "never touch a running system". These companies experience growing pressure to migrate their legacy systems onto newer platforms because the maintenance of such systems is expensive and dangerous as the risk of losing vital parts of sources code or its documentation increases drastically over time. The FermaT transformation system has shown the ability to automatically or semi-automatically restructure and abstract legacy code within a special intermediate language called WSL (Wide Spectrum Language). Unfortunately, the current transformation process only supports the migration of assembler as WSL lacks the ability to handle data types properly. The data structures in assembler are currently directly translated into C data types which involves many assumptional “hard coded” conversions. The absence of an adequate type system for WSL caused several flaws for the whole transformation process and limits its abilities significantly. The main aim of the presented research is to tackle these problems by investigating and formulating how a type system can contribute to a safe and reliable migration of legacy systems. The described research includes the definition of key aspects of type related problems in the FermaT migration process and how to solve them with a suitable type system approach. Since software migration often includes a change in programming language the type system for WSL has to be able to support various type system approaches including the representation of all relevant details to avoid assumptions. This is especially difficult as most programming languages are designed for a special purpose which means that their possible programming constructs and data types differ significantly. This ranges from languages with simple type systems whose program sare prone to unintended side-effects, to languages with strict type systems which are constrained n their flexibility. It is important to include as many type related details as necessary to avoid making assumptions during language to language translation. The result of the investigation is a novel multi layered type system specifically designed to satisfy the needs of WSL for a sophisticated solution without imposing too many limitations on its abilities. The type system has an adjustable expressiveness, able to represent a wide spectrum of typing approaches ranging from weak typing which allows direct memory access and down casting, via very strict typing with a high diversity of data types to object oriented typing which supports encapsulation and data hiding. Looking at the majority of commercial relevant statically typed programming languages, two fundamental properties of type strictness and safety can be identified. A type system can be either weakly or strongly typed and may or may not allow unsafe features such as direct memory access. Each layer of the Wide Spectrum Type System has a different combination of these properties. The approach also includes special Type System Transformations which can be used to move a given WSL program among these layers. Other emphasised key features are explicit typing and scalability. The whole approach is based on a sound mathematical foundation which assures correctness and integrates seamlessly into the present mathematical definition of WSL. The type system is formally introduced to WSL by constructing an attribute grammar for the language. Type checking and type inference are used to annotate the Abstract Syntax Tree of a given WSL program with type derivations which can be used to reveal and indicate possible typing errors or to infer types if the program did not feature explicit type declarations in the first place. Notable in this approach is also the fact that object orientation is introduced to a procedural programming language without the introduction of new semantics. It is shown that object orientation can be introduced just by adjusting type checking rules and adding some syntactical notations. The approach was implemented and tested on two case studies. The thesis describes and discusses both cases in detail and shows how a migration which ignores type systems could accidentally introduce errors due to assumptions during translation. Both case studies use all important aspects of the approach, Including type transformations and object identification. The thesis finalises by summarising the whole work, identifying limitations, presenting future perspectives and drawing conclusions
23

Mining Developer Dynamics for Agent-Based Simulation of Software Evolution

Herbold, Verena 27 June 2019 (has links)
No description available.
24

TDRRC - Técnica para Documentação e Recuperação de Requisitos no Código-Fonte através do uso de anotações. / TDRRC - A Technique to Document and Recover Requirements in the Source-Code by using annotations.

Bezerra, Vinicius Miana 22 November 2011 (has links)
Manter os documentos de requisitos atualizados e recuperar os requisitos de um software são desafios enfrentados por desenvolvedores no seu dia a dia durante o desenvolvimento, a manutenção e a evolução de sistemas. Embora existam técnicas para gestão de requisitos, muitas vezes estas técnicas não são aplicadas, os requisitos não são atualizados e a única fonte de informação confiável sobre um software passa a ser seu código-fonte. Esta tese apresenta a TDRRC, uma técnica para a documentação e recuperação dos requisitos no código-fonte usando anotações. A TDRRC possibilita a reengenharia de requisitos sem que haja uma interrupção no desenvolvimento e permite que os requisitos sejam documentados em ambientes de desenvolvimento ágil. A TDRRC contribui para a redução dos problemas relacionados à atualização dos requisitos, pois o desenvolvedor responsável pelo programa passa a ser responsável pela documentação e atualização dos requisitos no código-fonte que ele escreve e mantém. Este trabalho apresenta também formas de aplicar a TDRRC na reengenharia de requisitos, em métodos ágeis e na gestão de requisitos, assim como a sua aplicação em um estudo de caso. / Keeping requirements documents updated and recovering requirements of a software are common challenges faced by developers on their day to day activities. Although there are many requirements management techniques, usually these techniques are not applied, requirements are not updated and the only reliable source of information about a software becomes its source code. This thesis presents TDRRC, a technique that can be used to document and retrieve requirements from the source code using annotations. Applying TDRRC, it is possible to reengineer the requirements of a software without interrupting its development. Also requirements can be documented in a agile environment. TDRRC also contributes to minimize requirements documents update issues as the developer will be clearly responsible for documenting and updating the requirements in the source code he is programming. This thesis also presents how to apply the technique in a requirement reengineering project, in a agile development environment and in a requirements management process. Finally a case study is presented.
25

[en] EVOLUTION OF SCENES THROUGH A MECHANISM OF TRACKING BASED ON TRANSFORMATIONS / [pt] EVOLUÇÃO DE CENÁRIOS ATRAVÉS DE UM MECANISMO DE RASTREAMENTO BASEADO EM TRANSFORMAÇÕES

ULF BERGMANN 02 September 2003 (has links)
[pt] A importância da rastreabilidade na evolução de sistemas é um fato amplamente reconhecido, mas apesar dos esforços despendidos até agora, ainda encontramos vários obstáculos a sua efetiva utilização. Esses obstáculos são relacionados a geração e validação das informações sobre os relacionamentos e interdependências entre o mundo real, os requisitos e o sistema de software. Estas informações freqüentemente não são confiáveis devido a inconsistência causada pela evolução distinta dos vários artefatos resultantes do processo de desenvolvimento de um sistema. Esta tese tem como objetivo estudar a utilização da tecnologia transformacional na implementação de um mecanismo de rastreamento de maneira a se obter a atualização automática das informações de rastreamento, através da identificação das mudanças ocorridas entre versões consecutivas dos artefatos produzidos e o seu subseqüente armazenamento na forma de transformações. Os benefícios obtidos pelo uso deste mecanismo permitirão: a eliminação dos problemas da falta de atualização das informações de rastreamento e o conseqüente aumento do valor destas informações para o desenvolvedor; a sistematização do processo de rastreamento; e a diminuição do custo para se obter, atualizar e validar as informações de rastreamento. Além destes benefícios, o armazenamento das informações de rastreamento na forma de transformações incorpora um maior conhecimento sobre a modelagem realizada, ao contrário de outros mecanismos que armazenam somente os artefatos e seus interrelacionamentos estáticos. / [en] The importance of traceability in software evolutions was quite established, but despite the effort spent, they are many issues that difficult they effective use. These issues are related to the generating and validating of trace information about the relationships and interdependencies between the real world, the requirements and the software system. This information is often mistrusted since they may have become obsolete due to separate evolution of models and systems. This thesis study the use of the transformational technology in the implementation of a traceability mechanism that automatically obtain trace information by identifying the changes made in consecutive artifact versions and store it as transformations. The main advantages gained with it uses are the elimination of the problems of the lack of trace information updating, the systematization of the trace process and the decrease of the cost to obtain, update and validate trace information. Besides these benefits, the storage of trace information in the form of transformations incorporates a larger knowledge on the accomplished modeling, unlike other mechanisms that only store the artifacts and their static inter- relationships.
26

Modernisation d’applications patrimoniales par les modèles / Software modernization : a model driven engineering approach

Deltombe, Gaëtan 16 December 2013 (has links)
La modernisation logicielle est un domaine en plein essor du fait du vieillissement des technologies datant des années 1960, tel que COBOL ou FORTRAN. Aujourd'hui, bon nombre de ces applications sont toujours en service du fait de leur criticité. Ce sont elles qui continuent d'assurer le bon fonctionnement du système d'information de l'entreprise. Face à l'arrivée en force de technologies récentes de type Cloud ou Mobile, il devient urgent de les moderniser. Toutefois, près de deux projets de modernisation sur trois échouent à cause du manque ou la perte de documentation de l'application, la complexité du logiciel (qui lui n'a cessé de grandir avec le temps), la perte des connaissances techniques (les jeunes développeurs n'ont jamais étudié ces anciennes technologies), tout cela couplé à un manque d'outils et de méthodes industrielles. Face à ce constat implacable, cette thèse suggère une solution pour l'industrialisation du processus de modernisation à travers l'utilisation de l'Ingénierie Dirigée par les Modèles (IDM), notamment en prenant pour base les métamodèles issus de l'initiative Architecture Driven Modernisation de l'OMG. Nous montrons qu'il est ainsi possible d'automatiser une majorité du processus du fait de l'utilisation de métamodèles pivots technologiquement neutres, ainsi que l'utilisation d'une série d'outils permettant d'obtenir une automatisation des tâches de migration de l'application. Nous proposons également de rendre cette solution adaptable à n'importe quel langage légataire au travers d'une chaîne de modernisation paramétrable via l'utilisation d'un moteur de transformation dédié offrant des mécanismes d'extensibilité et de réutilisabilité. Pour terminer, nous illustrons l'ensemble des idées développées dans cette thèse sur l'exemple concret d'une application codée en COBOL. / Software modernization is a fast-growing sector due to the aging technologies from the 1960s, such as COBOL or FORTRAN. Nowadays, many of these applications are still being used because of their criticality. These applications allow companies to maintain their information system. But to face the arrival of newer technologies and platforms, like Cloud or Mobile, companies must modernize their systems to deliver the same services and also develop new ones in order to compete. However, nearly two out of three modernization projects fail because of the lack or the loss of applications documentation, the complexity of the software (that has continued to grow over time), the loss of technical knowledge (the junior developers have never studied these ancient technologies), plus a lack of tools and industrial methods. Faced with this relentless observation, this thesis suggests a solution to the industrialization process of modernization through the use of Model Driven (IDM) Engineering, especially by using metamodels base from Driven Architecture Modernization of the OMG. We therefore demonstrate that it is possible to automate the process thanks to technologically neutral metamodels and by using a set of tools to get the automation of application migration tasks. We also propose to have this solution adapted to any languages through a configurable chain of modernization by using a dedicated processing engine that provides scalability and reusability mechanisms. Finally, we illustrate the ideas developed in this thesis in the concrete case of a coded COBOL application.
27

Organisation des développeurs open-source et fiabilité logicielle / Open-source developers organization and software reliability

Foucault, Matthieu 30 November 2015 (has links)
La fiabilité du logiciel, c’est-à-dire sa capacité à produire les fonctionnalités attendues, est essentielle au succès des projets de développement logiciel. Afin de garantir cette fiabilité, les développeurs ont pour objectif de réduire le nombre de bogues présents dans le code source du logiciel.Une des techniques ayant pour but d’aider les développeurs dans cette tâche est l’utilisation de métriques logicielles, et notamment de métriques liées au procédé de développement.L’objectif général de cette thèse est de contribuer à la validation de métriques de procédé en étudiant leur relation avec la fiabilité. Ces métriques, une fois validées, pourront être utilisées dans des modèles de prédiction de bogues ayant pour but de mieux orienter les efforts de maintenance des développeurs ou pourront permettre de mettre en place des lignes de conduite relatives au procédé de développement. Devant l’étendue de ce domaine, nous avons centré nos contributions sur un aspect du procédé de développement qui est l’organisation des développeurs et avons observé cette organisation dans des projets open-source.En parallèle de la validation de ces métriques, nous avons contribué à l’amélioration de la méthodologie permettant l’extraction et l’analyse de métriques, grâce aux informations contenues dans les dépôts logiciels. / Reliability of a software, i.e. its capacity to produce the expected behaviour, is essential to the success of software projects. To ensure such reliability, developers need to reduce the amount of bugs in the source code of the software. One of the techniques available to help developers in this task is the use of software metrics, and especially metrics related to the development process.The general objective of this thesis is to contribute to the validation of process metrics, by studying their relationship with software reliability. These metrics, once validated, can be used in bug predictionmodels with the goal to guide maintenance efforts or can be used to create development guidelines. Given the extent of this domain, we chose to focus on one particular aspect of the development process, which is developers organisation, and we studied this organisation in open-source software projects.In parallel to the validation of process metrics, we contributed to the improvement of the methodology used to extract and analyse metrics, thanks to information available in software repositories.
28

Open Source Software Evolution and Its Dynamics

Wu, Jingwei January 2006 (has links)
This thesis undertakes an empirical study of software evolution by analyzing open source software (OSS) systems. The main purpose is to aid in understanding OSS evolution. The work centers on collecting large quantities of structural data cost-effectively and analyzing such data to understand software evolution <em>dynamics</em> (the mechanisms and causes of change or growth). <br /><br /> We propose a multipurpose systematic approach to extracting program facts (<em>e. g. </em>, function calls). This approach is supported by a suite of C and C++ program extractors, which cover different steps in the program build process and handle both source and binary code. We present several heuristics to link facts extracted from individual files into a combined system model of reasonable accuracy. We extract historical sequences of system models to aid software evolution analysis. <br /><br /> We propose that software evolution can be viewed as <em>Punctuated Equilibrium</em> (<em>i. e. </em>, long periods of small changes interrupted occasionally by large avalanche changes). We develop two approaches to study such dynamical behavior. One approach uses the evolution spectrograph to visualize file level changes to the implemented system structure. The other approach relies on automated software clustering techniques to recover system design changes. We discuss lessons learned from using these approaches. <br /><br /> We present a new perspective on software evolution dynamics. From this perspective, an evolving software system responds to external events (<em>e. g. </em>, new functional requirements) according to <em>Self-Organized Criticality</em> (SOC). The SOC dynamics is characterized by the following: (1) the probability distribution of change sizes is a power law; and (2) the time series of change exhibits long range correlations with power law behavior. We present empirical evidence that SOC occurs in open source software systems.
29

A Hybrid Model for Object-Oriented Software Maintenance

Dong, Xinyi 17 September 2008 (has links)
An object-oriented software system is composed of a collection of communicating objects that co-operate with one another to achieve some desired goals. The object is the basic unit of abstraction in an OO program; objects may model real-world entities or internal abstractions of the system. Similar objects forms classes, which encapsulate the data and operations performed on the data. Therefore, extracting, analyzing, and modelling classes/objects and their relationships is of key importance in understanding and maintaining object-oriented software systems. However, when dealing with large and complex object-oriented systems, maintainers can easily be overwhelmed by the vast number of classes/objects and the high degree of interdependencies among them. In this thesis, we propose a new model, which we call the Hybrid Model, to represent object-oriented systems at a coarse-grained level of abstraction. To promote the comprehensibility of objects as independent units, we group the complete static description of software objects into aggregate components. Each aggregate component logically represents a set of objects, and the components interact with one other through explicitly defined ports. We present and discuss several applications of the Hybrid Model in reverse engineering and software evolution. The Hybrid Model can be used to support a divide-and-conquer comprehension strategy for program comprehension. At a low level of abstraction, maintainers can focus on one aggregate-component at a time, while at a higher level, each aggregate component can be understood as a whole and be mapped to coarse-grained design abstractions, such as subsystems. Based on the new model, we further propose a set of dependency analysis methods. The analysis results reveal the external properties of aggregate components, and lead to better understand the nature of their interdependencies. In addition, we apply the new model in software evolution analysis. We identify a collection of change patterns in terms of changes in aggregate components and their interrelationships. These patterns help to interpret how an evolving system changes at the architectural level, and provides valuable information to understand why the system is designed as the way it is.
30

Open Source Software Evolution and Its Dynamics

Wu, Jingwei January 2006 (has links)
This thesis undertakes an empirical study of software evolution by analyzing open source software (OSS) systems. The main purpose is to aid in understanding OSS evolution. The work centers on collecting large quantities of structural data cost-effectively and analyzing such data to understand software evolution <em>dynamics</em> (the mechanisms and causes of change or growth). <br /><br /> We propose a multipurpose systematic approach to extracting program facts (<em>e. g. </em>, function calls). This approach is supported by a suite of C and C++ program extractors, which cover different steps in the program build process and handle both source and binary code. We present several heuristics to link facts extracted from individual files into a combined system model of reasonable accuracy. We extract historical sequences of system models to aid software evolution analysis. <br /><br /> We propose that software evolution can be viewed as <em>Punctuated Equilibrium</em> (<em>i. e. </em>, long periods of small changes interrupted occasionally by large avalanche changes). We develop two approaches to study such dynamical behavior. One approach uses the evolution spectrograph to visualize file level changes to the implemented system structure. The other approach relies on automated software clustering techniques to recover system design changes. We discuss lessons learned from using these approaches. <br /><br /> We present a new perspective on software evolution dynamics. From this perspective, an evolving software system responds to external events (<em>e. g. </em>, new functional requirements) according to <em>Self-Organized Criticality</em> (SOC). The SOC dynamics is characterized by the following: (1) the probability distribution of change sizes is a power law; and (2) the time series of change exhibits long range correlations with power law behavior. We present empirical evidence that SOC occurs in open source software systems.

Page generated in 0.0641 seconds