Software Product Lines John D. McGregor Clemson University.

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

Introduction to Product Family Engineering. 11 Oct 2002 Ver 2.0 ©Copyright 2002 Vortex System Concepts 2 Product Family Engineering Overview Project Engineering.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Test Automation Success: Choosing the Right People & Process
Database Systems: Design, Implementation, and Management Tenth Edition
Lecture # 2 : Process Models
DAIMIHenrik Bærbak Christensen1 Product Lines Architectural Reuse.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
1 Software Product Lines Re-using Architectural Assets - continued from CSSE CSSE 477 Software Architecture Week 7, Day 2, including Ch 14 in Bass’s.
Fundamentals of Information Systems, Second Edition
1 Objective of today’s lesson S oftware engineering occurs as a consequence of a process called system engineering. Instead of concentrating solely on.
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
Course Instructor: Aisha Azeem
Economies of Scale in Software Economies of Scale: “The increase in efficiency of production as the number of goods being.
Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common.
Software Product Line Architectures (SPLA) Nipun Shah
Architecture and Software Product Lines A software architecture represents a significant investment of time and effort, usually by senior talent. So it.
Computer Systems & Architecture Lesson Software Product Lines.
Enterprise Architecture
Software Architecture in Practice (3rd Ed) Introduction
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
SEI´S Software Product Line Tenets Linda M. Northrop Software Engineering Institute IEEE Software July/August 2002.
CPSC 871 John D. McGregor Module 5 Session 2 Software Product Lines.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
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
An Introduction to Software Architecture
The Software Product Line Architectures
SYSE 802 John D. McGregor Module 8 Session 2 Platforms, Ecosystems, and Innovations.
JVB-STC'97- 1 #*#* Successful Adoption and Use of Object Oriented Technologies STC ‘97 April 30, 1997 Jim Van Buren.
Principles of Information Systems, Sixth Edition Systems Design, Implementation, Maintenance, and Review Chapter 13.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
1-1 System Development Process System development process – a set of activities, methods, best practices, deliverables, and automated tools that stakeholders.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
UML Use Case Diagramming Guidelines. What is UML? The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing,
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Principles of Information Systems, Sixth Edition 1 Systems Design, Implementation, Maintenance, and Review Chapter 13.
An organizational structure is a mostly hierarchical concept of subordination of entities that collaborate and contribute to serve one common aim... Organizational.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 2 - September 14, 2004.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
Enterprise Architectures Course Code : CPIS-352 King Abdul Aziz University, Jeddah Saudi Arabia.
Pragmatics 4 Hours.
Design Patterns: MORE Examples
CompSci 280 S Introduction to Software Development
Software Engineering (CSI 321)
Software Factories - Today and Tomorrow
Software Product Lines
Chapter 25: Architecture and Product Lines
Model-Driven Analysis Frameworks for Embedded Systems
Introduction to Software Testing
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Architecture in Practice
Requirements Engineering for Product Lines
Introduction To software engineering
Analysis models and design models
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
Software Design Lecture : 15.
An Introduction to Software Architecture
Requirements Document
CSSE 477 Software Architecture
System architecture, Def.
Presentation transcript:

Software Product Lines John D. McGregor Clemson University

My perspectives ResearcherProfessor Small business owner/consultant Primarily scientific and embedded systems for Honeywell TSI, AT&T, … Courses in software engineering and systems engineering Visiting scientist at SEI

animated-cartoons-new-product-line animated-cartoons-new-product-line

Outline What is it? What’s different? What’s REALLY different? What does it do for your organization? Does it really work?

It’s a … business strategy – A means of accomplishing business goals related to the development of software-intensive products technical strategy – Using an assortment of mechanisms to manage the variations among products toothpaste too!

The 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. 1 1 Clements, P. & Northrop, L. Software Product Lines: Practices and Patterns. Boston, MA: Addison-Wesley, 2001.

Framework for Product Line Practice Architecture Definition Architecture Evaluation Component Development Using Externally Available Software Mining Existing Assets Requirements Engineering Software System Integration Testing Understanding Relevant Domains Configuration Management Measurement and Tracking Make/Buy/Mine/Commission Analysis 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 EngineeringOrganizational Management Technical Management

A software product line is not… Family of Systems: “A set or arrangement of independent systems that can be arranged or interconnected in various ways to provide different capabilities. The mix of systems can be tailored to provide desired capabilities dependent on the situation.” System of systems: is defined as a set or arrangement of systems that results when independent and useful systems are integrated into a larger system that delivers unique capabilities.

