SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
Configuration and build
management of Product
line development
Steve Kim (Sungchul Kim)
Principal Engineer
Samsung SDS
( sungchul3.kim@samsung.com )
AGENDA


   Product-line development
   •  Definition
   •  Considerations

   Usage models
   •  Depot structure
   •  Branch Strategy
   •  Baseline Strategy
   •  Integration with defect tracking tools & process
   •  Build and Release

   Demo
Ch1. Product line development
Introduction


Enhance the efficiency of SW development when multiple
products are to be developed simultaneously
 •    Higher productivity
 •    Higher quality
 •    Faster time to market
 •    Lower labor needs

Many methods and practices are introduced
 •  S/W Reuse
 •  Component-based development
 •  Product line engineering ( Product family engineering )
Introduction


Variation management is a key element to distinguish
the other development process
 •  Reusable S/W Architecture
 •  Separated teams and responsibilities
 •  The governance enforcing S/W reused

The usage model of configuration and build management on
product line development will be introduced
 •  Code structure
 •  Branch strategy
 •  Label strategy
 •  Change management
 •  Build and Release management
Definition


 Definition of Product-line development
   •  A set of related products are produced through the combination
      of reused core assets together with product specific custom
      assets
[ Adapted from “General configuration management and asset evolution model for software product line”, Softwareproductlines.com ] 	
                                                          Artifacts under configuration management

                                                Core Assets
                                              Core Asset
                                               Core Asset
   Software Architecture                        Core Asset
                                                                        Composed
                                            Teams for Core Assets


                               mapping
                                             Team A   TeamB   TeamC                Production

                                              Custom Assets
                                                 Custom
                                                  Custom
                                                   Custom
                                                  Asset                                               Product Instances
                                                   Asset
                                                    Asset
                                            Teams for Custom Assets
Definition
               [ A Configuration Management Model for Software Product Line, Liguo Yu and Srini Ramaswamy, 2006 	
                                                                                                                 ]


    Terms                                                  Definition
  Component         The basic unit for configuration management
                    A collection of components. An asset may contain one or
    Asset
                    more components
                    Contains a set of domain specific but application independent
  Core Asset        components that can be adapted and reused in various
                    related products.
 Custom asset       Contains a set of application specific components
                    A collection of core assets and custom assets.
   Product
                    Products share the same or similar core assets.

                    After a new product is produced, it may also need to be
   Product
                    configuration managed. The product under configuration
   instance
                    management is called product instance.
Definition


Variation management for Software Product-line
  •  Variation in time and space
  •  Divided into nine smaller issues and suggest the solution for each issue

                                          [ Nine Sub-problems of Variation management, Charles W. Krueger 	
                                                                                                           ]

            Variation
            Type        Sequential Time           Parallel Time                  Domain Space
 Granularity

                        Basic Configuration Management
        Files                Version                 Branch                        Variation Point
                           Management              Management                       Management

                                                    Branched
                            Baseline                                               Customization
   Components              Management
                                                    Baseline
                                                                                    Management
                                                   Management

                                                    Branched                       Customization
                           Composition
     Products              Management
                                                   Composition                      Composition
                                                   Management                       Management

                        Component Composition                             Software Mass Customization
Ch2. Usage model of
configuration and build
management
Considerations


Considerations when you implement the usage model

 •  The code structure of repository to manage both a common assets
    and variant assets
 •  Branch strategy for enforcing the development process
 •  Baseline strategy for tagging each asset and a whole product
 •  Integration with defect tracking tools
 •  Daily Build and Release process
Depot Structure


Depot Structure can be considered by the followings
  •  SW architecture
  •  The structure of the development team ( Single vs Multiple teams )
  •  The access control policy

 Software Architecture                   Depot Structure
                                                                                      Workspace
                                          Depot
                                           Branch/Directory
                                           Branch/Directory
                           Manage            Component A
                                                Directory          Composed
                         the change
                                          Depot                       by
                             on
                                           Branch/Directory
                                           Branch/Directory
                                             Component B
                                                Directory


                                  •  Each depot holds one asset
                                  •  One depot holds all assets
                                  •  One depot holds multiple assets by the characteristics of assets
Depot Structure


