REUSE IN
COMPONENT-BASED   Simone Di Cola

      SOFTWARE    Supervisor: Kung-Kiu Lau


   DEVELOPMENT
THE SOFTWARE CRISIS


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


                                                 2
THE PERVASIVENESS OF
SOFTWARE


     Scalability
                   Complexity


                                3
COMPONENT-BASED
SOFTWARE DEVELOPMENT
  Reposito
  ry
     A           System           System
                   X                Y
     B       A            D         A

     C
             B            C   B            C
     D




                                               4
WHAT IS A COMPONENT?




                       5
COMPONENTS COMPOSITION




                         6
GENERIC COMPONENT
                  Provided
                   service
  Implementatio
        n
                  Required
                   service



                  Provided
                   service


                             7
COMPONENT DEFINITION

  Szyperski              Meyer                   Heineman
  “A software            “A component is a       “A [component is a]
  component is a unit    software element        software element
  of composition with    satisfying the          that conforms to a
  contractually          following               component model
  specified interface    conditions:             and can be
  and explicit context   It can be used by       independently
  dependencies only.     other software          deployed and
  A software             elements; It            composed without
  component can be       possesses an            modification
  deployed               official usage          according to a
  independently and      description, which      composition
  is subject to          is sufficient for a     standard. [3]”
  composition by         client author to use
  third parts. [1]”      it; It is not tied to
                                                                       8
                         any fixed set of
SOFTWARE COMPONENT
MODEL
              DEFIN
               ES



  COMPONENT           COMPOSITION




    Syntax             Mechanism




                                    9
WHY OBJECTS ARE NOT
ENOUGH? [4]

         Difficult    Tight
        to reuse     coupling



         Lack of     Hard to
        structure     verify



                                10
THE MANCHESTER WAY – X-
MAN [6]
   Atomic         Composition        Composite
 component         connector         component



In X-MAN control and computation are separated
    I
    U

  This leads to highly factored system design
   Unit




                                                 11
IDEALIZED COMPONENT
LIFE-CYCLE [5]
                    Design phase    Deployment phase Execution phase
              Builde    Reposito               componen Run-time
                                        Assembler
 componen                  componen
              r         ry t (binary)               t
 t (source)
                                               (instance)
                           A                                  A
                                            A
                A                                         Instance
                            B                                 B
                                            B
                B                                         Instance
  design                   Cdeployme                          D
  phase                     nt phase       D
                C                                         Instance
 compositi                  compositi
    on                     D on                              BC
                                           BC
 operator                    operator                     Instance
                           BC
WHAT IF MY REPOSITORY IS
EMPTY?




                           13
POSSIBLE STRATEGIES


        Implement




                Search



                         14
IMPLEMENT
                       Extracting
                    component from
                    Natural Language
                     Requirements




     Model-driven                  Incremental &
     Component-                       Iterative
        based                        component
     development                    development


                                                   15
SEARCH




         16
USING THE WEB AS A REUSE
 REPOSITORY [7]
      Stack
+push(o:Object):vo
id
+pop(void):Object



    Describe           Describe         Search     Match
                                                             Compile   Test
     syntax           Semantics        the web   signature




                Stack stack1 = new Stack();
                   Stack1.push(“Lessie”);
                    assertTrue (((String)
               stack1.pop().equals(“Lessie”));
                                                                              17
THANK YOU!




             18
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.

                                                                                        19

A glimpse-of-cbd

  • 1.
    REUSE IN COMPONENT-BASED Simone Di Cola SOFTWARE Supervisor: Kung-Kiu Lau DEVELOPMENT
  • 2.
    THE SOFTWARE CRISIS “[…] now we have gigantic computers, programming has become an equally gigantic problem.” Edsger Dijkstra 2
  • 3.
    THE PERVASIVENESS OF SOFTWARE Scalability Complexity 3
  • 4.
    COMPONENT-BASED SOFTWARE DEVELOPMENT Reposito ry A System System X Y B A D A C B C B C D 4
  • 5.
    WHAT IS ACOMPONENT? 5
  • 6.
  • 7.
    GENERIC COMPONENT Provided service Implementatio n Required service Provided service 7
  • 8.
    COMPONENT DEFINITION Szyperski Meyer Heineman “A software “A component is a “A [component is a] component is a unit software element software element of composition with satisfying the that conforms to a contractually following component model specified interface conditions: and can be and explicit context It can be used by independently dependencies only. other software deployed and A software elements; It composed without component can be possesses an modification deployed official usage according to a independently and description, which composition is subject to is sufficient for a standard. [3]” composition by client author to use third parts. [1]” it; It is not tied to 8 any fixed set of
  • 9.
    SOFTWARE COMPONENT MODEL DEFIN ES COMPONENT COMPOSITION Syntax Mechanism 9
  • 10.
    WHY OBJECTS ARENOT ENOUGH? [4] Difficult Tight to reuse coupling Lack of Hard to structure verify 10
  • 11.
    THE MANCHESTER WAY– X- MAN [6] Atomic Composition Composite component connector component In X-MAN control and computation are separated I U This leads to highly factored system design Unit 11
  • 12.
    IDEALIZED COMPONENT LIFE-CYCLE [5] Design phase Deployment phase Execution phase Builde Reposito componen Run-time Assembler componen componen r ry t (binary) t t (source) (instance) A A A A Instance B B B B Instance design Cdeployme D phase nt phase D C Instance compositi compositi on D on BC BC operator operator Instance BC
  • 13.
    WHAT IF MYREPOSITORY IS EMPTY? 13
  • 14.
    POSSIBLE STRATEGIES Implement Search 14
  • 15.
    IMPLEMENT Extracting component from Natural Language Requirements Model-driven Incremental & Component- Iterative based component development development 15
  • 16.
  • 17.
    USING THE WEBAS A REUSE REPOSITORY [7] Stack +push(o:Object):vo id +pop(void):Object Describe Describe Search Match Compile Test syntax Semantics the web signature Stack stack1 = new Stack(); Stack1.push(“Lessie”); assertTrue (((String) stack1.pop().equals(“Lessie”)); 17
  • 18.
  • 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. 19

Editor's Notes

  • #5 Researchers and industry visionaries in the software engineering field have long dreamed about a Lego block style of software development: building systems by assembling prefabricated, ready-to-use parts.
  • #6 If you close your eyes and think about a component in a structure, you may end up with a Lego brick. So, a component, like a Lego brick is a piece of software that can be composed in order to create an architecture. In our world a software architecture.
  • #7 The idea of component-based software reuse as acornerstone of a more engineering-like approach to softwaredevelopment has been around for more than four decades.Since software and its building blocks represent an importantand valuable intellectual asset for most companies, researchershave been struggling for nearly the same time to get theirhands on a substantial amount of reusable material to experimentwith.
  • #14 The differences between the various component models essentially revolve around the way they distribute functionality between components and allow them to be composed rather than on the organizational and procedural concepts used to develop systems. In other word, traditional component-technologies focus on the architectural aspects of software engineering rather than on the process of their development. So the only major process innovation offered by components it the notion of development by assembly, where system are developed by assembly existing parts rather than by traditional implementation techniques.
  • #17 The basic idea is to use the whole Web itself as the underlying repository, and to utilize standard search engines as the means of discovering appropriate software assets.