Definitions Core asset – an asset that is used in the building of multiple products in the product line Product – the final deliverable to a customer; it need not be a stand-alone system Feature - a product capability that satisfies a specific user/buyer need Commonality – those behaviors that appear in many products Variability – the ability to easily, in a pre-planned way, change how an element works or what it does Variation point – where variability can occur Variant – one of the choices that can be made at a variation point

What’s different – separation of roles Creating assets to be reusable – All artifacts have the potential to be reused – But only within the scope of the product line Composing products – There are still some unique aspects of every product – But product building is faster and more constrained than core asset development or one- off product development

An operating product line organization Core asset development Product development Useful assets Feedback Products Product development

What’s different - variation Commonality/variability analysis identifies where products differ and where they are the same – Differ in what they do – Differ in how they do it This is not just “select a printer from the list” It is fundamental changes in behavior – The system does or does not have the ability to print.

What’s different – attached process Every core asset comes with a user’s manual The manual describes how to resolve variations in the assets – Make choices based on the product’s requirements – Satisfy constraints among the variants The manual may be a script that automates the selection process or it might be a document that details what to do.

What’s different - management Strategic approach to software-intensive product production A production capability that can quickly produce new (similar) products Mass customization for low cost Know your domain and its trajectory

What’s different – strategic reuse This is a strategic reuse scheme Not just about the software Core assets include – The software architecture – Product documentation – Tests and test plans

Options A software product line approach provides options to future opportunities. – The exact opportunities and their certainty are impossible to predict. – Organizations need a way to conduct product experiments in low-cost, low-risk ways. – Software product lines permit those kind of experiments through predefined variation points that can be exercised to meet new needs. – For example, having the option to add a new data file is a user feature but the option to add new data types is a variation because not every product will have the feature of adding new data types

Example: Data analysis products Variations -- makes money – Algorithms – Data types – Data formats – Report formats Commonality -- saves money – Database I/O – User interface structure

How do we do it? Fixed scope – We are not building the universally usable asset – Each asset must only meet the needs of the product line Flexible architecture – Variation points limit where the architecture can be changed Clearly defined variation points – Each variation point has a specified list of acceptable options

Feature model Identifies variations at strategic level mandatory optional

Architecture Architecture is the structure of a product along with relationships and properties. No single picture shows the entire architecture.

Quality attributes The functional requirements are necessary but not sufficient for an acceptable product. We spend much time modifying structures and relationships to achieve acceptable levels of qualities such as maintainability and portability. “Acceptable level” may be a variation point. – Secure vs non-secure

Product line architecture A product line architecture must – apply to all members of the product line (even if their functions and qualities differ) – embody the commonalities and variabilities of the family members The product line architecture is informed primarily by the product line’s scope definition the product line requirements specification(s). Architectural variation mechanisms are used to make the architecture work for the entire set of products.

Architecture variation mechanisms Common variation mechanisms include – replacement, omission, and replication of architectural elements – object-oriented (OO) techniques inheritance specialization delegation application frameworks – parameterization (including macros and templates) Special case: compile-time selection of different implementations or implementation fragments (e.g., #ifdef) – generation and generators – aspect-oriented programming an approach for modularizing system properties that otherwise would be distributed across modules

Everything is under management Product line-wide core assets CONOPS Production Plan template Product-level core assets Product-unique assets Code Test plan Product B Product A Products Product-specific Production plan Business Plan

The ecosystem of a DoD product line organization Many players interact in a large product line organization. The core asset base becomes a “platform”. An ecosystem forms around a platform.

What’s REALLY different Strategic business level buy-in and participation in a new way of doing business A manufacturing perspective where product development is predictable. Software becomes a valued asset to be maximized rather than an expense to be minimized

What’s in it for your organization? Faster Cheaper Better Tune the strategy to meet your business needs.

Does it really work? 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 (to field, to launch) by as much as 98% Ability to move into new markets in months, not years

Click to edit Master title styleWho does it work for? Boeing Bosch Group CelsiusTech Systems AB Cummins, Inc. Ericsson AXE General Motors Powertrain (GMPT) General Motors Powertrain (GMPT) Hewlett Packard HomeAway LSI Logic Lucent Market Maker Nokia Philips (Medical Systems) Philips (Software for Television Sets) Philips (Software for Television Sets) Philips (Telecommunication Switching System) Philips (Telecommunication Switching System) Salion, Inc. Toshiba U.S. Naval Research Laboratory U.S. Naval Research Laboratory

Starting a dialog I hope that this will start a dialog – About what this would mean to STSCI – About what it would take to adopt this approach

Questions Lets start the dialog now …