Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida

Slides:



Advertisements
Similar presentations
Domain Engineering Silvio Romero de Lemos Meira
Advertisements

Main issues: • Why is reuse so difficult • How to realize reuse
Chapter 22 Product Line Engineering Week 1 CIS 673.
Software Reuse SEII-Lecture 28
Software Reuse Building software from reusable components Objectives
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.
RiSE Project: Towards a Robust Framework for Software Reuse Student: Eduardo Santana de Almeida Advisor: Silvio Romero de Lemos Meira Federal University.
Software Product Lines
- 1 - Component Based Development R&D SDM Theo Schouten.
Eduardo Santana de Almeida, Silvio Lemos Meira {esa2, Towards an Effective Software Reuse Process.
Software Architecture in Practice
Iterative development and The Unified process
Building software from reusable components.
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
Page 1 Building Reliable Component-based Systems Chapter 17 - Architectural Support for Reuse Chapter 17 Architectural Support for Reuse.
Reuse Basic concepts. Rationale for reuse  Save calendar time  Save person hours  Reduce process risk  Increased quality  Standards compliance.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
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.
Product Line Approaches in Software Engineering April 29, 2013 Sophia Wu.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Computer Systems & Architecture Lesson Software Product Lines.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
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.
Principles of Object Technology Module 1: Principles of Modeling.
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.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Reuse Standards Dr. Carma McClure Extended Intelligence, Inc. Copyright (c) 1998 by Extended Intelligence, Inc.
Source: J. Hoffer ,J. George, J. Valacich
Component-Based Development Silvio Romero de Lemos Meira Eduardo Santana de Almeida
Thirteenth Lecture Hour 8:30 – 9:20 am, Sunday, September 16 Software Management Disciplines Process Automation (from Part III, Chapter 12 of Royce’ book)
David Grizzanti Evaluating Software Reuse Alternatives: An Industrial Case Study.
The Software Product Line Architectures
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
ETICS2 All Hands Meeting VEGA GmbH INFSOM-RI Uwe Mueller-Wilm Palermo, Oct ETICS Service Management Framework Business Objectives and “Best.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
CBD Papers Alexandre Alvaro. Lessons Learned through Six Years of Component-based Development Six years of component-based application development Using.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
PREPARED BY: Hadeel El-Genedy SOFTWARE ARCHITECTURE COURSE PRE-MASTERS STUDIES COMPUTER SCIENCE DEPARTMENT CAIRO UNIVERSITY Software Product Line.
1 Planning for Reuse (based on some ideas currently being discussed in LHCb ) m Obstacles to reuse m Process for reuse m Project organisation for reuse.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
RiSE Project: Towards a Robust Framework for Software Reuse Eduardo Santana de Almeida Federal University of Pernambuco, Brazil
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Chapter 14 Design with Reuse.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Software Packaging for Reuse James Marshall (INNOVIM), Code 614.5, NASA GSFC The Software Packaging for Reuse document (version 1.0), developed and recently.
Basic Concepts Key Learning Points : The objectives of this chapter are as follows:  To provide an introduction to the basic Concepts of enterprise architectures,
Managing Enterprise Architecture
Product Line Architecture. Systems Systems often come in families: basic, regular, professional, enterprise,… Can we share components? Is architecture.
Pragmatics 4 Hours.
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Siemens Corporate Research Princeton, NJ
Chapter 25: Architecture and Product Lines
Software Architecture in Practice
Requirements Engineering for Product Lines
CSSE 477 Software Architecture
A Case Study of Variation Mechanism in an Industrial Product Line
Presentation transcript:

Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida

Recent area 2002

Evolution 1960 subroutines 1970 modules 1980 objects 1990 components 2000 SPL

Previous Classes Software Reuse Domain Engineering Component-Based Development Product Lines Overview Success and Failure Factors Myths Inibitors Overview Steps Scoping Elements Overview Origins Concepts Elements Overview Concepts Steps

Software Product Line “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. Paul Clements and Linda Northrop, 2002 “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. Paul Clements and Linda Northrop, 2002

Essential Factors Investment Planning Direction Business Strategy Management

Is Product Lines a new approach? Small-Grained Reuse Single-System Development with Reuse Component-Based Development Reconfigurable Architecture Release and versions of Single Products

Small-Grained Reuse Reuse of pieces of code –Algorithms, modules, objects, components Company Libraries –Poor documentation –Ineficient search mechanisms Opportunistic reuse Software Product Line –Reuse is planned, comprehensive, and enabled Asset base –Requirements, domain models, architecture, test cases.....

Single-System Development with Reuse Software Product Line –Assets designed for reuse –Product line is treated as a whole

Just Component-Based Development Products in product lines are composed of components, however: –Product-Line Architecture –Production Plan –Technical and Organizational Management

Others Reconfigurable Architecture –Variability Points Release and versions of Single Products –Previous versions

Organizational Benefits To achieve large-scale productivity gains To improve time-to-market To maintain market presence To improve product quality To increase customer satisfaction To achieve reuse goals To enable mass customization

Product Line asset repository Benefits Requirements Architecture Components Modeling and Analysis Testing Planning

Essential Activities Management Core Asset Development Product Development Domain Engineering Application Engineering

Core Asset Development Management Core Asset Development

Product Line Scope Product Line scope is a description of the products, that will constitute the product line or that the product line is capable of including Fundamental activity {Scoping} Commonality and Variability Iterative process

Core assets Core assets are the basis for production of products in the product line Core assets –Architecture {scope, styles, patterns, and frameworks} –Components –Test plans, Test cases –Documentation –Domain models –Requirements –Commercial off-the-shelf (COTS) components

Production Plan A production plan describes how the products are produced from the core assets {reuser’s guide} A Set of attached process {with the glue} Production Plan describes: –Tools –Metrics, Metric Plan

Product Development Product Development Management

Critical role in the successful fielding of a product line Technical –Core asset development –Product development Organizational –Training –Funding –Risks

CBD Rules DE Costs Cultural SPL

Questions ?

References [Clements, 2002] P. Clements., L. Northrop., Software Product Lines: Practices and Patterns, Addison-Wesley, [SEI, 2000] L. Northrop., SEI’s Software Product Line Tenets, IEEE Software, July/August, Vol. 19, No 04, 2002.

Software Reuse Environment: Discussion