Software Configuration Management for Embedded Systems Developers



Similar documents
High Availability and Disaster Recovery Solutions for Perforce

Perforce Helix vs. ClearCase

The Business Case for Perforce SCM. Software Configuration Management Delivers A Competitive Advantage

How Perforce Can Help with Sarbanes-Oxley Compliance

Distributed Software Development with Perforce Perforce Consulting Guide

Seven Steps for Choosing a Software Configuration Management System

Software Configuration Management Best Practices for Continuous Integration

Continuous Delivery: The New Normal for Software Development

Comparison: Perforce and Microsoft Team Foundation Server (TFS)

High-Level Software Version Management Best Practices Abstract

IBM Rational ClearCase, Version 8.0

The Case for Better Document Collaboration. Findings from Harris Interactive Knowledge Worker Survey, Commissioned by Perforce Software

Releasing High Quality Applications More Quickly with vrealize Code Stream

Developing Software in a Private workspace PM PMS

The Benefits of Utilizing a Repository Manager

Software Configuration Management

Surround SCM Best Practices

IBM Rational Asset Manager

Using Git with Rational Team Concert and Rational ClearCase in enterprise environments

Agile SPL-SCM: Agile Software Product Line Configuration and Release Management

Enhance visibility into and control over software projects IBM Rational change and release management software

Continuous Delivery Benefits, Best Practices and Practical Advice

serena.com Best Practice for Parallel Development using Serena Dimensions

Efficient Automated Build and Deployment Framework with Parallel Process

Detailed Design Report

Software Development In the Cloud Cloud management and ALM

Software Configuration Management.

SOA REFERENCE ARCHITECTURE: WEB TIER

Continuous integration End of the big bang integration era

Installing and Administering VMware vsphere Update Manager

Sparx Systems Enterprise Architect Cloud-based repository hosting

Selecting the Right Change Management Solution Key Factors to Consider When Evaluating Change Management Tools for Your Databases and Teams

VISUAL PRODUCT MODELING SYSTEM (VP/MS) CRACK THE CODE FOR ADMINISTERING CALCULATIONS AND BUSINESS RULES

Design and deliver cloudbased apps and data for flexible, on-demand IT

Bar Code Printing Options for Zebra Printers with Oracle WMS and MSCA APPLICATION WHITE PAPER

Delivering Quality Software with Continuous Integration

Organizations that are standardizing today are enjoying lower management costs, better uptime. INTRODUCTION

Open Source Business Rules Management System Enables Active Decisions

A Zebra Technologies White Paper. Bar Code Printing from Oracle WMS and MSCA

Websense Data Security Suite and Cyber-Ark Inter-Business Vault. The Power of Integration

Using Oracle9i SCM for Software Configuration Management. An Oracle Technical White Paper July 2002

Solving the Software Quality Challenges of Agile Development

ARM Cortex-A9 MPCore Multicore Processor Hierarchical Implementation with IC Compiler

Transform. Training Courses A Bottomline Guide

MICROSTRATEGY ON AWS

Managing BitLocker With SafeGuard Enterprise

PRESENTS... Reasons to Switch from SourceSafe: How to Make Your Life Easier with SourceAnywhere Standalone

Agile Power Tools. Author: Damon Poole, Chief Technology Officer

Continuous Integration. CSC 440: Software Engineering Slide #1

Secure WiFi Access in Schools and Educational Institutions. WPA2 / 802.1X and Captive Portal based Access Security

Agile SPL SCM Agile Software Product Line Configuration and Release Management

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

See the Big Picture. Make Better Decisions. The Armanta Technology Advantage. Technology Whitepaper

How To Write A Continuous Delivery

Increasing business values with efficient Software Configuration Management

VMware vcenter Update Manager Administration Guide

High-level Best Practices in Software Configuration Management

Active Network Defense: Real time Network Situational Awareness and a Single Source of Integrated, Comprehensive Network Knowledge

White Paper. The Importance of Automating the End to End Pipeline for Continuous Delivery

Chapter 13 Configuration Management

