Page 1 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Chapter 11 Components in Product Line Architectures.

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

Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
1 Copyright 1998 by Dragos Manolescu and Joseph W. Yoder Building Frameworks With Patterns “An Active Object-Model For A Dynamic Web-Based Application”
1 CIS601: Object-Oriented Programming in C++ Note: CIS 601 notes were originally developed by H. Zhu for NJIT DL Program. The notes were subsequently revised.
Basic Concepts in Component-Based Software Engineering
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
Page 1 Building Reliable Component-based Systems Ivica Crnkovic Chapter 9 Component Composition and Integration.
Software Reuse Building software from reusable components Objectives
CBSD – Component Based Software Development - Introduction -
Page 1 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Chapter 3 Architecting Component-Based Systems.
Page 1 Building Reliable Component-based Systems Chapter 19 - Industrial Experience with Dassault Système Component Model Chapter 19 Industrial Experience.
Page 1 Building Reliable Component-based Systems Chapter 2 -Specification of Software Components Chapter 2 Specification of Software Components.
Object-Oriented Theories for Model Driven Architecture Tony Clark, King’s College, UK. Andy Evans, University of York, UK. Robert France, Colorado University,
Page 1 Building Reliable Component-based Systems Chapter 12 - The Koala Component Model Chapter 12 The Koala Component Model.
Page 1 Building Reliable Component-based Systems Chapter 6 - Semantic Integrity in Component Based Development Chapter 6 Semantic Integrity in Component.
Page 1 Building Reliable Component-based Systems Chapter 4 - Component Models and Technology Chapter 4 Component Models and Technology.
Page 1, July 3, 2015 CBSE – graduate course Component-Based Software Engineering Building reliable component-based systems Overview
Page 1 Building Reliable Component-based Systems Chapter 17 - Architectural Support for Reuse Chapter 17 Architectural Support for Reuse.
Chapter 22 Object-Oriented Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Product Line Engineering Andrew Burmester SE 4110 Section 2 4/14/11.
Software Product Line Architectures (SPLA) Nipun Shah
Domain-Specific Software Engineering Alex Adamec.
Computer Systems & Architecture Lesson Software Product Lines.
Seminar of “CBSE” Course Mohammad Mahdizadeh SM. University of Science and Technology Mazandaran-Babol January 2010 Adaptation of.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
L10 - April 12, 2006copyright Thomas Pole , all rights reserved 1 Lecture 10: Software Assets and Text: Ch. 8: Language Anatomy and Ch 9: Families.
CSE 303 – Software Design and Architecture LECTURE 4.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Chapter 3 Object Oriented Systems and Open GIS. Objectives of the Chapter Establish place of O-O in OpenGIS cover basics of O-O emphasise design issues.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Component Oriented Programming 1 Introduction to COP.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Part VII: Design Continuous
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Chapter 14 Design with Reuse.
Software Design Process
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Page 1 Building Reliable Component-based Systems Chapter 9 - Component Composition and Integration Chapter 9 Component Composition and Integration.
Product line introduction in a multi-business line context. An experience report B.J. Pronk Philips Medical Systems
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Enterprise Computing Distribution and components.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
SRA Key Topics Reference Architectures for Cyber-Physical Systems Dr. Christian El Salloum AVL List GmbH.
Subtopics: 1. Frameworks :Reusable systems 2. Design Patterns 1.
Washington, D.C., U.S.A May Some concepts of systems architectures Industrialization of statistics and software architecture Study cases.
Design Patterns: MORE Examples
CompSci 280 S Introduction to Software Development
Software Engineering Development of procedures and systematic applications that are used on electronic machines. Software engineering incorporates various.
Complexity Time: 2 Hours.
Distribution and components
Software Quality Engineering
Chapter 25: Architecture and Product Lines
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Object-Oriented Design
Software Architecture in Practice
Need for the subject.
The Current State of CBSE
FRAMEWORKS AND REUSE What is “Framework”?
Luca Simoncini PDCC, Pisa and University of Pisa, Pisa, Italy
Presentation transcript:

