SOFTWARE PRODUCT LINES: A RESEARCH INFRASTRUCTURE. John D. McGregor Clemson University

Similar documents
Introduction to Software Product Lines Patrick Donohoe Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213

Collaborative Planning Methodology (CPM) Overview

Business Case for the Arcade Game Maker Product Line

Exam Questions OG0-091

Product Line Engineering Lecture PLE Principles & Experiences (2)

JOURNAL OF OBJECT TECHNOLOGY

SERVICE ORIENTED ARCHITECTURE (SOA)

Testing a Software Product Line

Arcade Game Maker Pedagogical Product Line: Business Case

In Pursuit of Agility -

Simon Fraser University, 2 Athabasca University

The Open Group Exam OG0-091 TOGAF 9 Part 1 Version: 7.0 [ Total Questions: 234 ]

Business Case for the Arcade Game Maker Product Line

Umeå University Department of Computing Science SE UMEÅ SWEDEN

Deployment of MBSE processes using SysML

Introduction to Software Engineering

Chapter 15. Supporting Practices Service Profiles 15.2 Vocabularies 15.3 Organizational Roles. SOA Principles of Service Design

Software Design Patterns (CPIT 252)

Enterprise Architecture: an ideal discipline for use in Supply Chain Management

MBA BADM559 Enterprise IT Governance 12/15/2008. Enterprise Architecture is a holistic view of an enterprise s processes, information and

Glossary 1. For a complete glossary of support center terminology, please visit HDI s Web site at HDI Course Glossary

MARKETING AND SUPPLY CHAIN MANAGEMENT

BUILDING THE ONE GSA ENTERPRISE ARCHITECTURE

MARKETING AND SUPPLY CHAIN MANAGEMENT

MBA Core Curriculum Course Descriptions

Data Warehousing provides easy access

Objectives. Rapid software development. Topics covered. Rapid software development. Requirements. Characteristics of RAD processes

Blackblot PMTK Role Descriptions. <Comment: Replace the Blackblot logo with your company logo.>

R.POONKODI, ASSISTANT PROFESSOR, COMPUTER SCIENCE AND ENGINEERING, SRI ESHWAR COLLEGE OF ENGINEERING, COIMBATORE.

Software Product Line Engineering L5:Organisations and SPL

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

TOGAF 9 Training: Foundation

CMMI Version 1.2. Model Changes

Component-based Architecture And Modeling and Simulation 07/03/2002 9:33 1

Policy Administration Transformation

Strategies for Implementing a Product Line Approach to Software Reuse at the NRO

Understanding Business Requirements in terms of Components

copyright Value Chain Group all rights reserved

JOURNAL OF OBJECT TECHNOLOGY

Methodological approaches based on business rules

White Paper. Demand Shaping. Achieving and Maintaining Optimal Supply-and-Demand Alignment

Simulation Analytics

Software Product Line Engineering

An Approach to Reconcile the Agile and CMMI Contexts in Product Line Development. Fredy Navarrete, Pere Botella, Xavier Franch

Why Decisions Matter

Engineered Resilient Systems (ERS) Architecture

Model-based Architectural Framework for Rapid Business Transformation of Global Operations

Arcade Game Maker Product Line System Test Plan Template

Enterprise Architecture and COBIT

Arcade Game Maker Product Line Concept of Operations

Achieve Powerful Business Benefits by Streamlining Document Workflows

What s in the Code Unraveling the Enigma of Legacy Systems. logical solutions. adjusted to the need

TOGAF Foundation. Part I: Basic Concepts 1 /

II. INFORMATION NEEDS ASSESSMENT: A TOP-DOWN APPROACH

JOURNAL OF OBJECT TECHNOLOGY

Instructions. AIRBUS A3XX: Developing the World s Largest Commercial Aircraft

Software Engineering Lecture 5 Agile Software Development

Introduction to Software Product Line Adoption

Address system-on-chip development challenges with enterprise verification management.

Software Product Lines. Dennis Wagelaar Viviane Jonckers Software Languages Lab

Enterprise Architecture as an Essential Tool Supporting Army Transformation. Fernando Mezquita

TOGAF 9.1 Phases E-H & Requirements Management

Approach to Technology Architecture

This chapter illustrates the evolutionary differences between

The Work Breakdown Structure in the Systems Engineering Process. Abstract. Introduction

Systems Engineering in Large-scale Agile Software Development

A TWELVE-STAGE CRM PLANNING STRATEGY

Passit4Sure.OG Questions. TOGAF 9 Combined Part 1 and Part 2

Software Development Methodologies. CSC 440: Software Engineering Slide #1

RESOLVING APPLICATION DEVELOPMENT ISSUES USING SOA Y. KIRAN KUMAR 1, G.SUJATHA 2, G. JAGADEESH KUMAR 3

Integral Architecture for Organizational Systems Arquetipos

Five Reasons Why Strategic Planning Fails to Produce Desired Results

