SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
The	
  challenges	
  and	
  opportuni2es	
  
         in	
  open	
  source	
  reuse	
  
                               Ivica	
  Crnkovic	
  
                        Mälardalen	
  University,	
  Sweden	
  
                  www.idt,mdh.se/~icc,	
  Ivica.crnkovic@mdh.se	
  
                                         	
  



 OPEN-­‐SME	
  Project	
  –	
  Athens	
  Workshop	
  	
  	
  17	
  February	
  2012	
  
Before	
  the	
  start….	
  

June	
  25-­‐28,	
  2012,	
  Ber2noro,	
  Italy	
  



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	
  
	
  
	
   2013-­‐02-­‐06	
                                                                                             2	
  
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	
  

                                 PragmaIc	
  source-­‐code	
  reuse	
  
                                 (cut/paste)	
  
                                                            Component-­‐based	
  	
  
                                                            development	
  

                                 Program	
  Libraries	
              ApplicaIon	
  Product	
  Lines	
  
                     Service-­‐oriented	
  systems	
  

                                                               Model-­‐based	
  development	
  




2013-­‐02-­‐06	
                                                                                          4	
  
Reusing	
  SoTware	
  

                                                         Design	
  PaWerns	
  

                                 PragmaIc	
  source-­‐code	
  reuse	
  
                                 (cut/paste)	
  
                                                            Component-­‐based	
  	
  
                                                            development	
  
                                   Program	
  Libraries	
  

                     Service-­‐oriented	
  systems	
                 ApplicaIon	
  Product	
  Lines	
  


                                        Model-­‐based	
  development	
  




2013-­‐02-­‐06	
                                                                                          5	
  
Applica2on	
  development	
  reusing	
  
                       components	
  
    Requirements	
  


                           Design
                                    Implementa2on	
  


                                                        Integra2on	
  


                                                                         Test	
  
              Selec2on	
  of	
  
              exis2ng	
  
              components	
                                                          Release	
  


                                                                                              Maintenance


2013-­‐02-­‐06	
                                                                                       6	
  
Systema2c	
  Reuse	
  
                                                                            Applica2on	
  Engineering	
  
                             Requirements	
  
                               Analysis	
  
                                                          Applica2on	
  
                                                            Design	
                  Applica2on	
  
                                                                                    Implementa2on	
  
Customer	
  	
  
requirements	
  


                            Domain	
  Analysis	
  
                                                     Domain	
  Design	
  
                                                                                       Domain	
  
                                                                                    Implementa2on	
  
                         Domain	
  Engineering	
  

    2013-­‐02-­‐06	
                                                                                        7	
  
System	
  development	
  	
  
                                                                                             reusing	
  components	
  
            Requirements	
  

                                  Design	
  
                                                  Implementa2on	
  
                                                                                    Test	
  
                                                                          F                         Release	
  
             Find	
                                                       I
                           Select	
                                       N                                        Maintenance	
  
                                                                          D
                                               Adapt	
  
               Requirements	
  
               Requirements	
                                       Verify	
  
                             Design	
  
                             Design	
                                                  Store	
  
                                               Implementa2on	
  
                                                Implementa2on	
  
                                                                         Test	
  
                                                                         Test	
  
                                                                                      Release	
  
                                                                                      Release	
  
   Requirements	
  
  Requirements	
  
 Requirements	
                                                                                      Maintenance	
  
                                                                                                     Maintenance	
  
                   Design	
  
                  Design	
  
             Design	
                 Implementa2on	
  
                                     Implementa2on	
  
                                   Implementa2on	
            Test	
  
                                                             Test	
  
                                                           Test	
  
                                                                              Release	
  
                                                                            Release	
  
                                                                           Release	
  
                                                                                              Maintenance	
  
                                                                                             Maintenance	
  
                                                                                            Maintenance	
  
2013-­‐02-­‐06	
                                                                                                                     8	
  
Where	
  are	
  the	
  challenges?	
  

•  Challenges	
                                                          Requirements*

                                                                                            Design*
                                                                                                         Implementa'on*                      App

           –  Business	
  
                                                                                                                                                 li   ca'o
                                                                                                                                                      n *D e
                                                                                                                                    Test*                   velo
                                                                                                                                                                 pme
                                                                                                                                                                    nt*
                                                                          Find*                                                                  Release*

           –  Organiza2onal	
                                                         Select*
                                                                                                      Adapt*
                                                                                                                                                              Maintenance*

                                                                           Requirements*
                                                                           Requirements*                                Verify*

           –  Technical	
                                                               Design*
                                                                                        Design*
                                                                                                      Implementa'on*
                                                                                                       Implementa'on*
                                                                                                                            Test*
                                                                                                                            Test*
                                                                                                                                      Store* Domain
                                                                                                                                                    *Dev
                                                                                                                                                        elop
                                                                                                                                                             men
                                                                                                                                      Release*
                                                                                                                                                                 t*

                     •  Technology	
  
                                                                     Requirements*                                                    Release*
                                                                    Requirements*
                                                                   Requirements*                                                                   Maintenance*
                                                                                                                                                   Maintenance*
                                                                                  Design*
                                                                                 Design*
                                                                               Design*          Implementa'on*
                                                                                               Implementa'on*
                                                                                             Implementa'on*

                     •  Process	
  
                                                                                                                    Test*
                                                                                                                   Test*
                                                                                                                 Test*
                                                                                                                                Release*
                                                                                                                              Release*
                                                                                                                             Release*
                                                                                                                                             Maintenance*
                                                                                                                                            Maintenance*
                                                                                                                                           Maintenance*




             The	
  challenges	
  are	
  in	
  the	
  interface	
  between	
  domain	
  and	
  applica2on	
  engineering	
  



