Managing Software Reuse with Perforce

Size: px
Start display at page:

Download "Managing Software Reuse with Perforce"

Transcription

1 Managing Software Reuse with Perforce by Jo Woodison, Mandarin Consulting 1. Abstract Software reuse is touted as one of the biggest benefits of object-oriented programming, and indeed we have been reusing software libraries for decades. However, reuse practices have mostly been ad hoc, and the potential benefits of software reuse are still rarely realized. This paper will discuss how Perforce can help manage reusable software components with Inter-File Branching and associated reporting commands. Also explored are some of the elements of reuse-based software development methodologies and best practices. The most recent version of this paper is located at 1. Introduction Reuse can take many forms many items used or generated in software development can be reused. While this paper will introduce some of these, the focus of the paper will more generally address how any artifact that may be reused can be managed in Perforce. As with all things, there are many solutions to the same problem, and this paper serves not to illustrate all possible solutions, but to highlight some of the functionality and flexibility that makes Perforce an ideal tool for managing reusable artifacts. 1. What is Reuse? Software reuse is the practice of developing systems of components of a reasonable size and reusing them [McIlroy], then extending the idea of components beyond just source code to requirements, analysis models, design and test documentation and suites. All stages of the software development process are subject to reuse [Jacobson]. Here we will focus on how to manage the sharing of these items, but will not go into specific details on all areas of reuse. Essentially, we are interested in how to manage files on disk, shared at some level between projects, products and/or development groups Container Based SCM? The term container based SCM has been coined in connection with a process for managing component based development. While it is true that component based development involves a less linear approach to systems development in that each Jo Woodison Page 1 5/5/2003

2 component evolves independently of the others, essentially, the problem is still one of managing files on disk. The simpler and more efficient means of managing files on disk is the one with the greater versatility for handling the new complexity and reducing that complexity to something more easily manageable. 4. Why Reuse? It is not a myth. Reuse has been proven to offer many rewards. When we reuse code, components and other artifacts, our goals are to: Reduce time to market Reduce the cost of developing the product Improve the productivity of the development teams Improve the predictability of the development process Increase the quality and reliability of the product When reuse is mentioned, we often think only of code reuse. This is perhaps one of the lesser productive forms of reuse. That is not to say it is of little or no value, just that there are rewards to be gained in considering inheritance, template, component, framework, pattern and domain component reuse. Additional worthy candidates for reuse are our previously created use cases, standards documents, models, procedures and guidelines. Reuse eventually saves us time and money, and will ultimately lead to a more stable and reliable product. 5. Why not? Despite of all the perceived benefits reuse offers, the practice has yet to be adopted as widely as it might. It is on the increase: perhaps due in part to an increasing body of reusable artifacts whether in-house or provided by third parties; perhaps due in part to the greater awareness of the benefits and the need to gain a competitive advantage. Achievement of reuse has proven elusive, the reasons for which are many: Insufficient means to identify candidates for reuse in the development process Lack of available components to reuse Lack of flexibility in available components Lack of tools to assist with implementing a reuse strategy The software development process does not encourage reuse: o There is no stage where we question what has been done before and whether it can be separated out and reused o Roles are not well defined for architects, domain experts, reuse engineers o Procedures of analysis, design, code, review, inspection, walkthrough all fail to consider reuse Systematic reuse is not established as a best practice Lack of perspective: reuse requires a broader view than that of single project or product Lack of trust, the not invented here syndrome Jo Woodison Page 2 5/5/2003

3 Fear of dependence on others or of own redundancy Lack of capital funding, the return on which is not realized until artifacts are reused and reduce the cost of later development o Initial funding is required to develop systems that are strong enough to be reused o Initial funding is required to train staff in a third-party vendor s systems. Managing the design, code and components is only part of the reuse problem, and from this, you may surmise a small, yet not insignificant, part. 6. What does Perforce Offer? Perforce offers us a variety of features to organize our code, identify what components are located where and to control the publication of components for others to reuse. There are three main type of reuse discussed here. While there are more scenarios, they will mostly fit into one of these three categories: informal reuse, black box reuse, and managed reuse Depot Structure When considering how to structure your depot to best accommodate your reuse needs, it is advisable to ask some questions on how these artifacts will be used. Who will use these artifacts? Who will modify them? Do modifications be need to be distributed to all users/consumers? Immediately? Do all modifications need to be available for others to use? The answers to these questions helps determine the most appropriate approach to take. A combination of these methods may be used within an organization to accommodate varying requirements between different artifacts Informal Reuse The informal approach is perhaps the most common, and something that has been used for some time. Let us suppose that Project A has implemented some functionality, feature 123. Project B needs this functionality. Project B might simply copy the source code files that implement this feature from Project A. Project A will not give any further updates to Project B, and Project B will not give any of its modifications back to Project A. Jo Woodison Page 3 5/5/2003