The new human resources management in the 21 st century: a strategic view

FOUNDATIONAL CONCEPTS FOR MODEL DRIVEN SYSTEM DESIGN

How SOA Can Help EA. Enterprise Architecture Conference 2008

Exam Duration: 2 hours and 30 minutes

IT Architect Regional Conference 2007

IMI, Inc. MDA Best Practices for the Agile Enterprise. Louis J. Eyermann PRESENTED BY: PEO STRI Project Office for Common Product Components

Information Technology Strategy: Three Misconceptions

Intranets and Customer Asset Management

In this video I want to share with you some thoughts about strategic or big picture planning. Thinking long term about some difficult topics that

Software Engineering & Architecture

Building an Integrated Talent Management Strategy. Stavros Liakakos, VP HCM Strategy Knowledge Infusion

Business Process Improvement Guided by the BPMM i

Towards a Model-driven and Tool-integration Framework for Co- Simulation Environments. Jinzhi Lu, Martin Törngren

Best Practices for the Architecture, Design, and Modernization of Defense Models and Simulations

Innovation and Technology Management

CHAPTER 1 INTRODUCTION

Open Systems: State of the Practice

Feedback Control and Optimization in Online Advertising

ENTERPRISE SOFTWARE ARCHITECTURE: A CASE FOR DEVELOPMENT OF ENTERPRISE-WIDE INFORMATION SYSTEMS

When big business meets big data, a dynamic approach to analytics is essential

ISO 55000, IIoT, and EAM: Solving the asset management puzzle

Leverage Excel. Avoid the Pitfalls. How to embrace and extend Excel for Enterprise Planning

Engineering Practices and Patterns for Rapid BIT Evolution

Managerial Accounting: An Overview

Business Process Modeling Information Systems in Industry ( )

Rational Unified Process (RUP) in e-business Development

Chapter 3 Agile Software Development. Part 1b

PART 1: INTRODUCTION. Purpose of the BIZBOK Guide. What is Business Architecture?

Transcription:

SOFTWARE PRODUCT LINES: A TECHNIQUE FOR BUILDING A RESEARCH INFRASTRUCTURE John D. McGregor Clemson University

Motivation Faculty and students develop a large amount of software For faculty this is an on-going effort; for a student there is a terminal objective a degree For both, the algorithm is the immediate objective; the code is secondary The student leaves and the software sits Our hypothesis is that with a small delta in effort a research infrastructure that will be used for numerous projects can be built.

Research product line Professor has a product line of research results captured in code. The programs have much in common, but they do vary from each other. Over time the commonality increases as does its usefulness. Every new effort can start from where others left off.

Informally The goal of the software product line strategy is to establish a production capability that can rapidly and accurately produce multiple products within a well-defined scope achieve specific business goals that can be affected by the way the organization produces products. A faculty member has a long-range plan that will be realized in several programs.

Informally We do this by Designing a software infrastructure in anticipation of differences among the multiple products Structuring the research and the research group to take advantage of common interests Use the instructional program to contribute to the infrastructure

Systematic Review A systematic review is more rigorous than a traditional literature review and attempts to reduce the influence of bias in a number of ways: It addresses a clearly formulated question It uses systematic and explicit methods to identify, select and critically appraise relevant research It uses systematic and explicit methods to collect and analyze data from the studies that are included in the review Statistical methods (meta-analysis) may or may not be used to analyze and summarize the results of included studies which are considered similar enough to combine.

Defining the problems to be solved Defining the features needed to answer a research question is not easy but... Features come from systematic review Scoping a software product line defines the features that will be shared by a set of products rather than just one product. http://www.sei.cmu.edu/productlines/ppl

It is a reuse strategy, but on steroids A software product line organization builds and (re)uses assets, but the assets are all targeted at products within the well-defined scope. We will reuse anything (code, documentation, tests, ) as long as it is useful in building the products within the scope of the product line. Our goal is not reuse, our goal is to produce products quickly and economically.

Goal Getting answers as quickly and cheaply as possible is the primary goal (unless you just like writing code) By building products using assets in inventory, a software product line organization can more quickly assemble a product, provided it is within the scope of the product line. Cummins Engines reduced their time to develop the software for a new engine from about 12 person months to as little as 1 week Each new project begins with a delta on the systematic iterature review

Some real numbers Improved productivity by as much as 10x Increased quality by as much as 10x Decreased cost by as much as 60% Decreased labor needs by as much as 87% Decreased time to market by as much as 98%

Product Line Definition A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. A frequent misconception is that the core assets, the reusable pieces, are the product line. As you can see from the definition, the product line comprises the products.

Product Line Definition - 1 set of software-intensive systems The product line is the products The product line organization produces the products Set of airline reservation systems Software controllers for diesel engines Ground satellite control software systems

Product Line Definition - 2 common, managed set of features Common identifying ahead of time common features of the products and the variations in products Managed evolution is anticipated, variation is controlled, and the inventory of features is what we sell Data storage and management actions Image analysis techniques Information classification techniques