Each asset is coded and then released by a team. All code of an
asset are managed by a project.
 •  A management unit to control all activities related to an asset
 •  Using naming rules, you can distinguish a directory from a branch
    ( “PRJ_”, “[ ] “ )
 •  Grouping related projects with directory can be used



                         Depot holds several projects in which the code
                         for assets are managed 	


                         Directory can be used to group the related projects
                          - Year, Organization unit ( HQ, Oversea labs )
Depot Structure


Additional data is also needed to maintain a Project.
 •  Project data including Name, Description, Depot path
 •  Branches and the hierarchy of branches which belong to a project
 •  The administrators of each project. They are in charge of
    assigning new developers and making a baseline
    for releasing an asset
 •  The policy which controls integrating flow and locks the branches
 •  Sometimes, the protection table of each project can also be
 managed

These can be stored in a depot or other storage such as a
database
Code-line (Branch) Strategy

Sophisticated Code-line strategy is required
  •  The size of team is getting bigger
  •  The quality requirement of assets is getting higher

The quality requirement of assets
  •  Core Assets is higher than Custom assets

                                 [Project name]                      § The changes gathered from the lower branches
                                                                        are built with the other assets
              Stable                Mainline                         § Test activities are performed
                                                                     § Release baseline is tagged
                                               Integrate
                                                                     § The changes gathered from the lower branches
Maturity of                            Sub-Code-line                    are reviewed and integrated
the code               Rebased                                       § If the members of a team are small, it can be
                                               Integrate                optional

                                            Developer’s Code-lines   § The codes are submitted with linking jobs
                          Rebased
                                                                     § The changelists are integrated into the upper
          Unstable                                                    branch
Branch Strategy

 Sparse branching is a good solution to avoid integrating
 the files which are not changed in the developer’s branch


                2                                              3     Rebase the
                                                                     changes into
  Integrate                                                          Dev-One
  Dev-One to
  Mainline
                                                                     - Refer to KB #1166


                                                           1

                                                           Only Module 1 is
                                                           branched



[ View spec using Sparse branching ] - Refer to KB #890


  //Core_Assets/PRJ_Core_Asset/Mainline/…                          //wk/Core_Asset1/..."
  +//Core_Assets/PRJ_Core_Asset/Dev_One/ComponentA/Module1/... //wk/Core_Asset1/Module1/...
Branch Strategy

Policies to govern the activities of a project are controlled
 •  Submitting : ( P4 Trigger )
     - Linked with at least one job ( Activity based change management )
 •  Integrating : ( P4 Broker )
     - The status of jobs linked with changelists is verified
     - Rebase the integrated codes from the target branch before integrating
     - The integrating flow is controlled ( refer to the below tables )

                                              O : Allowed, X : Disallowed,   : Configured depends on each project

   1. Inner project	
                               2. Between the projects	

   From/To    DEV       Sub-INT   INT   REL           From/To       DEV       Sub-INT       INT

    DEV                   O       X      X              DEV           X           X           X

   Sub-INT     O          X       O      X            Sub-INT         X           X           X

     INT       X          O        -    O               INT           X

    REL        X          X       X      -
Label Strategy

Two types of Baseline will be used
•  Baseline : Attached to each asset when the code of the asset
 is released
 The use of naming rules to indicate the maturity level of
code is very useful
è _INT, _REL

•  Composite Baseline : A set of Baselines to reproduce all files
                         which compose a product
   - Keeps the labels of assets composing a product
   - Easily synchronizes all files of a product with a client workspace
 for developers who don’t know the combination of baselinesand
assets
   - Can also include composite baselines recursively
Label Strategy


                                                                          Include
       Composite                Include           Composite
                                                                                    Baseline of Asset A1
  Baseline of Product A                    Baseline of Asset Group A

                                                                                    Baseline of Asset A2
                                              Baseline of Asset C1

                                              Baseline of Asset C2

                                              Baseline of Asset P1




   Number       Project Name         Stream Name                     Depot Path                Label Name

     1         Core Asset C1               INT            //Core Asset_C/Project_C1/INT      C1_0420_Release

     2         Core Asset C2               INT            //Core Asset_C/Project_C2/INT      C2_0419_Release

     3        Custom Asset P1             Sub-INT      //CustomAsset_P/Project_P1/Sub-INT    P1_0420_Release

     4          Core Asset A1              INT            //Core Asset_A/Project_A1/INT      A1_0419_Release

     5          Core Asset A2              INT            //Core Asset_A/Project_A2/INT      A2_0419_Release
