John D. McGregor C15 – Variation in architecture

Slides:



Advertisements
Similar presentations
EECE 310: Software Engineering Modular Decomposition, Abstraction and Specifications.
Advertisements

Classes and Object- Oriented... tMyn1 Classes and Object-Oriented Programming The essence of object-oriented programming is that you write programs in.
CPSC 875 John D. McGregor C15 – Variation in architecture.
What is an object? Your dog, your desk, your television set, your bicycle. Real-world objects share two characteristics: They all have state and behavior;
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
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.
Software Architecture in Practice (3rd Ed) Introduction
CSM-Java Programming-I Spring,2005 Introduction to Objects and Classes Lesson - 1.
CSC2012 Database Technology & CSC2513 Database Systems.
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
Design Patterns.
CPSC 372 John D. McGregor Module 3 Session 2 Architecture Analysis/Design.
Software Engineering CS B Prof. George Heineman.
O BJECT O RIENTATION F UNDAMENTALS Prepared by: Gunjan Chhabra.
CPSC 872 John D. McGregor Session 16 Design operators.
An Introduction to Software Architecture
The Software Product Line Architectures
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
CPSC 875 John D. McGregor C9 - Tactics. Everything is a plugin.
CSCI-383 Object-Oriented Programming & Design Lecture 13.
CpSc 875 John D. McGregor AADL. Point of sale system.
CPSC 875 John D. McGregor C10 – Physical architecture.
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.
Some Software Engineering Principles by D. L. Parnas Presented by Team 7: Amitkumar Dhameja Cincy Francis Rong Gu CS575 - Software Design, Team 7.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
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.
L9 - April 5, 2006copyright Thomas Pole , all rights reserved 1 Lecture 9: Reuse Driven Processes and Text Ch. 7: Programming with Models.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
CSSE501 Object-Oriented Development. Chapter 4: Classes and Methods  Chapters 4 and 5 present two sides of OOP: Chapter 4 discusses the static, compile.
CPSC 871 John D. McGregor Module 4 Session 1 Architecture Analysis/Design.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Introduction to Design (and Zen) CpSc 372: Introduction to Software Engineering Jason O. Hallstrom Authorship Disclaimer. These.
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 10 Classes and Objects In-Depth. Chapter 10 A class provides the foundation for creating specific objects, each of which shares the general attributes,
Abstraction ADTs, Information Hiding and Encapsulation.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
CPSC 875 John D. McGregor C15 – Variation in architecture.
VHDL Discussion Subprograms IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
Advanced Object-oriented Design Patterns Creational Design Patterns.
1 Here are some quotations to get an overview of the kinds of issues of interest.
CPSC 871 John D. McGregor Module 8 Session 3 Assignment.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Interfaces Describe what classes should do, without specifying how they should do it Not a class, but a set of requirements for classes that want to conform.
Basic Concepts and Definitions
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
OOPS CONCEPT.  OOPS  Benefits of OOPs  OOPs Principles  Class  Object Objectives.
 Description of Inheritance  Base Class Object  Subclass, Subtype, and Substitutability  Forms of Inheritance  Modifiers and Inheritance  The Benefits.
CPSC 875 John D. McGregor C21 – A Platform Strategy.
CSCE 240 – Intro to Software Engineering Lecture 3.
CPSC 875 John D. McGregor C15 – Variation in architecture.
CPSC 875 John D. McGregor C8 - Tactics. Everything is a plugin.
John D. McGregor Module 3 Session 2 Architecture Analysis/Design
OO Methodology OO Architecture.
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
Types of Programming Languages
Object Oriented Analysis and Design
John D. McGregor C8 - Tactics
Subprograms and Programmer Defined Data Type
IFS410: Advanced Analysis and Design
Week 3 Object-based Programming: Classes and Objects
CPE 528: Lecture #3 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
An Introduction to Software Architecture
John D. McGregor Design Concept C5
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
John D. McGregor Module 6 Session 1 More Design
Presentation transcript:

John D. McGregor C15 – Variation in architecture 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 number of products.

Different kinds of product variation Differentiation Evolution There is also data variation

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 We do worry about conformance of the architecture to abstract specifications such as standards.

Vehicle variations Powertrain Infotainment Transmissions Engines Radios Information package GPS/navigation Entertainment package

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

Feature model https://featureide.github.io/

Configuration editor

SimpleControlSystem Family A product line project structure 3 levels of architecture Ref, Obj, Sys AADL/ALISA at each level The ALISA “for” statement ties the ALISA file to the AADL file The “extends” and “refines to” ties two AADL files together

Multi-threaded design/programming http://today.java.net/article/2010/03/03/rethinking-multi-threaded-design-priniciples http://today.java.net/article/2010/04/14/rethinking-multi-threaded-design-principles-part-2

Complexity http://resources.sei.cmu.edu/asset_files/presentation/2015_017_001_447399.pdf

Here is what you are going to do Expand your project to a software product line with at least 3 products Use featureIDE to examine the features of your products Use ALISA requirements to describe the variations. Give a brief text description of what changes in the AADL model. DUE: April 3rd by 11:59PM