integrating heterogeneous components in software supply chains
DESCRIPTION
Integrating Heterogeneous Components in Software Supply Chains. Herman Hartmann, Aart Matsinger, Tim Trew Virage Logic, The Netherlands. Mila Keren, Julia Rubin, Tali Yatzkar-Haham IBM Research - Haifa, Israel. - PowerPoint PPT PresentationTRANSCRIPT
© 2010 IBM Corporation
IBM Research – Haifa
Virage Logic
Integrating Heterogeneous Components in
Software Supply Chains
Herman Hartmann, Aart Matsinger, Tim Trew Virage Logic, The Netherlands
Mila Keren, Julia Rubin, Tali Yatzkar-HahamIBM Research - Haifa, Israel
2/19
Software Supply Chains
Software vendors do not function as independent units• not all customers are end-users• not all software is built in-house• there are multiple suppliers
Taken from “Formalizing Software Ecosystem Modeling” by V. Boucharas, S. Jansen, S. Brinkkemper
3/19
Scope
Present issues that arise in product line supply chains
Based on real problems/needs of NXP
Developed Eclipse-based tool to address NXP’s s/w development challenges
Component-oriented
Agreed standard but not an agreed API
4/19
Simple Case: No overlapping functionality
5/19
Issue #1: Cross-Supplier Interoperability
Can Player of SupplierA work with Radio of SupplierB?–(The architecture prescribes some Player <-> Radio interaction)
6/19
Glue code needed!
Bridge over differences in names, styles, etc–E.g.: passing 3 ints vs. passing a struct of 3 ints
Navigation
B
Audio
Connectivity
C
A
7/19
Current Integration Approaches - 1/3
Create all possible glue components during domain engineering
Navigation: 4 alternativesConnectivity: 3 alternatives Audio processing: 3 alternatives
Up to 33 different glue components – A: 4x3 – B: 4x3– C: 3x3
Navigation
B
Audio
Connectivity
C
A
4 3
3
8/19
Current Integration Approaches - 2/3
Adapt each component to a
common standard
Up to 20 glue components:
– A: 4+3
– B: 4+3
– C: 3+3
Unnecessary glue complexity if standard and supplied interfaces significantly differ
Navigation
B
Audio
Connectivity
C
A
4 3
3
9/19
Current Integration Approaches - 3/3
Create the required glue component
during application engineering
glue is defined late in the development process
Navigation
B
Audio
Connectivity
C
A
4 3
3
10/19
Issue #2: Overlapping Functionality – Feature Selection Logic is Complicated
11/19
Example 1: Unmatched Features
No 45W output in SupplierA
12/19
E.g. 2: Contradictions
MP3 in SupplierB
requires a CD
13/19
Issue #3: Technology Mismatch
Components of different technologies–(Assuming interface mismatch is solved)
Differences in:–Calling conventions–Name mangling–Object layouts–Sizes of primitive types–BigEndian vs. littleEndian
14/19
Issue #4: Customer Isolation
Level 1 (Basic)–Customer A should not get customer’s B components–(either binary or sources)
Level 2 –Customer A should not see customer’s B variation points/features
15/19
Issue #5: Delivery of Partially Configured Components
Binary deliverables–Better customer isolation
–Alas, preprocessor-based variations are already resolved
Source deliverables –Need to compile on different build environments
–Materializer needs to take the environment into account
16/19
The Zigbee Architecture
–There is a standard but not an API–(However, the API is likely to be similar across suppliers)–Customer want to mix layer from different suppliers
17/19
Solution Overview: Glue
Various kind of glue generators
Implemented as a Model-to-Text transformation
Invoked as part of the materialization process
Predefined rules for choosing a glue generator–Based on the chosen components/suppliers–Engineer can override
18/19
Solution Overview: Implementation Constraints
Concrete components are annotated with supplier name– (as well as additional implementation data)
Selection of a concrete component will force selection of other concrete components
Based on:– Architectural links
– Ability to generate glue
19/19
Thank You!Thank You!