Integrating with the defect tracking tools

Change based modification should be enforced
  •  All work items such as Change Requests and Defect can be
     synchronized through Jobs in Perforce
  •  Synchronizing can be considered as one-way or two-way
     - One-way : Defect tracking tool can only change the job status
     - Two-way : Both Perforce and the Defect tracking tool can change
                  the job status
  •  The policy to verify the job status and whether it can be promoted
     - P4 broker can be a candidate to implement those policies
Integrating with the defect tracking tools


    Perforce                                            Defect Tracking Tool
                          Bidirectional Synchronizing
        Job                                                 DEFECT (CR,…)         Release Note


                              One-way Synchronizing
     Changelist                                               p4Change


                       File




                                     Sync.Gateway

      Server1 :1666
                                          Database




                                                                   <ClearQuest>
       Server2 :1666
    <Perforce>
Access control

On each asset (project), It’s own access control mechanism
is also required
  •  Set access control on each code-line by groups
  •  Freeze some code-lines during integrating and building. But,
   exceptional users can be allowed

                        Project                                      •  Default group and member is set,
  Create Group and                            Default Group
                        (Asset)	
                                      when a project is created	
  Assign developers

                                             Additional Groups
                                            Additional Groups                       •  Create a group, assign/release
                                            Additional Groups
                                                                       Project        developers on groups	
                                                                     administrator 	




Manage access control   No   Access Level     User/Group      Name                 Host   Path
  Table of a project
                        1    write            group           Default group         	
    //Depot/[Core_Prj]/...

                        2    read             group           Additional Group      	
    //Depot/[Core_Prj]/Mainline/CompA/…
Build and Release strategy

More complex than conventional development
 •  The difficulty is the combination of the right versions of the right assets
     - Every asset is changed continually
     - Each team has different rules when managing stable code
 •  Core assets should be released frequently and these also should
    be testified on all products
    - Building and testing on all products requires time and effort
 •  Miscommunication among the development teams
    - Major changes such as interface changes lack notification
    - The time when applying the change of asset can be disordered
Build and Release strategy

The followings should be clearly defined :
 •  All products should be built with the same rules how to combine
    the assets
 •  Daily builds on all products should be run, and the results of
    daily builds also are shared with all developers by indicating
    which assets were failed
 •  Periodically, the causes of the build error are analyzed and
    improved
Build and Release strategy

Daily Builds and release process can be depicted as the below
                                                                      Release Core
                 Daily Build                                                             Release Products
                                                                         Assets

                                                                                           Get the released
                                                          Success	
                          Core Assets
                   Daily Build              Build                       Runs Tests
                 ( All models )             Result
                                                 	
 Developer’s
   Builds                                                                                    Build & Test
                                                 Fail	
                                                                      Release the Core
 Integration                                                            assets with
    Builds                              Fix the error                     Baseline             Release


                                         Run builds



               Build management                                         Core Assets             Product’s
                     System                                               Builders              Builders




  Run the CI   Run the daily      Indentify and fix the
    builds        builds              daily builds
Build and Release strategy

The following features can be supported by build automation tool
 •  Synchronize
   - the latest label of each asset
   - the latest composite baseline of a product
   - the specific label/changelist of each asset
 •  Make a baseline
   - each asset
   - a composite baseline of a product
 •  Integrate codes into the upper branch and make a baseline
   after the build was completed successfully
   - Builds è Unit Test è Integrate Codes è Make a baseline
   - Automatically generates the release notes of each asset
      with P4 jobs which gathered from the defect tracking tools

Mais conteúdo relacionado

Mais procurados

Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...
Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...
Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...
Nesma
 
mcAMDOIS - CAPI
mcAMDOIS - CAPImcAMDOIS - CAPI
mcAMDOIS - CAPI
mcAMDOIS
 
How to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyHow to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindsey
IBM
 
Rules, Rules, Rules: Proactively Automate Management of the Service Infrastru...
Rules, Rules, Rules: Proactively Automate Management of the Service Infrastru...Rules, Rules, Rules: Proactively Automate Management of the Service Infrastru...
Rules, Rules, Rules: Proactively Automate Management of the Service Infrastru...
Novell
 