2013-­‐02-­‐06	
                                                                                                                                                      9	
  
Applica2on	
  Engineering	
  Details	
  	
  
                      (I)	
  Requirements	
  Engineering	
  

                                                         Requirement
                                                          Collection


                                                   Requirements Reuse Analysis and Adaptation

                                   Requirement                                               Modify
                                     Analysis                                              Requirement


                                             Identification of           [Component        [Requirement
                                          Candidate Components            not found]     could be changed]

                                                            [Component found]      Requirement
                                                                                cannot be changed

                                                                                Mark requirement as
                                                                                  "non-reusable"


                                         [Remaining requirements]

                                                          [No more requirements]




2013-­‐02-­‐06	
                                                                                             10	
  
Applica2on	
  Engineering	
  Details	
  	
  
                            (I)	
  Requirements	
  Engineering	
  -­‐	
  
                                          challenges	
  
You	
  need:	
  
•  A	
  good	
  tool	
  to	
  find	
  components	
                               Requirement
                                                                                 Collection
    that	
  fits	
  to	
  the	
  requirements	
  
•  Not	
  only	
  func2onal	
  requirements	
                             Requirements Reuse Analysis and Adaptation

    but	
  non-­‐func2onal	
  (performance,	
             Requirement                                               Modify
    reliability,	
  resource	
  requirements)	
             Analysis                                              Requirement

•  Maybe	
  you	
  need	
  test	
  the	
  	
  
                                                                    Identification of           [Component        [Requirement
    component	
  with	
  others	
                                Candidate Components            not found]     could be changed]

                                                                                   [Component found]      Requirement
Basic	
  requirements:	
                                                                               cannot be changed

•  A	
  repository	
  with	
  components	
                                                             Mark requirement as
•  Specifica2on	
  –	
  metadata	
                                                                        "non-reusable"
•  Tests	
  
•  Requirement	
  specifica2on	
                                 [Remaining requirements]

•  Contract	
  (what	
  is	
  needed,	
  what	
  is	
                            [No more requirements]
    provided)	
  




       2013-­‐02-­‐06	
                                                                                                             11	
  
Applica2on	
  Engineering	
  Details	
  	
  
                        (II)	
  Architectural	
  Design	
  



                                            Overall System
                                             Architecture



                                                             Detailed System
                                                              Architecture




2013-­‐02-­‐06	
                                                               12	
  
Applica2on	
  Engineering	
  Details	
  	
  
            (II)	
  Architectural	
  Design	
  -­‐	
  challenges	
  


Maybe	
  the	
  overall	
  architecture	
  
already	
  exists?	
  
	
                                                 Overall System
Maybe	
  some	
  packages	
  (a	
  set	
  of	
      Architecture
components)	
  already	
  exists?	
  
	
  
                                                                    Detailed System
Challenges:	
                                                        Architecture
•  Should	
  we	
  save	
  some	
  
     architectural	
  paiers?	
  
•  Should	
  we	
  also	
  save	
  packages	
  
     and	
  composite	
  components	
  as	
  
     reusable	
  units?	
  




     2013-­‐02-­‐06	
                                                                 13	
  
Applica2on	
  Engineering	
  Details	
  	
  
                           (III)	
  Detailed	
  Design	
  
                                              Conceptual                  Architectural
                                                Design                    Deployment

                                                                                   Architecure
                                                                                  level Analysis               [No]


                                                                          [OK]


                                              Detailed              Identification
                                              Design                                               [Component Create New
                                                                    of Candidate
                                                                                                    not found] Component
                                                                    Components

                                                                                     [Component found]
                                                                                                              [Yes]           [No]




                                                           Detailed	
  
                                                           Deatiled
                                                           Analysis                                [OK]                [Not Feasible]


                                   [Not OK]                                                               [Feasible Design]




2013-­‐02-­‐06	
                                                                                                                     14	
  
Applica2on	
  Engineering	
  Details	
  	
  
                        (III)	
  Detailed	
  Design	
  -­‐	
  challenges	
  
You	
  need:	
                                                                 Conceptual                  Architectural
A	
  good	
  tool	
  to	
  find	
  components	
                                   Design                    Deployment
that	
  fits	
  to	
  the	
  specifica2ons	
                                                                          Architecure
Not	
  only	
  func2onal	
  specifica2on	
                                                                          level Analysis               [No]

but	
  non-­‐func2onal	
  (performance,	
  
                                                                                                           [OK]
reliability,	
  resources)	
  
