Large Projects & Software Engineering
|
|
|
- Cecily Goodwin
- 10 years ago
- Views:
Transcription
1 Large Projects & Software Engineering With thanks to Bob Jones for ideas and illustrations 1 Why spend so much time talking about Software Process? How do you create software? Lots of parts: Writing, documenting, testing, sharing, fixing,. Usually done by lots of people Process is just a big word for how they do this Exists whether you talk about it or not Why do we have to formalize this? 2 1
2 Scale and process: Building a dog house Can be built by one person Minimal plans Simple process Simple tools Little risk Rational Software Corporation 3 Scale and process: Building a family house Built by a team Models Simple plans, evolving to blueprints Well-defined process Architect Planning permission Time-tabling and Scheduling Power tools Considerable risk Rational Software Corporation 4 2
3 Scale and process: Building a skyscraper Built by many companies Modeling Simple plans, evolving to blueprints Scale models Engineering plans Well-defined process Architectural team Political planning Infrastructure planning Time-tabling and scheduling Selling space Heavy equipment Major risks Rational Software Corporation 5 Why do software projects fail? Even if you do produce the code it does not guarantee that the project will be a success There are many other factors (both internal and external) that can affect the success of a project 6 3
4 Communication explosion More people means more time communicating which means more misunderstandings and less time for the software 7 Why software projects fail Undefined responsibilities Hey this could be the chief Too little responsibility can cause a lot of confusion & embarrassing mistakes Gary Larson 8 4
5 Why software projects fail Missed user requirements We re not smart enough to know everything people want the system to do; we need to ask! Gary Larson 9 Why software projects fail Badly defined interfaces Fumbling for his recline button, Bob unwittingly instigates a disaster Spend the time to design and test good interfaces Gary Larson 10 5
6 Why software projects fail Creeping featurism No, no Not this one. Too many bells and whistles Focus on what the users are asking for, not what the developers think is cool Gary Larson 11 Why software projects fail Unrealistic goals It s time we face reality, my friends We re not exactly rocket scientists Analysis and design would make it clear the project is not feasible Gary Larson 12 6
7 The life time of HEP software R. Brun Software is a long-term commitment Users like stable and maintained systems Vote with their feet It takes time to develop a new system Geant3 6+ yrs 3 people 300 KLOCs PAW 6+ yrs 5 people 300 Zebra 4+ yrs 2 people 100 ROOT 5* yrs 3 people 630 Working system after 1 year. Real work is after that!! Many releases of the software are needed over its lifetime to fix bugs, add new features, support new platforms etc 13 How do we cope? We try to find a way of working that leads to success We create a process for building systems We devise methods of communicating and record keeping: models We use the best tools & methods we can lay our hands on And we engage in denial: 14 7
8 Can t technology save us? We ve built a series of ever-larger tools to handle large code projects: CVS for controlling and versioning code SRT for building releases of systems CMT for configuration management But we struggle against three forces: We re always building bigger & more difficult systems We re always building bigger & more difficult collaborations And we re the same old people Net effect: We re always pushing the boundary of what we can do Stupidity got us into this mess; why can t it get us out? - Will Rogers 15 CVS Source Code Management Maintains a repository of text files Allows users to check in and check out changed text Old code remains available Each checked-in change defines a new revision You can retrieve, ask for differences with any of them Revisions can be tagged for easy reference Anybody can get a specific set of source code file versions Collaboration can use tags to control software consistency Big advantage: checkout is not exclusive More than one developer can have the same file checked out Developers can control their own use of the code for read, write Changes can come from multiple sources CVS handles (most) of the conflict resolution 16 Key tool for large collaborations! But can also be an important tool for individuals 8
9 Why isn t CVS enough? CVS let s me check out complete source code. Then just compile! Works great for small projects But runs into several levels of scaling problems Want to attach to external code We don t write everything (though tempted) Sometimes don t get source for external code Need some way to connect to specific external libraries: Both specific product, and a specific version of that product Want to separate code into multiple parts So people/institutions can take responsibility for parts But software has cross-connections Need structure that works for both And still need to be able to build the code 17 Handling complicated builds Multiple packages require cross connects while compiling Typing the compile command gets boring fast g++ -c -I"/afs/cern.ch/user/s/scherzer/public/1001/InstallArea/include/PixelDigitization" -I"/afs/cern.ch/user/s/scherzer/public/1001/InstallArea/include/SiDigitization" -I"/afs/cern.ch/atlas/software/dist/10.0.1/InstallArea/include/InDetSimEvent" -I"/afs/cern.ch/atlas/software/dist/10.0.1/InstallArea/include/HitManagement" -I"/afs/cern.ch/atlas/software/dist/10.0.1/InstallArea/include/TestTools" -I"/afs/cern.ch/atlas/software/dist/10.0.1/InstallArea/include/TestPolicy" -I"/afs/cern.ch/atlas/offline/external/Gaudi/ pool201/GaudiKernel/v15r7p4" -I"/afs/cern.ch/sw/lcg/external/clhep/ atlas/slc3_ia32_gcc323/include" -I"/afs/cern.ch/sw/lcg/external/Boost/1.31.0/slc3_ia32_gcc323/include/boost-1_31" -I"/afs/cern.ch/sw/lcg/external/cernlib/2003/slc3_ia32_gcc323/include" -O2 -pthread -D_GNU_SOURCE -pthread -pipe -ansi -pedantic -W -Wall -Wwrite-strings -Woverloaded-virtual -Wno-long-long -fpic -march=pentium -mcpu=pentium -pedantic-errors -ftemplate-depth-25 -ftemplate-depth-99 -DHAVE_ITERATOR -DHAVE_NEW_IOSTREAMS -D_GNU_SOURCE -o PixelDigitization.o -DEFL_DEBUG=0 -DHAVE_PRETTY_FUNCTION -DHAVE_LONG_LONG -DHAVE_BOOL -DHAVE_EXPLICIT -DHAVE_MUTABLE -DHAVE_SIGNED -DHAVE_TYPENAME -DHAVE_NEW_STYLE_CASTS -DHAVE_DYNAMIC_CAST -DHAVE_TYPEID -DHAVE_ANSI_TEMPLATE_INSTANTIATION -DHAVE_CXX_STDC_HEADERS -DPACKAGE_VERSION="PixelDigitization "' -DNDEBUG -DCLHEP_MAX_MIN_DEFINED -DCLHEP_ABS_DEFINED -DCLHEP_SQR_DEFINED../src/PixelDigitization.cxx Build tools: make, Ant, etc Manually create a makefile that forwards include options to the compiler g++ -IpkgA -IpkgB Lets you adapt to various internal structures g++ -IpkgA -IpkgB/include -IpkgC/headers 18 Also lets you add other options to control debugging, etc 9
10 But size keeps getting in the way BaBar (offline production code only): 350 packages 14,000 files 6 million lines of source Some of these are large for historical reasons But that s true of just about any project CVS checkout: 41 minutes Build from scratch: 14 hours Spread across multiple production machines; never did complete on laptop gmake with one change: about 6 minutes to think about dependencies And I don t even want to think about the size of a monolithic Makefile And everybody will need multiple copies Old ones, new ones, 19 But I just want to run the program! Release Systems are built to deal with this Key capabilities: Partial builds, including the case of just run it Ensuring consistency among the parts Key concepts: Release : labeled, consistent build of the entire system Package version : name for a particular set of contents The purpose of development is to change the contents of packages! Helpful to have these be independent, so people can work independently Architecture : A particular type of computer hardware, software, even location 20 10
11 Simple Example: SRT (SoftRelTools) Allows a build to mix existing (shared) and individual parts Check out some packages & built just those Pre-built libraries, include files, etc are matched in versions Set of shell scripts and Makefile fragments Work within a particular directory structure $BFDIST/ packages/ pkga/ 1.0.1/ Makefile 1.0.2/ doc/ pkgb/ 1.0.3/ pkga/ (include files) releases/ 1.0.7/ pkga/ 1.0.9/ pkgb/ production/ 1.1.2/ 1.1.4/ include/ pkga/ pkgb/ current/ lib/ bin/ AIX/ HPUX/ OSF1/ libpkga.a libpkgb.a 21 Typical use: Create an area for your own work Specify the production release you want as context Do a CVS checkout of the package(s) you want to edit Specify which contents Typically either the one from the context, or the latest Compile, test, debug, edit, repeat Eventually, you ve made progress, and want to share it Check changes into CVS Now they re safe, and colleagues can get changes Tag CVS So you can tell your colleagues how to get these Make part of next production release Typically a package coordinator role to decide about this 22 These steps do not have to happen quickly, all at once, or by same person Biggest differences between collaborations occur here 11
12 What else do we want from a release system? Better support of development Not just building complete versions Also want to build & run test scaffolds More complicated package, release structures Not just a flat set of co-equal packages with no substructure Including enough flexibility to develop release tool itself Help distributing the workload SRT spread parts of load across lots of package coordinators But somebody still had to pull the production releases together Did you run your unit tests? If I update pkga to V , will pkgb V still work? Help ensuring consistency If I update pkga to V , will pkgb V still work? 23 Consistency Software strongly depends on other software Usually managed at the package level (This can result in lots of packages, as you subdivide over and over) Expresses how changes in one piece can drive changes in another 24 12
13 Robert Martin s open/closed principle Some parts of the code need to be stable Other parts are being continually developed One solution: Separate stable interfaces from evolving implementations But even stable interfaces have to change sometimes And you also need tools for handling dependence on external code, compiler/os differences, location differences, etc 25 CMT: A modern example Requirements file provides custom language for expressing our needs package MagneticField author Laurent Chevalier <[email protected]> author Marc Virchaux <[email protected]> 26 use AtlasPolicy v2r1 use CxxFeatures v2r1 Utilities use CLHEP v2r1 External include_dirs $(MAGNETICFIELDROOT)/MagneticField branches MagneticField doc src test Example from C. Arnault (LAL and Atlas) 13
14 CMT: A modern example Requirements file provides custom language for expressing our needs package MagneticField author Laurent Chevalier <[email protected]> author Marc Virchaux <[email protected]> use AtlasPolicy v2r1 use CxxFeatures v2r1 Utilities use CLHEP v2r1 External include_dirs $(MAGNETICFIELDROOT)/MagneticField Provides definitions for standard Atlas conventions (include paths, directory structure, default behavioural patterns, ) branches MagneticField doc src test 27 CMT: A modern example Requirements file provides custom language for expressing our needs package MagneticField author Laurent Chevalier <[email protected]> author Marc Virchaux <[email protected]> use AtlasPolicy v2r1 use CxxFeatures v2r1 Utilities use CLHEP v2r1 External An additional (non standard) include search path include_dirs $(MAGNETICFIELDROOT)/MagneticField branches MagneticField doc src test 28 14
15 CMT: A modern example Requirements file provides custom language for expressing our needs package MagneticField author Laurent Chevalier <[email protected]> author Marc Virchaux <[email protected]> use AtlasPolicy v2r1 use CxxFeatures v2r1 Utilities use CLHEP v2r1 External Describes additional subdirectories (branches) specific to this package include_dirs $(MAGNETICFIELDROOT)/MagneticField branches MagneticField doc src test 29 CMT can reason from these Find inconsistencies Create the include options needed for compile and link Connect to the correct prebuilt parts Includes more information that makes CMT more powerful for users: Customization for new languages, or document generators Structural information specialized directory structure used packages links to external packages) Author(s), manager(s) The requirements file Make macros and environment variables and their possible values on various platforms, sites, environments Constituents Libraries Applications generated documents Definition of conventional behavioral patterns 30 15
16 Custom package structure: Describing a library apply_pattern default_no_share_linkopts library MagneticField -no_share \ AbstractMagneticField.cxx \ MagField.cxx \ MagFieldFor.cxx \ MagFieldGradient.cxx \ Tableau.cxx \ reamag.f \ thanatos.f Apply a pattern (defined in ATlasPolicy): Provide client packages with information needed to link with static library provided this package. 31 Custom package structure: Describing a library apply_pattern default_no_share_linkopts library MagneticField -no_share \ AbstractMagneticField.cxx \ MagField.cxx \ MagFieldFor.cxx \ MagFieldGradient.cxx \ Tableau.cxx \ reamag.f \ thanatos.f This describes a (static) library and all its source files. By default they are searched in../src The result will be libmagneticfield.a 32 16
17 Building a test program application test -check../test/main.cxx private macro data_file "/afs/cern.ch/atlas/offline/data/bmagatlas02.data macro test_pre_check "ln -s $(data_file) test.dat" macro test_check_args "test.dat" macro test_post_check "/bin/rm -f test.dat" macro test_dependencies MagneticField Create an application named test, with one source file run with the command > gmake check 33 Building a test program application test -check../test/main.cxx private macro data_file "/afs/cern.ch/atlas/offline/data/bmagatlas02.data macro test_pre_check "ln -s $(data_file) test.dat" macro test_check_args "test.dat" macro test_post_check "/bin/rm -f test.dat" macro test_dependencies MagneticField The following macro definitions are private to this package. Client packages do not inherit these
18 Building a test program application test -check../test/main.cxx private macro data_file "/afs/cern.ch/atlas/offline/data/bmagatlas02.data macro test_pre_check "ln -s $(data_file) test.dat" macro test_check_args "test.dat" macro test_post_check "/bin/rm -f test.dat" macro test_dependencies MagneticField Define data file to be used in the test procedure. 35 Building a test program application test -check../test/main.cxx private macro data_file "/afs/cern.ch/atlas/offline/data/bmagatlas02.data macro test_pre_check "ln -s $(data_file) test.dat" macro test_check_args "test.dat" macro test_post_check "/bin/rm -f test.dat" macro test_dependencies MagneticField These three standard make macros provide the parameters for the test procedure 36 18
19 Building a test program application test -check../test/main.cxx private macro data_file "/afs/cern.ch/atlas/offline/data/bmagatlas02.data macro test_pre_check "ln -s $(data_file) test.dat" macro test_check_args "test.dat" macro test_post_check "/bin/rm -f test.dat" macro test_dependencies MagneticField Assure that MagneticField target is always built before the test target. This is useful when using the -j option of gmake 37 How do you know what s compatible? Updated code might be fix, cause problems: Fix algorithmic bugs Add new capabilities Break interfaces Break assumptions Collaborations enforce conventions via package versioning V as triplet of major, minor, patch numbers Bigger is better, but might break other things Different major numbers mean they won t work together A larger minor number is backward-compatible with a smaller one Different patch numbers should work together (But larger is still better) CMT provides ways to ensure that requirements are met 38 Is that enough? 19
20 When Boeing wanted to design the 747, they had two choices: 1. Hire SuperEngineer, who could do it alone 2. Hire 7,200 engineers and organize them to cooperate Which did they choose? Why? What can we learn from this? 39 20
Evaluation of the CMT and SCRAM Software Configuration, Build and Release Management Tools
Evaluation of the CMT and SCRAM Software Configuration, Build and Release Management Tools Alex Undrus Brookhaven National Laboratory, USA (ATLAS) Ianna Osborne Northeastern University, Boston, USA (CMS)
CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)
Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source
Version Control with Subversion and Xcode
Version Control with Subversion and Xcode Author: Mark Szymczyk Last Update: June 21, 2006 This article shows you how to place your source code files under version control using Subversion and Xcode. By
Report of the LHC Computing Grid Project. Software Management Process RTAG CERN
Report of the LHC Computing Grid Project Software Management Process RTAG Marco Cattaneo, Gabriele Cosmo, Simon George, Fons Rademakers (chair), Stephan Wynhoff CERN 6 May 2002 Table of Contents 1 Chair
"Code management in multi programmer environments."
Another installment in the 'Computing in high energy physics' series (16 02 2004). "Code management in multi programmer environments." Author: D. Hatton (DESY/Hamburg) Table of Contents: 1. Overview 2.
Version Control with. Ben Morgan
Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove
Automated software packaging and installation for the ATLAS experiment
Automated software packaging and installation for the ATLAS experiment Simon George 1,*, Christian Arnault 2, Michael Gardner 1, Roger Jones 3, Saul Youssef 4 1 Department of Physics, Royal Holloway, University
using version control in system administration
LUKE KANIES using version control in system administration Luke Kanies runs Reductive Labs (http://reductivelabs.com), a startup producing OSS software for centralized, automated server administration.
Supported platforms & compilers Required software Where to download the packages Geant4 toolkit installation (release 9.6)
Supported platforms & compilers Required software Where to download the packages Geant4 toolkit installation (release 9.6) Configuring the environment manually Using CMake CLHEP full version installation
Content. Development Tools 2(63)
Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)
Source Code Management/Version Control
Date: 3 rd March 2005 Source Code Management/Version Control The Problem: In a typical software development environment, many developers will be engaged in work on one code base. If everyone was to be
Version Control! Scenarios, Working with Git!
Version Control! Scenarios, Working with Git!! Scenario 1! You finished the assignment at home! VC 2 Scenario 1b! You finished the assignment at home! You get to York to submit and realize you did not
BlueJ Teamwork Tutorial
BlueJ Teamwork Tutorial Version 2.0 for BlueJ Version 2.5.0 (and 2.2.x) Bruce Quig, Davin McCall School of Engineering & IT, Deakin University Contents 1 OVERVIEW... 3 2 SETTING UP A REPOSITORY... 3 3
Software Engineering Process. Kevin Cathey
Software Engineering Process Kevin Cathey Where are we going? Last Week iphone Application Technologies Workshop This Week Software Engineering Process Thanksgiving Break Write some code, yo 2 Dec Options:
Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab
Yocto Project Eclipse plug-in and Developer Tools Hands-on Lab Yocto Project Developer Day San Francisco, 2013 Jessica Zhang Introduction Welcome to the Yocto Project Eclipse plug-in
Mascot Search Results FAQ
Mascot Search Results FAQ 1 We had a presentation with this same title at our 2005 user meeting. So much has changed in the last 6 years that it seemed like a good idea to re-visit the topic. Just about
TIME. Programming in the large. Lecture 22: Configuration Management. Agenda for today. About your Future. CM: The short version. CM: The long version
1 2 Last update: 17 June 2004 Programming in the large Bertrand Meyer Lecture 22: Configuration Management Bernd Schoeller [email protected] Agenda for today 3 About your Future 4 Motivation
Xcode Project Management Guide. (Legacy)
Xcode Project Management Guide (Legacy) Contents Introduction 10 Organization of This Document 10 See Also 11 Part I: Project Organization 12 Overview of an Xcode Project 13 Components of an Xcode Project
Introduction to Software Development
C HAPTER 1 Introduction to Software Development S oftware development is a complicated process. It requires careful planning and execution to meet the goals. Sometimes a developer must react quickly and
Virtualization Reduces the Cost of Supporting Open Industrial Control Systems
Virtualization Reduces the Cost of Supporting Open Industrial Control Systems Virtualization Reduces the Cost of Supporting Open Industrial Control Systems ii Table of Contents Introduction... 1 What is
WHITE PAPER. VERITAS Bare Metal Restore AUTOMATED SYSTEM RECOVERY WITH VERITAS NETBACKUP
WHITE PAPER VERITAS Bare Metal Restore AUTOMATED SYSTEM RECOVERY WITH VERITAS NETBACKUP 1 INTRODUCTION...3 CURRENT METHODS FALL SHORT...3 THE REINSTALL-AND-RESTORE METHOD...3 Uncertain Recovery State...3
Version Control using Git and Github. Joseph Rivera
Version Control using Git and Github Joseph Rivera 1 What is Version Control? Powerful development tool! Management of additions, deletions, and modifications to software/source code or more generally
Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic
Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic The challenge When building distributed, large-scale applications, quality assurance (QA) gets increasingly
CSE 374 Programming Concepts & Tools. Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn
CSE 374 Programming Concepts & Tools Laura Campbell (Thanks to Hal Perkins) Winter 2014 Lecture 16 Version control and svn Where we are Learning tools and concepts relevant to multi-file, multi-person,
Documentation and Project Organization
Documentation and Project Organization Software Engineering Workshop, December 5-6, 2005 Jan Beutel ETH Zürich, Institut TIK December 5, 2005 Overview Project Organization Specification Bug tracking/milestones
ZCorum s Ask a Broadband Expert Series:
s Ask a Broadband Expert Series: The Advantages of Network Virtualization An Interview with Peter Olivia, Director of Systems Engineering ZCorum 1.800.909.9441 4501 North Point Parkway, Suite 125 Alpharetta,
Introducing Xcode Source Control
APPENDIX A Introducing Xcode Source Control What You ll Learn in This Appendix: u The source control features offered in Xcode u The language of source control systems u How to connect to remote Subversion
Developing Software in a Private workspace - 4.01 PM PMS
SBCH06.fm Page 67 Friday, October 4, 2002 4:01 PM 6 Private Workspace A government clerk s room, showing a desk with books, telephone and directory, and a desk lamp on it. Washington, D.C., 1939. Photo
Performance Monitoring of the Software Frameworks for LHC Experiments
Proceedings of the First EELA-2 Conference R. mayo et al. (Eds.) CIEMAT 2009 2009 The authors. All rights reserved Performance Monitoring of the Software Frameworks for LHC Experiments William A. Romero
MapGuide Open Source Repository Management Back up, restore, and recover your resource repository.
MapGuide Open Source Repository Management Back up, restore, and recover your resource repository. Page 1 of 5 Table of Contents 1. Introduction...3 2. Supporting Utility...3 3. Backup...4 3.1 Offline
citools Documentation
citools Documentation Release 0.1 Centrum Holdings September 20, 2015 Contents 1 On (continuous) versioning 3 2 Meta packages 5 3 (Django) web environment 7 4 Build process 9 5 Testing 11 6 Working with
DIGITAL STRATEGY 2014-2017
DIGITAL STRATEGY 2014-2017 Digital Strategy CONTENTS Introduction 1 Our Vision 3 Benefits 5 Our Digital Design Principles 6 Our Strategy 8 Our Key Enablers 11 INTRODUCTION SFRS uses digital technology
Cross platform Migration of SAS BI Environment: Tips and Tricks
ABSTRACT Cross platform Migration of SAS BI Environment: Tips and Tricks Amol Deshmukh, California ISO Corporation, Folsom, CA As a part of organization wide initiative to replace Solaris based UNIX servers
Software Configuration Management (SCM)
Software Configuration Management (SCM) SCM actually consists of several separate yet cumulative disciplines. Version Management is an entry point for SCM T M Abstract : Software Configuration Management
Software Delivery Integration and Source Code Management. for Suppliers
Software Delivery Integration and Source Code Management for Suppliers Document Information Author Version 1.0 Version Date 8/6/2012 Status final Approved by Reference not applicable Subversion_for_suppliers.doc
The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.
Installing the SDK This page describes how to install the Android SDK and set up your development environment for the first time. If you encounter any problems during installation, see the Troubleshooting
Practical Online Filesystem Checking and Repair
Practical Online Filesystem Checking and Repair Daniel Phillips Samsung Research America (Silicon Valley) [email protected] 1 2013 SAMSUNG Electronics Co. Why we want online checking: Fsck
Using Git for Project Management with µvision
MDK Version 5 Tutorial AN279, Spring 2015, V 1.0 Abstract Teamwork is the basis of many modern microcontroller development projects. Often teams are distributed all over the world and over various time
Data management on HPC platforms
Data management on HPC platforms Transferring data and handling code with Git scitas.epfl.ch September 10, 2015 http://bit.ly/1jkghz4 What kind of data Categorizing data to define a strategy Based on size?
SOFTWARE ENGINEERING OVERVIEW
SOFTWARE ENGINEERING OVERVIEW http://www.tutorialspoint.com/software_engineering/software_engineering_overview.htm Copyright tutorialspoint.com Let us first understand what software engineering stands
Collaborative and Agile Project Management
Collaborative and Agile Project Management The Essentials Series sponsored by Introduction to Realtime Publishers by Don Jones, Series Editor For several years now, Realtime has produced dozens and dozens
Version Control Systems
Version Control Systems ESA 2015/2016 Adam Belloum [email protected] Material Prepared by Eelco Schatborn Today IntroducGon to Version Control Systems Centralized Version Control Systems RCS CVS SVN
Continuous Integration: Aspects in Automation and Configuration Management
Context Continuous Integration: Aspects in and Configuration Management Christian Rehn TU Kaiserslautern January 9, 2012 1 / 34 Overview Context 1 Context 2 3 4 2 / 34 Questions Context How to do integration
1-04-10 Configuration Management: An Object-Based Method Barbara Dumas
1-04-10 Configuration Management: An Object-Based Method Barbara Dumas Payoff Configuration management (CM) helps an organization maintain an inventory of its software assets. In traditional CM systems,
Software Engineering I (02161)
Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2015 Last Week State machines Layered Architecture: GUI Layered Architecture: Persistency
Case Study: Access control 1 / 39
Case Study: Access control 1 / 39 Joint software development Mail 2 / 39 Situations Roles Permissions Why Enforce Access Controls? Classic Unix Setup ACL Setup Reviewer/Tester Access Medium-Size Group
Building and Using a Cross Development Tool Chain
Building and Using a Cross Development Tool Chain Robert Schiele [email protected] Abstract 1 Motivation 1.1 Unix Standard System Installations When building ready-to-run applications from source,
Software Configuration Management
Software Configuration Management 1 Software Configuration Management Four aspects Version control Automated build Change control Release Supported by tools Requires expertise and oversight More important
Delivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous Integration 01 02 03 04 Unit Check- Test Review In 05 06 07 Build Deploy Test In the following pages we will discuss the approach and systems that together make
Case Studies. Joint software development Mail 1 / 38. Case Studies Joint Software Development. Mailers
Joint software development Mail 1 / 38 Situations Roles Permissions Why Enforce Access Controls? Unix Setup Windows ACL Setup Reviewer/Tester Access Medium-Size Group Basic Structure Version Control Systems
Continuous Integration. CSC 440: Software Engineering Slide #1
Continuous Integration CSC 440: Software Engineering Slide #1 Topics 1. Continuous integration 2. Configuration management 3. Types of version control 1. None 2. Lock-Modify-Unlock 3. Copy-Modify-Merge
Gitflow process. Adapt Learning: Gitflow process. Document control
Adapt Learning: Gitflow process Document control Abstract: Presents Totara Social s design goals to ensure subsequent design and development meets the needs of end- users. Author: Fabien O Carroll, Sven
Software Configuration Management Best Practices for Continuous Integration
Software Configuration Management Best Practices for Continuous Integration As Agile software development methodologies become more common and mature, proven best practices in all phases of the software
Version Control. Luka Milovanov [email protected]
Version Control Luka Milovanov [email protected] Configuration Management Configuration management is the management of system change to software products Version management: consistent scheme of version
CS108, Stanford Handout #33. CVS in Eclipse
CS108, Stanford Handout #33 Winter, 2006-07 Nick Parlante CVS in Eclipse Source Control Any modern software project of any size uses "source control" Store all past revisions - Can see old versions, see
Change Management for Rational DOORS User s Guide
Change Management for Rational DOORS User s Guide Before using this information, read the general information under Appendix: Notices on page 58. This edition applies to Change Management for Rational
The Practical Organization of Automated Software Testing
The Practical Organization of Automated Software Testing Author: Herbert M. Isenberg Ph.D. Quality Assurance Architect Oacis Healthcare Systems PO Box 3178 Sausalito, CA. 94966 Type: Experience Report
2 Organizations and Organizational Structures 2.1 Functional and Project Organizations, Typical Goals and Performance Measures
2 Organizations and Organizational Structures 2.1 Functional and Project Organizations, Typical Goals and Performance Measures The history of organizations is probably as long as the history of mankind.
Effective Release Management for HPOM Monitoring
Whitepaper Effective Release Management for HPOM Monitoring Implementing high-quality ITIL-compliant release management processes for HPOM-based monitoring Content Overview... 3 Release Management... 4
Hypercosm. Studio. www.hypercosm.com
Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks
Surround SCM Best Practices
Surround SCM Best Practices This document addresses some of the common activities in Surround SCM and offers best practices for each. These best practices are designed with Surround SCM users in mind,
Software configuration management
Software Engineering Theory Software configuration management Lena Buffoni/ Kristian Sandahl Department of Computer and Information Science 2015-09-30 2 Maintenance Requirements System Design (Architecture,
Using Subversion in Computer Science
School of Computer Science 1 Using Subversion in Computer Science Last modified July 28, 2006 Starting from semester two, the School is adopting the increasingly popular SVN system for management of student
Xcode Source Management Guide. (Legacy)
Xcode Source Management Guide (Legacy) Contents Introduction 5 Organization of This Document 5 See Also 6 Source Management Overview 7 Source Control Essentials 7 Snapshots 8 Managing Source in Xcode 8
Putting It All Together. Vagrant Drush Version Control
Putting It All Together Vagrant Drush Version Control Vagrant Most Drupal developers now work on OSX. The Vagarant provisioning scripts may not work on Windows without subtle changes. If supplied, read
Continuous Integration with CruiseControl.Net
Continuous Integration with CruiseControl.Net Part 3 Paul Grenyer CruiseControl.Net One of the first rules of writing is to write about something you know about. With the exception of the user guide for
JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones
JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments George Bochenek Randy Jones Enterprise Development What is it? Source Control Project Organization Unit Testing Continuous
Maven or how to automate java builds, tests and version management with open source tools
Maven or how to automate java builds, tests and version management with open source tools Erik Putrycz Software Engineer, Apption Software [email protected] Outlook What is Maven Maven Concepts and
Subversion Integration for Visual Studio
Subversion Integration for Visual Studio VisualSVN Team VisualSVN: Subversion Integration for Visual Studio VisualSVN Team Copyright 2005-2008 VisualSVN Team Windows is a registered trademark of Microsoft
Code Estimation Tools Directions for a Services Engagement
Code Estimation Tools Directions for a Services Engagement Summary Black Duck software provides two tools to calculate size, number, and category of files in a code base. This information is necessary
CMPT 373 Software Development Methods. Building Software. Nick Sumner [email protected] Some materials from Shlomi Fish & Kitware
CMPT 373 Software Development Methods Building Software Nick Sumner [email protected] Some materials from Shlomi Fish & Kitware What does it mean to build software? How many of you know how to build software?
The Real Challenges of Configuration Management
The Real Challenges of Configuration Management McCabe & Associates Table of Contents The Real Challenges of CM 3 Introduction 3 Parallel Development 3 Maintaining Multiple Releases 3 Rapid Development
Version Control with Git. Linux Users Group UT Arlington. Rohit Rawat [email protected]
Version Control with Git Linux Users Group UT Arlington Rohit Rawat [email protected] Need for Version Control Better than manually storing backups of older versions Easier to keep everyone updated
5 barriers to database source control and how you can get around them
WHITEPAPER DATABASE CHANGE MANAGEMENT 5 barriers to database source control and how you can get around them 91% of Fortune 100 companies use Red Gate Content Introduction We have backups of our databases,
Version Control with Svn, Git and git-svn. Kate Hedstrom ARSC, UAF
1 Version Control with Svn, Git and git-svn Kate Hedstrom ARSC, UAF 2 Version Control Software System for managing source files For groups of people working on the same code When you need to get back last
Pragmatic Version Control
Extracted from: Pragmatic Version Control using Subversion, 2nd Edition This PDF file contains pages extracted from Pragmatic Version Control, one of the Pragmatic Starter Kit series of books for project
Java Language Tools COPYRIGHTED MATERIAL. Part 1. In this part...
Part 1 Java Language Tools This beginning, ground-level part presents reference information for setting up the Java development environment and for compiling and running Java programs. This includes downloading
CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011
CISC 275: Introduction to Software Engineering Lab 5: Introduction to Revision Control with Charlie Greenbacker University of Delaware Fall 2011 Overview Revision Control Systems in general Subversion
Creating a Java application using Perfect Developer and the Java Develo...
1 of 10 15/02/2010 17:41 Creating a Java application using Perfect Developer and the Java Development Kit Introduction Perfect Developer has the facility to execute pre- and post-build steps whenever the
An Introduction to Software Development Process and Collaborative Work
Organisational Aspects of Software Development Pedro Contreras Department of Computer Science Royal Holloway, University of London January 29, 2008 Introduction Creating software is a complex task. Organising
Getting Started with Kanban Paul Klipp
Getting Started with Kanban Paul Klipp kanbanery 2 Contents 3/ Getting Started with Kanban 4/ What is Kanban? 7/ Using Kanban Does kanban apply to me? How can it help me? What will I have to change? 10/
