the challenges and opportunities in open source reuse
TRANSCRIPT
The challenges and opportuni2es in open source reuse
Ivica Crnkovic Mälardalen University, Sweden
www.idt,mdh.se/~icc, [email protected]
OPEN-‐SME Project – Athens Workshop 17 February 2012
Before the start….
2013-‐02-‐06 2
CBSE: 15th ACM SigSoH InternaIonal Symposium on Component-‐Based SoHware Engineering QoSA: 8th ACM SigSoH InternaIonal Conference on Quality of SoHware Architecture ISARCS: 3rd ACM SigSoH InternaIonal Symposium on ArchitecIng CriIcal Systems ROSS: Workshop on Reusing Open-‐Source SoHware Components
OPEN-‐SME workshop @ presentaIon Invited papers – published in ACM Digital Library Important days : Papers submissions: March 7th NoIficaIons: April 7th Camera-‐ready submission: April 28
hWp://opensme.eu/ross
June 25-‐28, 2012, Ber2noro, Italy
Open Source & Free and Open Source
• Open-‐source soHware (OSS) – soTware that is available in source code form.
• Free and open-‐source soHware (F/OSS, FOSS) (free/libre/open-‐source soTware (FLOSS)) – soTware that is both free and open source
• 1. Free RedistribuIon • 2. Source Code • 3. Derived Works • 4. Integrity of The Author's Source Code • 5. No DiscriminaIon Against Persons or Groups • 6. No DiscriminaIon Against Fields of Endeavor • 7. DistribuIon of License • 8. License Must Not Be Specific to a Product • 9. License Must Not Restrict Other SoHware • 10. License Must Be Technology-‐Neutral
2013-‐02-‐06 3
Reusing SoTware
Design PaWerns
ApplicaIon Product Lines
Component-‐based development
Service-‐oriented systems
Program Libraries
Model-‐based development
PragmaIc source-‐code reuse (cut/paste)
2013-‐02-‐06 4
Reusing SoTware
Design PaWerns
ApplicaIon Product Lines
Component-‐based development
Service-‐oriented systems
Program Libraries
Model-‐based development
PragmaIc source-‐code reuse (cut/paste)
2013-‐02-‐06 5
Requirements
Design
Test
Release
Maintenance
Selec2on of exis2ng components
Implementa2on
Integra2on
Applica2on development reusing components
2013-‐02-‐06 6
Systema2c Reuse
2013-‐02-‐06
Applica2on Engineering
Domain Analysis
Domain Design Domain
Implementa2on
Requirements Analysis
Applica2on Design Applica2on
Implementa2on Customer requirements
Domain Engineering
7
System development reusing components
Requirements
Design
Implementa2on
Test
Release
Maintenance Find
Select Adapt
Store Verify Requirements
Design Implementa2on
Test
Release
Maintenance Requirements
Design Implementa2on
Test
Release
Maintenance
Requirements
Design Implementa2on
Test
Release
Maintenance
Requirements
Design Implementa2on
Test
Release
Maintenance
Requirements
Design Implementa2on
Test
Release
Maintenance
FIND
2013-‐02-‐06 8
Where are the challenges?
• Challenges – Business – Organiza2onal – Technical • Technology • Process
Applica'on*Development*
Requirements*
Design*
Implementa'on*
Test*
Release*
Maintenance*Find*
Select*Adapt*
Store*Verify*Requirements*
Design*Implementa'on*
Test*
Release*
Maintenance*Requirements*
Design*Implementa'on*
Test*
Release*
Maintenance*
Requirements*
Design*Implementa'on*
Test*
Release*
Maintenance*
Requirements*
Design*Implementa'on*
Test*
Release*
Maintenance*
Requirements*
Design*Implementa'on*
Test*
Release*
Maintenance*
Domain*Development*
The challenges are in the interface between domain and applica2on engineering
2013-‐02-‐06 9
Applica2on Engineering Details (I) Requirements Engineering
2013-‐02-‐06 10
RequirementCollection
RequirementAnalysis
[Remaining requirements]
[No more requirements]
[Component found]
[Componentnot found]
ModifyRequirement
[Requirement could be changed]
Mark requirement as"non-reusable"
Requirementcannot be changed
Requirements Reuse Analysis and Adaptation
Identification ofCandidate Components
Applica2on Engineering Details (I) Requirements Engineering -‐
challenges
2013-‐02-‐06 11
RequirementCollection
RequirementAnalysis
[Remaining requirements]
[No more requirements]
[Component found]
[Componentnot found]
ModifyRequirement
[Requirement could be changed]
Mark requirement as"non-reusable"
Requirementcannot be changed
Requirements Reuse Analysis and Adaptation
Identification ofCandidate Components
You need: • A good tool to find components
that fits to the requirements • Not only func2onal requirements
but non-‐func2onal (performance, reliability, resource requirements)
• Maybe you need test the component with others
Basic requirements: • A repository with components • Specifica2on – metadata • Tests • Requirement specifica2on • Contract (what is needed, what is
provided)
Applica2on Engineering Details (II) Architectural Design
2013-‐02-‐06 12
Overall SystemArchitecture
Detailed SystemArchitecture
Applica2on Engineering Details (II) Architectural Design -‐ challenges
2013-‐02-‐06 13
Overall SystemArchitecture
Detailed SystemArchitecture
Maybe the overall architecture already exists? Maybe some packages (a set of components) already exists? Challenges: • Should we save some
architectural paiers? • Should we also save packages
and composite components as reusable units?
Applica2on Engineering Details (III) Detailed Design
2013-‐02-‐06 14
ConceptualDesign
DetailedDesign
[No]
[OK]
[Component found]
[Componentnot found]
[Not OK]
Deatiled Analysis
Identification of Candidate Components
Architectural Deployment
Architecure level Analysis
[OK]
[Yes]
Create NewComponent
[Feasible Design]
[Not Feasible]
[No]
Detailed
Applica2on Engineering Details (III) Detailed Design -‐ challenges
2013-‐02-‐06 15
ConceptualDesign
DetailedDesign
[No]
[OK]
[Component found]
[Componentnot found]
[Not OK]
Deatiled Analysis
Identification of Candidate Components
Architectural Deployment
Architecure level Analysis
[OK]
[Yes]
Create NewComponent
[Feasible Design]
[Not Feasible]
[No]
Detailed
You need: A good tool to find components that fits to the specifica2ons Not only func2onal specifica2on but non-‐func2onal (performance, reliability, resources) Maybe you need test the component with others Challenges: A repository with components Specifica2on – metadata Tests Contract (what is needed, what is provided) Efficient component browser
Applica2on Engineering Details (IV) Implementa2on/Realiza2on
2013-‐02-‐06 16
Component Selection [Not Found]
[Found]ComponentRepository
Search somewhere else
[Adaptation not needed]
VerificationAdaptation
[Adaptation needed] [Found]
In-housedevelopment
[Not Found]
Applica2on Engineering Details (IV) Implementa2on/Realiza2on -‐
challenges
2013-‐02-‐06 17
Component Selection [Not Found]
[Found]ComponentRepository
Search somewhere else
[Adaptation not needed]
VerificationAdaptation
[Adaptation needed] [Found]
In-housedevelopment
[Not Found]
Challenges: Search someone else
Where? Is that a maier of DE?
In house development Who is doing that?
DE à repository Internal development Feedback to DE?
AdaptaIon: Who is doing that?
DE à repository Internal adapta2on New requirements to DE?
Applica2on Engineering Details (VI) Test
2013-‐02-‐06 18
Test caseExecution
Test resultAnalysis
[More testsremaining]
[No more test cases]
[No bugs found]
[Bugs found]
Fixing theComponent
RegressionTesting
Debug and Identifyfaulty component
Test caseGeneration
Applica2on Engineering Details (VI) Test -‐ Challenges
2013-‐02-‐06 19
Test caseExecution
Test resultAnalysis
[More testsremaining]
[No more test cases]
[No bugs found]
[Bugs found]
Fixing theComponent
RegressionTesting
Debug and Identifyfaulty component
Test caseGeneration
Challenges: Are tests already available?
How to pickup all tests needed Faulty components • Should DE be informed? • Should DE contain list of known
errors? Fixing the component:
Who is doing that? DE à repository Internal fix Sending fixed components to DE?
Applica2on Engineering Details (VII) Maintenance
2013-‐02-‐06 20
Select replacementComponent New Components
Integration
Adaptation
Applica2on Engineering Details (VII) Maintenance -‐ challenges
2013-‐02-‐06 21
Select replacementComponent New Components
Integration
Adaptation
Challenges: Who is responsible for big fixing in components? • DE? Who is paying for that? How
can DE repeat the error? Who is managing error reporIng system?
Challenges and needs
• Interface between domain engineering and applica2on engineering is crucial – Business issues – Agreement of responsibility – Implementa2on of an efficient process – Use of efficient tools • Repository • Browser • Development tools
2013-‐02-‐06 22
OPEN-‐SME objec2ves