1 |
Workflows and Distributed Version Control / Arbetsflöden med distribuerad versionshanteringJohansson, Olof, Persson, Daniel January 2011 (has links)
This bachelor thesis focuses on distributed version control systems and workflows used when working with such systems. The thesis will investigate benefits and disadvantages in using distributed version control in software development using a literature review of the available articles on the subject as well as a post-mortem analysis (with questionnaires and data collected from the build environment) of a student run software engineering project. We find that the migration costs are high, but that the advantages may outweigh its drawbacks for some. We conclude that many projects would benefit from migrating, but in particular, that new projects would not only benefit, but also not have high migration costs. / En undersökning om hur man kan arbeta med moderna, distribuerade, versionshanteringssystem. Baserat på dels en literaturstudie, och dels en frågeundersökning bland studenter på BTH dras slutsatsen att det både finns för- och nackdelar, men att fördelarna verkar väga över i det generella fallet. / Jag (Olof Johansson) är nåbar främst per e-post, men även på telefonnummer +46739467135.
|
2 |
Merge-Trees: Visualizing the integration of commits into LinuxWilde, Evan 11 September 2018 (has links)
Version control systems are an asset to software development, enabling
developers to keep snapshots of the code as they work.
Stored in the version control system is the entire history of the
software project, rich in information about who is contributing to the
project, when contributions are made, and to what part of the project
they are being made.
Presented in the right way, this information can be made invaluable in
helping software developers continue the development of the project,
and maintainers to understand how the changes to the current version
can be applied to older versions of projects.
Maintainers are unable to effectively use the information stored
within a software repository to assist with the maintanance older
versions of that software in highly-collaborative projects.
The Linux kernel repository is an example of such a project.
This thesis focuses on improving visualizations of the Linux kernel
repository, developing new visualizations that help answer questions
about how commits are integrated into the project.
Older versions of the kernel are used in a variety of systems where it
is impractical to update to the current version of the kernel.
Some of these applications include the controllers for spacecrafts,
the
core of mobile phones, the operating system driving internet routers,
and as Internet-Of-Things (IOT) device firmware.
As vulnerabilities are discovered in the kernel, they are patched in
the current version.
To ensure that older versions are also protected against the
vulnerabilities, the patches applied to the current version of the
kernel must be applied back to the older version.
To do this, maintainers must be able to understand how the patch that
fixed the vulnerability was integrated into the kernel so that they
may apply it to the old version as well.
This thesis makes four contributions:
(1) a new tree-based model, the \mt{}, that abstracts the commits in the repository,
(2) three visualizations that use this model,
(3) a tool called \tool{} that uses these visualizations,
(4) a user study
that evaluates whether the tool is effective in helping users answer
questions related to how commits are integrated about the Linux
repository.
The first contribution includes the new tree-based model, the
algorithm that constructs the trees from the repository,
and the evaluation of the results of the algorithm.
the second contribution demonstrates some of the potential
visualizations of the repository that are made possible by the model,
and how these visualizations can be used depending on the structure of
the tree.
The third contribution is an application that applies the
visualizations to the Linux kernel repository.
The tool was able to help the participants of the study with
understanding how commits were integrated into the Linux kernel
repository.
Additionally, the participants were able to summarize information
about merges,
including who made the most contributions,
which file were altered the most,
more quickly and accurately than with Gitk and the command line tools. / Graduate
|
3 |
Automatic Restoration and Management of Computational NotebooksVenkatesan, Satish 03 March 2022 (has links)
Computational Notebook platforms are very commonly used by programmers and data scientists. However, due to the interactive development environment of notebooks, developers struggle to maintain effective code organization which has an adverse effect on their productivity. In this thesis, we research and develop techniques to help solve issues with code organization that developers face in an effort to improve productivity. Notebooks are often executed out of order which adversely effects their portability. To determine cell execution orders in computational notebooks, we develop a technique that determines the execution order for a given cell and if need be, attempt to rearrange the cells to match the intended execution order. With such a tool, users would not need to manually determine the execution orders themselves. In a user study with 9 participants, our approach on average saves users about 95% of the time required to determine execution orders manually. We also developed a technique to support insertion of cells in rows in addition to the standard column insertion to help better represent multiple contexts. In a user study with 9 participants, this technique on a scale of one to ten on average was judged as a 8.44 in terms of representing multiple contexts as opposed to standard view which was judged as 4.77. / Master of Science / In the field of data science computational notebooks are a very commonly used tool. They allow users to create programs to perform computations and to display graphs, tables and other visualizations to supplement their analysis. Computational Notebooks have some limitations in the development environment which can make it difficult for users to organize their code. This can make it very difficult to read through and analyze the code to find or fix any errors which in turn can have a very negative effect on developer productivity. In this thesis, we research methods to improve the development environment and increase developer productivity. We achieve this by offering tools to the user that can help organize and cleanup their code making it easier to comprehend the code and make any necessary changes.
|
4 |
Integrating Performance Analysis in Parallel Software EngineeringPoliakoff, David 18 August 2015 (has links)
Modern computational software is increasingly large in terms of lines of code, number of developers, intended longevity, and complexity of intended architectures. While tools exist to mitigate the problems this type of software causes for the development of functional software, no solutions exist to deal with the problems it causes for performance. This thesis introduces a design called the Software Development Performance Analysis System, or SDPAS. SDPAS observes the performance of software tests as software is developed, tracking builds, tests, and developers in order to provide data with which to analyze a software development process. SDPAS integrates with the CMake build and test suite to obtain data about builds and provide consistent tests, with git to obtain data about how software is changing. SDPAS also integrates with TAU to obtain performance data and store it along with the data obtained from other tools. The utility of SDPAS is observed on two pieces of production software.
|
5 |
PLC Back-up systemBjörklund, Johan January 2014 (has links)
The purpose of this bachelor thesis was to investigate the PLC systems used in ABBs breaker factory in Ludvika and to create a system specification suitable to be used in the procurement of a back-up solution for this workshop. This work involved information gathering from different sources, such as archives, physical installations and interviews of maintenance personnel and operators. The results included the requested system specification (in Swedish) including suggestions for pilot test installations and evaluations. The work also resulted in an extensive listing of all PLC systems with placement, typedesignations, expansion modules and other pertinent information. This information ismade available as a macro enabled multipage Microsoft Excel document. A summary and suggestions for follow up work is also included.
|
6 |
Track Changes: Identity in Version ControlZukowski, Mateusz 07 July 2014 (has links)
The growing sophistication of version control systems, a class of tools employed in tracking and managing changes to documents, has had a transformative impact on the practice of programming. In recent years great strides have been made to improve these systems, but certain stubborn difficulties remain. For example, merging of concurrently introduced changes continues to be a labour-intensive and error-prone process. This thesis examines these difficulties by way of a critique of the conceptual framework underlying modern version control systems, arguing that many of their shortcomings are related to certain long-standing, open problems around identity. The research presented here casts light on how the challenges faced by users and designers of version control systems can be understood in those terms, ultimately arguing that future progress may benefit from a better understanding of the role of identity, representation, reference, and meaning in these systems and in computing in general.
|
7 |
Mining Project- Oriented Business ProcessesBala, Saimir, Cabanillas Macias, Cristina, Solti, Andreas, Mendling, Jan, Polleres, Axel January 2015 (has links) (PDF)
Large engineering processes need to be monitored in detail
regarding when what was done in order to prove compliance with rules
and regulations. A typical problem of these processes is the lack of con-
trol that a central process engine provides, such that it is difficult to
track the actual course of work even if data is stored in version control
systems (VCS). In this paper, we address this problem by defining a
mining technique that helps to generate models that visualize the work
history as GANTT charts. To this end, we formally define the notion of a
project-oriented business process and a corresponding mining algorithm.
Our evaluation based on a prototypical implementation demonstrates
the benefits in comparison to existing process mining approaches for this
specific class of processes.
|
8 |
Um controle de versões refinado e flexível para artefatos de software / Flexible and fine-grained version control for software artifactsJunqueira, Daniel Carnio 07 January 2008 (has links)
As atividades de controle de versões são consideradas essenciais para a manutenção de sistemas de computador. Elas começaram a ser realizadas na década de 1950 de forma manual. As primeiras ferramentas de controle de versões, que surgiram nos anos setenta, não evoluíram significativamente desde sua criação e, até hoje, o controle de versões de arquivos é geralmente realizado em arquivos ou mesmo módulos completos, utilizando os conceitos que foram lançados há mais de três décadas. Com a popularização da utilização de sistemas computacionais, ocorreu um sensível aumento no número de sistemas existentes e, também, na complexidade dos mesmos. Além disso, muitas alterações ocorreram nos ambientes de desenvolvimento de software, e existe demanda por sistemas que permitam aos desenvolvedores ter cada vez mais controle automatizado sobre o que está sendo desenvolvido. Para isso, algumas abordagens de controle de versões refinados para artefatos de software foram propostas, mas, muitas vezes, não oferecem a exibilidade de utilização exigida pelos ambientes de desenvolvimento de software. Neste trabalho, é apresentado um sistema que visa a fornecer suporte ao controle de versões refinado e flexível para artefatos de software, tendo por base um modelo bem definido para representação das informações da estrutura dos arquivos que compõem determinado projeto de software, sejam eles código-fonte dos programas de computador, documentação criada em Latex, arquivos XML, entre outros. O sistema apresentado foi projetado para ser integrado com outras soluções utilizadas em ambientes de desenvolvimento de software / Version control tasks are considered essential for the maintenance of computers systems. They have been done since beginning of 50\'s in a by hand manner. First tools, which were released in 70\'s, didn\'t evolve significantly since its creation, and, in general, version control systems still work with entire files or even modules of software, having the same concepts that were launched more than three decades ago. With the popularization of computers systems there had been a sensible increase in the number of existing systems and also in the complexity of these systems. Besides that many changes have taken place in the software development environments, and there is demand for systems which allow developers to have more automated control about what is being developed. Regard to this demand some approaches of fine-grained version control have been proposed, but they usually do not provide the required exibility for its use in the real software development environments. In this work its presented a system which aims at providing support for exible and fine-grained version control of software artifacts, using a well defined model to represent the logical structure of the files which compose a software project, independently of its type - they can be XML files, source-code files, Latex files and others. The system has been designed to be integrated with other software solutions used in software development environments
|
9 |
Um controle de versões refinado e flexível para artefatos de software / Flexible and fine-grained version control for software artifactsDaniel Carnio Junqueira 07 January 2008 (has links)
As atividades de controle de versões são consideradas essenciais para a manutenção de sistemas de computador. Elas começaram a ser realizadas na década de 1950 de forma manual. As primeiras ferramentas de controle de versões, que surgiram nos anos setenta, não evoluíram significativamente desde sua criação e, até hoje, o controle de versões de arquivos é geralmente realizado em arquivos ou mesmo módulos completos, utilizando os conceitos que foram lançados há mais de três décadas. Com a popularização da utilização de sistemas computacionais, ocorreu um sensível aumento no número de sistemas existentes e, também, na complexidade dos mesmos. Além disso, muitas alterações ocorreram nos ambientes de desenvolvimento de software, e existe demanda por sistemas que permitam aos desenvolvedores ter cada vez mais controle automatizado sobre o que está sendo desenvolvido. Para isso, algumas abordagens de controle de versões refinados para artefatos de software foram propostas, mas, muitas vezes, não oferecem a exibilidade de utilização exigida pelos ambientes de desenvolvimento de software. Neste trabalho, é apresentado um sistema que visa a fornecer suporte ao controle de versões refinado e flexível para artefatos de software, tendo por base um modelo bem definido para representação das informações da estrutura dos arquivos que compõem determinado projeto de software, sejam eles código-fonte dos programas de computador, documentação criada em Latex, arquivos XML, entre outros. O sistema apresentado foi projetado para ser integrado com outras soluções utilizadas em ambientes de desenvolvimento de software / Version control tasks are considered essential for the maintenance of computers systems. They have been done since beginning of 50\'s in a by hand manner. First tools, which were released in 70\'s, didn\'t evolve significantly since its creation, and, in general, version control systems still work with entire files or even modules of software, having the same concepts that were launched more than three decades ago. With the popularization of computers systems there had been a sensible increase in the number of existing systems and also in the complexity of these systems. Besides that many changes have taken place in the software development environments, and there is demand for systems which allow developers to have more automated control about what is being developed. Regard to this demand some approaches of fine-grained version control have been proposed, but they usually do not provide the required exibility for its use in the real software development environments. In this work its presented a system which aims at providing support for exible and fine-grained version control of software artifacts, using a well defined model to represent the logical structure of the files which compose a software project, independently of its type - they can be XML files, source-code files, Latex files and others. The system has been designed to be integrated with other software solutions used in software development environments
|
10 |
Implementation of a Continuous Integration and Continuous Delivery System for Cross-Platform Mobile Application DevelopmentNilsson, Samuel January 2016 (has links)
When working in software development teams, there are challenges when it comes to always keeping the software stable and reliable. Continuous integration are frequently used to increase the stability and reliability. Extensive research has been performed on the matter of development processes of continuous integration, but there are no consensus on how systems to support continuous integration should be implemented for best results. In this report a continuous integration system is implemented based on best practices and to support the general continuous integration development process, by using Jenkins and other open source tools. The system is adapted to work well with the cross-platform mobile development framework CoffeeMaker developed by VISIARC AB and the general needs of the company. In order to roughly estimate the increased developer productivity and product quality when introducing the system, a questionnaire that discusses the system and working habits was sent out to the developers. The evaluation lead to the conclusion that the productivity would improve by approximately 30-60 minutes per week and developer. It also lead to the conclusion that the quality of their developed applications would most probably increase by introducing such a system.
|
Page generated in 0.0718 seconds