Successfully managing geographically distributed development

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts

How To Achieve Continuous Delivery

Extending Microsoft Hyper-V with Advanced Automation and Management from Citrix

Maximize Your Workday HCM Investment

Executive summary. Table of Contents. Technical Paper Minimize program coding and reduce development time with Infor Mongoose

Application Test Management and Quality Assurance

IBM Enterprise Service Bus for Healthcare

The Deployment Pipeline

Continuous Integration Comes to China.

NComputing desktop virtualization

Software change and release management White paper June Extending open source tools for more effective software delivery.

Testing Automation for Distributed Applications By Isabel Drost-Fromm, Software Engineer, Elastic

With Red Hat Enterprise Virtualization, you can: Take advantage of existing people skills and investments

Software Configuration Management (SCM)

10 Reasons Why Enterprises Select Symantec.cloud for Archiving

How To Manage A Mobile Device Management (Mdm) Solution

Chapter 13 Configuration Management

Lab Management, Device Provisioning and Test Automation Software

zen Platform technical white paper

Software Configuration Management

Increasing Your VDI Project s Return on Investment Using Workspace Virtualization

What s New in VMware vsphere 5.1 VMware vcenter Server

Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?

Distributed Development With Perforce Software. Tony Vinayak Perforce Software

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Continuous integration for databases using

1. Overview of the Java Language

Transcription:

Software Configuration Management for Embedded Systems Developers

Overview Embedded systems developers face complex versions of the problems that confront most software developers. Choosing a robust SCM system can help by enabling the management of large and complex file sets, supporting distributed development, and helping to manage intellectual property risk. In fact, the right combination of SCM system and best practices can help any embedded development project progress quickly and smoothly. The Challenges of Developing Embedded Systems Every development organization requires tools that are fast, easy to use, and straightforward to administer. However, developers of embedded systems have an additional set of demands for their SCM system, such as its ability to handle: Complex file sets Distributed teams Management and versioning of intellectual property The following sections discuss these issues in more detail. Complex File Sets Embedded systems are composed of numerous hardware and software components. For example, silicon system-on-chip designs combine schematics, RTL code, GDS data for foundries, software drivers, middleware, and even operating systems and applications. Each system is complex and can contain variations of required components. Furthermore, systems often have variants that are specific to a region or a platform so the product can be sold in markets with differing requirements. The following diagram illustrates how much of a challenge managing these variants can be. Variant 3 Variant 2 Variant 1 Product 1 - Rel 1 Variant 2 Variant 1 Product 2 - Rel 1 Variant 1 Product 1 - Rel 2 Product 2 - Rel 2 Mainline Project X Project Z Project Y Project Z-1 Figure 1: Multiple variants are a hallmark of embedded systems. Software Configuration Management for Embedded Systems Developers 2

Ancillary files, such as test suites, can change as the components being tested are modified. However, full product builds require the correct version of every component. The challenge is to ensure that the correlation between each component and its dependent files is maintained. Distributed Teams The components of embedded systems are frequently developed in geographically disparate sites. In some cases, outsourced teams are working on the same component. Collaborative development under these circumstances requires that developers have ready access to each other s work. The challenge is to ensure that development teams working in different sites can stay in sync. Intellectual Property Embedded systems often incorporate third-party technologies. In addition to the file management problems described above, third-party developers must be able to update their contributions. These updates must be traceable to ensure that the project contains correct, compatible and stable versions of the vendors contributions. The final challenge is to enable vendors to check-in their contributions and track changes to these assets. The Benefits of SCM The right SCM system is fast and efficient, so developers are not tempted to circumvent it, and it s flexible enough to manage the complexities of developing embedded systems. Here s how a fullfeatured SCM system, properly deployed, can bring order to a complicated process. Managing Complex File Sets To divide components along meaningful lines and build properly, observe the following best practices. Define component relationships by branching. Use branches to isolate experimental code from production-quality code, or to create a release version of a product. Choose the source from which the files in the branch are drawn, for example, to incorporate third-party technologies into a component. A full-featured SCM system enables branching and defines the relationships between branches. Branching must be a lightweight operation in order to reduce disk space consumption due to the volume of code and digital asset files which are involved. SCM tools employing the lazy copy technique (see Figure 2) are able to work in this way. Branches containing large numbers of files can be created quickly while minimizing performance and scalability costs. Action: File \main\library.c is branched to new location with new name, \release\lib.c User s View Metadata Data Storage 1 2 \main\library.c 1 \release\lib.c Files are identical Figure2: Lazy copying allows an SCM system to create variant branches without consuming storage space. 3

