Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University,...
-
Upload
julia-simpson -
Category
Documents
-
view
227 -
download
0
Transcript of Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University,...
![Page 1: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/1.jpg)
Component-based Development Process and Component Lifecycle
Ivica CrnkovicMälardalen University,
Department of Computer EngineeringSweden
[email protected]://www.idt.mdh.se/~icc
![Page 2: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/2.jpg)
Software Development processes
• What determines which development process model to use?– Type of products/products (requirements from
customers)– Type of project– Availability& requirements of stakeholders– Type of organization– Technology used– …..
![Page 3: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/3.jpg)
Software development process adaptation
• Software development processes are usually of generic type– Usually requires adaptations– Often a software development process is a
combination of several models
– There is difference between theory and practice• Practice is often more complex• Practice is not perfect
![Page 4: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/4.jpg)
Lifecycle Process Models for products
Concept Development Production Utilization Retirement
Generic Product Lifecycle
![Page 5: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/5.jpg)
Initial Development
RetirementPhase-out
Utilization
Evolution
Servicing
Lifecycle Process Models for software products
![Page 6: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/6.jpg)
Component-based approach process charateristics
• Separation of the development process. – The development processes of component-based systems– development processes of the components.
• A new process: Component Assessment. – Finding and evaluating the components.
• Changes in the activities in the development processes. – system-level process the emphasis will be on finding the proper
components and verifying them, – component-level process, design for reuse will be the main
concern.
![Page 7: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/7.jpg)
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Waterfall model
![Page 8: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/8.jpg)
Requirements
Design
Glue-coding Test
Release
Maintenance
Selection of existing
components
Adaptation
Implementation
Implementation ofnew components Integration
![Page 9: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/9.jpg)
A simplified and an idealized process
• Assumption of the model – components selected and used are sufficiently close
to the units identified in the design process
• Further, the figure shows only the process related to the system development – not to the supporting processes
![Page 10: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/10.jpg)
CB System Development…
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
![Page 11: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/11.jpg)
CB system and Components Development
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
![Page 12: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/12.jpg)
The complete process
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
![Page 13: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/13.jpg)
System Requirements Phase
Collect requirements
Analyse requirements
Specify/ refine requirements
Component AComponent AComponent AComponent A
Are there components that fulfill requirements?
![Page 14: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/14.jpg)
System and Analysis & Design Phase
System analysis
Conceptual design
Detailed design
Architectural components
Existing components
![Page 15: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/15.jpg)
Different architecture view in different phases
• Phase I – System architecture - Decomposition of the system
<<subsystem>>ComAIComA
<<subsystem>>ComBIComB
<<subsystem>>ComCIComC
ConceptualArchitecture
![Page 16: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/16.jpg)
System Design – Phase 2
• Implementation Architecture - Component Identification
<<imp>>ComAIComA
<<imp>>ComBIComB
<<imp>>ComCIComC
<<imp>>SysXISysX
<<imp>>ComYIComY
ImplementationArchitecture
![Page 17: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/17.jpg)
System Design – Phase 3
• Deployment architecture
:ComB:SysX :ComC
:ComA
DeploymentArchitecture
:ComB
Server
DataServer
![Page 18: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/18.jpg)
System Implementation Phase
Glue-coding
Selection of existing
components
Adaptation
Implementation
Implementation ofnew components
Parameterized Interface
Wrappers
Adapters
![Page 19: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/19.jpg)
• Parameterized Interface. Parameterized interface makes it possible to change the component properties by specifying parameters that are the parts of the component interface.
• Wrapper. A wrapper is a special type of a glue-code that encapsulates a component and provides a new interface that either restrict or extend the original interface, or to add or ensure particular properties.
• Adapter. An adapter is a glue code that modifies (‘adapts’) the component interface to make it compatible with the interface of another component.
![Page 20: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/20.jpg)
System Integration Process
• Putting components together• Integration components into the system
(component) framework• Integration can happen in different phase of
product’s lifecycle
![Page 21: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/21.jpg)
Integration in different phases
Run-timeAssembly time(link)
Modeling/design
Assembly –architectural components
Integration of components
(for testing feasibility)
System building from all components
Dynamic updating of components
![Page 22: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/22.jpg)
Test Phase
• System is being verified against the system specification
• In the waterfall model the test is performed after the system integrations,
• In CBD – Tests performed for isolated components – Tests of assemblies– Test of the system
• Tests are present in all phases!.
![Page 23: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/23.jpg)
Requirements
Design
Glue-coding
Test
Release
Maintenance
Selection
Adaptation
Implementation
Implementation ofnew components
IntegrationSelection of the
component candidates
Selection
Adaptation
Componentupdates
Componentsmaintenance
ComponentsIntegration
ComponentsIntegration
Components and Assemblies test
Components and Assemblies test
Integration and test in different phases of the CBD process
![Page 24: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/24.jpg)
Release Phase
• packaging of the software in forms suitable for delivery and installation.
• The CBD release phase is not significantly different from a “classical” integration.
![Page 25: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/25.jpg)
System Maintenance Phase
• The approach of CBD is to provide maintenance by replacing old components by new components or my adding new components into the systems.
• The paradigm of the maintenance process is similar to this for the development: – Find a proper component, test it, adopt it if
necessary, and integrate it into the system
Maintenance
Selection
Adaptation
Componentupdates
Componentsmaintenance
![Page 26: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/26.jpg)
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Component assessment process
Store
![Page 27: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/27.jpg)
Component assessment process
• CBD characteristics– Instead of developing find the components!
• Activates:– Find components (often a set of components must be found) that– Verify that the component(s) indeed provide the desired (or
almost desired) functionality, – Verify that the components can successfully be integrated with
other components. – (The consequence can be that not the best components can be
selected, but the components that fit together).
![Page 28: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/28.jpg)
A generic assessment process activities • Find – From an “infinite” component space find the components that
might provide the required functionality.• • Select –Between the components candidates found, select a
component that is most suitable for given requirements and constraints.
• Verify –– Test functional and certain extra-functional properties of a component in
isolation. – Test the component in combination with other components integrated in
an assembly.
• Store – – store the selected components in a component repository. – Store additional specification (metadata)
• measured results of component performance, • known problems, • the tests and tests results and similar
![Page 29: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/29.jpg)
A assessment process activities
• Activities– Find– Select – Verify – Store
• The concrete activities dependent of type of component-based development process– Architecture-driven component development– Product-line development– COTS-based development.
![Page 30: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/30.jpg)
Component development process
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
![Page 31: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/31.jpg)
Component development process - specifics
• Components are built as reusable units• Components are built for future systems• Consequences
– There is greater difficulty in managing requirements;– Greater efforts are needed to develop reusable units;– Greater efforts are needed for providing component
specifications and additional material that help developers/consumers of the components.
![Page 32: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/32.jpg)
Requirements Phase
• A combination of a top-down and bottom-up process.– The requirements elicitation should be the result of
the requirements specification on the system level. – Requirements for general types of functions/services– Reusability should be addressed explicitly.
![Page 33: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/33.jpg)
Different architectural approaches in CBD
• Architecture-driven component development
• Product-line development
• COTS-based development • Subcontractor-based
![Page 34: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/34.jpg)
Architect-driven component development
• Top-down approach– components are identified as architectural elements
and as a means to achieve a good design. – Components are not primary developed for reuse, – Component-based technologies are used, because of
easier implementations, in getting already existing serviced provide from the component technology.
– the main characteristic of these components is composability,
– No emphasis on while reusability– No emphasis time-to-market issues
![Page 35: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/35.jpg)
Architect-driven component development– The parallel development processes are reduced to
two semi-parallel processesRequirements
Design
Test
Release
Maintenance
Implementation
Integration
System Development
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Component Development
![Page 36: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/36.jpg)
A product line is:*
* From Rob Van Ommering/Philips
![Page 37: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/37.jpg)
Product Line Architecture
• Core components building a core functionality
(Basic platform)• A set of configurable components combined building
different products
![Page 38: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/38.jpg)
Platform-based products
Basic services
Middleware / infrastructure
Platform layer
Application layer
![Page 39: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/39.jpg)
Product-line development
• GOAL– to enable efficient development of many variants of
product, or family of products– to achieve a large commercial diversity (i.e. producing
many variants and many models of products) with a minimal technical diversity at minimal costs [COPA].
– They are heavily architecture-driven, as the architectural solution should provide the most important characteristics of the systems.
![Page 40: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/40.jpg)
Product-line development & CBSE
– component-based approach enables reuse of components, and efficient integration process.
– composability, reusability and time-to-market are equally important.
– characteristic: • The component model must comply with the pre-defined
reference architecture. • parallelism of component development process and product
development process
![Page 41: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/41.jpg)
Product-line development
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
System Development
Component Assessment
Component Development
Select
Store
Verify
![Page 42: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/42.jpg)
Advantages of Software Product Lines
• Using existing infrastructure– Savings 30%-40% of efforts per product– Time to Market - improved
• Larger variety of products• Uniform and recognizable functionality/interface• Better scalability (not obvious!)• Better maintainability (not obvious!)• Better possibility of component replacement
![Page 43: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/43.jpg)
The Cathedral and the Bazaar?
La Sagrada Familia, Barcelona
Building Started:On March 19, 1882
Still not completed
Is it worth to build it in that way?
Building platforms
Similar with platform-basedAnd component-based developmentIs it worth?
![Page 44: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/44.jpg)
Case Study
• Philips Consumer Electronics (TV, Video, DVD)– Moving from a hardware local development to
software & hardware global development
• Requirements– New products (product models, variants, etc.) must be
delivered each 6 months
Experience“hardware-like” componentization of software made it possible to make the transformation
![Page 45: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/45.jpg)
The domain…
2000 1990
1979
2 MB 64 kB
1 kB
1965
* From Rob Van Ommering/Philips
![Page 46: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/46.jpg)
(1) Complexity
Code Size Evolution of High End TV Software
2
4
8
16
32
64
256
512
1024
2048
12000
30004096
32000
100000
64000
1
10
100
1000
10000
100000
1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2009
Year of Market Introduction
Kby
tes
* From Rob Van Ommering/Philips
![Page 47: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/47.jpg)
Image
Sound
100 Hz
100 Hz
quality
quality
Dolby
Dolby
AC3AC3
DataProcessing
UserInterface
Txt
Txt
EPGEPGmenusmenus
animationanimation
3D3D
Connectivity
P50P50
1394
1394
StorageDevice
TiVoTiVo
VCR
VCR
DVDDVD
TVCRTVCR
HDHD
BroadcastingStandard
DTVDTV
RegionEuEuUSUS
APAP
Video Output Device
PTVPTV
FTVFTVLCTVLCTV
Price
UTVUTV
MTVMTV
(2) Diversity
* From Rob Van Ommering/Philips
![Page 48: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/48.jpg)
(3) Lead Time
Was:• Yearly cycle of product introduction
– Christmas– World championship
Is:• Decreasing to 6 (or even 3) months
– Otherwise loose shelf space in shop
![Page 49: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/49.jpg)
Operating system
Platform – component framework
Core components
application components
Product architecture:
![Page 50: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/50.jpg)
Koala Components
CC
C2
C1
C3
Provided interface
Required interface
Modules/glue code
Generate c codeComplication and linking
* From Rob Van Ommering/Philips
![Page 51: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/51.jpg)
Overall architecture development
Subsystems development
Product development
Development development process
Platforms
Components
![Page 52: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/52.jpg)
CB development requires changes in the organizations!
Project ManagerProject ArchitectTest ManagerQA Manager
System ArchitectManager
Subsystem Project ManagerSubsystem ArchitectSubsystem Test ManagerQA Subsystem Manager
DesignersDevelopersTesters
Product Project ManagerProduct ArchitectProduct Test ManagerQA Subsystem ManagerProduct Validation Manager Integrators Testers
Overall strategy level
Platform &Project level
![Page 53: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/53.jpg)
Experience from Philips
• The new (CBD) approach did not work with the previous development process model and organization
• A lot of efforts has been put on – re-organization– Emphasis on early system/components specification– Quality assurance
• Early test and verification of the components
– Synchronization of the activities
![Page 54: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/54.jpg)
Findings from the case study
– CBD requires specific approach in development process
– Reusue is not only a matter of a good technology but also of the process and organisation
– Many companies introducing CBD are not aware of that
![Page 55: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/55.jpg)
COTS-based development
• COTS - commercial off the shelf• component development process completely separately
developed from system development. • The strongest concern
– time.-to-market from the component user point of view, – reusability from the component developer point of view.
• Main characteristics– instant value of new functionality– Challenges in composability
• Often COTS components don tot comply with a component model,• the semantics of the components are not specified • different properties of the components are not properly and
adequately documented.
![Page 56: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/56.jpg)
Conclusion
• The main characteristic of component-base development process – a separation (and parallelization) of system
development from component development.
• Consequence– Programming issues (low-level design, coding) are
less emphasized– verification processes and infrastructural
management requires significantly more efforts.
![Page 57: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/57.jpg)
COTS-based Component development process
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
![Page 58: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/58.jpg)
Subcontractor-based component-development
Construction
Equipment
Defence Forestry
Mining
Sub - Contractor
![Page 59: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/59.jpg)
IntegrationIntegration
Subcontractor-based Dev.process
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Requirements
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Requirements
Design
Test
Release
Maintenance
Implementation
Integration
Verify
Store
System Development
Component Assessment
Component Development
Select
Find
Design
Implementation
Integration
Test
Release
Maintenance
Developvariants
![Page 60: Component-based Development Process and Component Lifecycle Ivica Crnkovic Mälardalen University, Department of Computer Engineering Sweden ivica.crnkovic@mdh.se.](https://reader031.fdocuments.net/reader031/viewer/2022012922/5697bfe21a28abf838cb443a/html5/thumbnails/60.jpg)
Literature
• Component-based Development Process and Component Lifecycle
• Ivica Crnkovic1, Michel Chaudron2, Stig Larsson3
• 1Mälardalen University, Department of Computer Science and Electronics, Sweden
• 2Eindhoven University of Technology, Dept. of Mathematics and Computing Science, The Netherlands
• 3ABB, Corporate Research, Sweden
• ICSEA 2006