Checking the health of your active directory enviornment
Checking the health of your active directory enviornmentChecking the health of your active directory enviornment
Checking the health of your active directory enviornment
Spiffy
 
Design Management with RSA 8.5: Effective Collaboration for Better Design
Design Management with RSA 8.5: Effective Collaboration for Better DesignDesign Management with RSA 8.5: Effective Collaboration for Better Design
Design Management with RSA 8.5: Effective Collaboration for Better Design
Roger Snook
 
Mohamad Afshar Moving Beyond Project Level S O A V1
Mohamad  Afshar    Moving Beyond Project Level S O A V1Mohamad  Afshar    Moving Beyond Project Level S O A V1
Mohamad Afshar Moving Beyond Project Level S O A V1
SOA Symposium
 

Mais procurados (20)

Value Reference Model - Information and Knowledge Mgt
Value Reference Model - Information and Knowledge MgtValue Reference Model - Information and Knowledge Mgt
Value Reference Model - Information and Knowledge Mgt
 
Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...
Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...
Estimating packaged software - Eric van der Vliet - NESMA najaarsbijeenkomst ...
 
IT and Business Alignment - Mapping the Physical, Virtual and Business Worlds
IT and Business Alignment - Mapping the Physical, Virtual and Business WorldsIT and Business Alignment - Mapping the Physical, Virtual and Business Worlds
IT and Business Alignment - Mapping the Physical, Virtual and Business Worlds
 
Tivoli Live - what's in it for you?
Tivoli Live - what's in it for you?Tivoli Live - what's in it for you?
Tivoli Live - what's in it for you?
 
Cics Explorer April 2009
Cics Explorer April 2009Cics Explorer April 2009
Cics Explorer April 2009
 
Estimating Packaged Software - The first part of a framework
Estimating Packaged Software - The first part of a frameworkEstimating Packaged Software - The first part of a framework
Estimating Packaged Software - The first part of a framework
 
mcAMDOIS - CAPI
mcAMDOIS - CAPImcAMDOIS - CAPI
mcAMDOIS - CAPI
 
System Center And Sql Server
System Center And Sql Server System Center And Sql Server
System Center And Sql Server
 
Cloud Computing and ROI
Cloud Computing and ROICloud Computing and ROI
Cloud Computing and ROI
 
OpenStack storage new and upcoming from IBM Research
OpenStack storage   new and upcoming from IBM ResearchOpenStack storage   new and upcoming from IBM Research
OpenStack storage new and upcoming from IBM Research
 
How to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyHow to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindsey
 
Rules, Rules, Rules: Proactively Automate Management of the Service Infrastru...
Rules, Rules, Rules: Proactively Automate Management of the Service Infrastru...Rules, Rules, Rules: Proactively Automate Management of the Service Infrastru...
Rules, Rules, Rules: Proactively Automate Management of the Service Infrastru...
 
Scug nov system center day
Scug nov system center dayScug nov system center day
Scug nov system center day
 
Change Manager Datasheet | Database Change Management
Change Manager Datasheet | Database Change ManagementChange Manager Datasheet | Database Change Management
Change Manager Datasheet | Database Change Management
 
Checking the health of your active directory enviornment
Checking the health of your active directory enviornmentChecking the health of your active directory enviornment
Checking the health of your active directory enviornment
 
TERMINALFOUR t44u 2012 - Product roadmap
TERMINALFOUR t44u 2012 - Product roadmapTERMINALFOUR t44u 2012 - Product roadmap
TERMINALFOUR t44u 2012 - Product roadmap
 
Optimize your infrastructure with IBM Virtualization Solutions
Optimize your infrastructure with IBM Virtualization SolutionsOptimize your infrastructure with IBM Virtualization Solutions
Optimize your infrastructure with IBM Virtualization Solutions
 
Master Epm
Master EpmMaster Epm
Master Epm
 
Design Management with RSA 8.5: Effective Collaboration for Better Design
Design Management with RSA 8.5: Effective Collaboration for Better DesignDesign Management with RSA 8.5: Effective Collaboration for Better Design
Design Management with RSA 8.5: Effective Collaboration for Better Design
 
Mohamad Afshar Moving Beyond Project Level S O A V1
Mohamad  Afshar    Moving Beyond Project Level S O A V1Mohamad  Afshar    Moving Beyond Project Level S O A V1
Mohamad Afshar Moving Beyond Project Level S O A V1
 

