CPSC 871 John D. McGregor Module 5 Session 2 Software Product Lines.

Slides:



Advertisements
Similar presentations
Chapter 3 E-Strategy.
Advertisements

Introduction to Product Family Engineering. 11 Oct 2002 Ver 2.0 ©Copyright 2002 Vortex System Concepts 2 Product Family Engineering Overview Project Engineering.
© 2004 Visible Systems Corporation. All rights reserved. 1 (800) 6VISIBLE Holistic View of the Enterprise Business Development Operations.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Software Product Lines
Iterative development and The Unified process
Copyright Cengage Learning 2013 All Rights Reserved 1 Chapter 14: Supply Chain Management Introduction to Designed & Prepared by Laura Rush B-books, Ltd.
Chapter 3 The Structure of the CMM
Chapter 16 Strategically Managing the HRM Function Copyright © 2015 McGraw-Hill Education. All rights reserved. No reproduction or distribution without.
Hosted by Achieving Best Business Performance Mark R. Willford, Partner Accenture.
Course Instructor: Aisha Azeem
Chapter 19 OPERATIONS AND VALUE CHAIN MANAGEMENT © 2003 Pearson Education Canada Inc.19.1.
Making Human Resource Management Strategic
Software Product Line Engineering Andrew Burmester SE 4110 Section 2 4/14/11.
Product Line Approaches in Software Engineering April 29, 2013 Sophia Wu.
Architecture and Software Product Lines A software architecture represents a significant investment of time and effort, usually by senior talent. So it.
Domain-Specific Software Engineering Alex Adamec.
Acquiring Information Systems and Applications
Computer Systems & Architecture Lesson Software Product Lines.
© 1998 Concept Five Technologies Enterprise Application Integration Capability Maturity Model.
Enterprise Architecture
Operations and Supply Chain Strategy
Chapter : Software Process
SEI´S Software Product Line Tenets Linda M. Northrop Software Engineering Institute IEEE Software July/August 2002.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Integrated Capability Maturity Model (CMMI)
CPSC 871 John D. McGregor Processes – a first iteration Module 1 Session 1.
CPTE 209 Software Engineering Summary and Review.
1 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
Strategy #5. IT Architecture and IT Infrastructure are Metaphors Architecture - the relationship between planning and building Infrastructure - examples.
Chapter 2 The process Process, Methods, and Tools
Engineering, Operations & Technology | Information TechnologyAPEX | 1 Copyright © 2009 Boeing. All rights reserved. Architecture Concept UG D- DOC UG D-
Chapter 1 Introduction Managers and Managing.
1 Process Engineering A Systems Approach to Process Improvement Jeffrey L. Dutton Jacobs Sverdrup Advanced Systems Group Engineering Performance Improvement.
Developing a result-oriented Operational Plan Training
The Challenge of IT-Business Alignment
The Software Product Line Architectures
© 2013 Visible Systems Corporation. All rights reserved. 1 (800) 6VISIBLE Achievement of an Integrated Applications Environment Enterprise.
Certification and Accreditation CS Phase-1: Definition Atif Sultanuddin Raja Chawat Raja Chawat.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Building Capability.  In order to successfully operate an architecture function within an enterprise, it is necessary to put in place appropriate organization.
Enterprise Architecture Enterprise Architecture = a framework or ‘blueprint’ for how the organization achieves the business objectives at hand and in future.
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Build the Right Team 1 Organize for Success 2 Build Coalition with Business Partners 3 Maintain Flexibility 4 Key Success Factors KSF 1.1: Relentlessly.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
C H A P T E R 10 Continuous Improvement in Management Accounting Continuous Improvement in Management Accounting.
Adaptive Processes: Linking Strategy with Execution.
McGraw-Hill/Irwin Copyright © 2011 by the McGraw-Hill Companies, Inc. All rights reserved.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Copyright ©2005 by South-Western, a division of Thomson Learning. All rights reserved Chapter 17 1 Information Management Systems MANAGEMENT Meeting and.
Chapter 8 Management, Leadership, and Internal Organization Learning Goals Define management and the skills necessary for managerial success. Explain the.
Implementing Strategy Chapter 7. Objectives Upon completion of this chapter, you should be able to:  Translate strategic thought to organisational action.
Foundations of Information Systems in Business. System ® System  A system is an interrelated set of business procedures used within one business unit.
 CMMI  REQUIREMENT DEVELOPMENT  SPECIFIC AND GENERIC GOALS  SG1: Develop CUSTOMER Requirement  SG2: Develop Product Requirement  SG3: Analyze.
Organizations of all types and sizes face a range of risks that can affect the achievement of their objectives. Organization's activities Strategic initiatives.
Configuration Control (Aliases: change control, change management )
1 KM Track Overview & Gaining Value from Knowledge -- Knowledge Management (KM) and the Contracting Professional Breakout Session # 119 Name: Gaining.
Product Line Architecture. Systems Systems often come in families: basic, regular, professional, enterprise,… Can we share components? Is architecture.
Strategic Information Systems Planning
CIM Modeling for E&U - (Short Version)
Systems Engineering Tool for Intelligent Transportation
By Jeff Burklo, Director
Software Architecture in Practice
INTERNATIONAL COMPETITIVE STRATEGY
Presentation transcript:

CPSC 871 John D. McGregor Module 5 Session 2 Software Product Lines

Session Objective To introduce the concepts related to software product lines and briefly explore the role of systems engineering.

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 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 programmer-centric code development Model-driven automatic code generation

Quiz: Do these cell phones, all Nokia products, form a SPL? You can’t tell just by looking whether a group of products is a product line or not. Just because they share features does not mean they were built from a shared set of core assets. It does not mean they were built efficiently and economically.

Strategic reuse Reuse that will get the CEO’s attention Reuse that changes the business model Reuse that blends business strategy and technical strategy

Strategic reuse Strategic reuse is an integral part of the development culture and embraces all of the actions of the organization. Reports from companies, such as Rolls Royce, show that less than 10% of the cost of a product is in the code. If reuse is limited to code then even 100% code reuse will have limited impact.

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 small number of products. Many organizations have reached the payoff point Cumulative Costs Numbers of Products Current Practice With Product Line Approach

Overwatch Textron Systems Overwatch Intelligence Systems – Signal intelligence – Human intelligence – Imagery intelligence – Measurement and Signature intelligence Initial challenges – Funding – Organizational structure Paul Jensen. Experiences With Software Product Line Development, Crosstalk, January 2009.

Overwatch Textron Systems Funding – Investment with own funds and with government funds – Joint ownership of IP enables reuse for the customer that invested but no competition Achievements – Roughly improved time to market of 2.5 times – Reuse factor of 70% – Core asset base was sold to a government customer

Overwatch Textron Systems Viper architecture – Blends SOA and event-driven – Open architecture using publish/subscribe Lessons learned – Senior management support is critical – Product line architecture is essential – Product line requirements addressed up front – Develop a domain analysis process – Perform domain analysis as soon as possible

Nokia "…increased efficiency through reuse as well as accelerated product implementation, lowered cost, and increased quality." "We could not have developed four different products and six annual releases with our given resources without a product line." Led to improved working conditions - less than 3% turnover, product line highly rated in Nokia's internal survey of working conditions.

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

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.

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.

Product Line organization Core asset team Product team Configuration management Product team Strategic partner Software architecture Parent organization Reference architecture Domain organization Open source Asset source requirements Customer $$$ Product management Software product line ecosystem

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  Configuration Management  Make/Buy/Mine/Commission Analysis  Measurement and Tracking  Process Discipline  Scoping  Technical Planning  Technical Risk Management  Tool Support  Organizational Management  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

Key ingredients Business case Software architecture Variability management

Tie key business goals to technical actions The business goals guide many decisions – Is cost more important than speed? – There can only be one number one priority A business case – identifies goals and justifies strategies for achieving them – formalizes the product line scope – incorporates marketing and technology forecasts to justify the scope

It is SIMPLE Structured Intuitive Model of Product Line Economics Supports cost/benefit analysis of a product line Fixed costsVaries with number of productsBesides reduced costs

Cost functions Corg() returns the cost to an organization of adopting the product line approach for its products. Such costs can include reorganization, process improvement, training, and whatever other organizational remedies are necessary. Ccab() returns the development cost to develop a core asset base suited to satisfy a particular scope. Ccab takes into account the cost of performing a commonality/variability analysis, defining the product line’s scope the cost of designing and then evaluating a generic (as opposed to one-off) software architecture, and the cost of developing the software so designed. Ccab may be invoked to tell us the cost of developing a core asset base where none currently exists, or it may be invoked to tell us the cost of deriving a desired core asset base from one or more already in place. Cunique() returns the software development cost for the part of a product not based on a product line’s core asset base – that is, software unique to a particular product. Creuse() returns the development cost to reuse core assets in a core asset base. Creuse includes the cost of locating a core asset, checking it out of the repository, tailoring it for use in the intended application, and performing the extra integration tests associated with reusing core assets. B ben () returns the benefits that accrue due to use of the product line strategy

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

Variation Products vary from one another in specific ways - the allowable contents of the holes in the architecture. Strategic variations at the business unit level. Tactical variations at the technical manager’s level Variation points at the implementation level. Strategic Variation Tactical Variation Core Asset Variation Point Core Asset Variation Point

Commonality/Variability 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 12 3 Each hole is plugged by a specific variant determined by the features selected.

Assets and Products The product line approach may appear to stress assets over products but clearly the ultimate goal is to be able to produce products. Product managment benefits from the efficiency of analyzing multiple products together as opposed to one product at a time. This grouping raises the visibility of the product manager’s role and by clearly linking business goals with technical actions the input from the product manager is seen as more relevant by technical personnel.