1 Software Product Lines Re-using Architectural Assets - continued from CSSE 375 - CSSE 477 Software Architecture Week 7, Day 2, including Ch 14 in Bass’s.

Slides:



Advertisements
Similar presentations
Introduction to Product Family Engineering. 11 Oct 2002 Ver 2.0 ©Copyright 2002 Vortex System Concepts 2 Product Family Engineering Overview Project Engineering.
Advertisements

Technology Management Activities and Tools
Software Product Lines John D. McGregor Clemson University.
Main issues: • Why is reuse so difficult • How to realize reuse
Chapter 2 The Software Process
1 CSSE 477: Swre Arch – This year’s course… Steve Chenoweth Tuesday, 11/8/11 Week 10, Day 2 Right – Sunset at the Louvre, in Paris From
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 28 Slide 1 Process Improvement.
1 Steve Chenoweth Tuesday, 10/04/11 Week 5, Day 2 Right – Typical tool for reading out error codes logged by your car’s computer, to help analyze its problems.
1 Steve Chenoweth Tuesday, 10/25/11 Week 8, Day 2 Right – Desktop computer usability metaphor, from
Azad Madni Professor Director, SAE Program Viterbi School of Engineering Platform-based Engineering: Rapid, Risk-mitigated Development.
DAIMIHenrik Bærbak Christensen1 Product Lines Architectural Reuse.
Software Product Lines
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
Software Architecture in Practice
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
Introduction to Software Testing
Organizational Project Management Maturity: Roadmap to Success
Chapter 19 OPERATIONS AND VALUE CHAIN MANAGEMENT © 2003 Pearson Education Canada Inc.19.1.
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.
Computer Systems & Architecture Lesson Software Product Lines.
Operations Management
MANAGING STRATEGY INTRODUCTION TO STRATEGIC MANAGEMENT.
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.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Software Product Line Testing Part I : Introduction
Evaluation of digital collections' user interfaces Radovan Vrana Faculty of Humanities and Social Sciences Zagreb, Croatia
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Reuse Standards Dr. Carma McClure Extended Intelligence, Inc. Copyright (c) 1998 by Extended Intelligence, Inc.
Capability Maturity Model Part One - Overview. History Effort started by SEI and MITRE Corporation  assess capability of DoD contractors First.
Chapter 2 The process Process, Methods, and Tools
Supplementary Specifications (Chapters 20,22 - Requirements Text) Question 1 by Steve & Chandan (Along with others in the past! - See notes, below)
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 31 Slide 1 Process Improvement u Understanding, Modelling and Improving the Software Process.
The Software Product Line Architectures
Supplementary Specifications (Chapters 20,22 - Requirements Text) 1.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Computer Systems & Architecture Lesson Software Architecture in the Future.
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 25 Slide 1 Process Improvement l Understanding, Modelling and Improving the Software Process.
PREPARED BY: Hadeel El-Genedy SOFTWARE ARCHITECTURE COURSE PRE-MASTERS STUDIES COMPUTER SCIENCE DEPARTMENT CAIRO UNIVERSITY Software Product Line.
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Software from Requirements Brent Haines April 12, 2007 Why Methodology Doesn’t Really Matter.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
What Is Strategy and Why Is It Important?. The Nature of Strategic Management Today must do more than set long-term strategies and hope for the best.
Welcome to MT140 Introduction to Management Unit 10 Seminar Reflection.
TTCN-3 Testing and Test Control Notation Version 3.
Configuration Control (Aliases: change control, change management )
Product Line Architecture. Systems Systems often come in families: basic, regular, professional, enterprise,… Can we share components? Is architecture.
Presented by Munezero Immaculee Joselyne PhD in Software Engineering
Entrepreneurial Strategy: Generating and Exploiting
Software Product Lines
Chapter 25: Architecture and Product Lines
Product Lines.
Introduction to Software Testing
Entrepreneurial Strategy: Generating and Exploiting
Software Architecture in Practice
Product Lines.
CSSE 477 Software Architecture
A Case Study of Variation Mechanism in an Industrial Product Line
Presentation transcript:

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 book

2 How’s the Security project going? Tonight – turn in arch doc changes, sec How’s the research paper going? Product Lines: Chapter 14 in SA (Bass et al’s book)  Today – Coming up – Thursday Work on Security project Friday Show & tell / turn-in security project Linda Northrop and Len Bass flank Henk Obbink of Philips Research Laboratories at a 2002 conference on software product lines.

3 And, for extra credit… Go to this tonight, me a paragraph describing what you learned, and it will replace any missing daily quiz grade for CSSE 477: Beckman Coulter Software Development Tech Symposium The Union Heritage Room on Thursday, October 20th 5:00- Welcome and Introductions 5:15- Concurrent Software Development with Bob Burger Why concurrent software is important, what makes it difficult, what concurrency models make it easier, and how we have used these models at Beckman Coulter over the past decade to make robust systems. 6:15- Open Panel Discussion Refreshments will be served 7:00- Domain-specific Programming Languages for Automation with Mike Ashley Scientists and medical laboratory pathologists want to automate their routine work and do so with languages that match how they think. This talk will survey different languages we have developed to automate tasks and give some detail on how these languages were implemented. 8:00- Closing Comments

