The Koala Component Model for Consumer Electronics Software by: Ommering, Linden, Kramer, Magee. Presented by: Bridget Flaherty.

Similar documents
Citation for published version (APA): Ommering, R. C. V. (2004). Building Product Populations with Software Components s.n.

SoberIT Software Business and Engineering Institute. SoberIT Software Business and Engineering Institute. Contents

Engineering Distributed Software: a Structural Discipline

Component models. Page 1

Distributed Software Engineering. an Architectural Approach

Invasive Software Composition. Uwe Aßmann Research Center for Integrational Software Engineering (RISE) PELAB IDA Linköpings Universitet

Architectures of Distributed Systems 2011/2012

Self-Managed Systems: an Architectural Challenge

Invasive Software Composition

Configuration Management for Component-based Systems

Introduction. ADL Roles

Architecture of Distributed Systems Component-based Systems


Capturing Product Line Architectures

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

Chapter 17 - Component-based software engineering. Chapter 17 So-ware reuse

Introduction to software architecture Revision : 732

STARCOUNTER. Technical Overview

Distributed Objects. Object-Oriented Application Development

Describing the architecture: Creating and Using Architectural Description Languages (ADLs): What are the attributes and R-forms?

Component Based Software Engineering

The Fractal Open Component Model

Variability Implementation Techniques for Platforms and Services (Interim)

IN software engineering, component-based development

A Taxonomy of Variability Realization Techniques

Architectures in Context

Software Architectures

Hierarchical vs. Flat Component Models

An Aspect-Based Approach to Modeling Security Concerns

1 From Distributed Objects to Distributed Components

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES

Hierarchical Dynamic Models for Verifying Parallel Distributed Real-Time Systems

Representing Product Family Architectures in an Extensible Architecture Description Language

Department of CE and Application, Assam Engineering Institute, Guwahati, India 2

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

Developing Product Lines with Third-Party Components

