Presentation is loading. Please wait.

Presentation is loading. Please wait.

University of Southern California Center for Systems and Software Engineering Configuration Management: Concepts and Tools Pongtip Aroonvatanaporn CSCI.

Similar presentations


Presentation on theme: "University of Southern California Center for Systems and Software Engineering Configuration Management: Concepts and Tools Pongtip Aroonvatanaporn CSCI."— Presentation transcript:

1 University of Southern California Center for Systems and Software Engineering Configuration Management: Concepts and Tools Pongtip Aroonvatanaporn CSCI 577b Spring 2012 January 18, 2011 1/18/20121© USC-CSSE

2 University of Southern California Center for Systems and Software Engineering Outline Motivation Definition of CM Concepts in CM User Roles Issues for Users CM Tools Subversion Basics Best Practices 1/18/20122© USC-CSSE

3 University of Southern California Center for Systems and Software Engineering Motivation Use of good configuration management practice Used by most organizations in the industry Avoid rework –Version tracking –Logs –Revert –Conflicts and merge Maintainability Transition 1/18/20123© USC-CSSE

4 University of Southern California Center for Systems and Software Engineering Outline Motivation Definition of CM Concepts in CM User Roles Issues for Users CM Tools Subversion Basics Best Practices 1/18/20124© USC-CSSE

5 University of Southern California Center for Systems and Software Engineering Definition of CM Identification –Structure of the product –Identifies components and their types Control –Controlling releases and changes through product lifecycle Status accounting –Recording and reporting the status Audit and review –Product completeness validation Just these functionalities alone are not enough for modern day support 1/18/20125© USC-CSSE

6 University of Southern California Center for Systems and Software Engineering More Definition of CM Manufacture –Optimally manage construction and building Process management –Enforce the organization policies, procedures, and lifecycle models Team work –Support for work and interaction among multiple users Most modern CM systems/tools support majority of mentioned functionalities 1/18/20126© USC-CSSE

7 University of Southern California Center for Systems and Software Engineering Outline Motivation Definition of CM Concepts in CM User Roles Issues for Users CM Tools Subversion Basics Best Practices 1/18/20127© USC-CSSE

8 University of Southern California Center for Systems and Software Engineering Functionality Requirements * Image taken from [1] 1/18/20128© USC-CSSE Core set of functionalities viewed by most developers as a CM system

9 University of Southern California Center for Systems and Software Engineering CM System? What constitutes a CM system? –A system with version control? –Does it need to include all mentioned features? To software engineers, a CM includes: –Version control –Configuration identification –System structuring –System modelling 1/18/20129© USC-CSSE

10 University of Southern California Center for Systems and Software Engineering System vs. Tool CM system –Part of the development environment –Sold as part of the package CM tool –Stand-alone package 1/18/201210© USC-CSSE

11 University of Southern California Center for Systems and Software Engineering Outline Motivation Definition of CM Concepts in CM User Roles Issues for Users CM Tools Subversion Basics Best Practices 1/18/201211© USC-CSSE

12 University of Southern California Center for Systems and Software Engineering CM Users Project manager Configuration manager Software engineers Tester QA manager Customers 1/18/201212© USC-CSSE

13 University of Southern California Center for Systems and Software Engineering Project Manager Goal –To ensure product is developed within the timeframe Monitors the progress Detects and reacts to problems Review the system –Generate reports –Analyze data 1/18/201213© USC-CSSE

14 University of Southern California Center for Systems and Software Engineering Configuration Manager Goal –Ensure that procedures and policies are enforced Develop policies for creating, changing, and testing code Authorize changes and change requests Collects statistics about project components –Which components are problematic 1/18/201214© USC-CSSE

15 University of Southern California Center for Systems and Software Engineering Software Engineers Goal –Work effectively without the need to interfere with each other Use CM tool to help build consistent product Check in/Check out code Changes are propagated to other workspaces –Codes are merged and conflicts resolved Create baselines of code and builds 1/18/201215© USC-CSSE

16 University of Southern California Center for Systems and Software Engineering Tester Goal –All product is tested Test certain versions of the product File bug reports and change requests 1/18/201216© USC-CSSE

17 University of Southern California Center for Systems and Software Engineering QA Manager Goal –Ensure high quality product Review and approve procedures and policies Ensure critical bugs are fixed Follow up on customer complaints and requests 1/18/201217© USC-CSSE

18 University of Southern California Center for Systems and Software Engineering Customers Goal –Use the product Customers use different product versions and variants File feature and change requests Following procedures and policies for filing ruquests 1/18/201218© USC-CSSE

19 University of Southern California Center for Systems and Software Engineering Outline Motivation Definition of CM Concepts in CM User Roles Issues for Users CM Tools Subversion Basics Best Practices 1/18/201219© USC-CSSE

