=Paper= {{Paper |id=Vol-2245/modcomp_keynote_1 |storemode=property |title=None |pdfUrl=https://ceur-ws.org/Vol-2245/modcomp_keynote_1.pdf |volume=Vol-2245 }} ==None== https://ceur-ws.org/Vol-2245/modcomp_keynote_1.pdf
                                 Invited talk 1
       The Forgotten Interfaces: A Critique of
       Component-based Models of Computing

                                      Bran Selić

                       Malina Software and Monash University

    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, object-
oriented 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 nat-
ural to characterize components as ”black boxes” characterized by their input-
output 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 be-
tween 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 surpris-
ing 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.


Bran Selić is President of Malina Software Corp., a Canadian company that provides
consulting services to corporate clients and government institutions worldwide. He is
also Director of Advanced Technology at Zeligsoft Limited in Canada, and a Visiting
Scientist at Simula Research Laboratories in Norway. In 2007, Bran retired from IBM
Canada, where he was an IBM Distinguished Engineer responsible for setting the strate-
gic direction for software development tools. Currently, he is also an adjunct professor
at Monash University and the University of Sydney in Australia. With over 40 years
of practical experience in designing and implementing large-scale industrial software
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 life-
time Career Award by the steering committee of the IEEE/ACM MoDELS conference
in recognition of his contributions to model-driven technologies and practice.