{b.surajbali, p.grace

Extending the Capabilities of Component Models for Embedded Systems

UML Aspect Specification Using Role Models

AADL Graphical Editor Design

Unifying Software Reuse

Component-based software engineering. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1

Architectural Design. CSCE Lecture 12-09/27/2016

A COMPONENT-ORIENTED FRAMEWORK FOR SPACECRAFT ON-BOARD SOFTWARE

Aspect Weaving DyMAC middleware. by Tonje Klykken, INF5360 May 6th 2008

CS 575: Software Design

Minsoo Ryu. College of Information and Communications Hanyang University.

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

FlexiNet 2.1 Roundup. Richard Hayton ANSA Consortium

Classes and Inheritance in Actor- Oriented Models

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

Tailoring Dynamic Software Product Lines

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

Dynamic Software Evolution and The K-Component Model

Parametric and provisioning approaches are again obviously useful for various

From cradle to grave: An architecture substrate for software lifecycles

CREAM: A Generic Build-time Component Framework for Distributed Embedded Systems

The Myx Architectural Style

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

Study of Component Based Software Engineering

Tools & Techniques for Deployment & Configuration of QoS- enabled Component Applications

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

1 Version management tools as a basis for integrating Product Derivation and Software Product Families

SOA = Same Old Architecture?

A customizable approach to full lifecycle variability management

ArchFeature: A Modeling Environment Integrating Features into Product Line Architecture

A Capabilities Based Communication Model for High-Performance Distributed Applications: The Open HPC++ Approach

Design Pattern and Software Architecture: IV. Design Pattern

The Tension Between Interdependencies And Flexibility In Event-Based Infrastructures: managing variability in practice

TRAP/J v2.1: An improvement for Transparent Adaptation

Overview of lectures today and Wednesday

ΗΜΥ 317 Τεχνολογία Υπολογισμού

AUTOMATIC GRAPHIC USER INTERFACE GENERATION FOR VTK

A Mechanism for Runtime Evolution of Objects

Introduction to Programming Microsoft.NET Applications with Visual Studio 2008 (C#)

Software Architecture

Multi-Dimensional Separation of Concerns and IBM Hyper/J

Young-Woo Kwon 1, Eli Tilevich 1, and Taweesup Apiwattanapong 2

Sven Apel Don Batory Christian Kastner. Gunter Saake. Feature-Oriented Software Product Lines. Concepts and Implementation.

Architecture. Readings and References. Software Architecture. View. References. CSE 403, Spring 2003 Software Engineering

Challenges in component based programming. Lena Buffoni

Compositional Model Based Software Development

Software Reuse and Component-Based Software Engineering

A Code Generator for Software Component Services in Smart Devices

CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards

Introduction to Modeling

Architectural Design

UML 2.0 Profile for ArchWare ADL: Coping with UML 2.0

Presentation of Open Simulation Architecture and Open Simulation Instrumentation Framework

Architecture. CSE 403, Winter 2003 Software Engineering.

Recommendations for Architecture- Centric Software Supporting Self- Adaptive Behavior

Mae A System Model and Environment for Managing Architectural Evolution

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology

CARM: Composable, Adaptive Resource Management System in Ubiquitous Computing Environments

Reusability and Adaptability of Interactive Resources in Web-Based Educational Systems. 01/06/2003

Software Engineering

What is Software Architecture? What is Principal?

Lab 1 Introduction ipojo Component Model

Software Architecture in Action. Flavio Oquendo, Jair C Leite, Thais Batista

Transcription:

The Koala Component Model for Consumer Electronics Software by: Ommering, Linden, Kramer, Magee Presented by: Bridget Flaherty Koala Overview Motivation The Koala Model Handling Diversity Coping with Evolution Software Component Model Lifecycle Opportunities for Aspect-Orientation Discussion 1

Consumer Electronics Software Challenge: + Increase in size and complexity of software + Increase in diversity of products and therefore the diversity of the software Decrease in development time A Solution to the Challenge Component-based approaches Component encapsulated piece of software has an explicit interface to its environment can be used in many configurations The component based approach allows for multiple configurations with variation in both structure and content 2

The Perfect Marriage Components + Architectural Description Language Components without an ADL Difficult to manage components Difficult to maintain consistency between original component designs and their code (limitations with reverse engineering) Architectural Description Language: Is an explicit description of configuration structure Improves component management by helping users visualize: Diversity of product family Complexity of individual products CE Domain Requirements Static Binding is Preferable Limits runtime overhead Possible because component connections are constant and known at configuration time Dynamically Bound components for upgrading high end products requires interfaces necessary Components require a certain interface without having explicit binding knowledge 3

Darwin: Darwin Evolved = Koala An ADL originally developed for distributed systems Like Darwin it offers: Explicit hierarchical structure Components have requires and provides interfaces Bindings In addition to Darwin, Koala has: Glue code between components Diversity parameter mechanism Parameters are defined Code is optimized based on parameters THE KOALA MODEL Separation of component development and configuration development 4

Koala Graphical Notation HANDLING DIVERSITY Koala s Features for Efficiently Handling Product Diversity 5

Diversity Features 1. Interface Compatibility: Interfaces cannot be changed to fit only 1 implementation Interfaces must provide at least all the required functions 2. Function Binding: Used to bind functions with different names without adding runtime overhead Koala actually generates a macro based on developed C code 3. Partial Evaluation: Koala understands subset of C 4. Diversity Interfaces: Diversity Features Components have no configuration-specific information Instead it requires properties through the standard interface mechanism 5. Diversity Spreadsheets: Object oriented spreadsheet of diversity parameters 6. Switches: Function binding with condition expressions to route function calls to desired component 6

Diversity Features 7. Optional Interfaces: Providing extra interfaces through an optional requires interface 8. Connected Interfaces: Determine if components are connected and save time-consuming initialization COPING WITH EVOLUTION Koala s Features 7

Coping with Evolution 1. Interface Repository: - where interface definitions are stored - Evolution constraining rules: 1. existing interface types cannot be changed* 2. new interface types can be added 2. Component Repository: - where components are stored - Evolution constraining rules: 1. new components can be added 2. provides interfaces can be added but not deleted from existing components 3. new requires interfaces must be optional, existing requires interfaces can be converted to optional 3. Configuration Management - manages component history SOFTWARE COMPONENT MODEL LIFECYCLE 8

Generic Component Lifecycle Design Phase: Components are constructed, catalogued and stored in a repository Components can be composed into a composite component and stored in repository Deployment: Components are retrieved and compiled to binary code Run-Time Phase: Components are instantiated with data and executed Koala Component Lifecycle Design Phase = Generic Design Phase Deployment Phase: No new composition is possible in the deployment phase Components cannot be changed outside of the design phase 9

EVOLVING EMBEDDED PRODUCT LINES: OPPORTUNITIES FOR ASPECTS Product Line Evolution Evolving to incorporate new features Increased code and complexity within the product line New features have an increasingly more crosscutting nature 10

Crosscutting Issues Components provide separation of functionalities, but entangle multiple features These features may not be captured in Architectural Description Language Adding a new feature with a crosscutting nature will cause integration problems Opportunities for Aspect-Orientation Requirements Aspect-oriented requirements engineering (AORE) Area of research to modularize and reason about cross cutting concerns during requirements Architectural level Aspects can help with: Crosscutting in an ADL Code level Encapsulate the code of new features into aspects and automatically weave them into several components 11

DISCUSSION Versatility of Koala? No documented cases of Koala being applied to more domains Certainly a studied case of an applied software product line model for embedded systems Suggestions that it could be extended to be more CORBA-like to be used in distributed systems 12