Semelhante a Configuration and Build Management of Product Line Development with Perforce

Microsoft sccm 2012 seminar ddls sydney 22 nov 2012
Microsoft sccm 2012 seminar   ddls sydney 22 nov 2012Microsoft sccm 2012 seminar   ddls sydney 22 nov 2012
Microsoft sccm 2012 seminar ddls sydney 22 nov 2012
DDLS
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini Patil
Roopa Nadkarni
 
What next in the agile world - Alan Shalloway
What next in the agile world - Alan ShallowayWhat next in the agile world - Alan Shalloway
What next in the agile world - Alan Shalloway
AGILEMinds
 
Vault Manufacturing 2010 Whats New
Vault Manufacturing 2010 Whats NewVault Manufacturing 2010 Whats New
Vault Manufacturing 2010 Whats New
Mike Grant
 
Vault 2011 Family Comparison Matrix Us
Vault 2011 Family Comparison Matrix UsVault 2011 Family Comparison Matrix Us
Vault 2011 Family Comparison Matrix Us
Applied Engineering
 
software configuration management
software configuration managementsoftware configuration management
software configuration management
Fáber D. Giraldo
 
CASE tools_Se lect15 btech
CASE tools_Se lect15 btechCASE tools_Se lect15 btech
CASE tools_Se lect15 btech
IIITA
 
Configurando Private Cloud con System Center 2012
Configurando Private Cloud con System Center 2012Configurando Private Cloud con System Center 2012
Configurando Private Cloud con System Center 2012
Juanchi_43
 

Semelhante a Configuration and Build Management of Product Line Development with Perforce (20)

Microsoft sccm 2012 seminar ddls sydney 22 nov 2012
Microsoft sccm 2012 seminar   ddls sydney 22 nov 2012Microsoft sccm 2012 seminar   ddls sydney 22 nov 2012
Microsoft sccm 2012 seminar ddls sydney 22 nov 2012
 
EBS and PDH, a comparision
EBS and PDH, a comparisionEBS and PDH, a comparision
EBS and PDH, a comparision
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini Patil
 
What next in the agile world - Alan Shalloway
What next in the agile world - Alan ShallowayWhat next in the agile world - Alan Shalloway
What next in the agile world - Alan Shalloway
 
Verdens bedste BPM-platform leveret som cloud, Christian A. Givskov, IBM
Verdens bedste BPM-platform leveret som cloud, Christian A. Givskov, IBMVerdens bedste BPM-platform leveret som cloud, Christian A. Givskov, IBM
Verdens bedste BPM-platform leveret som cloud, Christian A. Givskov, IBM
 
IBM Rational Software Conference 2009 Day 2 Keynote: Al Zollar
IBM Rational Software Conference 2009 Day 2 Keynote: Al ZollarIBM Rational Software Conference 2009 Day 2 Keynote: Al Zollar
IBM Rational Software Conference 2009 Day 2 Keynote: Al Zollar
 
6 chap
6 chap6 chap
6 chap
 
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud InfrastructurePrivate Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
 
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
 
CloudStack Intro NYC
CloudStack Intro NYCCloudStack Intro NYC
CloudStack Intro NYC
 
10 Minute Overview of Apache CloudStack
10 Minute Overview of Apache CloudStack10 Minute Overview of Apache CloudStack
10 Minute Overview of Apache CloudStack
 
Vault Manufacturing 2010 Whats New
Vault Manufacturing 2010 Whats NewVault Manufacturing 2010 Whats New
Vault Manufacturing 2010 Whats New
 
Oracle Data Warehouse
Oracle Data WarehouseOracle Data Warehouse
Oracle Data Warehouse
 
Oracle Warehouse
Oracle WarehouseOracle Warehouse
Oracle Warehouse
 
Vault 2011 Family Comparison Matrix Us
Vault 2011 Family Comparison Matrix UsVault 2011 Family Comparison Matrix Us
Vault 2011 Family Comparison Matrix Us
 
Ibm rational-eclipse-demo camp-2012-06
Ibm rational-eclipse-demo camp-2012-06Ibm rational-eclipse-demo camp-2012-06
Ibm rational-eclipse-demo camp-2012-06
 
software configuration management
software configuration managementsoftware configuration management
software configuration management
 