4 Review from CSSE 375 discussion: What is a software product line? (p. 353) 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. In the product line manager’s view, it should go like this: SA Ch 14 – Software Product Lines Develop core product Develop product 1 Develop product 2 Develop product 3 CORE 1-Spl 2-Spl 3-Spl = 4 “load lines” that are better than 3 ! - from CSSE 375 -

5 From the SEI: Software product lines are emerging as a viable and important development paradigm allowing companies to realize order-of- magnitude improvements in time to market, cost, productivity, quality, and other business drivers. Software product line engineering can also enable rapid market entry and flexible response, and provide a capability for mass customization. How do you implement processes that make software product lines a dependable, low-risk high-payoff practice? Combines business and technical approaches to achieve success. SA Ch 14 – Software Product Lines

6 From the SEI: Benefits Product lines can help organizations overcome the problems caused by resource shortages. Organizations of all types and sizes have discovered that a product line strategy, when skillfully implemented, can produce many benefits—and ultimately give the organizations a competitive edge. Example organizational benefits include: 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 SA Ch 14 – Software Product Lines

7 From the SEI: You can “acquire” a product line capability – like the military does:

8 SA Ch 14 – Software Product Lines From the SEI: What’s product line work look like to a developer?

9 How do you do an architecture for a product line (pp. 360+), cntd? Supporting variation points – 1. Inclusion or omission of elements 2. Inclusion of a different number of replicated elements 3. Selection of versions of elements that have the same interface but different behavioral or quality attribute characteristics Supporting these variations can cause: a. In OO systems, specializing or generalizing of classes b. Building extension points c. Introducing build-time parameters d. A need for reflective programs, which analyze their data & situation e. Overloading of types (good and bad) SA Ch 14 – Software Product Lines - from CSSE 375 -

10 How do you do an architecture for a product line (pp. 360+), cntd? Evaluating a product line architecture – What and how to evaluate – focus on variation points When to evaluate – when you think you need separate products with architectural variations, or when a new product is proposed which seems significantly different So, this product line stuff can be a great efficiency or a real problem! SA Ch 14 – Software Product Lines Which of these belong on the same “production line”? - from CSSE 375 -

11 What makes software product lines work? Skill in predicting the future! (Or making it happen.) The characteristic that distinguishes software product lines from previous efforts is predictive versus opportunistic software reuse. Rather than put general software components into a library in hopes that opportunities for reuse will arise, software product lines only call for software artifacts to be created when reuse is predicted in one or more products in a well defined product line. SA Ch 14 – Software Product Lines

12 Commonalities are a key (pp )? Commonalities in: Requirements Architectural design Software elements Modeling and analysis Testing Project planning Processes, methods and tools People Exemplar systems Defect elimination SA Ch 14 – Software Product Lines “Scoping” determines what systems are in and out (pp 357-8). Narrow vs. broad scope… - from CSSE 375 -

13 Details – Ingredients in making product lines work well: 1.Software asset inputs: a collection of software assets – such as requirements, source code components, test cases, architecture, and documentation – that can be configured and composed in different ways to create all of the products in a product line. Each of the assets has a well defined role within a common architecture for the product line. To accommodate variation among the products, some of the assets may be optional and some of the assets may have internal variation points that can be configured in different ways to provide different behavior. SA Ch 14 – Software Product Lines

14 Details - Ingredients in making product lines work well: 2. Decision model and product decisions: The decision model describes optional and variable features for the products in the product line. Each product in the product line is uniquely defined by its product decisions - choices for each of the optional and variable features in the decision model. SA Ch 14 – Software Product Lines

15 Details - Ingredients in making product lines work well: 3. Production mechanism and process: the means for composing and configuring products from the software asset inputs. Product decisions are used during production to determine which software asset inputs to use and how to configure the variation points within those assets. SA Ch 14 – Software Product Lines

16 Details - Ingredients in making product lines work well: 4. Software product outputs: the collection of all products that can be produced for the product line. The scope of the product line is determined by the set of software product outputs that can be produced from the software assets and decision model. SA Ch 14 – Software Product Lines

17 What makes software product lines so difficult (pp. 363+)? Need a mature organization Need an architecture definition Need configuration management Need a conscious decision to adopt an architecture (See Ch 15) May need to make use of external sources May need different use of internal sources (e.g., supplying each other) Probably need to reorganize, need business units to work together SA Ch 14 – Software Product Lines - from CSSE 375 -

18 A great case history – Celsius Tech Bass Ch 15 - See separate slide set on the course web site! - SA Ch 14 – Software Product Lines

19 And a framework of best practices! See As a sample follow-up activity, please read the section of this document on configuration management! SA Ch 14 – Software Product Lines