<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Toward a Conceptual Comparison Framework between CBSE and SOSE</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Anthony Hock-koon</string-name>
          <email>anthony.hock-koon@univ-nantes.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mourad Oussalah</string-name>
          <email>mourad.oussalah@univ-nantes.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Nantes</institution>
          ,
          <addr-line>LINA 2 rue de la Houssiniere, 44322 NANTES</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this paper, we discuss the theoretical di erences between component-based and service-oriented software engineering (CBSE and SOSE). We present a conceptual comparison framework which confronts their quantitative and qualitative aspects and provides a better understanding of their use. This comparison takes the object orientation (OO) into account to illustrate changing concerns of software engineering between object, component and service.</p>
      </abstract>
      <kwd-group>
        <kwd>SOSE</kwd>
        <kwd>CBSE</kwd>
        <kwd>OO</kwd>
        <kwd>Comparison Framework</kwd>
        <kwd>Quality Measurement</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Component-based software engineering (CBSE) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] proposes to reuse existing
software entities, called components, to build new applications. Service-oriented
software engineering (SOSE) [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ] proposes to reuse provided capabilities of
existing software entities called services. Both of them have the reusability as
theoretical root and rely on the concept of software architecture [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] to describe
and manage collaborative software entities. They use numerous similar concepts,
approaches, and technologies. Meanwhile, they have continued with their
development tracks in parallel and focused on their speci c interests. Consequently,
there is a mixture of similarities and specialized concepts.
      </p>
      <p>
        All comparison works between CBSE and SOSE have a bottom-up approach