CASE tools_Se lect15 btech
CASE tools_Se lect15 btechCASE tools_Se lect15 btech
CASE tools_Se lect15 btech
 
Was liberty
Was libertyWas liberty
Was liberty
 
Configurando Private Cloud con System Center 2012
Configurando Private Cloud con System Center 2012Configurando Private Cloud con System Center 2012
Configurando Private Cloud con System Center 2012
 

Mais de Perforce

Mais de Perforce (20)

How to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning NeedsHow to Organize Game Developers With Different Planning Needs
How to Organize Game Developers With Different Planning Needs
 
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...Regulatory Traceability:  How to Maintain Compliance, Quality, and Cost Effic...
Regulatory Traceability: How to Maintain Compliance, Quality, and Cost Effic...
 
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...Efficient Security Development and Testing Using Dynamic and Static Code Anal...
Efficient Security Development and Testing Using Dynamic and Static Code Anal...
 
Understanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPsUnderstanding Compliant Workflow Enforcement SOPs
Understanding Compliant Workflow Enforcement SOPs
 
Branching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development ProcessBranching Out: How To Automate Your Development Process
Branching Out: How To Automate Your Development Process
 
How to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOpsHow to Do Code Reviews at Massive Scale For DevOps
How to Do Code Reviews at Massive Scale For DevOps
 
How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog How to Spark Joy In Your Product Backlog
How to Spark Joy In Your Product Backlog
 
Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team Going Remote: Build Up Your Game Dev Team
Going Remote: Build Up Your Game Dev Team
 
Shift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New WorkflowShift to Remote: How to Manage Your New Workflow
Shift to Remote: How to Manage Your New Workflow
 
Hybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated WorldHybrid Development Methodology in a Regulated World
Hybrid Development Methodology in a Regulated World
 
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the EnterpriseBetter, Faster, Easier: How to Make Git Really Work in the Enterprise
Better, Faster, Easier: How to Make Git Really Work in the Enterprise
 
Easier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALMEasier Requirements Management Using Diagrams In Helix ALM
Easier Requirements Management Using Diagrams In Helix ALM
 
How To Master Your Mega Backlog
How To Master Your Mega Backlog How To Master Your Mega Backlog
How To Master Your Mega Backlog
 
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
Achieving Software Safety, Security, and Reliability Part 3: What Does the Fu...
 
How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure How to Scale With Helix Core and Microsoft Azure
How to Scale With Helix Core and Microsoft Azure
 
Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2Achieving Software Safety, Security, and Reliability Part 2
Achieving Software Safety, Security, and Reliability Part 2
 
Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?Should You Break Up With Your Monolith?
Should You Break Up With Your Monolith?
 
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
Achieving Software Safety, Security, and Reliability Part 1: Common Industry ...
 
