Top Banner
REUSE IN COMPONENT-BASED SOFTWARE DEVELOPMENT Simone Di Cola Supervisor: Kung-Kiu Lau
19
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A glimpse-of-cbd

REUSE IN COMPONENT-BASED SOFTWARE

DEVELOPMENTSimone Di ColaSupervisor: Kung-Kiu Lau

Page 2: A glimpse-of-cbd

2

THE SOFTWARE CRISIS

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

Edsger Dijkstra

 

Page 3: A glimpse-of-cbd

3

THE PERVASIVENESS OF SOFTWARE

Scalability Complexi

ty

Page 4: A glimpse-of-cbd

4

COMPONENT-BASED SOFTWARE DEVELOPMENT

A

B

C

D

Repository

A

B C

System X

A D

B C

System Y

Page 5: A glimpse-of-cbd

5

WHAT IS A COMPONENT?

Page 6: A glimpse-of-cbd

6

COMPONENTS COMPOSITION

Page 7: A glimpse-of-cbd

7

GENERIC COMPONENT

Implementation

Provided service

Requiredservice

Provided service

Page 8: A glimpse-of-cbd

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

Page 9: A glimpse-of-cbd

9

SOFTWARE COMPONENT MODEL

DEFINES

COMPONENT COMPOSITION

Syntax Mechanism

Page 10: A glimpse-of-cbd

10

WHY OBJECTS ARE NOT ENOUGH? [4]

Difficult to

reuse

Tight coupli

ng

Lack of

structure

Hard to

verify

Page 11: A glimpse-of-cbd

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

Page 12: A glimpse-of-cbd

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

Page 13: A glimpse-of-cbd

13

WHAT IF MY REPOSITORY IS EMPTY?

Page 14: A glimpse-of-cbd

14

POSSIBLE STRATEGIES

Implement

Search

Page 15: A glimpse-of-cbd

15

IMPLEMENTExtracting

component from Natural Language

Requirements

Incremental & Iterative

component development

Model-driven Component-based

development

Page 16: A glimpse-of-cbd

16

SEARCH

Page 17: A glimpse-of-cbd

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”))

;

Page 18: A glimpse-of-cbd

18

THANK YOU!

Page 19: A glimpse-of-cbd

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.