in which they focus on speci c technologies to identify the resulted software
qualities [5{7] (e.g. comparison of performance between technologies [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]).
However, they do not allow a direct comparison at a conceptual level which can o er
a global understanding of the di erences between the paradigms. To our
knowledge, only one other work [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] has a top-down approach which focuses on this
conceptual comparison. However, it only tackles some confusions of
vocabularies and does not analyze the consequences of these di erences on the quality of
products and production processes.
      </p>
      <p>In this paper, we propose a conceptual comparison framework which can
deduce the resulted software qualities. It is divided into quantitative and
qualitative aspects. It takes object orientation (OO) into account to provide a global
point of view about the evolution of concerns between object, component and
service.</p>
    </sec>
    <sec id="sec-2">
      <title>Quantitative aspects</title>
      <p>The top-level categories of our quantitative part are the product and the process.
It does not intend to be exhaustive, but it aims at listing the core concepts of
each paradigm to underline their theoretical stance.
2.1</p>
      <sec id="sec-2-1">
        <title>Product and Process</title>
        <p>A product is a software entity or a conceptual entity which is the result of
an action or a process. A process is an action or a succession of actions which is
used to create or modify a product and obtain a speci c one.</p>
        <p>The product category is divided into two sub categories (Figure 1):
{ Basic architectural element - basic building blocks of each paradigm;
{ Composite architectural element - complex products built from existing
architectural elements. Their structure clearly identi es the reused
architectural elements and their relationships.</p>
        <p>Each sub categories is also divided into two groups according to two
abstraction levels: the design-time and the runtime (Figure 1).</p>
        <p>The process category focuses on the reusability principle shared by OO,
CBSE and SOSE, i.e how to reuse existing software entities, the constituent,
to build new ones, the composite. A constituent is a basic or a composite
architectural element. These notions of constituent and composite de ne two
description levels (Figure 1). The process category is divided into three sub categories
according to abstraction and description levels.</p>
        <p>{ Inside description level - gathers processes which target products from
the same description level (Figure 1 white arrows) at the two abstraction
levels;
{ Between description levels - gathers processes which target a product
from a di erent description level than the produced one (Figure 1 hatched
arrows). This category is divided into design-time and runtime;
{ Between abstraction levels - gathers processes which target a product
from the design-time and then produce a product of the runtime (Figure 1
black arrows).
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Comparison between OO, CBSE and SOSE</title>
        <p>We want to emphasize two main di erences illustrated by the Table 1. First,
SOSE relies on the dynamic service provisioning (discovery and selection)
between abstraction levels to produce a concrete service from an abstract service.
On the contrary, OO and CBSE rely on the instantiation process between class
and object, and component type and component. Then, SOSE relies on
additional runtime processes to support the self-adaptation of composite elements.
Even if some similar processes are proposed by CBSE, they are not required to
specify a component model.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Qualitative aspects</title>
      <p>
        Existing works about software quality [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ] introduce a huge number of quality
criteria based on point of views (developer, user and so forth) or application
domains. Our approach is di erent and proposes a set of core features which
are used to express every quality criteria. Users choose a quality criterion they
desire to evaluate. Then, they de ne this quality by combining the measurement
of each core feature. This combination is what we call a qualitative perspective.
3.1
      </p>
      <sec id="sec-3-1">
        <title>Core features</title>
        <p>We identify six main features:</p>
        <p>Loose coupling - measures the dependencies between entities.</p>
        <p>Expressiveness - based on the number of concepts and processes provided
by the paradigm to specify and manipulate its products.</p>
        <p>Abstraction of communication - ability of a paradigm to abstract the
communication layer which drives the execution of the application.</p>
        <p>Explicit architecture - ability of a paradigm to provide a clear architectural
view of the application which follows its principles.</p>
        <p>Evolutionary ability - ability of a paradigm to provide a powerful set of
concepts and processes to evolve its products.</p>
        <p>Ownership - allocation of responsibilities (development, QoS, maintenance,
deployment, execution, management, use) among the provider of the reused
products and its clients. It expresses the level of liberty granted by the provider
to the client.</p>
      </sec>
      <sec id="sec-3-2">
        <title>Comparing Object, Component and Service</title>
        <p>
          Loose coupling - typically, an Object-based system is built from a set of
classes which are tightly coupled while a Component-based or a Service-based
system intends to be more loosely coupled. In fact, related topics such as the
selfadaptation or the management of heterogeneities are deeply studied by CBSE
and SOSE. We set that existing researches reach the same level of maturity.
However, our previous work [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] on the de nition of the loose coupling notion
shows that numerous challenges are still unsolved.
        </p>
        <p>Expressiveness - OO manipulates a huge number of concepts such as
granularity, re exion, template, inheritance, abstraction level, description level and so
forth. CBSE's expressiveness mainly relies on OO's researches. However, some
advanced concepts such as re exion or inheritance and polymorphism do not
reach the same level of maturity. SOSE has the weaker expressiveness of the
three. In fact, it shares the lack of CBSE and adds some others (e.g. the
abstraction levels and the distinction between type and instance are still unclear).</p>
        <p>Abstraction of communication - SOSE provides the best abstraction of
communication. In fact, the global collaboration pattern between constituent
services is located inside a single entity: the composition schema which expresses
the overall behavior in terms of work ows and data ows. In CBSE, the
communications are located inside the connectors which split the global behavior.
The work ow is not explicit. Therefore, the overall collaboration is harder to
understand and manipulate. In OO, the ne granularity of the class and the
association link accentuates this drawback of CBSE.</p>
        <p>Explicit architecture - typically, an Object-based system lacks an explicit
architecture which is easily understandable. CBSE was rst introduced to
enhance this aspect and develop the concept of software architecture. SOSE directly
uses this experience and its di erence with CBSE is not signi cant.</p>
        <p>
          Evolutionary ability - dependent on the architectural graph and the
evolution processes which target its nodes, edges, or the overall graph. Typically,
OO does not provide an explicit architecture and thus, its community only
focuses on the evolution of the nodes and edges. Both CBSE and SOSE handle an
explicit architecture. Their communities also study the evolution of the overall
graph. However, some works of the CBSE community such as [
          <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
          ] go further
and study the evolution process at the meta and meta-meta-architecture levels.
        </p>
        <p>Ownership - SOSE has taken the concept of ownership to the extreme and
thus, the provider of services is responsible for the development, the quality
of service, the maintenance, the deployment, the execution, the management.
On the contrary, CBSE splits the responsibilities at the deployment level. In
fact, the client is responsible for the instantiation of the component inside his
application and its execution and management. Typically, the object orientation
de nes the class as a glass box entity and provides some powerful processes to
easily manipulate it.
3.3</p>
      </sec>
      <sec id="sec-3-3">
        <title>Qualitative perspectives</title>
        <p>Our six features represent the main elements of a software development
paradigm which impact on the software quality. However, the importance of
their impact can vary according to the chosen quality and the user's point of
view about this quality. In the gure 3, we act as users and de ne three quality
criteria: reusability, composability and dynamicity. We express our
understanding about these qualities and divide the features into three groups, from the
group which has the weaker impact to the group which has the stronger
impact.</p>
        <p>Then, we de ne a set of formula (e.g. for the reusability(1)) which combine
our vision of these qualities dropped to our six features and the previous
classi cation of the three paradigms following these features (Figure 2). Each level
(low, medium and high, Figure 3) is associated with a weight (respectively 1, 2
and 3).</p>
        <p>Reusability =Object : (4) + (3) + (1)</p>
        <p>Component : (5) + (6) + (2)</p>
        <p>Service : (3) + (7) + (3)
(1)</p>
        <p>From our qualitative perspective, CBSE has a better reusability than SOSE
or OO. The same work can be done for other quality criteria ( exibility,
robustness and so forth). The de nition of the impacts of each feature on each quality
depends on the user's expertise. In fact, each quality represents a particular
perspective on our six features and this perspective has to be de ned by the user.
The following formula Quality = f ( ; ; ; ; ; ) emphasizes the user role which
has to provide:
{ the di erent coe cients ( to ) which de ne the respective importance of
each feature according to the chosen quality perspective;
{ the function f which de nes the way to combine these features.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>This paper presents a conceptual comparison between CBSE and SOSE divided
into quantitative aspects and qualitative aspects. The quantitative aspects
classify products and processes which are used to develop some new applications.
The qualitative aspects compare the three paradigms following six features which
are reused to speci ed any software quality such as reusability, composability and
dynamicity. We show how a user can exploit these features and combine them
to evaluate some quality criteria according to their own expertise.</p>
      <p>
        For now, measures of each feature presented in Figure 3 only confront the
three paradigms at a conceptual level to provide a hierarchy between them. This
hierarchy is based on our own expertise. This approach is su cient for a direct
comparison between theories at a paradigm level, however it is not precise enough
to descend to implementation and technological level. In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], we propose a new
de nition of the loose coupling which comes along with an objective evaluation
formula. Therefore, the same work needs to be done for the ve other features.
A better measurement of each feature will ensure a better evaluation of the
qualitative perspectives de ned by users.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Szyperski</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Component Software: Beyond Object-Oriented Programming</surname>
          </string-name>
          .
          <string-name>
            <surname>Addison-Wesley Professional</surname>
          </string-name>
          (
          <year>2002</year>
          )
          <article-title>isbn 0201745720</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Stojanovic</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dahanayake</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Service-oriented Software System Engineering Challenges And Practices</article-title>
          . IGI Publishing, Hershey, PA, USA (
          <year>2005</year>
          )
          <article-title>isbn 1591404274</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. OASIS:
          <article-title>Reference architecture for service oriented architecture 1.0</article-title>
          . (April
          <year>2008</year>
          ) http://docs.oasis
          <article-title>-open.org/soa-rm/soa-ra/v1.0/soa-ra-pr-01</article-title>
          .pdf.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Medvidovic</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taylor</surname>
          </string-name>
          , R.N.:
          <article-title>A classi cation and comparison framework for software architecture description languages</article-title>
          .
          <source>IEEE Trans. Software Eng</source>
          .
          <volume>26</volume>
          (
          <issue>1</issue>
          ) (
          <year>2000</year>
          )
          <volume>70</volume>
          {
          <fpage>93</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Masek</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hnetynka</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bures</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Bridging the component-based and serviceoriented worlds</article-title>
          .
          <source>In: Euromicro Conference on Software Engineering and Advanced Applications</source>
          , SEAA. (
          <year>2009</year>
          )
          <volume>47</volume>
          {
          <fpage>54</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Stojanovic</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          :
          <article-title>A Method for Component-based and Service-Oriented Software Systems Engineering</article-title>
          .
          <source>PhD thesis</source>
          (
          <year>2005</year>
          ) Delft University of Technology, isbn
          <volume>90</volume>
          - 9019100-3.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Vassilopoulos</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pilioura</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tsalgatidou</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Distributed technologies corba, enterprise javabeans, web services &amp;#8212; a comparative presentation</article-title>
          .
          <source>In: Proceedings of the 14th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.</source>
          (
          <year>2006</year>
          )
          <volume>280</volume>
          {
          <fpage>284</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Kim</surname>
          </string-name>
          , S., Han, S.Y.:
          <article-title>Performance comparison of dcom, corba and web service</article-title>
          .
          <source>In: PDPTA</source>
          . (
          <year>2006</year>
          )
          <volume>106</volume>
          {
          <fpage>112</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Breivold</surname>
            ,
            <given-names>H.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Larsson</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Component-based and service-oriented software engineering: Key concepts and principles</article-title>
          .
          <source>In: Euromicro Conference on Software Engineering and Advanced Applications</source>
          , SEAA. (
          <year>2007</year>
          )
          <volume>13</volume>
          {
          <fpage>20</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Kithchenham</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lawrence</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Software quality: The elusive target</article-title>
          .
          <source>IEEE Software</source>
          <volume>13</volume>
          (
          <year>1996</year>
          )
          <volume>12</volume>
          {
          <fpage>21</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Bianco</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kotermanski</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merson</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Evaluating a service-oriented architecture</article-title>
          .
          <source>Technical Report Software Engineering</source>
          Institute Carnegie Mellon (
          <year>2007</year>
          ) http://www.sei.cmu.edu/reports/07tr015.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <article-title>Hock-koon,</article-title>
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Oussalah</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.</surname>
          </string-name>
          :
          <article-title>De ning metrics for loose coupling evaluation in service composition</article-title>
          .
          <source>In: International Conference on Services Computing</source>
          , IEEE SCC. (
          <year>2010</year>
          )
          <volume>362</volume>
          {
          <fpage>369</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Goaer</surname>
            ,
            <given-names>O.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tamzalit</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oussalah</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seriai</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Evolution shelf: Reusing evolution expertise within component-based software architectures</article-title>
          .
          <source>In: International Computer Software and Applications Conference</source>
          , COMPSAC. (
          <year>2008</year>
          )
          <volume>311</volume>
          {
          <fpage>318</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Garlan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barnes</surname>
            ,
            <given-names>J.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schmerl</surname>
            ,
            <given-names>B.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Celiku</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>Evolution styles: Foundations and tool support for software architecture evolution</article-title>
          .
          <source>In: Working IEEE/IFIP Conference on Software Architecture</source>
          , WICSA/ECSA. (
          <year>2009</year>
          )
          <volume>131</volume>
          {
          <fpage>140</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>