<!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>The Forgotten Interfaces: A Critique of Component-based Models of Computing</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Bran Seli´c</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Malina Software and Monash University</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Although the notions of software components and component-based systems has been discussed since the earliest days of software engineering, it was the broader adoption of the object paradigm in the late 80's and early 90's that provided the critical impetus for research into this domain. Specifically, objectoriented programming provided an alternative to the traditional algorithm-driven model of software by representing a software program primarily as a network of collaborating specialized modules (i.e., objects). In this paradigm, it was natural to characterize components as ”black boxes” characterized by their inputoutput behaviours - a model that is strongly reminiscent of similar models in other forms of engineering (e.g., control, electrical, mechanical). This in turn has led to a number of new theoretical models of computing that exploit the relative simplicity of this representation. However, most of component-based theories overlook one fundamental difference between software and traditional engineering media: that all software requires an ”engine” for it to work. This engine is ultimately rooted in hardware, but, there can be numerous layers between the hardware and the components, each one presenting a realizing its own engine to the software it supports. As explained in this talk, the influence of these oft-neglected platform layers can have a fundamental impact on the design and operation of a component-based software system. A closer examination of the interrelationship between a component and its underlying platforms (NB: in practice there is never just one platform!) reveals what may be a surprising level of complexity. In this talk, we outline how component-based models of computing must be refined to account for these effects to ensure that software component systems fulfill their functional and engineering requirements. This, in turn, leads to further refinements including, notably, the crucial notions of software layering and platform independence.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>systems, Bran has pioneered the application of model-based engineering methods and
has led the definition of several international standards in that domain, including the
widely used Unified Modeling Language (UML). In 2016, he was presented with a
lifetime Career Award by the steering committee of the IEEE/ACM MoDELS conference
in recognition of his contributions to model-driven technologies and practice.</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>