International Workshop on Incorporating COTS-Software into Software Systems: Tools and Techniques...

20
International Workshop International Workshop on 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 Dewayne Perry (University of Texas at Austin) at Austin) (chairs) (chairs) February 1, 2004 February 1, 2004

Transcript of International Workshop on Incorporating COTS-Software into Software Systems: Tools and Techniques...

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

ParticipationParticipation Accepted 6 papersAccepted 6 papers Had 30+ attendeesHad 30+ attendees

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”

[email protected]

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

Technical Program

Key Dates:

Paper submission: April 9, 2004

Author notification: June 11, 2004

Camera-ready papers: July 2, 2004

http://www.ase-conference.org