Product Line Definition - 3 particular market segment or mission Focusing makes the percentage of commonality higher The culture of the market segment determines specific quality levels Medical devices Video games

Product Line Definition - 4 common set of core assets A core asset is anything used to produce multiple products Source code yes, but also Software architecture Test infrastructure, test cases, and test data Production plans. The assets are designed to handle the range of variability defined in the product line scope Each asset is accompanied by an attached process, which h explains how to use the asset in building a product Implementation of doppler compensation algorithms Test scenarios for engine controllers

Product Line Definition - 5 prescribed way A production strategy coordinates the business goals with the development of core assets and products A production plan describes the way in which each product is to be produced Architecture-centric management Traditional i programmer-centric code development Model-driven automatic code generation

The payoff Initiating a software product line strategy requires some amount of up-front investment although it can be minimal. If the commonality is sufficiently high, payback can happen after a relatively l small number of products. Cumulative Costs Current Practice With Product Line Approach Your results may vary. Numbers of Products Many organizations have reached the payoff point

Initial work Faculty member defines a basic infrastructure by Creating a central Configuration Management repository Identifying standard software projects Writing some glue code Faculty member and students form affinity groups Faculty member mentors - PhD student McGregor Tacksoo Im PhD student mentors - MS students Tacksoo Im Soujanya Vullam and Lakshmi Kothapalli

How s it done? Essential activities Core asset development Product development Management

Core asset development What can we profitably reuse? How many products will use it? How much extra will it cost to make it reusable? We reuse ANYTHING that makes sense (money) Source code obviously but non-software assets also For example, we decompose a test suite into individual test cases, then compose as needed by a product Often a team is devoted to providing these assets This team has a vision that encompasses all products that would use its assets. An attached process accompanies each core asset to facilitate reuse of the asset A student/faculty member is responsible for identifying new chunks of code that should interest others. That is documented and checked in.

Use an environment

Product development Product development is combining core assets with product-specific artifacts to produce products. Product development moves faster than in traditional development because of the assets and the small percentage of product-specific artifacts. A product team may continue to own the product it has built or it may hand it off to a maintenance team. This team is focused on one product. Each student is responsible for designing within the guidelines, documenting code, and checking into the CM system.

Management A central authority, such as a product line manager, oversees the organization which may cut across multiple business unit boundaries Coordinates the production of core assets and the assembly of products. Ensures that resources are available at the right time to optimize operation of the production capability. A faculty member provides broad direction to fill in missing pieces or to A faculty member provides broad direction to fill in missing pieces or to take the next logical step.

Activities and practices Carrying out the activities touches 29 practice areas Software Engineering Architecture Definition Architecture Evaluation Component Development Mining Existing Assets Requirements Engineering Software System Integration Testing Understanding Relevant Domains Using Externally Available Software Technical Management Organizational Management Configuration Management Make/Buy/Mine/Commission Analysis Measurement and Tracking Process Discipline Scoping Technical Planning Technical Risk Management Tool Support Building a Business Case Customer Interface Management Developing an Acquisition Strategy Funding Launching and Institutionalizing Market Analysis Operations Organizational Planning Organizational Risk Management Structuring the Organization Technology Forecasting Training

Software architecture Perhaps the key core asset Captures early decisions about solving the problem Communication vehicle among the stakeholders Explicitly addresses the quality attributes Reliability Security Dependability

Product line architecture The product line architecture is the architecture for a family of systems Is more abstract, not every thing is completely defined There are holes in its specification, but the architecture constrains how the holes can be filled This may be a fairly abstract architecture but one that will fit most of the software being created.

Variation Products vary from one another in specific ways - the allowable contents of the holes in the architecture. Strategic variations at the business unit s level. Tactical variations at the technical manager s level Variation points at the implementation level. How is each research project different? What is needed for each? Strategic Variation Tactical Variation Variation Point Variation Point Variation Point Core Asset Tactical Variation Variation Point Core Asset

Commonality/Variability y Analysis What do the products in the product line have in common? How are they different? A configuration is a selection of inclusive and exclusive OR feature choices to completely define a single member of the product line.

Product architecture Each hole is plugged by a specific variant determined by the features selected. 3 1 2

What happens now Currently using this approach locally and globally I am open to collaboration on this research approach. I can provide advice about the mechanics.

Resources Software Product Line Conference www.splc.net and the associated group on LinkedIn.com Software Product Line group at www.linkedin.com My Strategic Software Engineering column in JOT www.jot.fm Catalog of software product lines http://www.sei.cmu.edu/productlines/casestudies/catalog/ Technical literature at www.sei.cmu.edu/productlines Software product line tools http://www.splot-research.org/ org/

Summary SPL is not a silver bullet, but it is an industry-proven strategy that produces dramatic results in exchange for hard work and discipline. Send questions and comments to johnmc@cs.clemson.edu

Questions?