Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Domain-Specific Software Architecture and Product Lines Software.

Slides:



Advertisements
Similar presentations
Software Architecture Lecture 3
Advertisements

Intro to Domain-Specific Software Engineering
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Styles and Greenfield Design Software Architecture Lecture 6.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 19.
Joint Research: UCI ISR-Boeing Anaheim Engineering Software Architecture-Based Development of Product Lines for the Software-Defined Radio Domain Richard.
Software Architecture Lecture 2
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures Software Architecture Lecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Architecture Description Languages (ADLs). A Brief History of ADLs  Software architecture emerged as a research discipline in the early 1990s  Soon.
Analysis of Software Architectures. What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties.
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
Domain-Specific Software Architecture and Product Lines
Intro to Domain-Specific Software Engineering
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectures in Context Software Architecture Lecture 2.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Domain-Specific Software Architecture and Product Lines Software.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 19.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Adaptation Software Architecture Lecture 25.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Introduction to Modeling Software Architecture Lecture 9.
Domain-Specific Software Architecture
Introduction to Modeling
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectures in Context Software Architecture Lecture 2.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Adaptation Software Architecture Lecture 25.
Software Architecture Lecture 3
Domain-Specific Software Engineering Alex Adamec.
HW2 INTRODUCTION CSCI-578 Spring Implicit Invocation  Indirectly or implicitly calls to methods and interfaces in response to an event or a received.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectures in Context Software Architecture Lecture 2.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architectural Styles Part I Software Architecture Lecture 5.
Chapter 6 - Modeling Eduardo Felipe Zecca da Cruz.
Acknowledgement: some slides from Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture EECE417 Lecture 3.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Introduction to Modeling Software Architecture Lecture 9.
Acknowledgement: some slides from Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture EECE417 Lecture 2.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Styles and Greenfield Design Software Architecture Lecture 6.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Brief Introduction to Software Connectors Software Architecture.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
Domain-Specific Software Architecture and Product Lines
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. The Big Idea Software Architecture Lecture 1.
Software Architecture Lecture 3
Software Architecture
Analysis of Software Architectures
Implementing Architectures
Domain-Specific Architectures
Software Connectors.
Software Architecture Lecture 19
Architectural Modeling and Domain-Specific Architecture
Software Architecture Lecture 3
Lecture 3 – Designing and Visualizing Software Architecture
Software Architecture Lecture 2
Software Architecture Lecture 3
Domain-Specific Software Architecture and Product Lines
Implementing Architectures
Software Architecture Lecture 3
Software Connectors.
Styles and Greenfield Design
Software Architecture Lecture 3
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 3
Software Architecture Lecture 7
Analysis of Software Architectures
Software Architecture Lecture 6
Presentation transcript:

Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Domain-Specific Software Architecture and Product Lines Software Architecture Lecture 9

Software Architecture: Foundations, Theory, and Practice Objectives Concepts u What is domain-specific software engineering (DSSE) u The “Three Lampposts” of DSSE: Domain, Business, and Technology u Domain Specific Software Architectures Product Lines Relationship between DSSAs, Product Lines, and Architectural Styles Examples of DSSE at work 2

Software Architecture: Foundations, Theory, and Practice Objectives Concepts u What is domain-specific software engineering (DSSE) u The “Three Lampposts” of DSSE: Domain, Business, and Technology u Domain Specific Software Architectures Product Lines Relationship between DSSAs, Product Lines, and Architectural Styles Examples of DSSE at work 3

Software Architecture: Foundations, Theory, and Practice Product Lines A set of related products that have substantial commonality u In general, the commonality exists at the architecture level One potential ‘silver bullet’ of software engineering u Power through reuse of Engineering knowledge Existing product architectures, styles, patterns Pre-existing software components and connectors 4

Software Architecture: Foundations, Theory, and Practice Domains vs. Product Lines Domain u Consumer electronics u Avionics u Compilers u Video games Product Line u Philips TVs u Boeing 747 Family u GNU compiler suite u Suite of games built on same engine 5 Domains are in the problem space, product lines are in the solution space

Software Architecture: Foundations, Theory, and Practice Business vs. Engineering Product Lines Business Product Line u A set of products marketed under a common banner to increase sales and market penetration through bundling and integration Engineering Product Line u A set of products that have substantial commonality from a technical/engineering perspective Generally, business product lines are engineering product lines and vice-versa, but not always u Applications bundled after a company acquisition u Chrysler Crossfire & Mercedes SLK V6 6

