Schneider, Jean-Guy (1999). Components, Scripts, and Glue: A conceptual framework for software composition. (Dissertation, University of Bern, Institute of Computer Science and Applied Mathematics, Philosophisch-naturwissenschaftliche Fakultät)
Text
schneider-phd.pdf - Published Version Restricted to registered users only Available under License Publisher holds Copyright. Download (1MB) |
The last decade has shown that object-oriented technology alone is not enough to cope with the rapidly changing requirements of present-day applications. Typically, objectoriented methods do not lead to designs that make a clear separation between computational and compositional aspects. Component-based systems, on the other hand, achieve flexibility by clearly separating the stable parts of systems (i.e. the components) from the specification of their composition. Components are black-box entities that encapsulate services behind well-defined interfaces. The essential point is that components are not used in isolation, but according to a software architecture which determines the interfaces that components may have and the rules governing their composition. A component, therefore, cannot be separated from a component framework. Naturally, it is not enough to have components and frameworks, but one needs a way to plug components together. However, one of the main problems with existing languages and systems is that there is no generally accepted definition of how components can be composed. In this thesis, we argue that the flexibility and adaptability needed for component-based applications to cope with changing requirements can be substantially enhanced if we do not only think in terms of components, but also in terms of architectures, scripts, and glue. Therefore, we present a conceptual framework for componentbased software development incorporating the notions of components and frameworks, software architectures, glue, as well as scripting and coordination, which allows for an algebraic view of software composition. Furthermore, we define the FORM calculus, an offspring of the asynchronous Pi-calculus, as a formal foundation for a composition language that makes the ideas of the conceptual framework concrete. The FORM calculus replaces the tuple communication of the Pi-calculus by the communication of forms (or extensible records). This approach overcomes the problem of position-dependent arguments, since the contents of communications are now independent of positions and, therefore, makes it easier to define flexible and extensible abstractions. We use the FORM calculus to define a (meta-level) framework for concurrent, objectoriented programming and show that common object-oriented programming abstractions such as instance variables and methods, different method dispatch strategies as well as synchronization are most easily modelled when class metaobjects are explicitly reified as first-class entities and when a compositional view of object-oriented abstractions is adopted. Finally, we show that both, polymorphic form extension and restriction are the basic composition mechanisms for forms and illustrate that they are the key concepts for defining extensible and adaptable, hence reusable higher-level compositional abstractions.
Item Type: |
Thesis (Dissertation) |
---|---|
Division/Institute: |
08 Faculty of Science > Institute of Computer Science (INF) > Software Composition Group (SCG) [discontinued] |
Language: |
English |
Submitter: |
Anja Ebeling |
Date Deposited: |
29 Jan 2018 17:35 |
Last Modified: |
11 Apr 2024 16:12 |
BORIS DOI: |
10.7892/boris.104770 |
URI: |
https://boris.unibe.ch/id/eprint/104770 |