What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4What's New in Helix ALM 2019.4
What's New in Helix ALM 2019.4
 
Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison Free Yourself From the MS Office Prison
Free Yourself From the MS Office Prison
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Configuration and Build Management of Product Line Development with Perforce

  • 1. Configuration and build management of Product line development Steve Kim (Sungchul Kim) Principal Engineer Samsung SDS ( sungchul3.kim@samsung.com )
  • 2. AGENDA Product-line development •  Definition •  Considerations Usage models •  Depot structure •  Branch Strategy •  Baseline Strategy •  Integration with defect tracking tools & process •  Build and Release Demo
  • 3. Ch1. Product line development
  • 4. Introduction Enhance the efficiency of SW development when multiple products are to be developed simultaneously •  Higher productivity •  Higher quality •  Faster time to market •  Lower labor needs Many methods and practices are introduced •  S/W Reuse •  Component-based development •  Product line engineering ( Product family engineering )
  • 5. Introduction Variation management is a key element to distinguish the other development process •  Reusable S/W Architecture •  Separated teams and responsibilities •  The governance enforcing S/W reused The usage model of configuration and build management on product line development will be introduced •  Code structure •  Branch strategy •  Label strategy •  Change management •  Build and Release management
  • 6. Definition Definition of Product-line development •  A set of related products are produced through the combination of reused core assets together with product specific custom assets [ Adapted from “General configuration management and asset evolution model for software product line”, Softwareproductlines.com ] Artifacts under configuration management Core Assets Core Asset Core Asset Software Architecture Core Asset Composed Teams for Core Assets mapping Team A TeamB TeamC Production Custom Assets Custom Custom Custom Asset Product Instances Asset Asset Teams for Custom Assets
  • 7. Definition [ A Configuration Management Model for Software Product Line, Liguo Yu and Srini Ramaswamy, 2006 ] Terms Definition Component The basic unit for configuration management A collection of components. An asset may contain one or Asset more components Contains a set of domain specific but application independent Core Asset components that can be adapted and reused in various related products. Custom asset Contains a set of application specific components A collection of core assets and custom assets. Product Products share the same or similar core assets. After a new product is produced, it may also need to be Product configuration managed. The product under configuration instance management is called product instance.
  • 8. Definition Variation management for Software Product-line •  Variation in time and space •  Divided into nine smaller issues and suggest the solution for each issue [ Nine Sub-problems of Variation management, Charles W. Krueger ] Variation Type Sequential Time Parallel Time Domain Space Granularity Basic Configuration Management Files Version Branch Variation Point Management Management Management Branched Baseline Customization Components Management Baseline Management Management Branched Customization Composition Products Management Composition Composition Management Management Component Composition Software Mass Customization
  • 9. Ch2. Usage model of configuration and build management
  • 10. Considerations Considerations when you implement the usage model •  The code structure of repository to manage both a common assets and variant assets •  Branch strategy for enforcing the development process •  Baseline strategy for tagging each asset and a whole product •  Integration with defect tracking tools •  Daily Build and Release process
  • 11. Depot Structure Depot Structure can be considered by the followings •  SW architecture •  The structure of the development team ( Single vs Multiple teams ) •  The access control policy Software Architecture Depot Structure Workspace Depot Branch/Directory Branch/Directory Manage Component A Directory Composed the change Depot by on Branch/Directory Branch/Directory Component B Directory •  Each depot holds one asset •  One depot holds all assets •  One depot holds multiple assets by the characteristics of assets
  • 12. Depot Structure Each asset is coded and then released by a team. All code of an asset are managed by a project. •  A management unit to control all activities related to an asset •  Using naming rules, you can distinguish a directory from a branch ( “PRJ_”, “[ ] “ ) •  Grouping related projects with directory can be used Depot holds several projects in which the code for assets are managed Directory can be used to group the related projects - Year, Organization unit ( HQ, Oversea labs )
  • 13. Depot Structure Additional data is also needed to maintain a Project. •  Project data including Name, Description, Depot path •  Branches and the hierarchy of branches which belong to a project •  The administrators of each project. They are in charge of assigning new developers and making a baseline for releasing an asset •  The policy which controls integrating flow and locks the branches •  Sometimes, the protection table of each project can also be managed These can be stored in a depot or other storage such as a database
  • 14. Code-line (Branch) Strategy Sophisticated Code-line strategy is required •  The size of team is getting bigger •  The quality requirement of assets is getting higher The quality requirement of assets •  Core Assets is higher than Custom assets [Project name] § The changes gathered from the lower branches are built with the other assets Stable Mainline § Test activities are performed § Release baseline is tagged Integrate § The changes gathered from the lower branches Maturity of Sub-Code-line are reviewed and integrated the code Rebased § If the members of a team are small, it can be Integrate optional Developer’s Code-lines § The codes are submitted with linking jobs Rebased § The changelists are integrated into the upper Unstable branch
  • 15. Branch Strategy Sparse branching is a good solution to avoid integrating the files which are not changed in the developer’s branch 2 3 Rebase the changes into Integrate Dev-One Dev-One to Mainline - Refer to KB #1166 1 Only Module 1 is branched [ View spec using Sparse branching ] - Refer to KB #890 //Core_Assets/PRJ_Core_Asset/Mainline/… //wk/Core_Asset1/..." +//Core_Assets/PRJ_Core_Asset/Dev_One/ComponentA/Module1/... //wk/Core_Asset1/Module1/...
  • 16. Branch Strategy Policies to govern the activities of a project are controlled •  Submitting : ( P4 Trigger ) - Linked with at least one job ( Activity based change management ) •  Integrating : ( P4 Broker ) - The status of jobs linked with changelists is verified - Rebase the integrated codes from the target branch before integrating - The integrating flow is controlled ( refer to the below tables ) O : Allowed, X : Disallowed, : Configured depends on each project 1. Inner project 2. Between the projects From/To DEV Sub-INT INT REL From/To DEV Sub-INT INT DEV O X X DEV X X X Sub-INT O X O X Sub-INT X X X INT X O - O INT X REL X X X -
  • 17. Label Strategy Two types of Baseline will be used •  Baseline : Attached to each asset when the code of the asset is released The use of naming rules to indicate the maturity level of code is very useful è _INT, _REL •  Composite Baseline : A set of Baselines to reproduce all files which compose a product - Keeps the labels of assets composing a product - Easily synchronizes all files of a product with a client workspace for developers who don’t know the combination of baselinesand assets - Can also include composite baselines recursively
  • 18. Label Strategy Include Composite Include Composite Baseline of Asset A1 Baseline of Product A Baseline of Asset Group A Baseline of Asset A2 Baseline of Asset C1 Baseline of Asset C2 Baseline of Asset P1 Number Project Name Stream Name Depot Path Label Name 1 Core Asset C1 INT //Core Asset_C/Project_C1/INT C1_0420_Release 2 Core Asset C2 INT //Core Asset_C/Project_C2/INT C2_0419_Release 3 Custom Asset P1 Sub-INT //CustomAsset_P/Project_P1/Sub-INT P1_0420_Release 4 Core Asset A1 INT //Core Asset_A/Project_A1/INT A1_0419_Release 5 Core Asset A2 INT //Core Asset_A/Project_A2/INT A2_0419_Release
  • 19. Integrating with the defect tracking tools Change based modification should be enforced •  All work items such as Change Requests and Defect can be synchronized through Jobs in Perforce •  Synchronizing can be considered as one-way or two-way - One-way : Defect tracking tool can only change the job status - Two-way : Both Perforce and the Defect tracking tool can change the job status •  The policy to verify the job status and whether it can be promoted - P4 broker can be a candidate to implement those policies
  • 20. Integrating with the defect tracking tools Perforce Defect Tracking Tool Bidirectional Synchronizing Job DEFECT (CR,…) Release Note One-way Synchronizing Changelist p4Change File Sync.Gateway Server1 :1666 Database <ClearQuest> Server2 :1666 <Perforce>
  • 21. Access control On each asset (project), It’s own access control mechanism is also required •  Set access control on each code-line by groups •  Freeze some code-lines during integrating and building. But, exceptional users can be allowed Project •  Default group and member is set, Create Group and Default Group (Asset) when a project is created Assign developers Additional Groups Additional Groups •  Create a group, assign/release Additional Groups Project developers on groups administrator Manage access control No Access Level User/Group Name Host Path Table of a project 1 write group Default group //Depot/[Core_Prj]/... 2 read group Additional Group //Depot/[Core_Prj]/Mainline/CompA/…
  • 22. Build and Release strategy More complex than conventional development •  The difficulty is the combination of the right versions of the right assets - Every asset is changed continually - Each team has different rules when managing stable code •  Core assets should be released frequently and these also should be testified on all products - Building and testing on all products requires time and effort •  Miscommunication among the development teams - Major changes such as interface changes lack notification - The time when applying the change of asset can be disordered
  • 23. Build and Release strategy The followings should be clearly defined : •  All products should be built with the same rules how to combine the assets •  Daily builds on all products should be run, and the results of daily builds also are shared with all developers by indicating which assets were failed •  Periodically, the causes of the build error are analyzed and improved
  • 24. Build and Release strategy Daily Builds and release process can be depicted as the below Release Core Daily Build Release Products Assets Get the released Success Core Assets Daily Build Build Runs Tests ( All models ) Result Developer’s Builds Build & Test Fail Release the Core Integration assets with Builds Fix the error Baseline Release Run builds Build management Core Assets Product’s System Builders Builders Run the CI Run the daily Indentify and fix the builds builds daily builds
  • 25. Build and Release strategy The following features can be supported by build automation tool •  Synchronize - the latest label of each asset - the latest composite baseline of a product - the specific label/changelist of each asset •  Make a baseline - each asset - a composite baseline of a product •  Integrate codes into the upper branch and make a baseline after the build was completed successfully - Builds è Unit Test è Integrate Codes è Make a baseline - Automatically generates the release notes of each asset with P4 jobs which gathered from the defect tracking tools