Upload
scuffio
View
44
Download
0
Tags:
Embed Size (px)
Citation preview
2
THE SOFTWARE CRISIS
“ […] now we have gigantic computers, programming has become an equally gigantic problem.”
Edsger Dijkstra
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
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
15
IMPLEMENTExtracting
component from Natural Language
Requirements
Incremental & Iterative
component development
Model-driven Component-based
development
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”))
;
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.