CPSC 875 John D. McGregor C15 – Variation in architecture.

Slides:



Advertisements
Similar presentations
An Overview Of Virtual Machine Architectures Ross Rosemark.
Advertisements

Functions ROBERT REAVES. Functions  Interface – the formal description of what a subprogram does and how we communicate with it  Encapsulation – Hiding.
ITEC200 Week01 Introduction to Software Design.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
DAIMIHenrik Bærbak Christensen1 Product Lines Architectural Reuse.
Object-oriented Programming Concepts
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
Institute for Software Research©2001, University of California, Irvine Product-Line Architectures André van der Hoek Institute for Software Research University.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
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.
Pattern Abstract Factory
Software Architecture in Practice (3rd Ed) Introduction
Programming Languages and Paradigms Object-Oriented Programming.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 2: Modelling.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
CISC6795: Spring Object-Oriented Programming: Polymorphism.
CPSC 872 John D. McGregor Session 16 Design operators.
An Introduction to Software Architecture
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Architecture Business Cycle
The Software Product Line Architectures
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Slide 1 UML Review Chapter 2: Introduction to Object-Oriented Systems Analysis and Design with the Unified Modeling Language, Version 2.0 Alan Dennis,
Unified Modeling Language, Version 2.0
CPSC 875 John D. McGregor C9 - Tactics. Everything is a plugin.
Object-Oriented Programming and Classes Chapter 7.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
JSP Tag Libraries Lec Last Lecture Example We incorporated JavaBeans in “Course Outline” Example But still have to write java code inside java.jsp.
CSSE501 Object-Oriented Development. Chapter 4: Classes and Methods  Chapters 4 and 5 present two sides of OOP: Chapter 4 discusses the static, compile.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Chapter 10 Defining Classes. The Internal Structure of Classes and Objects Object – collection of data and operations, in which the data can be accessed.
Factory Method Explained. Intent  Define an interface for creating an object, but let subclasses decide which class to instantiate.  Factory Method.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
CpSc 875 John D. McGregor C11 - Documentation. 2 sources Clements et al. – book that describes an approach called Views and Beyond IEEE 1471 adopted standard.
Chapter 17 – Object- Oriented Design. Chapter Goals To learn about the software life cycle To learn about the software life cycle To learn how to discover.
CPSC 871 John D. McGregor Change management Module 2 Session 3.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
CPSC 875 John D. McGregor C15 – Variation in architecture.
1 Unified Modeling Language, Version 2.0 Chapter 2.
OOP Review CS 124.
SWE 4743 Abstraction Richard Gesick. CSE Abstraction the mechanism and practice of abstraction reduces and factors out details so that one can.
Refactoring1 Improving the structure of existing code.
Java Programming, Second Edition Chapter Twelve Advanced Inheritance Concepts.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Basic Concepts and Definitions
Variations on Inheritance Object-Oriented Programming Spring
Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.
OOPS CONCEPT.  OOPS  Benefits of OOPs  OOPs Principles  Class  Object Objectives.
CPSC 875 John D. McGregor C21 – A Platform Strategy.
CPSC 875 John D. McGregor C15 – Variation in architecture.
Application & System Development Security Part 1.
CPSC 875 John D. McGregor C8 - Tactics. Everything is a plugin.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Lecture 15 Attribute Driven Design Again Topics ATAM – team expertise and experience needed Chapter 24 Next Time: June 22, 2016 CSCE 742 Software Architecture.
Lecture 12 Attribute Driven Design Again
Systems Analysis and Design With UML 2
Software Engineering Fall 2005
Chapter 25: Architecture and Product Lines
John D. McGregor C8 - Tactics
Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Loaders and Linkers: Features
Week 3 Object-based Programming: Classes and Objects
Improving the structure of existing code
Analysis models and design models
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
John D. McGregor Module 6 Session 1 More Design
John D. McGregor C15 – Variation in architecture
Presentation transcript:

CPSC 875 John D. McGregor C15 – Variation in architecture

Goal The goal of variability in a software product line is to maximize return on investment (ROI) for building and maintaining products over a specified period of time or num-ber of products.

Management of variation

Software Product Line Multiple products, each a bit different from the others The differences are encapsulated in variation points A variation point is not a single location in the code Corresponds to a subset of the requirements

Variation mechanisms An instance of the architecture resolves certain variations Mechanisms – One system definition extends another – A system definition is included or excluded – Subprograms have parameters

Binding time The reason that some variation is not resolved is because the binding time for the variation is after architecture instantiation time The binding time is partially determined by the architect To do this – Who will do the binding? – When do they touch the system? – For example, a marketing person decides a feature is included – can only happen at requirements time

Eliminating variability Some apparent variability can be reduced to commonality – A standard interface can be placed between the commonality and the apparent variability with the result that we don’t care what is on the other side of the interface. The BlueTooth interface for example.

USB state machine from standard spec

Infotainment variations Various GPS devices Various brands of cell phones Optional engines, transmissions Various state regulations? Luxury designation – adds memory, different processor

But what about variations in quality attribute levels? One product needs to be airworthy certified but others do not One needs real-time performance another does not One must be secure another one does not

What to do? Would you – Make everything meet the toughest standard? – Re-implement all the assets? Tactic: reduce and isolate – encapsulate the section that differs among products; refactor when possible to reduce the area; hide behind interfaces

Use cross cutting techniques Aspects as we have already discussed cut across the system decomposition Other language idioms such as “mix-ins” also cross cut Look for a technique where fragments are maintained separately

Next steps Additional Slides: workshop.net/2007/files/VaMoS07_Paper_5_Slides.pdf Submit a new version of the architecture that addresses the results of the ATAM on April 7th Pay particular attention to variation in quality attributes Include a readme file that describes the changes you make By April 26 th a final release of you architecture should include complete 2 volume documentation and the documentation should include quantitative evidence for the quality of the architecture