Maybe	
  you	
  need	
  test	
  the	
  	
  
                                                                               Detailed              Identification
component	
  with	
  others	
                                                  Design                of Candidate
                                                                                                                                    [Component Create New
                                                                                                                                     not found] Component
	
                                                                                                   Components

Challenges:	
                                                                                                         [Component found]

A	
  repository	
  with	
  components	
                                                                                                        [Yes]           [No]

Specifica2on	
  –	
  metadata	
  
Tests	
  
                                                                                            Detailed	
  
                                                                                            Deatiled
Contract	
  (what	
  is	
  needed,	
  what	
  is	
  provided)	
                             Analysis                                [OK]                [Not Feasible]
Efficient	
  component	
  browser	
  
                                                                    [Not OK]                                                               [Feasible Design]




       2013-­‐02-­‐06	
                                                                                                                                               15	
  
Applica2on	
  Engineering	
  Details	
  	
  
                 (IV)	
  Implementa2on/Realiza2on	
  

                                            Component
                                             Selection                      [Not Found]

                                                                  [Found]            Search
                                                                                  somewhere else
                               Component
                               Repository



                                            [Adaptation needed]                           [Found]

                                                         [Adaptation not needed]               [Not Found]

                                                                                                 In-house
                                                                                               development




                                            Adaptation         Verification




2013-­‐02-­‐06	
                                                                                             16	
  
Applica2on	
  Engineering	
  Details	
  	
  
                    (IV)	
  Implementa2on/Realiza2on	
  -­‐	
  
                                  challenges	
  

Challenges:	
  
Search	
  someone	
  else	
                                            Component
                                                                        Selection                      [Not Found]
         Where?	
                                                                                               Search
                                                                                             [Found]
         Is	
  that	
  a	
  maier	
  of	
  DE?	
          Component
                                                                                                             somewhere else

In	
  house	
  development	
                              Repository

         Who	
  is	
  doing	
  that?	
  
                   DE	
  à	
  repository	
                            [Adaptation needed]                           [Found]
                   Internal	
  development	
  
                                                                                    [Adaptation not needed]               [Not Found]
                   Feedback	
  to	
  DE?	
  
AdaptaIon:	
                                                                                                                In-house
                                                                                                                          development
         Who	
  is	
  doing	
  that?	
  
                   DE	
  à	
  repository	
  
                   Internal	
  adapta2on	
  
                                                                       Adaptation         Verification


                   New	
  requirements	
  to	
  DE?	
  




       2013-­‐02-­‐06	
                                                                                                                 17	
  
Applica2on	
  Engineering	
  Details	
  	
  
                                (VI)	
  Test	
  	
  

                                                 Test case
                                                 Generation


                                                        Test case
                                                        Execution


                                                                Test result
                                                                 Analysis
                                   [More tests
                                   remaining]
                                                                                  [Bugs    Debug and Identify
                                                                                 found]    faulty component

                                                                      [No bugs found]                      Fixing the
                                                                                                          Component


                                                                                                        Regression
                                                                                                         Testing

                                                                    [No more test cases]




2013-­‐02-­‐06	
                                                                                                        18	
  
Applica2on	
  Engineering	
  Details	
  	
  
                                 (VI)	
  Test	
  -­‐	
  Challenges	
  

Challenges:	
  
Are	
  tests	
  already	
  available?	
                                    Test case
                                                                           Generation
         How	
  to	
  pickup	
  all	
  tests	
  needed	
  
Faulty	
  components	
                                                            Test case

•  Should	
  DE	
  be	
  informed?	
  	
                                          Execution


•  Should	
  DE	
  contain	
  list	
  of	
  known	
                                       Test result
     errors?	
                                                                             Analysis

Fixing	
  the	
  component:	
                                [More tests
                                                             remaining]
         Who	
  is	
  doing	
  that?	
                                                                      [Bugs
                                                                                                           found]
                                                                                                                     Debug and Identify
                                                                                                                     faulty component
                   DE	
  à	
  repository	
                                                                                          Fixing the
                   Internal	
  fix	
  	
                                                         [No bugs found]
                                                                                                                                    Component

                   Sending	
  fixed	
  components	
  
                   to	
  DE?	
                                                                                                    Regression
                                                                                                                                   Testing

                                                                                              [No more test cases]




       2013-­‐02-­‐06	
                                                                                                                           19	
  
Applica2on	
  Engineering	
  Details	
  	
  
                           (VII)	
  Maintenance	
  


                                      Select replacement
                                                                         New Components
                                         Component




                                                           Adaptation




                                                           Integration




2013-­‐02-­‐06	
                                                                          20	
  
Applica2on	
  Engineering	
  Details	
  	
  
                            (VII)	
  Maintenance	
  -­‐	
  challenges	
  


                                                               Select replacement
                                                                                                  New Components
                                                                  Component

Challenges:	
  
Who	
  is	
  responsible	
  for	
  big	
  fixing	
  in	
  
components?	
  