Software Architecture: Foundations, Theory, and Practice Business Motivation for Product Lines 7 Traditional Software Engineering Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Business Motivation for Product Lines 8 Traditional Software Engineering Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Business Motivation for Product Lines 9 Product-line-based engineering Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Capturing Product Line Architectures Common: features common to all products A: features specific to product A B: features specific to product B Product A = Common + A Product B = Common + B 10 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice A Product-Line Architecture Definition: A product-line architecture captures the architectures of many related products simultaneously Generally employs explicit variation points in the architecture indicating where design decisions may diverge from product to product 11

Software Architecture: Foundations, Theory, and Practice A Lunar Lander Product Line 12 “Lite”“Demo”“Pro” Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Product Component Table Helps us decide whether creating a product line is viable or feasible 13 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Group Components into Features Not a mechanical process Attempt to identify (mostly) orthogonal features, or features that would be beneficial in different products 14 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Reconstitute Products from Features Use technical and business knowledge to identify which combinations form feasible or marketable products that will be constructed 15 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Modeling Product Line Architectures Architectural models need to be diversified with information about variation points and features Not all ADLs have good support for this u Exceptions include Koala xADL 2.0 u These ADLs have explicit support for capturing variation points 16

Software Architecture: Foundations, Theory, and Practice 17 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Selection Product-line selection is the process of extracting a single product architecture (or smaller product line) from an architectural model that contains explicit points of variation ADLs such as Koala and xADL 2.0 can do selection automatically with tools 18 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Product Lines for Evolution Products in a product line don’t have to exclusively capture alternatives u They can also capture variation over time 19 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Product Lines for Evolution 20 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Product Lines for ‘What-If’ Analysis In addition to alternative products and different versions of the same product, product lines can capture different potential products u Selection can be used to quickly generate product architectures for potential products u These can be checked for certain properties or subjected to more rigorous analysis for feasibility or quality u Can also be used to generate new product ideas 21

Software Architecture: Foundations, Theory, and Practice Implementation Issues Important to partition implementations along variation- point boundaries 22 BadGood Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Implementation Issues (cont’d) Keeping evolving architectures and version-controlled source repositories (e.g., RCS, CVS, Subversion) in sync 23 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Unifying Products with Different Heritage Often, the idea to create a product line emerges after several products have been implemented and commonality is noticed Strategies include u No product line It may be more expensive to create a product line or there may not be enough commonality u One master product One product architecture becomes the basis for the product line u Hybrid A new product line architecture emerges out of many products Seems ideal but can be hard in practice 24

Software Architecture: Foundations, Theory, and Practice Architectural Styles, DSSAs, Product Lines Architectural Styles u Can be general or domain-specific u Provides general guidelines for diverse kinds of applications; focus on –ility development DSSAs u Domain specific; includes elaborate domain model and specific reference architecture Product lines u Explicit set of related products with common aspects 25 StyleDSSA / Ref ArchProduct Line

Software Architecture: Foundations, Theory, and Practice Families of Styles 26 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Objectives Concepts u What is domain-specific software engineering (DSSE) u The “Three Lampposts” of DSSE: Domain, Business, and Technology u Domain Specific Software Architectures Product Lines Relationship between DSSAs, Product Lines, and Architectural Styles Examples of DSSE at work 27

Software Architecture: Foundations, Theory, and Practice Koala An ADL and tool-set for developing product lines of consumer electronics A successor to Darwin in terms of structural modeling One of the first ADLs to capture points of variation explicitly Has tight bindings to implementations such that architecture descriptions can be “compiled” into application skeletons 28

Software Architecture: Foundations, Theory, and Practice Lunar Lander in Koala No product line features yet Note similarities to Darwin, xADL 2.0 u xADL 2.0 Archipelago visualization is derived from Koala 29 interface IDataStore{ void setAltitude(int altitudeInMeters); int getAltitude(); void setBurnRate(int newBurnRate); int getBurnRate();... } Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Lunar Lander PL in Koala Switch construct routes calls to one of two potential data stores ‘Diversity interface’ lets game logic component select callee from external config component Same IDataStore interface ensures call compatibility 30 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice Software Defined Radios Variation points in radio configuration, board configuration, software configuration 31 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice SDR in xADL 2.0 Two-node “SCARI” SDR with just device drivers loaded 32 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice SDR in xADL 2.0 Same radio with one waveform deployed 33 Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; (C) 2008 John Wiley & Sons, Inc. Reprinted with permission.

Software Architecture: Foundations, Theory, and Practice SDRs in xADL 2.0 By applying product line techniques to SDRs u Can manage different configurations of the radio Deploying components on alternative hosts Deployments with  No waveforms  One waveform  Different combinations of waveforms u Can show radio in different states as radio starts up or transitions from one waveform to another 34