20 University of Southern California Center for Systems and Software Engineering Issues for Users User roles Integration When to start using CM Control Level Process and product Automation Functionality 1/18/201220© USC-CSSE

21 University of Southern California Center for Systems and Software Engineering When to start using CM? Depends on the procedures and policies Need to define the goal of CM –Quality of product –Effectiveness of collaboration –Efficiency –Tracking Look at the team size Distribution of tasks and components –Also separations between them 1/18/201221© USC-CSSE

22 University of Southern California Center for Systems and Software Engineering Scenario 1: End Start CM at the end of project lifecycle When to do this: –High overhead in CM –A lot of manual tasks –Complicated procedures and process Used for: –Mainly maintenance –Feature requests –File bugs and change requests Collaboration between customers and developers 1/18/201222© USC-CSSE

23 University of Southern California Center for Systems and Software Engineering Scenario 2: Beginning At beginning of project lifecycle When to do this: –Low overhead –A lot of automated tasks Used for: –Creation –Development –Product release –Delivery –Maintenance* Constant collaboration among all stakeholders 1/18/201223© USC-CSSE

24 University of Southern California Center for Systems and Software Engineering Process vs. Product Process –Plans to carry out CM –List of procedures and tasks defining the activities needed –How CM is carried out –What policies are employed and used Product –Result of the process 1/18/201224© USC-CSSE

25 University of Southern California Center for Systems and Software Engineering Automation More automation = higher efficiency Less overhead Try to automate the process as much as possible –Online system/process –Distributed tasks to file requests 1/18/201225© USC-CSSE

26 University of Southern California Center for Systems and Software Engineering Outline Motivation Definition of CM Concepts in CM User Roles Issues for Users CM Tools Subversion Basics Best Practices 1/18/201226© USC-CSSE

27 University of Southern California Center for Systems and Software Engineering CM Tools Different tools have different focuses Majority do not support all functionalities Most focus on version control 1/18/201227© USC-CSSE

28 University of Southern California Center for Systems and Software Engineering Subversion CVS with added features –Uses relational DB –Faster performance –Supports all file types Available for many platforms Easy to set up Has tools with UI support Good internal structure –Opportunities for future improvements 1/18/201228© USC-CSSE

29 University of Southern California Center for Systems and Software Engineering Subversion Features focus on version control functionality Supports control and tracking No support for process related features Integrates with major IDEs Lightweight and easy to learn 1/18/201229© USC-CSSE

30 University of Southern California Center for Systems and Software Engineering Subversion * Image taken from [1] 1/18/201230© USC-CSSE

31 University of Southern California Center for Systems and Software Engineering Bugzilla Bug tracking and change requests No support for version control and process 1/18/201231© USC-CSSE

32 University of Southern California Center for Systems and Software Engineering Bugzilla * Image taken from [1] 1/18/201232© USC-CSSE

33 University of Southern California Center for Systems and Software Engineering Rational Team Concert IBM’s attempt to support majority of requirements Supports both version control and process functionalities Much more powerful than Subversion Integrates with Eclipse and Visual Studio 1/18/201233© USC-CSSE

34 University of Southern California Center for Systems and Software Engineering Rational Team Concert Features: –Planning –Task distribution –Process deployment –Source versioning and control –Team collaboration –History tracking and reporting 1/18/201234© USC-CSSE

35 University of Southern California Center for Systems and Software Engineering Rational Team Concert * Image taken from [1] 1/18/201235© USC-CSSE

36 University of Southern California Center for Systems and Software Engineering Outline Motivation Definition of CM Concepts in CM User Roles Issues for Users CM Tools Subversion Basics Best Practices 1/18/201236© USC-CSSE

37 University of Southern California Center for Systems and Software Engineering Subversion Basics 1/18/201237© USC-CSSE

38 University of Southern California Center for Systems and Software Engineering Subversion Download Tortoise SVN –http://tortoisesvn.net/downloadshttp://tortoisesvn.net/downloads Eclipse Plug-in –Subclipse (recommended) Eclipse Update Site –Subversive Part of Eclipse Update Site -> Collaboration Tools Need SVN Connector –http://www.polarion.org/projects/subversive/download/ eclipse/2.0/ganymede-site/ 1/18/201238© USC-CSSE

39 University of Southern California Center for Systems and Software Engineering Initial Check Out (Tortoise) Create directory on computer to download to SVN Checkout… 1/18/201239© USC-CSSE

40 University of Southern California Center for Systems and Software Engineering Initial Check Out (Eclipse) Open SVN Repository perspective Add SVN Repository URL Right click the repository and select “Check Out” 1/18/201240© USC-CSSE