•  DE?	
  	
  Who	
  is	
  paying	
  for	
  that?	
  How	
  
                                                                                    Adaptation
    can	
  DE	
  repeat	
  the	
  error?	
  
Who	
  is	
  managing	
  error	
  reporIng	
  
system?	
  
                                                                                    Integration




       2013-­‐02-­‐06	
                                                                                            21	
  
Challenges	
  and	
  needs	
  
•  Interface	
  between	
  domain	
  engineering	
  and	
  
   applica2on	
  engineering	
  is	
  crucial	
  
           –  Business	
  issues	
  
           –  Agreement	
  of	
  responsibility	
  
                                                                    OPEN-­‐SME	
  
           –  Implementa2on	
  of	
  an	
  efficient	
  process	
     objec2ves	
  
           –  Use	
  of	
  efficient	
  tools	
  
                     •  Repository	
  
                     •  Browser	
  
                     •  Development	
  tools	
  	
  

2013-­‐02-­‐06	
                                                            22	
  

Mais conteúdo relacionado

Mais procurados

BenchmarkQA Performance Testing Quality Forum March 2012
BenchmarkQA Performance Testing Quality Forum March 2012BenchmarkQA Performance Testing Quality Forum March 2012
BenchmarkQA Performance Testing Quality Forum March 2012BenchmarkQA
 
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsEliane Collins
 
Avea Release Management IBM Innovate 2012
Avea Release Management IBM Innovate 2012Avea Release Management IBM Innovate 2012
Avea Release Management IBM Innovate 2012Oguzhan Ozavar
 
V Labs Product Presentation
V Labs  Product PresentationV Labs  Product Presentation
V Labs Product PresentationWil Huijben
 
OOW 09 EBS Application Change Management Pack
OOW 09 EBS Application Change Management PackOOW 09 EBS Application Change Management Pack
OOW 09 EBS Application Change Management Packjucaab
 

Mais procurados (6)

BenchmarkQA Performance Testing Quality Forum March 2012
BenchmarkQA Performance Testing Quality Forum March 2012BenchmarkQA Performance Testing Quality Forum March 2012
BenchmarkQA Performance Testing Quality Forum March 2012
 
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
 
Avea Release Management IBM Innovate 2012
Avea Release Management IBM Innovate 2012Avea Release Management IBM Innovate 2012
Avea Release Management IBM Innovate 2012
 
RTF - Prasad bhatt
RTF - Prasad bhattRTF - Prasad bhatt
RTF - Prasad bhatt
 
V Labs Product Presentation
V Labs  Product PresentationV Labs  Product Presentation
V Labs Product Presentation
 
OOW 09 EBS Application Change Management Pack
OOW 09 EBS Application Change Management PackOOW 09 EBS Application Change Management Pack
OOW 09 EBS Application Change Management Pack
 

Destaque

Teaching in multicultural classromre
Teaching in multicultural  classromreTeaching in multicultural  classromre
Teaching in multicultural classromreIvica Crnkovic
 
Resilient systems - predicatbility ane evolution
Resilient systems - predicatbility ane evolutionResilient systems - predicatbility ane evolution
Resilient systems - predicatbility ane evolutionIvica Crnkovic
 
TPRS® Beginning Workshop 2012-Detroit
TPRS® Beginning Workshop 2012-DetroitTPRS® Beginning Workshop 2012-Detroit
TPRS® Beginning Workshop 2012-DetroitScott Benedict
 
European Conference on Software Architecture - ECSA 2015 Announcement
European Conference on Software Architecture - ECSA 2015 AnnouncementEuropean Conference on Software Architecture - ECSA 2015 Announcement
European Conference on Software Architecture - ECSA 2015 AnnouncementIvica Crnkovic
 
Rapid Continuous Software Engineering - Meeting the challenges of modern sof...
Rapid Continuous Software Engineering - Meeting the challenges of modern sof...Rapid Continuous Software Engineering - Meeting the challenges of modern sof...
Rapid Continuous Software Engineering - Meeting the challenges of modern sof...Ivica Crnkovic
 
Beyond digitalisation 2016-06-07
Beyond digitalisation  2016-06-07Beyond digitalisation  2016-06-07
Beyond digitalisation 2016-06-07Ivica Crnkovic
 
Crnkovic cbse-impact.pptx
Crnkovic cbse-impact.pptxCrnkovic cbse-impact.pptx
Crnkovic cbse-impact.pptxIvica Crnkovic
 
Empirical se 2013-01-17
Empirical se 2013-01-17Empirical se 2013-01-17
Empirical se 2013-01-17Ivica Crnkovic
 
TPRS® Beginning Workshop 2012
TPRS® Beginning Workshop 2012TPRS® Beginning Workshop 2012
TPRS® Beginning Workshop 2012Scott Benedict
 
Software Assurance: What Should We Do next? - Software Design for Reliability
Software Assurance: What Should We Do next?  - Software Design for ReliabilitySoftware Assurance: What Should We Do next?  - Software Design for Reliability
Software Assurance: What Should We Do next? - Software Design for ReliabilityIvica Crnkovic
 