4 This is perhaps the most common type of reuse. In Perforce this is easily managed with Perforce s Inter-File Branching mechanism. Very simply, in this scenario, integrate is used to branch the appropriate files from Project A to Project B. Those familiar with Perforce will already appreciate this intuitive and lightweight approach. Integrate performs a virtual or lazy copy of the specified files to the new location, simply maintaining a reference to where the files originated from. The files themselves will not be physically created in the Project B area of the source code repository until they start to diverge from where they were branched (aka integrated) from. While the intention is for no further exchange of changes between the projects, the option remains open and valid should it be required Black Box Reuse In the black box instance, a number of projects rely on a given component, comp456. No project will modify this component; it may even be provided by a third party. The projects must use the latest version of the component. Jo Woodison Page 4 5/5/2003

5 In this example, the component is held separately in its own area. Each project that uses that component uses the client workspace view to map the shared component into the appropriate location within the project in the client workspace. If a more recent version of the component is added to the repository, all client workspaces will pick up those changes when they next synchronize Managed Reuse In the managed reuse case, a number of projects may rely on shared artifacts. These artifacts may, at times, be refactored. Each project may or may not want to receive updates to the components they use immediately they become available or perhaps later. Projects may or may not want to contribute their own changes to the shared body of resources. Jo Woodison Page 5 5/5/2003

6 In this case, there is a separate area in the repository (within the same depot or in its own depot), for storing shared code. Dependent projects branch the artifacts they need into their projects. They may update their copies by integrating again if newer versions of shared artifacts become available. Jo Woodison Page 6 5/5/2003

