the challenges and opportunities in open source reuse

22
The challenges and opportuni2es in open source reuse Ivica Crnkovic Mälardalen University, Sweden www.idt,mdh.se/~icc , [email protected] OPENSME Project – Athens Workshop 17 February 2012

Upload: ivica-crnkovic

Post on 06-May-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The challenges and opportunities in open source reuse

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  

Page 2: The challenges and opportunities in open source reuse

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  

Page 3: The challenges and opportunities in open source reuse

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  

Page 4: The challenges and opportunities in open source reuse

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  

Page 5: The challenges and opportunities in open source reuse

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  

Page 6: The challenges and opportunities in open source reuse

Requirements  

Design

Test  

Release  

Maintenance

Selec2on  of  exis2ng  components  

Implementa2on  

Integra2on  

Applica2on  development  reusing  components  

2013-­‐02-­‐06   6  

Page 7: The challenges and opportunities in open source reuse

Systema2c  Reuse  

2013-­‐02-­‐06  

Applica2on  Engineering  

Domain  Analysis  

Domain  Design  Domain  

Implementa2on  

Requirements  Analysis  

Applica2on  Design   Applica2on  

Implementa2on  Customer    requirements  

Domain  Engineering  

7  

Page 8: The challenges and opportunities in open source reuse

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  

Page 9: The challenges and opportunities in open source reuse

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  

Page 10: The challenges and opportunities in open source reuse

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

Page 11: The challenges and opportunities in open source reuse

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)  

Page 12: The challenges and opportunities in open source reuse

Applica2on  Engineering  Details    (II)  Architectural  Design  

2013-­‐02-­‐06   12  

Overall SystemArchitecture

Detailed SystemArchitecture

Page 13: The challenges and opportunities in open source reuse

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?  

Page 14: The challenges and opportunities in open source reuse

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  

Page 15: The challenges and opportunities in open source reuse

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  

Page 16: The challenges and opportunities in open source reuse

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]

Page 17: The challenges and opportunities in open source reuse

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?  

Page 18: The challenges and opportunities in open source reuse

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

Page 19: The challenges and opportunities in open source reuse

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?  

Page 20: The challenges and opportunities in open source reuse

Applica2on  Engineering  Details    (VII)  Maintenance  

2013-­‐02-­‐06   20  

Select replacementComponent New Components

Integration

Adaptation

Page 21: The challenges and opportunities in open source reuse

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?  

Page 22: The challenges and opportunities in open source reuse

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