A classification framework for component models
A classification framework for component modelsA classification framework for component models
A classification framework for component modelsIvica Crnkovic
 
Ten Tips to Succeed in Global Software Engineering Education
Ten Tips to Succeed in Global Software Engineering EducationTen Tips to Succeed in Global Software Engineering Education
Ten Tips to Succeed in Global Software Engineering EducationIvica Crnkovic
 
ICSE2018 presentation 2016-05-20
ICSE2018 presentation 2016-05-20ICSE2018 presentation 2016-05-20
ICSE2018 presentation 2016-05-20Ivica Crnkovic
 
Carmen R Andrews ePortfolio
Carmen R Andrews ePortfolioCarmen R Andrews ePortfolio
Carmen R Andrews ePortfolioScott Benedict
 
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...Ivica Crnkovic
 

Destaque (17)

Teaching in multicultural classromre
Teaching in multicultural  classromreTeaching in multicultural  classromre
Teaching in multicultural classromre
 
Resilient systems - predicatbility ane evolution
Resilient systems - predicatbility ane evolutionResilient systems - predicatbility ane evolution
Resilient systems - predicatbility ane evolution
 
TPRS® Beginning Workshop 2012-Detroit
TPRS® Beginning Workshop 2012-DetroitTPRS® Beginning Workshop 2012-Detroit
TPRS® Beginning Workshop 2012-Detroit
 
European Conference on Software Architecture - ECSA 2015 Announcement
European Conference on Software Architecture - ECSA 2015 AnnouncementEuropean Conference on Software Architecture - ECSA 2015 Announcement
European Conference on Software Architecture - ECSA 2015 Announcement
 
Rapid Continuous Software Engineering - Meeting the challenges of modern sof...
Rapid Continuous Software Engineering - Meeting the challenges of modern sof...Rapid Continuous Software Engineering - Meeting the challenges of modern sof...
Rapid Continuous Software Engineering - Meeting the challenges of modern sof...
 
Beyond digitalisation 2016-06-07
Beyond digitalisation  2016-06-07Beyond digitalisation  2016-06-07
Beyond digitalisation 2016-06-07
 
Crnkovic cbse-impact.pptx
Crnkovic cbse-impact.pptxCrnkovic cbse-impact.pptx
Crnkovic cbse-impact.pptx
 
SPL in Clouds
SPL in CloudsSPL in Clouds
SPL in Clouds
 
Empirical se 2013-01-17
Empirical se 2013-01-17Empirical se 2013-01-17
Empirical se 2013-01-17
 
TPRS® Beginning Workshop 2012
TPRS® Beginning Workshop 2012TPRS® Beginning Workshop 2012
TPRS® Beginning Workshop 2012
 
Software Assurance: What Should We Do next? - Software Design for Reliability
Software Assurance: What Should We Do next?  - Software Design for ReliabilitySoftware Assurance: What Should We Do next?  - Software Design for Reliability
Software Assurance: What Should We Do next? - Software Design for Reliability
 
A classification framework for component models
A classification framework for component modelsA classification framework for component models
A classification framework for component models
 
Ten Tips to Succeed in Global Software Engineering Education
Ten Tips to Succeed in Global Software Engineering EducationTen Tips to Succeed in Global Software Engineering Education
Ten Tips to Succeed in Global Software Engineering Education
 
ICSE2018 presentation 2016-05-20
ICSE2018 presentation 2016-05-20ICSE2018 presentation 2016-05-20
ICSE2018 presentation 2016-05-20
 
Carmen R Andrews ePortfolio
Carmen R Andrews ePortfolioCarmen R Andrews ePortfolio
Carmen R Andrews ePortfolio
 
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
Component-Based and Model-Driven Engineering: what is the difference? A CBSE ...
 
Question words
Question wordsQuestion words
Question words
 

Semelhante a The challenges and opportunities in open source reuse

Eclipse Summit 2008 - Thales - SolFa
Eclipse Summit 2008 - Thales - SolFaEclipse Summit 2008 - Thales - SolFa
Eclipse Summit 2008 - Thales - SolFaBENOIT_LANGLOIS
 
Micro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETMicro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETVijay Nair
 
How the WSO2 App factory can help Manage your Applications
How the WSO2 App factory can help Manage your ApplicationsHow the WSO2 App factory can help Manage your Applications
How the WSO2 App factory can help Manage your ApplicationsWSO2
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case StudyADC Austin Tech
 
IBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile AppsIBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile AppsSanjeev Sharma
 
IRJET- An Sla-Aware Cloud Coalition Formation Approach for Virtualized Networks.
IRJET- An Sla-Aware Cloud Coalition Formation Approach for Virtualized Networks.IRJET- An Sla-Aware Cloud Coalition Formation Approach for Virtualized Networks.
IRJET- An Sla-Aware Cloud Coalition Formation Approach for Virtualized Networks.IRJET Journal
 
Leadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in HealthcareLeadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in Healthcaresetstanford
 
Data Modeling Lineage | Embarcadero Technoloiges
Data Modeling Lineage | Embarcadero TechnoloigesData Modeling Lineage | Embarcadero Technoloiges
Data Modeling Lineage | Embarcadero TechnoloigesMichael Findling
 
