Loading...
Please wait, while we are loading the content...
Similar Documents
Programming Language Abstractions for Extensible Software Components
| Content Provider | Semantic Scholar |
|---|---|
| Author | Zenger, Matthias |
| Copyright Year | 2004 |
| Abstract | With the growing demand for software systems that can cope with an increasing range of information processing tasks, the reuse of code from existing systems is essential to reduce the production costs of systems as well as the time to manufacture new software applications. For this reason, component-based software development techniques gain increasing attention in industry and research. Component technology is driven by the promise of building software by composing off-the-shelf components provided by a software component industry. Therefore, component technology emphasizes the independent development and deployment of components. Even though components look like perfect reusable assets, they embody general software solutions that need to be adapted to deploymentspecific needs and therefore cannot be deployed “as is” in general. Furthermore, as architectural building blocks, components are subject to continuous change. For these reasons, it is essential that components can easily be extended by both the component manufacturer to create new versions of components and by thirdparties that have to adapt components for use in specific software systems. Since in both cases concrete changes cannot be foreseen in general, mechanisms to integrate unanticipated extensions into components and component systems are required. While today many modern programming techniques, methodologies, and languages provide means that are well suited for creating static black-box components, the design and implementation of extensible components and extensible software systems often remains a challenge. In practice, extensibility is mostly achieved through ad-hoc techniques, like the disciplined use of design patterns and component frameworks, often in conjunction with meta-programming. The use of design patterns and component frameworks requires a rigorous coding discipline and often forces programmers to write tedious “boilerplate” code by hand, which makes this approach fragile and error-prone. Meta-programming techniques on the other hand are rather code-centric and mostly source codebased. Therefore, they are often not very suitable for today’s component technology practice that stresses the binary reuse of black-box components. In this thesis I argue that technical difficulties in the development of extensible software components are due to the lack of appropriate programming language abstractions. To overcome the problems, concrete programming language mechanisms are proposed to facilitate the creation of extensible software. The proposed language features are strongly typed to help the programmer extend systems safely and consistently. |
| File Format | PDF HTM / HTML |
| Alternate Webpage(s) | https://infoscience.epfl.ch/record/33405/files/EPFL_TH2930.pdf |
| Alternate Webpage(s) | http://lampwww.epfl.ch/~zenger/docs/thesis2.pdf |
| Alternate Webpage(s) | http://lamp.epfl.ch/~zenger/papers/thesis.pdf |
| Alternate Webpage(s) | http://infoscience.epfl.ch/record/33405/files/EPFL_TH2930.pdf |
| Alternate Webpage(s) | http://zenger.org/papers/thesis.pdf |
| Alternate Webpage(s) | https://infoscience.epfl.ch/record/33405/files/EPFL_TH2930.pdf?version=1 |
| Language | English |
| Access Restriction | Open |
| Subject Keyword | Black box Boilerplate code Cognitive dimensions of notations Component-based software engineering Deploy Design pattern Extensibility Financial cost Hoc (programming language) Information processing Metaprogramming Programmer Device Component Programming language Reuse (action) Software development process Software system Version |
| Content Type | Text |
| Resource Type | Article |