7 If objects in the shared area need to be modified, they are branched to keep the primary sharing area stable. Once amended, tested or otherwise approved, the refactored artifacts are integrated back to the primary shared line and are then available for the other codelines to integrate from. If a project wishes to submit modifications to the shared line, it should ensure that it has integrated the latest version of the shared into its line, make the changes, ensure they successfully complete the appropriate test suites or that appropriate approval is obtained, and then seek approval from the shared line owner. With managed reuse, it is essential to have an owner for the shared area. This owner must clearly define the policies for the shared lines and supervise and approve all submissions to the primary shared line Reporting Commands In the following, command line examples are used for ease of typing. All of these actions can be perforce in the Windows GUI, p4win. Refer to the p4 to p4win Users Guide at the Perforce Software web site ( for the equivalent actions. Perforce offers many reporting commands and these can be put to good use to give us useful information about our components. Jo Woodison Page 7 5/5/2003

8 For example, to find out which version of a component is published to others, you can use the following commands: Informal and Managed reuse: o p4 integrated to show which integrations have been submitted o p4 filelog to show the history of the files, including integrations and merge actions o p4 integ n to show whether a more recent version of the shared code is available Black box reuse: o p4 have to show the revisions of files in the client workspace o p4 sync n to show whether a more recent version of the shared code is available Using the always maintained, reliable integration history in Perforce, we can use these commands to find out what component is used where and how the components are distributed. We can branch (integrate) different components at different revisions into our project code base and Perforce gives the inherent ability to identify the versions and dependent projects or products. We can choose to maintain a refactor or other internal branch and restrict access to it by other projects until it is proven good enough to release. Perforce gives us the ability to control exactly what components are published, and in conjunction with a protections scheme, we can control who it is published to. We have the ability to distribute components in a flexible way that is easy for teams to reuse them and write their own code to join them together or add extra functionality. Perforce tracks and allows us to integrate changes between different users and usages of components as well as the latest original component release. We are able to insulate the environments for different teams, products, or projects as we deem necessary and appropriate. 7. Best Practices 1.1. Reuse If reuse is not a practiced in your organization today, it should be adopted systematically and incrementally. In an existing organization, current operations must be maintained, yet practices need to be kept up-to-date in order for the company and its products to remain competitive. The way to implement a reuse strategy is to be mindful of and balance these two conflicting pressures. There should be some means to measure the progress of reuse in the organization. What percentage of a system is being reused? What are the size, complexity, and Jo Woodison Page 8 5/5/2003

9 interfaces of the reusable components? What is the savings in development time and cost. Use some economic guidelines to set your expectations. Some published rules of thumb are: A component has to be used three to five times to recover its initial creation cost and the ongoing support costs It costs 1.5 to 3 times as much to create and support a reusable component as it does to implement a one use only component It costs a quarter as much to utilize a reusable component as it does to develop a new one It takes two to three product cycles or about three years before the benefits of reuse are realized and cover the initial costs It is all object-oriented technology! It might be, but that alone does not grant you reuse. Keep in mind that it takes a specific reuse agenda, comprising of process and organizational steps and support, to create a reuse program, not just a single programming language or narrow methodology [Pittman] Perforce Best practices in Perforce are well documented in [Wingerd] High-Level Best Practices in SCM. These do not really change when structuring for reuse. To summarize some key points: Give each codeline a policy Give each codeline an owner Have a mainline or parent codeline Branch only when necessary Branch when you need to don t copy instead of branch Branch on purpose Branch late Integrate/merge often Keep it simple Perforce is a very versatile and flexible, yet strong SCM system. It allows all manner of possibilities and depot structures. It is advisable to keep the structure as simple as possible to meet your needs. While clever and tricky set-ups can be designed, one should be cautious with regards to confusing users to the point where they do the wrong thing or do not know how to work with the system, and be wary of creating an environment or structure which is difficult to maintain. 2. Conclusion Perforce is a very intuitive, flexible and strong SCM system. The simplicity yet versatility of its branching mechanism are arguably second to none. It provides us with reliable capabilities to put together any combination of artifacts and manipulate them in isolation or to be shared with other teams. Jo Woodison Page 9 5/5/2003

10 While tools will ultimately advance to support the evolution of our software development practices, at this stage, it is not Perforce that prevents us from reusing software. Leverage the benefits of the SCM system to help improve your productivity by sharing code, components and other artifacts. A. References Jacobson I., Griss M., and Jonsson P. (1997) Software Reuse: Architecture, Process and Organization for Business Success, ACM Press Books/Addison Wesley Longman McIlroy D. (1969) Mass produced software components NATO Conference on Software Engineering Pittman M. (1993) Lessons learned in managing object-oriented development. IEEE Software Wingerd L., Seiwald C. (1998) High-level best practices in software configuration management. Perforce Software The most recent version of this paper is located at About the Author Jo Woodison has been working in the computer industry for sixteen years. Her experience includes roles in product development, consulting, teaching and pre- and post-sales support. She has worked in many different environments across many different platforms, architectures, databases and of course, SCMs. Her SCM of choice is, naturally, Perforce. After working at Perforce Software (the company), Jo continued training and consulting by becoming a Perforce Consulting Partner and Certified Trainer. Originating from England but having spent most of the last decade in the USA, Jo is happy to be back in the US after living in Australia for almost two years. Jo Woodison Page 10 5/5/2003

Software Configuration Management for Embedded Systems Developers

Software Configuration Management for Embedded Systems Developers 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

More information

Software Configuration Management Best Practices for Continuous Integration

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

More information

Variation Management for Software Production Lines 1

Variation Management for Software Production Lines 1 Variation Management for Software Production Lines 1 Charles W. Krueger BigLever Software, Inc. 10500 Laurel Hill Cove Austin TX 78730 USA ckrueger@biglever.com Abstract. Variation in a software product

More information

Developing Software in a Private workspace - 4.01 PM PMS

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

More information

Software Configuration Management. http:\\www.francisxavier.ac.in

Software Configuration Management. http:\\www.francisxavier.ac.in Software Configuration Management Outline Introduction what is SCM, who are involved, why it is imp? what are the steps? Basic Concepts of SCM Configuration Management Activities Configuration Management

More information

White Paper. Software Development Best Practices: Enterprise Code Portal

White Paper. Software Development Best Practices: Enterprise Code Portal White Paper Software Development Best Practices: Enterprise Code Portal An Enterprise Code Portal is an inside the firewall software solution that enables enterprise software development organizations

More information

Reliable Business Data Implementing A Successful Data Governance Strategy with Enterprise Modeling Standards

Reliable Business Data Implementing A Successful Data Governance Strategy with Enterprise Modeling Standards Reliable Business Data Implementing A Successful Data Governance Strategy with Enterprise Modeling Standards All Rights Reserved Welcome! Let Me Introduce Myself Marcie Barkin Goodwin President & CEO Axis

More information

Version Control Using Subversion. 12 May 2013 OSU CSE 1

Version Control Using Subversion. 12 May 2013 OSU CSE 1 Version Control Using Subversion 12 May 2013 OSU CSE 1 Version Control In team projects, software engineers: Share and extend a common code base (and comply with standards, coding conventions, comment

More information

Agile SCM Build Management for an Agile Team. Some Definitions. Building and Agility. Steve Berczuk, Brad Appleton, and Steve Konieczka October 2003

Agile SCM Build Management for an Agile Team. Some Definitions. Building and Agility. Steve Berczuk, Brad Appleton, and Steve Konieczka October 2003 Agile SCM Management for an Agile Team Steve Berczuk, Brad Appleton, and Steve Konieczka October 2003 A number of people work together to develop a software application. The application is useful only

More information

SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture SOACertifiedProfessional.Braindumps.S90-03A.v2014-06-03.by.JANET.100q Number: S90-03A Passing Score: 800 Time Limit: 120 min File Version: 14.5 http://www.gratisexam.com/ Exam Code: S90-03A Exam Name:

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2007 Vol. 6, No. 1, January-February 2007 CM Configuration Change Management John D.

More information

Product Line Development - Seite 8/42 Strategy

Product Line Development - Seite 8/42 Strategy Controlling Software Product Line Evolution An infrastructure on top of configuration management Michalis Anastasopoulos michalis.anastasopoulos@iese.fraunhofer.de Outline Foundations Problem Statement

More information

The Role of the Software Architect

The Role of the Software Architect IBM Software Group The Role of the Software Architect Peter Eeles peter.eeles@uk.ibm.com 2004 IBM Corporation Agenda Architecture Architect Architecting Requirements Analysis and design Implementation

More information

strategic considerations when building customer service for the next decade

strategic considerations when building customer service for the next decade strategic considerations when building customer service for the next decade a practical approach to creating a strategy while considering the issues that affect customer service today and for the next

More information

What s New Guide: Version 5.6

What s New Guide: Version 5.6 What s New Guide: Version 5.6 A QUEST SOFTWARE COMPANY 1. 8 0 0. 4 2 4. 9 4 1 1 w w w. s c r i p t l o g i c. c o m WHAT S NEW IN ACTIVE ADMINISTRATOR 5.6? Contents...3 Active Administrator Product Overview...3

More information

Software Configuration Management

Software Configuration Management Steven J Zeil March 17, 2013 Contents 1 Problems 2 2 Common Practices 6 1 1 Problems Software Configuration Management Over time, a software system can exist in many versions: revisions created as developers

More information

Chap 1. Introduction to Software Architecture

Chap 1. Introduction to Software Architecture Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)

More information

Successfully managing geographically distributed development

Successfully managing geographically distributed development IBM Rational SCM solutions for distributed development August 2004 Successfully managing geographically distributed development Karen Wade SCM Product Marketing Manager IBM Software Group Page 2 Contents

More information

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Design with Reuse Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Objectives To explain the benefits of software reuse and some reuse

More information

Applying 4+1 View Architecture with UML 2. White Paper

Applying 4+1 View Architecture with UML 2. White Paper Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was

More information

Oracle RAC Services Appendix

Oracle RAC Services Appendix 1 Overview Oracle RAC Services Appendix As usage of the Blackboard Academic Suite grows and the system reaches a mission critical level, customers must evaluate the overall effectiveness, stability and

More information

Run-time Variability Issues in Software Product Lines

Run-time Variability Issues in Software Product Lines Run-time Variability Issues in Software Product Lines Alexandre Bragança 1 and Ricardo J. Machado 2 1 Dep. I&D, I2S Informática Sistemas e Serviços SA, Porto, Portugal, alexandre.braganca@i2s.pt 2 Dep.

More information

Software Component Technologies and Space Applications

Software Component Technologies and Space Applications Software Component Technologies and Space Applications Don Batory Department of Computer Sciences The University of Texas Austin, Texas 78712 Abstract In the near future, software systems will be more

More information

Distributed Development With Perforce Software. Tony Vinayak Perforce Software

Distributed Development With Perforce Software. Tony Vinayak Perforce Software Distributed Development With Perforce Software Tony Vinayak Perforce Software Introduction Not too long ago, the term distributed development did not exist. Every developer working on a project had to

More information

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

Agile SPL-SCM: Agile Software Product Line Configuration and Release Management Agile SPL-SCM: Agile Software Product Line Configuration and Release Management APLE 2006 Workshop SPLC 2006, Baltimore, MD Reto.Kurmann@phonak.com Phonak Hearing Systems Presentation Roadmap 1. Introduction

More information

Distributed Software Development with Perforce Perforce Consulting Guide

Distributed Software Development with Perforce Perforce Consulting Guide Distributed Software Development with Perforce Perforce Consulting Guide Get an overview of Perforce s simple and scalable software version management solution for supporting distributed development teams.

More information

Business Architecture: Scenarios & Use Cases

Business Architecture: Scenarios & Use Cases Business Architecture: Scenarios & Use Cases This white paper was developed as a result of OMG wiki postings between Dec. 2007 and March 2008. It presents a series of business architecture scenarios that

More information

Bringing open IP benefits to physical access control AXIS A1001 Network Door Controller

Bringing open IP benefits to physical access control AXIS A1001 Network Door Controller Bringing open IP benefits to physical access control AXIS A1001 Network Door Controller Axis IP platform for physical access control Opens the door to the future With AXIS A1001 Network Door Controller,

More information

If Your HR Process is Broken, No Technology Solution will Fix It

If Your HR Process is Broken, No Technology Solution will Fix It If Your HR Process is Broken, No Technology Solution will Fix It Joyce Y. Quindipan, Partner, Cambria Consulting Audit and align your HR processes before you invest in and implement a At the HR Technology

More information

Software Engineering 10. Teaching introductory and advanced courses in software engineering IAN SOMMERVILLE

Software Engineering 10. Teaching introductory and advanced courses in software engineering IAN SOMMERVILLE Software Engineering 10 Teaching introductory and advanced courses in software engineering IAN SOMMERVILLE 1 Every course is different and what s included depends on the interests of the instructor, the

More information

4180: Defined Processes, Evidence, and Rescuing Corporate Knowledge: Achieving Standards Compliance in Agile and Lean Environments

4180: Defined Processes, Evidence, and Rescuing Corporate Knowledge: Achieving Standards Compliance in Agile and Lean Environments 4180: Defined Processes, Evidence, and Rescuing Corporate Knowledge: Achieving Standards Compliance in Agile and Lean Environments SEPG Conference March 2012 Dr. Richard Bechtold : Overview Problem Statement

More information

Reaping the benefits of Reusable Software Components

Reaping the benefits of Reusable Software Components Safety & Security for the Connected World Reaping the benefits of Reusable Software Components The Significance of FAA Reusable Software Component Certification Mark Pitchford The conflicting demands on

More information

Software Development Best Practices

Software Development Best Practices Software Development Best Practices Artifact Reuse Supported by Modern Team Communication Tools and Patterns Andrew Bose Principal (979) 777-1431 andrew.bose@parivedasolutions.com Pariveda Solutions, Inc.

More information

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping

More information

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0 NASCIO EA Development Tool-Kit Solution Architecture Version 3.0 October 2004 TABLE OF CONTENTS SOLUTION ARCHITECTURE...1 Introduction...1 Benefits...3 Link to Implementation Planning...4 Definitions...5

More information

Perforce. elearning Catalog

Perforce. elearning Catalog Perforce elearning Catalog Perforce elearning Course Catalog Perforce elearning is a suite of role-based, task-specific courseware for new users, administrators, enterprise architects, or anyone who is

More information

UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW

UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW John C. Knight, Jane C. Prey, & Wm. A. Wulf Department of Computer Science University of Virginia Charlottesville, VA 22903

More information

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur

Module 1. Introduction to Software Engineering. Version 2 CSE IIT, Kharagpur Module 1 Introduction to Software Engineering Lesson 2 Structured Programming Specific Instructional Objectives At the end of this lesson the student will be able to: Identify the important features of

More information

The Dynamics of Project Management

The Dynamics of Project Management The PROJECT PERFECT White Paper Collection Abstract The Dynamics of Project Management Eric Tse This white paper suggests project management methods and practices can move from a static, unidirectional

More information

Ten steps to better requirements management.

Ten steps to better requirements management. White paper June 2009 Ten steps to better requirements management. Dominic Tavassoli, IBM Actionable enterprise architecture management Page 2 Contents 2 Introduction 2 Defining a good requirement 3 Ten

More information

The Practical Organization of Automated Software Testing

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

More information

Delivering Collaborative Application Services as a Hosted Service Offering

Delivering Collaborative Application Services as a Hosted Service Offering Microsoft Communications Sector Partner Solution Case Study Delivering Collaborative Application Services as a Hosted Service Offering Overview Country or Region: United States Industry: Hosting Partner

More information

Perforce Load Testing - Agenda

Perforce Load Testing - Agenda Perforce Load Testing - Agenda Speaker introduction Presentation scope Corporation background Load Test initiating: motivation, goals Load Test planning: software, hardware, licenses, clients Load Test

More information

Newspaper Ad Sales: Earn More With Modular

Newspaper Ad Sales: Earn More With Modular Newspaper Ad Sales: Earn More With Modular By Ed Strapagiel 25 October 2011 The Strategy of Modular Modular advertising for newspapers is about selling ad space as portions of a page, using standard, fixed

More information

GIVE YOUR ORACLE DBAs THE BACKUPS THEY REALLY WANT

GIVE YOUR ORACLE DBAs THE BACKUPS THEY REALLY WANT Why Data Domain Series GIVE YOUR ORACLE DBAs THE BACKUPS THEY REALLY WANT Why you should take the time to read this paper Speed up backups (Up to 58.7 TB/hr, Data Domain systems are about 1.5 times faster

More information

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Component-Based Software Engineering Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain that CBSE is concerned with developing standardised components

More information

A Process for Evaluating and Selecting a Development Environment. Jim Odrowski ComponentWave, Inc. jodrowski@componentwave.com

A Process for Evaluating and Selecting a Development Environment. Jim Odrowski ComponentWave, Inc. jodrowski@componentwave.com A Process for Evaluating and Selecting a Development Environment Jim Odrowski ComponentWave, Inc. jodrowski@componentwave.com Abstract This paper describes experiences in evaluating and selecting integrated

More information

Manage Software Development in LabVIEW with Professional Tools

Manage Software Development in LabVIEW with Professional Tools Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition

More information

1-04-10 Configuration Management: An Object-Based Method Barbara Dumas

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,

More information

Roles in software engineering

Roles in software engineering Roles in software engineering Software Engineering Theory Kristian Sandahl Department of Computer and Information Science 2015-09-02 Maintenance Validate Requirements, Verify Specification Requirements

More information

Benefits of extend On-Demand (SaaS Model) for Equipment Dealers and Rental Firms

Benefits of extend On-Demand (SaaS Model) for Equipment Dealers and Rental Firms extend On-Demand WHITEPAPER Benefits of extend On-Demand (SaaS Model) for Equipment Dealers and Rental Firms A Journey to Competitive Advantage and Business Excellence Abstract Competitive Advantage through

More information

Points of Defect Creation

Points of Defect Creation WHITE PAPER Points of Defect Creation by Shankar Krishnamoorthy Software Product development methodologies try to improve quality by promoting the tactic of testing "early and often." When a defect is

More information

Chapter 13 Configuration Management

Chapter 13 Configuration Management Chapter 13 Configuration Management Using UML, Patterns, and Java Object-Oriented Software Engineering Outline of the Lecture Purpose of Software Configuration Management (SCM)! Motivation: Why software

More information

Appendix B Data Quality Dimensions

Appendix B Data Quality Dimensions Appendix B Data Quality Dimensions Purpose Dimensions of data quality are fundamental to understanding how to improve data. This appendix summarizes, in chronological order of publication, three foundational

More information

Baseline Code Analysis Using McCabe IQ

Baseline Code Analysis Using McCabe IQ White Paper Table of Contents What is Baseline Code Analysis?.....2 Importance of Baseline Code Analysis...2 The Objectives of Baseline Code Analysis...4 Best Practices for Baseline Code Analysis...4 Challenges

More information

EM-SOS! from Sandhill Consultants

EM-SOS! from Sandhill Consultants Taming the Chaos of Uncontrolled Data Design: EM-SOS! from Sandhill Consultants Powered by Axis Software Designs Get the most from your CA ERwin data modeling investment with world-class professional services,

More information

Static Analysis Best Practices

Static Analysis Best Practices Static Analysis Best Practices This is the first in a series of interviews in which Adam Kolawa Parasoft CEO and Automated Defect Prevention: Best Practices in Software Management (Wiley-IEEE, 2007) co-author

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information

IBM Information Technology Services Global sourcing.

IBM Information Technology Services Global sourcing. IBM Information Technology Services Global sourcing. Move with agility and challenge competitors worldwide. Globalization. Growth. Compliance.» The challenges that you face today in the financial services

More information

Solving the Software Quality Challenges of Agile Development

Solving the Software Quality Challenges of Agile Development Solving the Software Quality Challenges of Agile Development 2 Solving the Software Quality Risks of Agile Development Agile software development is a series of iterative and incremental development methods

More information

Asset Based Development

Asset Based Development IBM Software Group Asset Based Development Grant Larsen gjlarsen@us.ibm.com November 2003 Agenda Introduction Asset-based Development Process Standards Tooling Assets Getting Started Agenda Introduction

More information

Driving a New IT Reality

Driving a New IT Reality VALUE OF THE CMDB 6 Driving a New IT Reality A federated CMDB provides a single source of critical information that enables IT to better support business goals. The right data in the right format, reconciliation

More information

Closing the Business Analysis Skills Gap

Closing the Business Analysis Skills Gap RG Perspective Closing the Business Analysis Skills Gap Finding the immediate solution and preparing for the long term As the Business Analysis bar is raised, skilled BAS become harder to find. Susan Martin

More information

ENTERPRISE ARCHITECTUE OFFICE

ENTERPRISE ARCHITECTUE OFFICE ENTERPRISE ARCHITECTUE OFFICE Date: 12/8/2010 Enterprise Architecture Guiding Principles 1 Global Architecture Principles 1.1 GA1: Statewide Focus 1.1.1 Principle Architecture decisions will be made based

More information

by Heather Oppenheimer and Steve Baldassano

by Heather Oppenheimer and Steve Baldassano Switching Tracks: Finding the Right Way to Get to Maturity Level 2 by Heather Oppenheimer and Steve Baldassano When your customer contract requires that your software development process must be CMMI Level

More information

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is: The period of time that starts when a software product is conceived and ends when the product is no longer

More information

Top Five Myths of Screen Scraping

Top Five Myths of Screen Scraping Top Five Myths of Screen Scraping The Evolution of Application Modernization Technology A WHITE PAPER FROM www.rocketsoftware.com/seagull Top Five Myths of Screen-Scraping 2 Imagine for a moment it s your

More information

Five best practices for deploying a successful service-oriented architecture

Five best practices for deploying a successful service-oriented architecture IBM Global Services April 2008 Five best practices for deploying a successful service-oriented architecture Leveraging lessons learned from the IBM Academy of Technology Executive Summary Today s innovative

More information

Practical Experiences of Agility in the Telecom Industry

Practical Experiences of Agility in the Telecom Industry Practical Experiences of Agility in the Telecom Industry Jari Vanhanen 1, Jouni Jartti 2, and Tuomo Kähkönen 2 1 Helsinki University of Technology, Software Business and Engineering Institute, P.O. Box

More information

Custom Development Methodology Appendix

Custom Development Methodology Appendix 1 Overview Custom Development Methodology Appendix Blackboard s custom software development methodology incorporates standard software development lifecycles in a way that allows for rapid development

More information

Cost Benefits of Server Virtualization

Cost Benefits of Server Virtualization 2010 W H I T E P A P E R 0 8 0 5 1 0 R. 1 Cost Benefits of Server Virtualization * By: Matt McPhail / Western Region Systems Engineer * Scale Computing * www.scalecomputing.com * Table of Contents Introduction

More information

Research Investments in Large Indian Software Companies

Research Investments in Large Indian Software Companies Research Investments in Large Indian Software Companies Pankaj Jalote Professor, Department of Computer Science and Engineering Indian Institute of Technology Kanpur, India 208016 jalote@iitk.ac.in, www.cse.iitk.ac.in/users/jalote

More information

Requirements for Software Deployment Languages and Schema

Requirements for Software Deployment Languages and Schema Requirements for Software Deployment Languages and Schema Richard S. Hall, Dennis Heimbigner, Alexander L. Wolf Software Engineering Research Laboratory Department of Computer Science University of Colorado

More information

Software Service Engineering Architect s Dream or Developer s Nightmare?

Software Service Engineering Architect s Dream or Developer s Nightmare? Software Service Engineering Architect s Dream or Developer s Nightmare? Gregor Hohpe Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043 gregor@hohpe.com Abstract. Architectural principles such

More information

A Guide for Writing a Technical Research Paper

A Guide for Writing a Technical Research Paper A Guide for Writing a Technical Research Paper Libby Shoop Macalester College, Mathematics and Computer Science Department 1 Introduction This document provides you with some tips and some resources to

More information

Matrox Imaging White Paper

Matrox Imaging White Paper Vision library or vision specific IDE: Which is right for you? Abstract Commercial machine vision software is currently classified along two lines: the conventional vision library and the vision specific

More information

Step 2 Go2Group Automation Self Assessment

Step 2 Go2Group Automation Self Assessment 2010-02-01 To Be (Automated) or Not To Be (Manual): A Dilemma for Small Development Shops? Automated software testing has long been an integral part of big software development organizations but is often

More information

How Perforce Can Help with Sarbanes-Oxley Compliance

How Perforce Can Help with Sarbanes-Oxley Compliance How Perforce Can Help with Sarbanes-Oxley Compliance C. Thomas Tyler Chief Technology Officer, The Go To Group, Inc. In collaboration with Perforce Software Perforce and Sarbanes-Oxley The Sarbanes-Oxley

More information

Microsoft SharePoint: A Powerful Solution for Environmental Health and Safety Programs

Microsoft SharePoint: A Powerful Solution for Environmental Health and Safety Programs Microsoft SharePoint: A Powerful Solution for Environmental Health and Safety Programs Prepared By: Robert Foster, M.S. Environmental Health & Engineering, Inc. Environmental Health & Safety (EHS) programs,

More information

SOA and the Organization

SOA and the Organization SOA and the Organization Nicolai M. Josuttis IT-communication.com 12/07 1 2 Independent consultant continuously learning since 1962 Nicolai Josuttis Systems Architect, Technical Manager finance, manufacturing,

More information

Using Use Cases for requirements capture. Pete McBreen. 1998 McBreen.Consulting

Using Use Cases for requirements capture. Pete McBreen. 1998 McBreen.Consulting Using Use Cases for requirements capture Pete McBreen 1998 McBreen.Consulting petemcbreen@acm.org All rights reserved. You have permission to copy and distribute the document as long as you make no changes

More information

Adventures in Estimating Open Source, Component Systems, Agile, and SOA Projects

Adventures in Estimating Open Source, Component Systems, Agile, and SOA Projects Open Source, Component Systems, Agile, and SOA Projects Terry Vogt Lead Associate Booz Allen Hamilton Sept 13, 2011 Ready for what s next 1 Booz Allen Hamilton 1 Agenda Background Open Source Component

More information

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.) The Software Process Xiaojun Qi 1 The Unified Process Until recently, three of the most successful object-oriented methodologies were Booch smethod Jacobson s Objectory Rumbaugh s OMT (Object Modeling

More information

Knowledgent White Paper Series. Developing an MDM Strategy WHITE PAPER. Key Components for Success

Knowledgent White Paper Series. Developing an MDM Strategy WHITE PAPER. Key Components for Success Developing an MDM Strategy Key Components for Success WHITE PAPER Table of Contents Introduction... 2 Process Considerations... 3 Architecture Considerations... 5 Conclusion... 9 About Knowledgent... 10

More information

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL Sanja Vukićević 1, Dražen Drašković 2 1 Faculty of Organizational Sciences, University of Belgrade, vukicevicsanja@yahoo.com 2 Faculty

More information

21st Century Tax Systems: COTS or Service Oriented Architectures. August 3, 2009

21st Century Tax Systems: COTS or Service Oriented Architectures. August 3, 2009 21st Century Tax Systems: COTS or Service Oriented Architectures August 3, 2009 Agenda SOA and COTS Defined Integrated Tax Systems Other Tools that support SOA Pros and Cons Additional Considerations 2

More information

The Hitchhiker's Guide to Mobile Apps Test Automation Galaxy

The Hitchhiker's Guide to Mobile Apps Test Automation Galaxy The Hitchhiker's Guide to Mobile Apps Test Automation Galaxy TenKod EZ TestApp Technology Sales office TenKod Ltd. Table of Contents Abstract... 3 Test Automation for Mobile Apps Challenges and PAINS...

More information

BUSINESS RULES AND GAP ANALYSIS

BUSINESS RULES AND GAP ANALYSIS Leading the Evolution WHITE PAPER BUSINESS RULES AND GAP ANALYSIS Discovery and management of business rules avoids business disruptions WHITE PAPER BUSINESS RULES AND GAP ANALYSIS Business Situation More

More information

What are the benefits of Cloud Computing for Small Business?

What are the benefits of Cloud Computing for Small Business? Cloud Computing A Small Business Guide. Whilst more and more small businesses are adopting Cloud Computing services, it is fair to say that most small businesses are still unsure of what Cloud Computing

More information

Surround SCM Best Practices

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,

More information

A Practical Roadmap to SOA Governance. 2011 Enterprise Integration Services

A Practical Roadmap to SOA Governance. 2011 Enterprise Integration Services A Practical Roadmap to SOA Governance 2011 A Practical Roadmap to SOA Governance Corporate Overview Staples is the world s largest office products company and a trusted source for office solutions. Provides

More information

Milestone Federated Architecture TM

Milestone Federated Architecture TM White paper Milestone Federated Architecture TM Prepared by: John Rasmussen, Senior Technical Product Manager, Corporate Business Unit, Milestone Systems Date: June 22, 2015 Table of Contents Introduction...

More information

CHAPTER 1: INTRODUCTION TO RAPID APPLICATION DEVELOPMENT (RAD)

CHAPTER 1: INTRODUCTION TO RAPID APPLICATION DEVELOPMENT (RAD) CHAPTER 1: INTRODUCTION TO RAPID APPLICATION DEVELOPMENT (RAD) 1. INTRODUCTIONS RAD refers to a development life cycle designed Compare to traditional life cycle it is Faster development with higher quality

More information

What CMMI Cannot Give You: Good Software

What CMMI Cannot Give You: Good Software What CMMI Cannot Give You: Good Software Ivar Jacobson ivar@ivarjacobson.com ivar@jaczone.com Objective To understand what CMM/CMMI is and what it is not To demonstrate how the unified process helps you

More information

Computing & Communications Services

Computing & Communications Services 2010 Computing & Communications Services 2010 / 10 / 04 Final Kent Percival, M.Sc., P.Eng. Defining the Value of the Business Analyst In achieving its vision, key CCS partnerships involve working directly

More information

Satisfying business needs while maintaining the

Satisfying business needs while maintaining the Component-Based Development With MQSeries Workflow By Michael S. Pallos Client Application Satisfying business needs while maintaining the flexibility to incorporate new requirements in a timely fashion

More information

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch RUP Design RUP Artifacts and Deliverables RUP Purpose of Analysis & Design To transform the requirements into a design of the system to-be. To evolve a robust architecture for the system. To adapt the

More information

Organizing for Software Product Lines

Organizing for Software Product Lines Organizing for Software Product Lines Jan Bosch University of Karlskrona/Ronneby Department of Software Engineering and Computer Science SoftCenter, S-372 25, Ronneby, Sweden Jan.Bosch@ipd.hk-r.se Abstract

More information

Software Configuration Management. Context. Learning Objectives

Software Configuration Management. Context. Learning Objectives Software Configuration Management Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk Context Requirements Inception Elaboration Construction Transition

More information

OUTSOURCE IT OR KEEP IT IN-HOUSE?

OUTSOURCE IT OR KEEP IT IN-HOUSE? OUTSOURCE IT OR KEEP IT IN-HOUSE? RON SELLERS GREY MATTER RESEARCH & CONSULTING Originally published in Quirk s Marketing Research Review, May 1998 To outsource, or not to outsource: that is the question.

More information