9 research outputs found

    A PROPOSAL FOR USING WEB 2.0 TECHNOLOGIES IN SCRUM

    Get PDF
    One of the challenges in Project Management (PM) is the introduction of information technology in \ PM methodologies. To deal with this issu, the use of Web 2.0 technologies to support virtual work \ and virtual management of projects has gained attention in recent years. At the same time, the \ adoption of agile methodologies has grown to better assist mainly the management of information \ technology projects. This paper proposes a conceptual contribution through the use of Web 2.0 \ technologies in Scrum methodology. It suggests Web 2.0 tools to fit each artifact and event Scrum, \ which provide an environment for virtual management of projects. Such tools support meetings and \ knowledge sharing. It also presents the research qustions (RQ) and methods that will be used to \ conduct this work. RQ1 is How can Web 2.0 technologies be integrated into Scrum methodology to \ monitor projects and store and share knowledge generated in the meetings? and RQ2 is To what \ extent do Web 2.0 technologies improve the performance of Scrum teams? To address RQ1 and RQ2, \ we will use multiple case study and action research methods, respectively

    An Analysis of Merge Conflicts and Resolutions in Git-based Open Source Projects

    Get PDF
    International audienceVersion control systems such as Git support parallel collaborative work and became very widespread in the open-source community. While Git offers some very interesting features, resolving conflicts that arise during synchronization of parallel changes is a time-consuming task. In this paper we present an analysis of concurrency and conflicts in official Git repository of four projects: Rails, IkiWiki, Samba and Linux Kernel. We analyse the collaboration process of these projects at specific periods revealing how change integration and conflict rates vary during project development life-cycle. We also analyse how often users decide to rollback to previous document version when the integration process generates conflicts. Finally, we discuss the mechanism adopted by Git to consider changes made on two continuous lines as conflicting

    Семантичний спосіб поєднання версій програмного коду при одночасній розробці програм для підмножини мови Python

    Get PDF
    Актуальність теми. В даний час програмні продукти створюються групами розробників. Зазвичай, кожному розробнику видається своє окреме завдання, результатом якого є видозмінений програмний продукт. Розробники працюють незалежно і одночасно, а тому можуть вносити суперечливі зміни. Ці зміни унеможливлюють автоматичну інтеграцію незалежно від створених модифікацій в функціональність програмного продукту. Попередні дослідження показали, що такі конфлікти трапляються часто і погіршують продуктивність розробки, оскільки їх розуміння та вирішення є складним і нудним завданням, причому неякісне виконання якого може внести дефекти в продукт. Тому розробка спеціальних способів поєднання версій програмного коду при одночасній розробці програм для підмножини мови Python та застосування їх на практиці є актуальною і важливою задачею, як з наукової, так і з практичної точки зору. Об’єктом дослідження є методика поєднання версій програмного коду при одночасній розробці програм. Предметом дослідження є семантичні способи поєднання версій програмного коду при одночасній розробці програм для підмножини мови Python. Мета роботи: створення семантичний спосіб поєднання версій програмного коду при одночасній розробці програм для підмножини мови Python на основі циклічного алгоритму доведення еквівалентності програм та алгоритму виведення семантичного ефекту модифікації програми; перевірка результатів створеного інструмента поєднання на реальних проєктах, написаних на мові Python. Наукова новизна полягає в наступному: вперше запропоновано спосіб поєднання версій програм, написаних на підмножині мови Python на основі циклічного алгоритму доведення еквівалентності програм та алгоритму виведення семантичного ефекту модифікації програми. Практична цінність отриманих в роботі результатів полягає в тому, що запропоновані методи дають змогу автоматично поєднувати програми, написані на підмножині мови Python, звільняючи таким чином розробників від розуміння та вирішення складного і нудного поєднання версій програм, неякісне виконання якого може внести дефекти в продукт. Розроблений автоматичний інструмент поєднання програм, написаних на підмножині мови Python перевірено на реальних проєктах. Отриманий результат дозволяє знизити кількість затраченого розробниками часу на процес поєднання версій програм. Апробація роботи. 1. Постановка задачі була представлена і обговорена VIІІ Міжнародній науково-технічній Internet-конференції присвяченій актуальним проблемам керування складними об’єктами та підготовки фахівців з автоматизації виробництва і використання інформаційних технологій 2. Основні положення і результати роботи були представлені та обговорювались на XІV науковій конференції магістрантів та аспірантів «Прикладна математика та комп’ютинг» ПМК-2021 (Київ, 15-17 листопада 2021 р.). Структура та обсяг роботи. Магістерська дисертація складається з вступу, чотирьох розділів та висновків. У вступі подано загальну характеристику роботи, зроблено оцінку сучасного стану проблеми, обґрунтовано актуальність напряму досліджень, сформульовано мету і задачі досліджень, показано наукову новизну отриманих результатів і практичну цінність роботи, наведено відомості про апробацію результатів і їхнє впровадження. У першому розділі розглянуто існуючі методики поєднання версій програмного коду при одночасній розробці програм, а також проведений аналіз, який дає змогу визначити основні переваги та недоліки цих методик. У другому розділі коротко описуються аспекти використання циклічного алгоритму доведення еквівалентності програм та алгоритму виведення семантичного ефекту модифікації програми. У третьому розділі наведено опис реалізації спосіб поєднання версій програм, написаних на підмножині мови Python на основі циклічного алгоритму доведення еквівалентності програм та алгоритму виведення семантичного ефекту модифікації програми. У четвертому розділі описуються теоретичні та експериментальні результати застосування способу на реальних проєктах. У висновках представлені результати проведеної роботи. Робота представлена на 81 аркушах, містить 14 джерел, 63 рисунків, 4 додатки.Actuality of theme. Currently, software products are created by teams of developers. Usually, each developer is given a separate task, the result of which is a modified software product. Developers work independently and simultaneously, and therefore can make contradictory changes. These changes make it impossible to automatically integrate, regardless of the modifications created into the functionality of the software product. Previous research has shown that such conflicts occur frequently and impair development performance, as understanding and resolving them is a complex and tedious task, and poor performance can lead to product defects. Therefore, the development of special ways to combine versions of software code while developing programs for a subset of Python and their application in practice is an urgent and important task, both from a scientific and practical point of view. The object of research is the method of combining versions of program code while developing programs. The subject of the study is semantic ways of combining versions of program code while developing programs for a subset of the Python language. Purpose: to create for the first time a semantic way to combine versions of program code while developing programs for a subset of Python based on a cyclic algorithm for proving the equivalence of programs and an algorithm for deriving the semantic effect of program modification; check the results of the created combination tool on real projects written in Python. The scientific novelty is as follows: for the first time a method of combining versions of programs written in a subset of Python based on a cyclic algorithm for proving the equivalence of programs and an algorithm for deriving the semantic effect of program modification. The practical value of the results is that the proposed methods allow you to automatically combine programs written in a subset of Python, thus freeing developers from understanding and solving complex and tedious combination of software versions, poor performance of which can cause defects in the product. The developed automatic tool for combining programs written in a subset of the Python language has been tested on real projects. The result allows you to reduce the amount of time spent by developers on the process of combining versions of programs. Approbation of work. 1. The statement of the problem was presented and discussed by the VIII International scientific and technical Internet-conference devoted to actual problems of management of difficult objects and preparation of experts in automation of production and use of information technologies 2. The main provisions and results of the work were presented and discussed at the XIV scientific conference of undergraduates and graduate students "Applied Mathematics and Computing" PMK-2021 (Kyiv, November 15-17, 2021). Structure and scope of work. The master’s dissertation consists of an introduction, four chapters and conclusions. The introduction presents a general description of the work, assesses the current state of the problem, substantiates the relevance of research, formulates the purpose and objectives of research, shows the scientific novelty of the results and practical value of the work, provides information on approbation of results and their implementation. The first section discusses the existing methods of combining versions of software code while developing programs, as well as an analysis that identifies the main advantages and disadvantages of these methods. The second section briefly describes the aspects of using the cyclic algorithm for proving the equivalence of programs and the algorithm for deriving the semantic effect of program modification. The third section describes the implementation of a method of combining versions of programs written in a subset of the Python language based on a cyclic algorithm for proving the equivalence of programs and an algorithm for deriving the semantic effect of program modification. The fourth section describes the theoretical and experimental results of the method on real projects. The conclusions present the results of the work. The work is presented on 81 sheets, contains 14 references, 4 appendices

    Git pour l'évaluation et le suivi du travail collaboratif favorisant le développement des compétences transversales

    Get PDF
    Le travail en équipe est un des moyens pour développer les compétences transversales attendues dans l’industrie, en particulier dans le domaine informatique. Aussi, au cours d’une formation académique, c’est l’une des occasions où l’étudiant a l’opportunité de les développer. Cependant, la réussite d’un travail en équipe dépend entre autres du choix des outils facilitant le travail collaboratif, l’organisation, la collaboration et la gestion des conflits. La possibilité de pouvoir évaluer objectivement aussi bien le travail individuel que celui collaboratif des membres de l’équipe doit davantage faire partie de ce choix. Cette évaluation peut en l’occurrence être faite en termes de contributions. Parmi ces outils nous proposons de retenir le système de gestion de version Git. En effet, c’est un des systèmes les plus utilisés dans l’industrie et permet d’en tirer de nombreux avantages autant pour les étudiants que pour les enseignants, sans oublier les possibilités de minimisation des coûts reliés au matériel didactique. Aussi, l’utilisation de Git dans le cadre de travaux d’équipe, donne accès à toute l’information relative aux activités qui sont consignées dans son historique. En effet toute action est associée à son auteur, à la date à laquelle elle a été effectuée. En disposant de ces données, il s’agit alors de définir les critères à appliquer pour faire une analyse et établir un jugement. Nous proposons dans ce mémoire un inventaire des critères d’évaluation potentiels et identifions les plus pertinents en termes d’évaluation de la régularité et de contribution quantitative en tenant compte des biais qu’ils peuvent induire. Aussi, une des difficultés que peuvent rencontrer les enseignants au moment de produire une évaluation est non seulement de pouvoir évaluer les contributions, mais également de pouvoir en faire un suivi régulier, tout particulièrement lorsque les équipes sont nombreuses. Nous proposons alors un outil de support basé sur les critères que nous avons identifiés offrant un aperçu général et facilitant l’accès aux détails. Son évaluation dans le cadre d’un cours nous a permis d’identifier différents profils d’équipe ainsi que les limites d’utilisation d’un tel outil pour établir un jugement.Teamwork is one of the ways to develop the transversal competencies expected in industry, especially in the field of Information Technology. However, the success of teamwork during programming courses depends on the choice of tools that facilitates collaborative work, organization and conflict management. Objectively evaluating both the individual and the collaborative work must be a great part of this choice. Among these tools, we propose to retain the version control system Git. Indeed, it is one of the most used systems in the industry and reaps many benefits for both students and teachers, including the minimization of cost of educational materials. Also, Git facilitates teamwork’s evaluation by giving access to information recorded in its history. It then becomes necessary to define the criteria to be applied to make an analysis and a judgment. We propose in this thesis an inventory of the potential evaluation criteria and identify the most relevant ones in terms of evaluation of the regularity and quantitative contribution considering the biases that they induce. Moreover, one of the difficulties that teachers may encounter when producing an assessment is not only to evaluate contributions, but also to be able to monitor them regularly, especially when teams are numerous. We then recommend a support tool based on the criteria we identified, offering a general overview and facilitating access to details. Its evaluation as part of a course allowed us to identify different team profiles as well as the limits to use of such a tool to make a judgment

    Realizing Automated Test Recommendations in Software Development Environments

    Get PDF
    Software testing is a mainly manually performed and thus very labour intensive process. Beside time, it demands a high amount of domain knowledge, concentration and problem awareness from the developer. Although software reuse is a well examined area –in both academia and industry – it is mainly focussed on the reuse of different kinds of documentation and program code. In this thesis we create a client-side recommendation system for the novel idea for an automated test recommendation approach that is based on lessons learned from traditional software reuse and recommendation. While most existing testing assistance systems help a developer by providing information about various coverage criteria only ex post, we want to support the developer pro-actively while writing the test and create as little overhead as possible during his work. Thereby we benefit from the lessons learned in the area of ”traditional” software reuse and apply them in a kind of test reuse for test recommendation approach. To validate our theoretical considerations, we present a tool that will help writing tests with less effort

    Early Detection of Collaboration Conflicts and Risks

    No full text
    Abstract—Conflicts among developers ’ inconsistent copies of a shared project arise in collaborative development and can slow progress and decrease quality. Identifying and resolving such conflicts early can help. Identifying situations which may lead to conflicts can prevent some conflicts altogether. By studying nine open-source systems totaling 3.4 million lines of code, we establish that conflicts are frequent, persistent, and appear not only as overlapping textual edits but also as subsequent build and test failures. Motivated by this finding, we develop a speculative analysis technique that uses previously unexploited information from version control operations to precisely diagnose important classes of conflicts. Then, we design and implement Crystal, a publicly available tool that helps developers identify, manage, and prevent conflicts. Crystal uses speculative analysis to make concrete advice unobtrusively available to developers
    corecore