DevOps CI Automation Continuous Integration
DevOps CI Automation Continuous IntegrationDevOps CI Automation Continuous Integration
DevOps CI Automation Continuous IntegrationIRJET Journal
 
CRASH Special Report - JEE
CRASH Special Report - JEECRASH Special Report - JEE
CRASH Special Report - JEECAST
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsProlifics
 
Michel izygon
Michel izygonMichel izygon
Michel izygonNASAPMC
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
Week 01-intro se
Week 01-intro seWeek 01-intro se
Week 01-intro seNguyen Tran
 
Introducing the WSO2 App Factory
Introducing the WSO2 App FactoryIntroducing the WSO2 App Factory
Introducing the WSO2 App FactoryWSO2
 
BA conf presentation 2010
BA conf presentation 2010BA conf presentation 2010
BA conf presentation 2010Julen Mohanty
 
SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...
SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...
SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...IRJET Journal
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA
 
Software enginnering unit 01 by manoj kumar soni
Software enginnering unit 01 by manoj kumar soniSoftware enginnering unit 01 by manoj kumar soni
Software enginnering unit 01 by manoj kumar sonimanojsonikgn
 

Semelhante a The challenges and opportunities in open source reuse (20)

Eclipse Summit 2008 - Thales - SolFa
Eclipse Summit 2008 - Thales - SolFaEclipse Summit 2008 - Thales - SolFa
Eclipse Summit 2008 - Thales - SolFa
 
Micro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JETMicro Front Ends for Micro Services using Oracle JET
Micro Front Ends for Micro Services using Oracle JET
 
How the WSO2 App factory can help Manage your Applications
How the WSO2 App factory can help Manage your ApplicationsHow the WSO2 App factory can help Manage your Applications
How the WSO2 App factory can help Manage your Applications
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 
IBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile AppsIBM Pulse 2013 session - DevOps for Mobile Apps
IBM Pulse 2013 session - DevOps for Mobile Apps
 
IRJET- An Sla-Aware Cloud Coalition Formation Approach for Virtualized Networks.
IRJET- An Sla-Aware Cloud Coalition Formation Approach for Virtualized Networks.IRJET- An Sla-Aware Cloud Coalition Formation Approach for Virtualized Networks.
IRJET- An Sla-Aware Cloud Coalition Formation Approach for Virtualized Networks.
 
Leadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in HealthcareLeadership Symposium on Digital Media in Healthcare
Leadership Symposium on Digital Media in Healthcare
 
Data Modeling Lineage | Embarcadero Technoloiges
Data Modeling Lineage | Embarcadero TechnoloigesData Modeling Lineage | Embarcadero Technoloiges
Data Modeling Lineage | Embarcadero Technoloiges
 
DevOps CI Automation Continuous Integration
DevOps CI Automation Continuous IntegrationDevOps CI Automation Continuous Integration
DevOps CI Automation Continuous Integration
 
CRASH Special Report - JEE
CRASH Special Report - JEECRASH Special Report - JEE
CRASH Special Report - JEE
 
A Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere toolsA Software Factory Integrating Rational Team Concert and WebSphere tools
A Software Factory Integrating Rational Team Concert and WebSphere tools
 
Michel izygon
Michel izygonMichel izygon
Michel izygon
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Week 01-intro se
Week 01-intro seWeek 01-intro se
Week 01-intro se
 
Introducing the WSO2 App Factory
Introducing the WSO2 App FactoryIntroducing the WSO2 App Factory
Introducing the WSO2 App Factory
 
Clinical approach to technical upgrade
Clinical approach to technical upgradeClinical approach to technical upgrade
Clinical approach to technical upgrade
 
BA conf presentation 2010
BA conf presentation 2010BA conf presentation 2010
BA conf presentation 2010
 
SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...
SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...
SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...
 
SPEC INDIA Java Case Study
SPEC INDIA Java Case StudySPEC INDIA Java Case Study
SPEC INDIA Java Case Study
 
Software enginnering unit 01 by manoj kumar soni
Software enginnering unit 01 by manoj kumar soniSoftware enginnering unit 01 by manoj kumar soni
Software enginnering unit 01 by manoj kumar soni
 

Mais de Ivica Crnkovic

2020 09-16-ai-engineering challanges
2020 09-16-ai-engineering challanges2020 09-16-ai-engineering challanges
2020 09-16-ai-engineering challangesIvica Crnkovic
 
Ai engineering icsoc -2019-10-30
Ai engineering icsoc -2019-10-30Ai engineering icsoc -2019-10-30
Ai engineering icsoc -2019-10-30Ivica Crnkovic
 
Software Engineering Challenges in building AI-based complex systems
Software Engineering Challenges in building AI-based complex systemsSoftware Engineering Challenges in building AI-based complex systems
Software Engineering Challenges in building AI-based complex systemsIvica Crnkovic
 
ICSE 2018 opening session
ICSE 2018 opening sessionICSE 2018 opening session
ICSE 2018 opening sessionIvica Crnkovic
 