Ensure correct builds by using clean workspaces and revision specifiers. Use the SCM system to create a workspace on the build machine, and then populate the workspace with the desired revisions of the components. By ensuring that only the desired files reside in a clean workspace, clean builds are obtained. A solid SCM system supports meaningful ways to specify revisions, such as date and time, file version number, or label. Supporting Distributed Development To best support teams that are geographically disparate but need access to each others work, consider these methodologies. Use cross-platform tools and workspaces to provide access for disparate teams. It s rare for different teams to use the same platforms, so an SCM tool must support all platforms in use, without complicating administration. Users must be able to isolate their in-progress work in their own local workspaces, as many as required, checking in changes when ready. Ideally, the SCM tool functions according to users expectations. For example, Java users are accustomed to applications that have a native look and feel. The most effective collaborative development is achieved when the SCM tool can be used by all contributors to the project, regardless of their role, or the tools, process and platforms that they use (see Figure 3). Admin User Community Designers Project Managers Collaborative Product Development EDA Designs Help Desk Staff IT Systems Engineers Firmware Documentation Source Code SCM Repository & Digital Assets Web Content Software Source Developers Build & Release Manager User Community Systems Architects Test Scripts Schematics QA Engineers User Community Business Analysts Figure 3: Effective collaboration is achieved when the SCM tool supports all users and the tools and processes in use. Software Configuration Management for Embedded Systems Developers 4

Incorporating Intellectual Property Use codeline policies to insulate components. To prevent inadvertent modifications and to protect proprietary code from being viewed by outside developers, define roles and privileges that specifies who can modify files in each codeline. An SCM tool must support a fine-grained protection mechanism that provides full control over access to files in a corporate repository. Use branches to support agile development and rapid prototyping. An SCM tool that permits low-cost branching and configurable views provides excellent support for all development methodologies, including Agile and the V model. Low-cost branching enables developers to quickly take snapshots of code lines for reuse, experiment with them, and merge changes back when ready without disturbing ongoing production work. Configurable user views allow a variety of branches to be incorporated into a project. The ability of user views to reference multiple variant branches reduces the need for creating branches to support new projects. Add all project assets to the repository. Many of the digital assets that are used on the project may be in formats other than plain text. Binary files, such as chip schematics or PDFs, are as important for the SCM tool to control as any source code being developed. Plus, new versions of assets provided by a third party may be delivered in frequent intervals as a series of compiled files. An SCM tool supporting lazy copy insures that multiple variants of binary files can be supported and without effecting disk space consumption. Conclusion Embedded developers face complex SCM issues on a daily basis. The following best practices can help any project progress quickly and smoothly: Define component relationships with branching Use clean workspaces for build environments Use cross-platform tools and workspaces Use codeline policies to insulate components Use branches to support various development methodologies Add all project assets to the repository 5

www.perforce.com North America Perforce Software Inc. 2320 Blanding Ave Alameda, CA 94501 USA Phone: +1 510.864.7400 info@perforce.com Europe Perforce Software UK Ltd. West Forest Gate Wellington Road Wokingham Berkshire RG40 2AQ UK Phone: +44 (0) 845 345 0116 uk@perforce.com Australia Perforce Software Pty. Ltd. Level 10, 100 Walker Street North Sydney NSW 2060 AUSTRALIA Phone: +61 (0)2 8912-4600 au@perforce.com Copyright 2009 Perforce Software Inc. All rights reserved.