A glimpse-of-cbd

19
REUSE IN COMPONENT-BASED SOFTWARE DEVELOPMENT Simone Di Cola Supervisor: Kung-Kiu Lau

Transcript of A glimpse-of-cbd

REUSE IN COMPONENT-BASED SOFTWARE

DEVELOPMENTSimone Di ColaSupervisor: Kung-Kiu Lau

2

THE SOFTWARE CRISIS

“ […] now we have gigantic computers, programming has become an equally gigantic problem.”

Edsger Dijkstra

 

3

THE PERVASIVENESS OF SOFTWARE

Scalability Complexi

ty

4

COMPONENT-BASED SOFTWARE DEVELOPMENT

A

B

C

D

Repository

A

B C

System X

A D

B C

System Y

5

WHAT IS A COMPONENT?

6

COMPONENTS COMPOSITION

7

GENERIC COMPONENT

Implementation

Provided service

Requiredservice

Provided service

8

COMPONENT DEFINITION

“A software component is a unit of composition with contractually specified interface and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parts. [1]”

Szyperski

“A component is a software element satisfying the following conditions:It can be used by other software elements; It possesses an official usage description, which is sufficient for a client author to use it; It is not tied to any fixed set of clients. [2]”

Meyer“A [component is a] software element that conforms to a component model and can be independently deployed and composed without modification according to a composition standard. [3]”

Heineman

9

SOFTWARE COMPONENT MODEL

DEFINES

COMPONENT COMPOSITION

Syntax Mechanism

10

WHY OBJECTS ARE NOT ENOUGH? [4]

Difficult to

reuse

Tight coupli

ng

Lack of

structure

Hard to

verify

11

THE MANCHESTER WAY – X-MAN [6]

IU

Unit

Atomic component

Composition connector

Compositecomponent

In X-MAN control and computation are separated

This leads to highly factored system design

IDEALIZED COMPONENT LIFE-CYCLE [5]

A

B

C

A

B

C

D

BC

D

A

B

BC

A Instance

B Instance

D Instance

BC Instance

Builder

Repository

Assembler Run-timecomponent

(source)

design phase

composition

operator

component

(binary)

deployment

phase composit

ion operator

component

(instance)

Design phase Deployment phaseExecution phase

13

WHAT IF MY REPOSITORY IS EMPTY?

14

POSSIBLE STRATEGIES

Implement

Search

15

IMPLEMENTExtracting

component from Natural Language

Requirements

Incremental & Iterative

component development

Model-driven Component-based

development

16

SEARCH

17

USING THE WEB AS A REUSE REPOSITORY [7]

Describe

syntax

Describe Semantic

s

Search the web

Match

signatur

e

Compile

Test

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

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

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

;

18

THANK YOU!

19

REFERENCES [1] C. Szyperski, D. Gruntz, and S. Murer. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, second edition, 2002.

[2] B. Meyer. The grand challenge of trusted components. In Proc. ICSE 2003, pages 660–667. IEEE, 2003.

[3] G.T.Heineman and W.T.Councill, editors. Component-Based Software Engineering: Putting the Pieces Together. Addison-Wesley, 2005.

[4] C. Pfister and C. Szyperski. Why objects are not enough. Proceedings of 1st International Component Users Conference. SIGS Publishers, 1996.

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

[6] K.-K. Lau and C.M. Tran. In Proceedings of 38th EUROMICRO Conference on Software Engineering and Advanced Applications, pages 158-165, IEEE, 2012.

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