International Workshop onInternational Workshop on Incorporating COTS-Incorporating COTS-
Software into Software Software into Software Systems: Tools and Systems: Tools and
Techniques (IWICSS)Techniques (IWICSS)
Alexander Egyed (Teknowledge Alexander Egyed (Teknowledge Corporation)Corporation)
Dewayne Perry (University of Texas at Dewayne Perry (University of Texas at Austin)Austin)(chairs)(chairs)
February 1, 2004February 1, 2004
OverviewOverview
Technologies for “plugging” COTS Technologies for “plugging” COTS software into software systemssoftware into software systems Safely and predictablySafely and predictably Design, implement, and testDesign, implement, and test Software engineering principlesSoftware engineering principles
=> Several times more difficult than => Several times more difficult than ordinary application codeordinary application code
ChallengesChallenges how to write glue codehow to write glue code how to implement data and control how to implement data and control
dependenciesdependencies how to make the COTS software aware of its how to make the COTS software aware of its
surroundingssurroundings how to resolve stumbling blocks and riskshow to resolve stumbling blocks and risks how to integrate user interfaceshow to integrate user interfaces how to handle new COTS releases and other how to handle new COTS releases and other
maintenance issuesmaintenance issues how to reverse engineerhow to reverse engineer how to design product lines with COTS how to design product lines with COTS
softwaresoftware how to test COTS-based systemshow to test COTS-based systems
ProgramProgram1.00 – 1.20 Tools for Commercial Component
Assembly Francis Bordeleau Mark Vigder
1.20 – 1.40 Discussion 1:40 – 2.00 Container-Managed Exception
Handling Framework Kevin Simons Judith Stafford
2.00 – 2.20 Discussion 2:20 – 2.40 Dynamism Gloom and Doom? T. Gamble
D.Flagg R. Baird Rose Gamble
2:40 – 3.00 Break
3.00 – 3.20 Discussion 3.20 – 3.40 Reengineering Large-Scale Polylingual
Systems Mark Grechanik Dewayne E. Perry Don Batory
3.40 – 4.00 Discussion 4.00 – 4.20 State Consistency Strategies for COTS
Integration Sven Johann Alexander Egyed
4.20 – 4.40 Discussion
4.40 – 5.00 Break
5.00 – 5.20 Black-box Testing of Evolving COT-Based Systems
Ye Wu
5.20 – 5.40 Discussion 5.40>> Brainstorming on research directives
Tools for Commercial Component Tools for Commercial Component AssemblyAssembly
Francis Bordeleau (Zeligsoft/Carleton University)Francis Bordeleau (Zeligsoft/Carleton University)Mark Vigder (National Research Council Canada)Mark Vigder (National Research Council Canada)Roles of concern:Roles of concern:
Assembler: assemble commercial components into new Assembler: assemble commercial components into new applications or new COTS productsapplications or new COTS products
Application deployer: deploy application within a specific Application deployer: deploy application within a specific environmentenvironment
Issues:Issues: Configuring, assembling, deploying components often requires Configuring, assembling, deploying components often requires
highly skilled, expensive engineershighly skilled, expensive engineers Large amounts of configuration and deployment data required, Large amounts of configuration and deployment data required,
usually in the form of XML filesusually in the form of XML files Generation and evolution of the data is tedious, error prone, and Generation and evolution of the data is tedious, error prone, and
difficult to validatedifficult to validateDirectionsDirections
Standards are evolving that enable the possibility of tools for Standards are evolving that enable the possibility of tools for generation, evolution and validation of assembly, configuration, generation, evolution and validation of assembly, configuration, and deployment dataand deployment data
Container-Managed Exception Container-Managed Exception HandlingHandling
Kevin Simons and Judith Stafford Kevin Simons and Judith Stafford Tufts University, USATufts University, USA COTS software not aware of system and its feedback needCOTS software not aware of system and its feedback need
How to interpret COTS software exceptions in context of the How to interpret COTS software exceptions in context of the systemsystem
How to avoid exceptionsHow to avoid exceptions How to generate exceptions in COTS software if the system How to generate exceptions in COTS software if the system requires itrequires it
How to recover the state of a COTS software after an How to recover the state of a COTS software after an exceptionexception
Work based on infrastructure that mediates communication Work based on infrastructure that mediates communication between COTS software and systembetween COTS software and system
Dynamism Doom and Gloom?Dynamism Doom and Gloom?T. Gamble, D. Flagg, R. Baird, and R. Gamble T. Gamble, D. Flagg, R. Baird, and R. Gamble
University of Tulsa, USAUniversity of Tulsa, USACommercial middleware is still not prepared to support Commercial middleware is still not prepared to support dynamismdynamism
Sets impractical expectations for component interaction that Sets impractical expectations for component interaction that impedes dynamismimpedes dynamism
Much a priori knowledge is needed by theMuch a priori knowledge is needed by the Component being insertedComponent being inserted Established middlewareEstablished middleware Other components interacting with the systemOther components interacting with the system
A priori knowledge should be reduced without forfeiting controlA priori knowledge should be reduced without forfeiting control Develop and use standardsDevelop and use standards Allow middleware to have designated wrappers for certain Allow middleware to have designated wrappers for certain
component functionalitycomponent functionality Design adaptable component connectorsDesign adaptable component connectors
[email protected]@utulsa.edu, , www.seat.utulsa.eduwww.seat.utulsa.edu
Reengineering Large-Scale Reengineering Large-Scale Polylingual SystemsPolylingual Systems
Mark Grechanik, Dewayne E. Perry, and Don Batory Mark Grechanik, Dewayne E. Perry, and Don Batory University of Texas, AustinUniversity of Texas, Austin architecture in polylingual systemarchitecture in polylingual system
How to have many different component interact with one How to have many different component interact with one anotheranother
NN22 problem problem provide a generic language for interacting with components provide a generic language for interacting with components (including COTS)(including COTS)
components use generic languagecomponents use generic languageForward and reverse engineering process based on FOREL Forward and reverse engineering process based on FOREL and ROOFand ROOF
FOREL; reifies foreign type systemsFOREL; reifies foreign type systems ROOF: generalizes type systems to graphs and provides virtual ROOF: generalizes type systems to graphs and provides virtual
machine over APIs and frameworksmachine over APIs and frameworks
State Consistency Strategies for State Consistency Strategies for COTS IntegrationCOTS Integration
Sven Johann (University of Mannheim, Germany)Sven Johann (University of Mannheim, Germany)Alexander Egyed (Teknowledge Corporation)Alexander Egyed (Teknowledge Corporation)
Instant change notificationInstant change notification Making COTS aware of other software components to notify them Making COTS aware of other software components to notify them
instantly about state (data and control) changesinstantly about state (data and control) changes E.g., Rational Rose notifies model analysis component about UML E.g., Rational Rose notifies model analysis component about UML
changes. changes. Incremental analysis and transformationIncremental analysis and transformation
Batch transformation and analysis are very time and resource consumingBatch transformation and analysis are very time and resource consuming Incremental transformation and analysis focuses on changes onlyIncremental transformation and analysis focuses on changes only COTS issue: when and where is data changed?COTS issue: when and where is data changed?
Semantic differencesSemantic differences Maintaining the system state consistent with COTS software state is still Maintaining the system state consistent with COTS software state is still
not trivial if semantic differences existnot trivial if semantic differences exist Transforming Rose change notifications into system change notificationsTransforming Rose change notifications into system change notifications
Black-box Testing for Evolving Black-box Testing for Evolving COTS-Based SoftwareCOTS-Based SoftwareYe Wu (George Mason University)Ye Wu (George Mason University)
Challenges: What should COTS-users do if COTS products are Challenges: What should COTS-users do if COTS products are changed?changed?
Changes are analyzed and classified into: generalization, Changes are analyzed and classified into: generalization, specialization and reconstruction modifications.specialization and reconstruction modifications.
Adjusted black-box testing techniques are provided to Adjusted black-box testing techniques are provided to adequately reassure the quality of the evolving COTS-based adequately reassure the quality of the evolving COTS-based softwaresoftware
IssuesIssues
Critical problem: matching COTS features Critical problem: matching COTS features to business model and processesto business model and processes Often inadequate functional supportOften inadequate functional support need to design system around COTS softwareneed to design system around COTS software Not good to change business practice to Not good to change business practice to
accommodate COTS softwareaccommodate COTS software Architectural mismatchesArchitectural mismatches COTS software works well for what it was COTS software works well for what it was
designed fordesigned for Our risk to take it out of context?Our risk to take it out of context?
We just use a portion of COTS We just use a portion of COTS functionality but pay the full pricefunctionality but pay the full price COTS footprint is increasing; many COTS footprint is increasing; many
unnecessary featuresunnecessary features
COTS Vendor COTS Vendor
Package software for becoming better Package software for becoming better COTS products (guides for developers)COTS products (guides for developers)What does COTS need to make explicit; What does COTS need to make explicit; What does COTS reuser need to knowWhat does COTS reuser need to know Specifications, documentation, interface, Specifications, documentation, interface,
model, testing, proper use, etcmodel, testing, proper use, etc What are the dependenciesWhat are the dependencies What are the quality of service factorsWhat are the quality of service factors Feature-based installation, customizationFeature-based installation, customization Where to get help?Where to get help?
Industry provides COTS; industry Industry provides COTS; industry consumes COTS; what can we do?consumes COTS; what can we do? Standards, mechanisms for implementing the Standards, mechanisms for implementing the
standardsstandards Requires industry participation; technical Requires industry participation; technical
and not marketingand not marketing Industry agree-on Industry agree-on
Standard interfacesStandard interfaces Component descriptionsComponent descriptions Deployment frameworkDeployment framework
CMM – COTS Maturity Model; COTS CMM – COTS Maturity Model; COTS Level 5 is better than 3?Level 5 is better than 3? How well does it satisfy packaging How well does it satisfy packaging
requirements?requirements? How reusable is it?How reusable is it?
Standardization Standardization
Holy Book of Patterns for COTS Holy Book of Patterns for COTS IntegrationIntegration
Assembly and DeploymentAssembly and Deployment ModelingModeling TestingTesting Product-LinesProduct-Lines Configuration ManagementConfiguration Management
Technology Technology
What can we learn from successful COTS What can we learn from successful COTS software?software? Operating system/databases are stable COTS?Operating system/databases are stable COTS? Well defined interfacesWell defined interfaces
Is there a difference between legacy reuse/open Is there a difference between legacy reuse/open source and COTS?source and COTS? Relationship between Non-developmental items (NDI) Relationship between Non-developmental items (NDI)
and COTS?and COTS? Is there difference between reusing small/big Is there difference between reusing small/big
COTS into small/big systemCOTS into small/big system What is size?What is size? Its all about semantics: how well you understand it, how Its all about semantics: how well you understand it, how
complex the interactions arecomplex the interactions are Traditional notion of size is changedTraditional notion of size is changed
Special Issue on this topic in journal (IEEE TSE)Special Issue on this topic in journal (IEEE TSE)
Other Observations Other Observations
Program CommitteeProgram Committee
Francis Bordeleau (Carleton University, Canada)Francis Bordeleau (Carleton University, Canada) Lisa Brownsword (Software Engineering Institute, Lisa Brownsword (Software Engineering Institute,
USA)USA) Rose Gamble (University of Tulsa, USA)Rose Gamble (University of Tulsa, USA) Anna Liu (Microsoft Research, USA)Anna Liu (Microsoft Research, USA) Nenad Medvidovic (University of Southern Nenad Medvidovic (University of Southern
California, USA) California, USA) Maurizio Morisio (Politecnico di Torino, Italy)Maurizio Morisio (Politecnico di Torino, Italy) Judith Stafford (Tufts University, USA)Judith Stafford (Tufts University, USA) Tarja Systa (Tampere University of Technology, Tarja Systa (Tampere University of Technology,
Finland)Finland) Ye Wu (George Mason University, USA)Ye Wu (George Mason University, USA)
http://www.tuisr.utulsa.edu/iwicss/
GOOGLE: “IWICSS”
Slides and Presentations
at
Paul Grünbacher
Johannes Kepler University, Austria
• Virginie Wiels
• ONERA, France
• Kurt Stirewalt
• Michigan State University, USA
19th IEEE International Conference on
Automated Software Engineering
Linz, AustriaSeptember 20- 25, 2004
Top Related