reuse and cloud in component based development

16
CATCH ME IF YOU CAN To reuse a software component, you first need to find it 1

Upload: scuffio

Post on 17-Jun-2015

60 views

Category:

Education


4 download

TRANSCRIPT

Page 1: Reuse and cloud in component based development

1

CATCH ME IF YOU CAN To reuse a software component, you first need to find it

Page 2: Reuse and cloud in component based development

IDEALIZED COMPONENT LIFE-CYCLE [1]

A

B

C

A

B

C

D

BC

D

A

B

BC

A Instance

B Instance

D Instance

BC Instance

Builder

Repository

Assembler Run-time

Design phase Deployment phaseExecution phase

Page 3: Reuse and cloud in component based development

3

WHAT IF MY REPOSITORY IS EMPTY?

Page 4: Reuse and cloud in component based development

4

POSSIBLE STRATEGIES

Implement

Search

Page 5: Reuse and cloud in component based development

5

THE NEED OF A COMPONENT MARKET - I

“the software industry is weakly founded and one aspect of this weakness is the absence of a software component sub-industry”.

Malcolm Douglas McIlroy

Page 6: Reuse and cloud in component based development

6

THE NEED OF A COMPONENT MARKET - II

“Imperfect technology in a working market is sustainable; perfect technology without any market will vanish”

Clemens Szyperski

Page 7: Reuse and cloud in component based development

7

TYPES OF MARKET

Internal

External

Page 8: Reuse and cloud in component based development

8

COMPONENT RETRIEVAL MODEL [2]

ProblemProblem

understood

Query space

Codesspace

Components

space

Query

Matcher

Ind

ex

Page 9: Reuse and cloud in component based development

9

SEARCH APPROACHES

Facet-based

Free-text indexer

Enumerative

classification

Test Driven

Page 10: Reuse and cloud in component based development

10

FACET-BASED CLASSIFICATION SCHEME [3]

Page 11: Reuse and cloud in component based development

11

USING THE WEB AS A REUSE REPOSITORY [4]

Describe

syntax

Describe

Semantics

Search the web

Match signatu

re

Compile Test

Stack+push(o:Object):void+pop(void):Object

Stack stack1 = new Stack();Stack1.push(“Lessie”);

assertTrue (((String) stack1.pop().equals(“Lessie”))

;

Page 12: Reuse and cloud in component based development

12

SEARCH - I

Page 13: Reuse and cloud in component based development

13

SEARCH - II [5]

Search engine

# Indexed files

# Java files Retrieval algorithms

Koders >1 million 600,000 Keyword and name matching of codes from large open source hosters

Google Code

>10 million 2.5 million Keyword matching of open source code with regex support

Merobase >10 million 8 million Keyword and name matching, signature matching, and interface-based and test-driven retrieval on open source code, binary components, and Web services

Codase <1 million 300,000 Keyword matching of hosted open source codes

Searchcode 250,000 250,000 Keyword and topological matching on indexed open source code ranked by CodeRank

Sourceforge >10 million 3.5 million Keyword and name matching in open source code and search for technical Web pages

Page 14: Reuse and cloud in component based development

14

OK I’VE FOUND IT, AND NOW

Page 15: Reuse and cloud in component based development

15

DEPLOY IN THE CLOUD?

Page 16: Reuse and cloud in component based development

16

REFERENCES [1] K.-K. Lau and Z. Wang. Software Component Models. IEEE Transactions on Software Engineering 33(10):709-724, 2007.

[2] H. Mili, F. Mili, and A. Mili. Reusing software: Issues and research directions. IEEE Transactions on Software Engineering, 21(6):528–562, 1995.

[3] R. Prieto-D´ ıaz. Implementing faceted classification for soft- ware reuse. Communications of the ACM, 34(5), 1991.

[4]Hummel, O., Janjic, W. & Atkinson, C., 2008. Code conjurer: Pulling reusable software out of thin air. Software, IEEE, 25(5), pp.45–52.

[5] Hummel, O. & Atkinson, C. Using the web as a reuse repository. Reuse of Off-the-Shelf Components, pp.298–311, 2006.