AI challanges - Cse day-2018.04.12
AI challanges - Cse day-2018.04.12AI challanges - Cse day-2018.04.12
AI challanges - Cse day-2018.04.12Ivica Crnkovic
 

Mais de Ivica Crnkovic (6)

2020 09-16-ai-engineering challanges
2020 09-16-ai-engineering challanges2020 09-16-ai-engineering challanges
2020 09-16-ai-engineering challanges
 
Ai engineering icsoc -2019-10-30
Ai engineering icsoc -2019-10-30Ai engineering icsoc -2019-10-30
Ai engineering icsoc -2019-10-30
 
Software Engineering Challenges in building AI-based complex systems
Software Engineering Challenges in building AI-based complex systemsSoftware Engineering Challenges in building AI-based complex systems
Software Engineering Challenges in building AI-based complex systems
 
ICSE 2018 opening session
ICSE 2018 opening sessionICSE 2018 opening session
ICSE 2018 opening session
 
AI challanges - Cse day-2018.04.12
AI challanges - Cse day-2018.04.12AI challanges - Cse day-2018.04.12
AI challanges - Cse day-2018.04.12
 
Sa past-future
Sa past-futureSa past-future
Sa past-future
 

The challenges and opportunities in open source reuse

  • 1. The  challenges  and  opportuni2es   in  open  source  reuse   Ivica  Crnkovic   Mälardalen  University,  Sweden   www.idt,mdh.se/~icc,  Ivica.crnkovic@mdh.se     OPEN-­‐SME  Project  –  Athens  Workshop      17  February  2012  
  • 2. Before  the  start….   June  25-­‐28,  2012,  Ber2noro,  Italy   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       2013-­‐02-­‐06   2  
  • 3. 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  
  • 4. Reusing  SoTware   Design  PaWerns   PragmaIc  source-­‐code  reuse   (cut/paste)   Component-­‐based     development   Program  Libraries   ApplicaIon  Product  Lines   Service-­‐oriented  systems   Model-­‐based  development   2013-­‐02-­‐06   4  
  • 5. Reusing  SoTware   Design  PaWerns   PragmaIc  source-­‐code  reuse   (cut/paste)   Component-­‐based     development   Program  Libraries   Service-­‐oriented  systems   ApplicaIon  Product  Lines   Model-­‐based  development   2013-­‐02-­‐06   5  
  • 6. Applica2on  development  reusing   components   Requirements   Design Implementa2on   Integra2on   Test   Selec2on  of   exis2ng   components   Release   Maintenance 2013-­‐02-­‐06   6  
  • 7. Systema2c  Reuse   Applica2on  Engineering   Requirements   Analysis   Applica2on   Design   Applica2on   Implementa2on   Customer     requirements   Domain  Analysis   Domain  Design   Domain   Implementa2on   Domain  Engineering   2013-­‐02-­‐06   7  
  • 8. System  development     reusing  components   Requirements   Design   Implementa2on   Test   F Release   Find   I Select   N Maintenance   D Adapt   Requirements   Requirements   Verify   Design   Design   Store   Implementa2on   Implementa2on   Test   Test   Release   Release   Requirements   Requirements   Requirements   Maintenance   Maintenance   Design   Design   Design   Implementa2on   Implementa2on   Implementa2on   Test   Test   Test   Release   Release   Release   Maintenance   Maintenance   Maintenance   2013-­‐02-­‐06   8  
  • 9. Where  are  the  challenges?   •  Challenges   Requirements* Design* Implementa'on* App –  Business   li ca'o n *D e Test* velo pme nt* Find* Release* –  Organiza2onal   Select* Adapt* Maintenance* Requirements* Requirements* Verify* –  Technical   Design* Design* Implementa'on* Implementa'on* Test* Test* Store* Domain *Dev elop men Release* t* •  Technology   Requirements* Release* Requirements* Requirements* Maintenance* Maintenance* Design* Design* Design* Implementa'on* Implementa'on* Implementa'on* •  Process   Test* Test* Test* Release* Release* Release* Maintenance* Maintenance* Maintenance* The  challenges  are  in  the  interface  between  domain  and  applica2on  engineering   2013-­‐02-­‐06   9  
  • 10. Applica2on  Engineering  Details     (I)  Requirements  Engineering   Requirement Collection Requirements Reuse Analysis and Adaptation Requirement Modify Analysis Requirement Identification of [Component [Requirement Candidate Components not found] could be changed] [Component found] Requirement cannot be changed Mark requirement as "non-reusable" [Remaining requirements] [No more requirements] 2013-­‐02-­‐06   10  
  • 11. Applica2on  Engineering  Details     (I)  Requirements  Engineering  -­‐   challenges   You  need:   •  A  good  tool  to  find  components   Requirement Collection that  fits  to  the  requirements   •  Not  only  func2onal  requirements   Requirements Reuse Analysis and Adaptation but  non-­‐func2onal  (performance,   Requirement Modify reliability,  resource  requirements)   Analysis Requirement •  Maybe  you  need  test  the     Identification of [Component [Requirement component  with  others   Candidate Components not found] could be changed] [Component found] Requirement Basic  requirements:   cannot be changed •  A  repository  with  components   Mark requirement as •  Specifica2on  –  metadata   "non-reusable" •  Tests   •  Requirement  specifica2on   [Remaining requirements] •  Contract  (what  is  needed,  what  is   [No more requirements] provided)   2013-­‐02-­‐06   11  
  • 12. Applica2on  Engineering  Details     (II)  Architectural  Design   Overall System Architecture Detailed System Architecture 2013-­‐02-­‐06   12  
  • 13. Applica2on  Engineering  Details     (II)  Architectural  Design  -­‐  challenges   Maybe  the  overall  architecture   already  exists?     Overall System Maybe  some  packages  (a  set  of   Architecture components)  already  exists?     Detailed System Challenges:   Architecture •  Should  we  save  some   architectural  paiers?   •  Should  we  also  save  packages   and  composite  components  as   reusable  units?   2013-­‐02-­‐06   13  
  • 14. Applica2on  Engineering  Details     (III)  Detailed  Design   Conceptual Architectural Design Deployment Architecure level Analysis [No] [OK] Detailed Identification Design [Component Create New of Candidate not found] Component Components [Component found] [Yes] [No] Detailed   Deatiled Analysis [OK] [Not Feasible] [Not OK] [Feasible Design] 2013-­‐02-­‐06   14  
  • 15. Applica2on  Engineering  Details     (III)  Detailed  Design  -­‐  challenges   You  need:   Conceptual Architectural A  good  tool  to  find  components   Design Deployment that  fits  to  the  specifica2ons   Architecure Not  only  func2onal  specifica2on   level Analysis [No] but  non-­‐func2onal  (performance,   [OK] reliability,  resources)   Maybe  you  need  test  the     Detailed Identification component  with  others   Design of Candidate [Component Create New not found] Component   Components Challenges:   [Component found] A  repository  with  components   [Yes] [No] Specifica2on  –  metadata   Tests   Detailed   Deatiled Contract  (what  is  needed,  what  is  provided)   Analysis [OK] [Not Feasible] Efficient  component  browser   [Not OK] [Feasible Design] 2013-­‐02-­‐06   15  
  • 16. Applica2on  Engineering  Details     (IV)  Implementa2on/Realiza2on   Component Selection [Not Found] [Found] Search somewhere else Component Repository [Adaptation needed] [Found] [Adaptation not needed] [Not Found] In-house development Adaptation Verification 2013-­‐02-­‐06   16  
  • 17. Applica2on  Engineering  Details     (IV)  Implementa2on/Realiza2on  -­‐   challenges   Challenges:   Search  someone  else   Component Selection [Not Found] Where?   Search [Found] Is  that  a  maier  of  DE?   Component somewhere else In  house  development   Repository Who  is  doing  that?   DE  à  repository   [Adaptation needed] [Found] Internal  development   [Adaptation not needed] [Not Found] Feedback  to  DE?   AdaptaIon:   In-house development Who  is  doing  that?   DE  à  repository   Internal  adapta2on   Adaptation Verification New  requirements  to  DE?   2013-­‐02-­‐06   17  
  • 18. Applica2on  Engineering  Details     (VI)  Test     Test case Generation Test case Execution Test result Analysis [More tests remaining] [Bugs Debug and Identify found] faulty component [No bugs found] Fixing the Component Regression Testing [No more test cases] 2013-­‐02-­‐06   18  
  • 19. Applica2on  Engineering  Details     (VI)  Test  -­‐  Challenges   Challenges:   Are  tests  already  available?   Test case Generation How  to  pickup  all  tests  needed   Faulty  components   Test case •  Should  DE  be  informed?     Execution •  Should  DE  contain  list  of  known   Test result errors?   Analysis Fixing  the  component:   [More tests remaining] Who  is  doing  that?   [Bugs found] Debug and Identify faulty component DE  à  repository   Fixing the Internal  fix     [No bugs found] Component Sending  fixed  components   to  DE?   Regression Testing [No more test cases] 2013-­‐02-­‐06   19  
  • 20. Applica2on  Engineering  Details     (VII)  Maintenance   Select replacement New Components Component Adaptation Integration 2013-­‐02-­‐06   20  
  • 21. Applica2on  Engineering  Details     (VII)  Maintenance  -­‐  challenges   Select replacement New Components Component Challenges:   Who  is  responsible  for  big  fixing  in   components?   •  DE?    Who  is  paying  for  that?  How   Adaptation can  DE  repeat  the  error?   Who  is  managing  error  reporIng   system?   Integration 2013-­‐02-­‐06   21  
  • 22. Challenges  and  needs   •  Interface  between  domain  engineering  and   applica2on  engineering  is  crucial   –  Business  issues   –  Agreement  of  responsibility   OPEN-­‐SME   –  Implementa2on  of  an  efficient  process   objec2ves   –  Use  of  efficient  tools   •  Repository   •  Browser   •  Development  tools     2013-­‐02-­‐06   22