41 University of Southern California Center for Systems and Software Engineering Repo-Browser Repository browser 1/18/201241© USC-CSSE

42 University of Southern California Center for Systems and Software Engineering Update vs. Commit SVN Update –Updates the working copy with the latest version in repository –Merges the version in repository with working copy SVN Commit –Modifies the version in the repository –Merges the working copy with the repository 1/18/201242© USC-CSSE

43 University of Southern California Center for Systems and Software Engineering Adding/Deleting File SVN Add –Create file in the working directory –Right click on file and choose “Add…” Add single files to the repository OR –Right click on the working directory and choose “SVN Commit” Add all files/Changes to the repository SVN Delete –Deletes locally until committed 1/18/201243© USC-CSSE

44 University of Southern California Center for Systems and Software Engineering Other Basic Features Revert –Reverts all changes of the working copy to the version since last commit Get Lock –Locks the file so that it is only accessible by you Release Lock –Releases the file to make it accessible to others again View Difference (Diff) –View differences between working copy and the repository 1/18/201244© USC-CSSE

45 University of Southern California Center for Systems and Software Engineering Conflict Resolution File is simultaneously modified by multiple users 3 Files created –Mine, OLDREV, NEWREV The “TortoiseMerge” window SVN Resolved 1/18/201245© USC-CSSE

46 University of Southern California Center for Systems and Software Engineering Advanced Features Refer to the user manual for more advanced features –Branch/tag –Revision graph –Relocate –Export 1/18/201246© USC-CSSE

47 University of Southern California Center for Systems and Software Engineering Outline Motivation Definition of CM Concepts in CM User Roles Issues for Users CM Tools Subversion Basics Best Practices 1/18/201247© USC-CSSE

48 University of Southern California Center for Systems and Software Engineering Best Practices “A tool is only as good as you use it” [2] 1/18/201248© USC-CSSE

49 University of Southern California Center for Systems and Software Engineering Workspaces Don’t share workspaces Don’t work outside of managed workspaces Stay in sync Check in often [2] 1/18/201249© USC-CSSE

50 University of Southern California Center for Systems and Software Engineering Codelines Give each codeline a policy Give each codeline an owner Have a mainline [2] 1/18/201250© USC-CSSE

51 University of Southern California Center for Systems and Software Engineering Branches Branch only when necessary Branch on incompatible policy Branch late Branch instead of freeze [2] 1/18/201251© USC-CSSE

52 University of Southern California Center for Systems and Software Engineering Change Propagation Make original changes in the branch that has evolved the least Propagate early and often Get the right person to do the merge [2] 1/18/201252© USC-CSSE

53 University of Southern California Center for Systems and Software Engineering Builds Check in all original source Use common build tools Build often Keep build logs and build outputs [2] 1/18/201253© USC-CSSE

54 University of Southern California Center for Systems and Software Engineering Process Track change packages Track propagation Give everything an owner Use living documents [2] 1/18/201254© USC-CSSE

55 University of Southern California Center for Systems and Software Engineering Microsoft Secrets Strategy: Focus creativity by evolving features and “fixing” resources. 1/18/2012© USC-CSSE55

56 University of Southern California Center for Systems and Software Engineering 5 Principles for Projects Divide large projects into multiple milestone cycles with buffers –No separate product maintenance Use a vision statement and outline specification of features projects Base feature selection and prioritization on user activities and data Evolve a modular and horizontal design architecture –Which the product structure mirrored in the project structure Control by individual commitments to small tasks and “fixed” project resources. 1/18/2012© USC-CSSE56

57 University of Southern California Center for Systems and Software Engineering Product Life-Cycle Development needs to be flexible –But structured Move forward as quickly as possible State-of-the-art engineering methods or tools are of secondary importance In slower markets, specifications maybe be “frozen” along with schedule before actual development Everything is done in parallel –As soon as specs definition starts, then everything else starts to be refined –No stopping 1/18/2012© USC-CSSE57

58 University of Southern California Center for Systems and Software Engineering 5 Principles for Development Work in parallel, but “synch up” and debug daily Always have a product you can theoretically ship –With versions for every major platform and market Speak a common language on a single development site Continuously test the product Use metric data to determine milestone completion and product release. 1/18/2012© USC-CSSE58

59 University of Southern California Center for Systems and Software Engineering Questions? 1/18/201259© USC-CSSE

60 University of Southern California Center for Systems and Software Engineering References [1] Susan Dart. Concepts in Configuration Management. [2] High-level Best Practices in Software Configuration Management. 1/18/201260© USC-CSSE


Download ppt "University of Southern California Center for Systems and Software Engineering Configuration Management: Concepts and Tools Pongtip Aroonvatanaporn CSCI."

Similar presentations


Ads by Google