Proposed Model for Software Configuration Management Theoretical Tool

Total Page:16

File Type:pdf, Size:1020Kb

Proposed Model for Software Configuration Management Theoretical Tool Middle East University Proposed Model For Software Configuration Management Theoretical Tool A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer Information Systems By Yousef Salman Al-Shaikhly Supervisor Prof. Mohammad Al-Haj Hassan Middle East University Co-Supervisor Prof. SalehAbo Al-Sood NYIT University Amman, Jordan April, 2011 DEDICATION This is dedicated to my family, for their love and encouragement. i ACKNOWLEDGMENTS I would like to express my sincere appreciation to Professor Mohammad Al-Haj Hassan and Professor Saleh Abo Al-Sood for their guidance, support and motivation throughout the work in preparing my Master’s Thesis. I would further like to acknowledge all of the faculty of Information Technology members at the Middle East University for helping and encouraging my efforts especially at the beginning of the thesis. I also thank the reviewers of my thesis Dr. Ashraf Bani Mohammed and Dr. Nuha Al- Khalili for their remarkable comments and remarks, and I would like also to thank the head of CIS department Dr. Hiba Nassiredeen. Also I would like to thank the Masri’s family and Mr. Miqdad Annab (may he rest in peace) for their support at work during the thesis preparation. Above all, I would like to especially thank my parents for supporting me during the time I was preparing and writing this thesis. Without them nothing of this would have been possible. ii CONTENTS DEDICATION ............................................................................................................................ i ACKNOWLEDGMENTS .......................................................................................................... ii CONTENTS ............................................................................................................................. iii LIST OF FIGURES ................................................................................................................ viii LIST OF TABLES .................................................................................................................... ix LIST OF ABBREVIATIONS......................................................................................................x ABSTRACT ............................................................................................................................. xi 4T4 T ....................................................................................................................................... xiiﺍﻟﻣﻠﺧﺹ CHAPTER4T 1 4T ...............................................................................................................................1 INTRODUCTION4T 4T ......................................................................................................................1 1.14T INTRODUCTION 4T .............................................................................................................1 1.24T STATEMENT OF PROBLEM 4T ..........................................................................................3 1.34T THESIS MOTIVATION 4T ...................................................................................................3 1.44T THESIS GOALS 4T ...............................................................................................................4 1.54T CONTRIBUTION OF THE THESIS 4T .................................................................................4 1.64T METHODOLOGY 4T ............................................................................................................5 1.74T THESIS ORGANIZATION 4T ...............................................................................................5 Chapter4T 2 4T ....................................................................................................................................7 Literature4T Review4T ........................................................................................................................7 2.14T SCM Introduction 4T ..............................................................................................................7 2.24T Software Configuration Management Main Components 4T ...................................................9 2.2.14T Software Configuration Items4T .....................................................................................9 2.2.24T Baselines4T ....................................................................................................................9 2.2.34T Configuration Items Repository4T ................................................................................ 11 2.2.44T Version Control4T ........................................................................................................ 13 2.2.54T Change Management 4T ................................................................................................ 15 2.34T Software Configuration Management Plan Procedures4T ..................................................... 23 2.3.14T Configuration Identification4T ...................................................................................... 23 2.3.24T Configuration Control4T ............................................................................................... 25 iii 2.3.3 Configuration Status Accounting .............................................................................. 26 2.3.4 Configuration Verification Review and SCM Audit .................................................. 27 2.4 Software Configuration Management in Local Market ..................................................... 27 2.4.1 Local Interviews ....................................................................................................... 28 2.4.2 Manual SCM Procedures in Local Market................................................................. 28 2.4.3 Types of Software Configuration Management Tools Implemented Locally ............. 29 2.4.4 Cost of Ownership .................................................................................................... 30 2.4.5 Challenges of Implementing SCM in Local Market................................................... 30 Chapter 3 .................................................................................................................................. 32 SCM Tools Evolution ............................................................................................................... 32 3.1 Software Configuration Management Tools ..................................................................... 32 3.1.1 Common Vocabulary ................................................................................................ 34 3.1.2 Common VCS Functionalities................................................................................... 35 3.2 Revision Control System ................................................................................................. 36 3.2.1 RCS in Operation...................................................................................................... 36 3.2.2 Objects Identification Mechanisms ........................................................................... 37 3.2.3 Objects tree structure ................................................................................................ 38 3.2.4 Revisions Differentiated Through Deltas .................................................................. 39 3.2.5 RCS Parallel Access ................................................................................................. 40 3.2.6 Limitations of RCS: .................................................................................................. 41 3.3 Concurrent Versions System ............................................................................................ 42 3.3.1 New Concepts in CVS .............................................................................................. 43 3.3.2 Terminologies ........................................................................................................... 43 3.3.3 Versioning Mechanism ............................................................................................. 44 3.3.4 Parallel Development in CVS ................................................................................... 44 3.3.5 CVS Repository ........................................................................................................ 46 3.3.6 CIs Differences Stored as Diffs ................................................................................. 47 3.3.7 Limitations of CVS ................................................................................................... 48 3.4 Subversion....................................................................................................................... 48 3.4.1 Subversion Basics ..................................................................................................... 49 3.4.2 Repository Structure ................................................................................................. 50 iv 3.4.3 CI Versioning ........................................................................................................... 52 3.4.4 Parallel CIs Access ................................................................................................... 52 3.4.5 Conflict Resolution ................................................................................................... 54 3.4.6 Branching and Tagging ............................................................................................
Recommended publications
  • How to Select a Suitable Tool for a Software Development Project
    HowtoSelect aSuitable Tool foraSoftwareDevelopment Project: Three Case Studies and the Lessons Learned Mark Kibanov, Dominik J. Erdmann, Martin Atzmueller Knowledge and Data Engineering Group, University of Kassel, Germany {kibanov, erdmann, atzmueller}@cs.uni-kassel.de Abstract: This paper describes aframework for evaluating and selecting suitable soft- ware tools for asoftware project, which is easily extendable depending on needs of the project. Foranevaluation, we applied the presented framework in three different projects. These projects use different software development methods (from classical models to Scrum) in different environments (industry and academia). We discuss our experiences and the lessons learned. 1Introduction With the growth of the software industry the number of software products (programs, tools, frameworks) with similar functions has also increased. Therefore, the process of selection of the required software has also become more complex. In this paper,weintroduce a general three-step framework for selecting suitable software for the current project and environment. Furthermore, we describe the application of the framework to three different software projects: These use different software development methods and environments. All three case studies showpromising results and indicate the possibility to apply the suggested framework for awide range of different projects. In these contexts, we discuss our experiences and the lessons learned. The rest of the paper is structured as follows: Section 2discusses related work. After that, Section 3presents the framework, its advantages, disadvantages and the three distinct steps of selecting the software tools. Section 4describes three case studies where we applied the framework and the results we obtained during these case studies. 2Related Work Starting in 1980 with [Saa80], Thomas L.
    [Show full text]
  • Generating Commit Messages from Git Diffs
    Generating Commit Messages from Git Diffs Sven van Hal Mathieu Post Kasper Wendel Delft University of Technology Delft University of Technology Delft University of Technology [email protected] [email protected] [email protected] ABSTRACT be exploited by machine learning. The hypothesis is that methods Commit messages aid developers in their understanding of a con- based on machine learning, given enough training data, are able tinuously evolving codebase. However, developers not always doc- to extract more contextual information and latent factors about ument code changes properly. Automatically generating commit the why of a change. Furthermore, Allamanis et al. [1] state that messages would relieve this burden on developers. source code is “a form of human communication [and] has similar Recently, a number of different works have demonstrated the statistical properties to natural language corpora”. Following the feasibility of using methods from neural machine translation to success of (deep) machine learning in the field of natural language generate commit messages. This work aims to reproduce a promi- processing, neural networks seem promising for automated commit nent research paper in this field, as well as attempt to improve upon message generation as well. their results by proposing a novel preprocessing technique. Jiang et al. [12] have demonstrated that generating commit mes- A reproduction of the reference neural machine translation sages with neural networks is feasible. This work aims to reproduce model was able to achieve slightly better results on the same dataset. the results from [12] on the same and a different dataset. Addition- When applying more rigorous preprocessing, however, the per- ally, efforts are made to improve upon these results by applying a formance dropped significantly.
    [Show full text]
  • Essional-Software-Testing-With-Visual
    Arnold ffirs.tex V4 - 08/02/2007 10:24am Page v Professional Software Testing with Visual Studio® 2005 Team System ToolsforSoftwareDevelopers andTestEngineers Tom Arnold Dominic Hopton Andy Leonard Mike Frost Wiley Publishing, Inc. Arnold frontcover1.tex V4 - 08/02/2007 10:23am Page ii Arnold frontcover1.tex V4 - 08/02/2007 10:23am Page i Professional Software Testing with Visual Studio® 2005 Team System Introduction . .xxiii Chapter 1: Introduction to VSTEST and VSTESD . 1 Chapter 2: A Quick Tour of VSTEST and VSTESD . 15 Chapter 3: Unit Testing with VSTEST and VSTESD . 41 Chapter 4: Testing the Database . 73 Chapter 5: Web Testing . 125 Chapter 6: Using Manual, Ordered, and Generic Test Types . 165 Chapter 7: Load Testing . 191 Chapter 8: Using Code Analysis and Dynamic Analysis. 243 Chapter 9: VSTEST and VSTESD within the Software Development LifeCycle.....................................................273 Appendix A: Installing Team Explorer . 305 Appendix B: Creating and Running a Web Test: A High-Level Walk-Through ...............................................313 Appendix C: Creating and Running a Unit Test: A High-Level Walk-Through ...............................................319 Appendix D: Creating and Running a Load Test: A High-Level Walk-Through ...............................................327 Appendix E: Creating and Running a Manual Test: A High-Level Walk-Through ...............................................339 Appendix F: Other Sources of Information . 347 Index....................................................................351 Arnold frontcover1.tex V4 - 08/02/2007 10:23am Page ii Arnold ffirs.tex V4 - 08/02/2007 10:24am Page iii Professional Software Testing with Visual Studio® 2005 Team System Arnold ffirs.tex V4 - 08/02/2007 10:24am Page iv Arnold ffirs.tex V4 - 08/02/2007 10:24am Page v Professional Software Testing with Visual Studio® 2005 Team System ToolsforSoftwareDevelopers andTestEngineers Tom Arnold Dominic Hopton Andy Leonard Mike Frost Wiley Publishing, Inc.
    [Show full text]
  • Did Your Tests Pass Or Fail? Answering with Automation
    Presentation P R E S E N T A T I O N Bio T6 Thursday, March 8, 2001 11:30 AM DID YOUR TESTS PASS OR FAIL? ANSWERING WITH AUTOMATION Noel Nyman Microsoft International Conference On Software Test Automation March 5-8, 2001 San Jose, CA, USA Did Your Tests Pass or Fail? Using Self-Verifying Data with Hard-to-Automate Applications Noel Nyman Desktop Applications Automation Test Lead Microsoft Windows Systems Group Agenda § Self-Verifying Data review üHow to use SVD to tell that your tests pass § Automating problem applications üIdeas on how to automate apps when your automation tools can’t see parts of them § Demos § Resources for more information § Questions 2 Self-Verifying Data • Has codes embedded in the data that act as an oracle and can tell you if the data is… üLegal - is this data from the correct data set? üValid - is this data that should be here? üCorrect type – is this data the type we’re looking üFrom correct record – data from the record we asked for? üAccurate - are characters missing, munged? § SVD data is like a debug build of an app 3 Benefits of Using SVD § No separate oracle needed § Can be scaled to very large data sets § Can be used with rich data not easily verified by humans § Easy to verify with automated testing § Adding additional test data usually doesn’t require updating automated tests 4 SVD Example First name from a rich data set… First name with embedded SVD codes… SVD codes replaced with evocative tags… 5 Automating Problem Apps § Forget capture/replay – if it works well for you, you don’t have a “problem
    [Show full text]
  • Sistemas De Control De Versiones De Última Generación (DCA)
    Tema 10 - Sistemas de Control de Versiones de última generación (DCA) Antonio-M. Corbí Bellot Tema 10 - Sistemas de Control de Versiones de última generación (DCA) II HISTORIAL DE REVISIONES NÚMERO FECHA MODIFICACIONES NOMBRE Tema 10 - Sistemas de Control de Versiones de última generación (DCA) III Índice 1. ¿Qué es un Sistema de Control de Versiones (SCV)?1 2. ¿En qué consiste el control de versiones?1 3. Conceptos generales de los SCV (I) 1 4. Conceptos generales de los SCV (II) 2 5. Tipos de SCV. 2 6. Centralizados vs. Distribuidos en 90sg 2 7. ¿Qué opciones tenemos disponibles? 2 8. ¿Qué podemos hacer con un SCV? 3 9. Tipos de ramas 3 10. Formas de integrar una rama en otra (I)3 11. Formas de integrar una rama en otra (II)4 12. SCV’s con los que trabajaremos 4 13. Git (I) 5 14. Git (II) 5 15. Git (III) 5 16. Git (IV) 6 17. Git (V) 6 18. Git (VI) 7 19. Git (VII) 7 20. Git (VIII) 7 21. Git (IX) 8 22. Git (X) 8 23. Git (XI) 9 Tema 10 - Sistemas de Control de Versiones de última generación (DCA) IV 24. Git (XII) 9 25. Git (XIII) 9 26. Git (XIV) 10 27. Git (XV) 10 28. Git (XVI) 11 29. Git (XVII) 11 30. Git (XVIII) 12 31. Git (XIX) 12 32. Git. Vídeos relacionados 12 33. Mercurial (I) 12 34. Mercurial (II) 12 35. Mercurial (III) 13 36. Mercurial (IV) 13 37. Mercurial (V) 13 38. Mercurial (VI) 14 39.
    [Show full text]
  • Altova Umodel 2012 User & Reference Manual
    User and Reference Manual Altova UModel 2012 User & Reference Manual All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage and retrieval systems - without the written permission of the publisher. Products that are referred to in this document may be either trademarks and/or registered trademarks of the respective owners. The publisher and the author make no claim to these trademarks. While every precaution has been taken in the preparation of this document, the publisher and the author assume no responsibility for errors or omissions, or for damages resulting from the use of information contained in this document or from the use of programs and source code that may accompany it. In no event shall the publisher and the author be liable for any loss of profit or any other commercial damage caused or alleged to have been caused directly or indirectly by this document. Published: 2012 © 2012 Altova GmbH UML®, OMG™, Object Management Group™, and Unified Modeling Language™ are either registered trademarks or trademarks of Object Management Group, Inc. in the United States and/or other countries. Table of Contents 1 UModel 3 2 Introducing UModel 6 3 What's new in UModel 8 4 UModel tutorial 14 4.1 Starting UModel................................................................................................................. 16 4.2 Use cases ................................................................................................................
    [Show full text]
  • Code Review Is an Architectural Necessity
    Code review is an architectural necessity Colin Dean @colindean 1 @ColinDean Software Engineer Organizer, Abstractions.io Wearer of many hats 2 My words are my own and not my employer(s), past or present. Please save questions until the end of the presentation. 3 Agenda • Quick anecdote • What is code review? • What problems does code review solve? • Quality attributes code review ensures • Tips for code reviews • Limitations 4 5 Agenda • Quick anecdote • What is code review? • What problems do code review solve? • Quality attributes code review ensures • Tips for code reviews • Limitations 6 What is code review? 7 Code review is the process by which those who maintain a software codebase evaluate a proposed change to that codebase, regardless of the source of the proposed change. 8 Code review is systematic examination of computer source code. Code Review, Wikipedia 9 Peer Review 10 Code Review 11 Code Review Vocabulary • Change - an individual unit of work altering what exists • Submission - a collection of changes • Submitter - the person proposing the submission • Reviewer - the people evaluating the submission • Annotation - remarks or ratings bestowed upon the submission 12 The submitter proposes changes in a submission, which is evaluated by a reviewer, who annotates or accepts it. 13 Most formal Least formal Team Pair Peer Inspection Walkthrough Ad-hoc review review programming deskcheck, passaround Wiegers’ peer review formality spectrum 14 Most formal Least formal Team Pair Peer Inspection Walkthrough Ad-hoc review review programming deskcheck, passaround Wiegers’ peer review formality spectrum 15 16 Agenda • Quick anecdote • What is code review? • What problems does code review solve? • Quality attributes code review ensures • Tips for code reviews • Limitations 17 Aside from the primary goal of reducing defects, Code review solves two major problems.
    [Show full text]
  • Brno University of Technology Bulk Operation
    BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FACULTY OF INFORMATION TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ DEPARTMENT OF INFORMATION SYSTEMS ÚSTAV INFORMAČNÍCH SYSTÉMŮ BULK OPERATION ORCHESTRATION IN MULTIREPO CI/CD ENVIRONMENTS HROMADNÁ ORCHESTRÁCIA V MULTIREPO CI/CD PROSTREDIACH MASTER’S THESIS DIPLOMOVÁ PRÁCE AUTHOR Bc. JAKUB VÍŠEK AUTOR PRÁCE SUPERVISOR Ing. MICHAL KOUTENSKÝ VEDOUCÍ PRÁCE BRNO 2021 Brno University of Technology Faculty of Information Technology Department of Information Systems (DIFS) Academic year 2020/2021 Master's Thesis Specification Student: Víšek Jakub, Bc. Programme: Information Technology and Artificial Intelligence Specializatio Computer Networks n: Title: Bulk Operation Orchestration in Multirepo CI/CD Environments Category: Networking Assignment: 1. Familiarize yourself with the principle of CI/CD and existing solutions. 2. Familiarize yourself with the multirepo approach to software development. 3. Analyze the shortcomings of existing CI/CD solutions in the context of multirepo development with regard to user comfort. Focus on scheduling and deploying bulk operations on multiple interdependent repositories as part of a single logical branching pipeline. 4. Propose and design a solution to these shortcomings. 5. Implement said solution. 6. Test and evaluate the solution's functionality in a production environment. Recommended literature: Humble, Jez, and David Farley. Continuous delivery. Upper Saddle River, NJ: Addison- Wesley, 2011. Forsgren, Nicole, Jez Humble, and Gene Kim. Accelerate : building and scaling high performing technology organizations. Portland, OR: IT Revolution Press, 2018. Nicolas Brousse. 2019. The issue of monorepo and polyrepo in large enterprises. In Proceedings of the Conference Companion of the 3rd International Conference on Art, Science, and Engineering of Programming (Programming '19). Association for Computing Machinery, New York, NY, USA, Article 2, 1-4.
    [Show full text]
  • Version Control – Agile Workflow with Git/Github
    Version Control – Agile Workflow with Git/GitHub 19/20 November 2019 | Guido Trensch (JSC, SimLab Neuroscience) Content Motivation Version Control Systems (VCS) Understanding Git GitHub (Agile Workflow) References Forschungszentrum Jülich, JSC:SimLab Neuroscience 2 Content Motivation Version Control Systems (VCS) Understanding Git GitHub (Agile Workflow) References Forschungszentrum Jülich, JSC:SimLab Neuroscience 3 Motivation • Version control is one aspect of configuration management (CM). The main CM processes are concerned with: • System building • Preparing software for releases and keeping track of system versions. • Change management • Keeping track of requests for changes, working out the costs and impact. • Release management • Preparing software for releases and keeping track of system versions. • Version control • Keep track of different versions of software components and allow independent development. [Ian Sommerville,“Software Engineering”] Forschungszentrum Jülich, JSC:SimLab Neuroscience 4 Motivation • Keep track of different versions of software components • Identify, store, organize and control revisions and access to it • Essential for the organization of multi-developer projects is independent development • Ensure that changes made by different developers do not interfere with each other • Provide strategies to solve conflicts CONFLICT Alice Bob Forschungszentrum Jülich, JSC:SimLab Neuroscience 5 Content Motivation Version Control Systems (VCS) Understanding Git GitHub (Agile Workflow) References Forschungszentrum Jülich,
    [Show full text]
  • Revision Control
    Revision Control Tomáš Kalibera, (Peter Libič) Department of Distributed and Dependable Systems http://d3s.mff.cuni.cz CHARLES UNIVERSITY PRAGUE Faculty of Mathematics and Physics Problems solved by revision control What is it good for? Keeping history of system evolution • What a “system” can be . Source code (single file, source tree) . Textual document . In general anything what can evolve – can have versions • Why ? . Safer experimentation – easy reverting to an older version • Additional benefits . Tracking progress (how many lines have I added yesterday) . Incremental processing (distributing patches, …) Allowing concurrent work on a system • Why concurrent work ? . Size and complexity of current systems (source code) require team work • How can concurrent work be organized ? 1. Independent modifications of (distinct) system parts 2. Resolving conflicting modifications 3. Checking that the whole system works . Additional benefits . Evaluating productivity of team members Additional benefits of code revision control • How revision control helps . Code is isolated at one place (no generated files) . Notifications when a new code version is available • Potential applications that benefit . Automated testing • Compile errors, functional errors, performance regressions . Automated building . Backup • Being at one place, the source is isolated from unneeded generated files . Code browsing • Web interface with hyperlinked code Typical architecture Working copy Source code repository (versioned sources) synchronization Basic operations • Check-out . Create a working copy of repository content • Update . Update working copy using repository (both to latest and historical version) • Check-in (Commit) . Propagate working copy back to repository • Diff . Show differences between two versions of source code Simplified usage scenario Source code Check-out or update repository Working 1 copy 2 Modify & Test Check-in 3 Exporting/importing source trees • Import .
    [Show full text]
  • Jenkins Job Builder Documentation Release 3.10.0
    Jenkins Job Builder Documentation Release 3.10.0 Jenkins Job Builder Maintainers Aug 23, 2021 Contents 1 README 1 1.1 Developers................................................1 1.2 Writing a patch..............................................2 1.3 Unit Tests.................................................2 1.4 Installing without setup.py........................................2 2 Contents 5 2.1 Quick Start Guide............................................5 2.1.1 Use Case 1: Test a job definition................................5 2.1.2 Use Case 2: Updating Jenkins Jobs...............................5 2.1.3 Use Case 3: Working with JSON job definitions........................6 2.1.4 Use Case 4: Deleting a job...................................6 2.1.5 Use Case 5: Providing plugins info...............................6 2.2 Installation................................................6 2.2.1 Documentation.........................................7 2.2.2 Unit Tests............................................7 2.2.3 Test Coverage..........................................7 2.3 Configuration File............................................7 2.3.1 job_builder section.......................................8 2.3.2 jenkins section.........................................9 2.3.3 hipchat section.........................................9 2.3.4 stash section...........................................9 2.3.5 __future__ section.......................................9 2.4 Running.................................................9 2.4.1 Test Mode...........................................
    [Show full text]
  • Visual Build Help
    Visual Build Professional User's Manual Copyright © 1999-2021 Kinook Software, Inc. Contents I Table of Contents Part I Introduction 1 1 Overview ................................................................................................................................... 1 2 Why Visual................................................................................................................................... Build? 1 3 New Features................................................................................................................................... 2 Version 4 .......................................................................................................................................................... 2 Version 5 .......................................................................................................................................................... 3 Version 6 .......................................................................................................................................................... 4 Version 7 .......................................................................................................................................................... 7 Version 8 .......................................................................................................................................................... 9 Version 9 .........................................................................................................................................................
    [Show full text]