Page 1 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Chapter 11 Components in Product Line Architectures

Page 2 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Overview qDeveloping a Single Product qComponent Markets qProduct Families and Product Lines qProduct Populations qComponent Approaches qFrameworks as Components

Page 3 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Global Software Component Market qWill it solve all our reuse problems? l Far from a global component market. l Intra-organizational reuse of core software indispensable. ”The traditional techniques for reuse of software are still sufficient for small product families, but for larger product populations the best elements of single product development and third party component markets are required.”

Page 4 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Basic arguments for software product lines Size & Complexity Quality Lead Time Reduction Architecture ReuseComponents Product Lines Diversity

Page 5 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Developing a Single Product q Starting from the requirements, we define an architecture. q The architecture decomposes the system into subsystems and components. q We build and test the components, then the subsystems, and finally the product.

Page 6 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Product Lines Single Product top-down planned developed intra – organization Product Family top-down planned developed intra – organization Product Population partially bottom-up planned / opportunistic developed / available intra – organization Component Markets bottom-up opportunistic available inter – organization Characteristics of Product Lines

Page 7 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Component Markets qBuilding systems from existing components, obtained from third parties often has the following characteristics: l It is a bottom-up activity (no global architecture defined). l Use of components is opportunistic (use whatever is available). l The component software is available when starting the project. l It results in inter-organizational reuse.

Page 8 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Difficulties in Component Markets qArchitecture l Mismatch l Less efficient system qScale l Reusability l Usefulness qResources l Excess

Page 9 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Product Software Categorization: qCore l Few other companies are able to produce such software l Sharing is not an option qKey l Can be obtained from others qBase l Can be and is obtained from others

Page 10 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Product Families and Product Lines q Product family : l Is a set of products with many commonalties and few differences. l Is intra-organizational. qProduct Line: l Is a top-down, planned, proactive approach to achieve reuse of software within a family (or population, see the next section) of products.

Page 11 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Fixed Generic Architectures q The use of fixed generic architectures with variation points: l Involve creation of a platform first, from which products can be derived. l Are a sound basis for realizing the functional and non- functional properties. l Can be difficult to forecast the requirements of future products. l Can be difficult to agree upon a single architecture in a large multi business-line organization.

Page 12 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Definitions qProduct Family: l Is a set of products with many commonalities and few differences. qProduct Populations: l Is a set of products with many commonalities but also many differences.

Page 13 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Consequences qDevelopment within product populations will cross business lines, groups or division boundaries. l Common architectural rules. l Planning.

Page 14 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Component Approaches qTwo dimensions for reuse: l Variability l Independence

Page 15 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Plug-ins Component Frameworks Inheritance OO Frameworks Frameworks as Components Parameterized Koala ‘As is’ Libraries Lego Reusable Composable Independence Variability Variability Versus Independence

Page 16 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Libraries qThe classical techique for organizing reusable software l Mathematical l Graphical qLibrary-independent interface qLibraries dependent on libraries

Page 17 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Object Oriented Frameworks qA set of classes from which to create an application qInheritance allows to abstract from specific behaviour l Danger: derived classes are very dependent l Fragile base class problem

Page 18 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Component Frameworks qBenifits: l Components can be plugged to specialize the behavior. l Resembles OO frameworks. l Specifies interfaces between plug-ins and underlying framework – reduces dependencies. qDownsides: l Plug-ins cannot be independently deployed. l Framework often not composable itself.

Page 19 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Frameworks As Components qPowerful parameterization mechanism qThe ultimate solution for variability and independence qThe basic mechanism for achieving composability is to make every context dependency explicit and bindable by a third party.

Page 20 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Variant Free Skeleton Selectable Plug-ins Component Frameworks with Plug-ins

Page 21 Building Reliable Component-based Systems Chapter 11 - Components in Product Line Architectures Summary q Product development: l Small product families  traditional techniques l Larger product populations  top-down with bottom-up qInter-organizational reuse of software qProduct lines qComponent approaches qDifferent component models