Title: Modelling Deployment using Feature Descriptions and State Models
1Modelling Deployment using Feature Descriptions
and State Models
- for Component Based Software Product Families
Slinger Jansen Utrecht University
2Structure
Overview
Knowledge Management
Features
Conclusions
Example
- Overview
- What is product software?
- What are component deployment issues?
- Knowledge management
- What knowledge needs to be managed?
- What frameworks are already available?
- Features
- How can we manage features?
- How must they be represented?
- Example
- How does it work in practice?
- Conclusions
- Does it, really?
- What will be our future work?
3Product Software
Overview
Knowledge Management
Features
Conclusions
Example
- Software is different from conventional products
- Easily malleable after delivery by
- Producer
- Third party developer
- Customer
-
- Specific solution for a generic environment
- Software depends on different components, which
are equally changeable - Deliver project studies software release,
delivery, and deployment - By explicitly managing component knowledge
- Through case studies (approx 15 of deployments
fail) - Case studies show complex scenarios
- AutoCAD Plug-in developer
- Multiple deployments on load balancing servers
(with 100 uptime)
4Issues when deploying a component (1)
Overview
Knowledge Management
Features
Conclusions
Example
- Hostile Environment
- Limited resources (disk space, licenses, memory)
- Other components
- Component Dependencies
- On other components
- On other features
- Variability
- Feature language
- Feature dependencies
- Different component types
5Issues when deploying a component (2)
Overview
Knowledge Management
Features
Conclusions
Example
- Evolution
- Different versions
- Compatibilities (database transformations)
- Configuration settings
- User policies
- User settings
- Licenses
- Solution What-if questions! (actually explicit
management of knowledge) - Example 1 What happens if I install an older
version of Apache next to my current
installation? - Example 2 What happens if I want to install a
new version of the Java Runtime Environment? - Example 3 Can I install MS Frontpage 1997 next
to Office XP?
6Component State Management
Overview
Knowledge Management
Features
Conclusions
Example
- Solution Component Deployment Knowledge
Management - Models all layers of complexity
- Attempts to find an instantiation route to a
feature - Allows what-if questions
- Thus solving
- Dependency issues
- Different versions
- Variability at different states (binding times)
- Different component types
- I had a dream!
7Current Knowledge models and formats
Overview
Knowledge Management
Features
Conclusions
Example
- Formats
- DSD Deployable Software Description (XML)
- OMG Reusable Asset Specification
- OMG - IT Portfolio Management Specification
- WIX Microsoft
- etc.
- Meyer (1985)
- Software knowledge base
1
2
3
R. Hall, D. Heimbigner, and A. Wolf, Specifying
the deployable software description format in
xml, 1999.
1
Object Management Group, Deployment and
Configuration of Component-based Distributed
Applications Specification, OMG document
ptc03-07-08, June 2003.
2
B. Meyer, The software knowledge base, in
Proceedings of the 8th international conference
on Software engineering. IEEE Computer Society
Press, 1985, pp. 158165.
3
8Algorithm
Overview
Knowledge Management
Features
Conclusions
Example
1
- Returns an instantiation tree to achieve
requested features - Example User has Word 97, and wants to be able
to save as a webpage. - Feature is only in Office XP.
- Office XP requires Dictionary XP.
- Office XP excludes Word 97.
- Sequence
- Remove Word 97
- Install Dictionary XP
- Install Office XP
- Instantiation tree has interesting properties
- Use to find resource usage
- Use to remove components that are only used for
the instantiation process - What-if questions!
9Visual representation of complexities
Overview
Knowledge Management
Features
Conclusions
Example
Component C
Built
Source
Packaged
Deployed
Running
10Visual representation of complexities
Overview
Knowledge Management
Features
Conclusions
Example
Component C
Source
Deployed
Running
Packaged
Built
11Visual representation of complexities
Overview
Knowledge Management
Features
Conclusions
Example
Component C
Source
Deployed
Running
Packaged
Built
Revision 0
Source
Deployed
Running
Packaged
Built
Revision 1
Source
Deployed
Running
Packaged
Built
Revision 2
Source
Deployed
Running
Packaged
Built
Revision 3
12Overview
Knowledge Management
Features
Conclusions
Example
Component Knowledge Evolution
Source
Built
Deployed
Running
Packaged
(Update)
(Update)
Source
Built
Deployed
Running
Packaged
(Update)
(Update)
Source
Built
Deployed
Packaged
Activated
Running
13Component Knowledge
Knowledge Base
Source
Built
Deployed
Running
Packaged
Component State Instances (different Variations
on a System)
Source Code
Test Built
Test Package
Installation fast
Running fast
Production Built
Production Package
Installation Medium
Installation slow
Running slow
So how to describe these variations?
14Feature Description Language
Overview
Knowledge Management
Features
Conclusions
Example
- Add feature description to each component
revision - Allows for modelling of variability and binding
times - Allows for users to specifically request a
feature - Enables restrictions on configurations such as
if you choose the slow implementation of the
search algorithm you cannot implement it into a
quick retrieval component - Can easily be calculated using van der Storm
C0BuiltV2
Stand on the shoulders of giants Van der Storm
(2004) figured out that if these feature
descriptions are translated into binary decision
diagrams you can efficiently deal with large
component configurations with large amounts of
variation, laying a foundation for our research.
(hes actually 5ft tall)
1..1
Speed
1..1
BSlow
BFast
0..0
0..0
15Example MyComponent C0
Overview
Knowledge Management
Features
Conclusions
Example
My Component
C0v1 Source
C0v1 Built
C0v1 Running
C0v2 Source
C0v2 Built
C0v2 Running
CTav1 Installed
CTav1 Running
Compilers a and b
CTbv1 Installed
CTbv1 Running
My Component Patch Tool
PTv1 Installed
PTv1 Running
R
C0v2
1..1
The VFDL graph for the second revision of C0
including the binding times in bold letters
R
Speed
1..1
R
B
B
Medium
Fast
Slow
16Lets build a tree! (1)
Overview
Knowledge Management
Features
Conclusions
Example
- We want C0v2 Running at medium speed
- Our current system contains
- CTv1 Installed
- COv1 Source
- COv2 Source
- PTv1 Installed
- Dependencies
XOR
XOR
XOR
17Lets build a tree! (2)
Overview
Knowledge Management
Features
Conclusions
Example
Alright, it can come from a fast
COv2 Running Medium
I want my component to run at medium speed
I0
I1
COv2 Built Fast
COv2 Built Slow
or a slow build of My Component, but these are
not instantiated yet
I0
I1
I0
I1
COv2 Source
CTav1 Running
COv2 Source
CTbv1 Running
COv1 Built Fast
PTv1 Running Fast
COv1 Built Slow
PTv1 Running Fast
I0
I0
I0
To build a fast instance we need the source and a
running compiler tool (specifically compiler a)
I0
I0
I0
CTav1 Installed
CTbv1 Installed
PTv1 Installed
PTv1 Installed
COv1 Source
CTaV1 Running
COv1 Source
CTbV1 Running
I0
I0
This is available, so the treebuilding can end
here.
CTav1 Installed
CTbv1 Installed
18Issues
Overview
Knowledge Management
Features
Conclusions
Example
- Policies
- Automatic
- User intervention required
- High level of complexity, tree grows quickly with
a lot of (seemingly unavoidable) duplication - Etc.
- Feature representation to user
- How to show available features to user? (think of
Dell or Smart configurators) - Use common configuration tools
- Architecture and FDL clash
- How to support plug-in architectures with
arbitrary components? - How to represent architectures with FDL
- How to deal with continuous feature ranges such
as number of users
19Future Work
Overview
Knowledge Management
Features
Conclusions
Example
- The technique in practice
- Apply the demonstrated technique to a component
configuration (such as Eclipse or Apache,
suggestions are welcome) - Develop a universal deployment tool that anyone
can use and implements all the features stated in
previous research - Develop a distribution tool that focuses on
component and metaknowledge (such as licenses)
distribution - Release tool
- Currently we are developing a tool that can
automatically create component releases from
automated builds (from daily build to daily
release) - Case Studies
- Implement this work in cooperation with two
product software vendors
1
2
1
A Process Framework and Typology for Software
Product Updaters - Slinger Jansen, Sjaak
Brinkkemper, and Gerco Ballintijn - Ninth
European Conference on Software Maintenance and
Reengineering - 2005 IEEE
2
Integrated Development and Maintenance of
Software Products to Support Efficient Updating
of Customer Configurations A Case Study in Mass
Market ERP Software - Slinger Jansen, Sjaak
Brinkkemper, Gerco Ballintijn, and Arco van
Nieuwland - Proceedings of the 21st IEEE
International Conference on Software Maintenance
- IEEE
20Conclusions
Introduction
Overview
State Models
Distribution
Conclusions
ISKB
- Improve processes of deployment for product
software by managing knowledge about - Versions and evolving components
- Dependencies between these components
- Applying variation descriptions
- Different component types
- To ensure
- Feature requests (I want an e-mail client with
pop3) - Consistent, complete, and correct deployment
- Allows what-if questions
- Can also model other dependencies (licensing,
hardware resources, etc) - The prototype tool presented has shown
- Modeling is useful (effort estimation, resource
claims, etc.) - What-if questions provide powerful mechanism
- A lot of knowledge is required (too much for
product software?) - Much work is needed to implement a cross platform
tool
21Questions?
Overview
Knowledge Management
Features
Conclusions
Example
slinger_at_cs.uu.nl