admin on June 16th, 2009

Whenever components are assembled to perform a common task, there is always an implicit contract between them about the terms of the collaboration. In order to be able to verify the correctness of a configuration, the contracts need to be made explicit and to be compared for eventual discrepancies. This issue can be addressed by [...]

Continue reading about Verification of Composition

admin on June 7th, 2009

If we accept that open systems must be built in a component-oriented fashion, we must still answer the following questions: What exactly are components, and how do they differ from objects? What mechanisms must programming languages and environments provide to support component-oriented development? Where do components come from in the software development lifecycle, and how [...]

Continue reading about What Are Components? (OOS)

admin on March 24th, 2009

There are different ways one can structure a concurrent object-based system in order to protect objects from concurrency. A language may support constructs that favour or even enforce one particular way, or may leave it entirely to the programmer to adopt a particular model. There are three main approaches:
• The orthogonal approach: Concurrent execution is [...]

Continue reading about Concurrent Object Models

We seek to evaluate language design choices with respect to the integration of their concurrency and object-oriented features and the degree to which software reuse is supported. In particular, we wish to understand how choices of concurrency constructs interact with object-oriented techniques and affect the reusability of objects. As such, our classification scheme concentrates on [...]

Continue reading about A Design Space for Concurrent Object-Oriented Languages

admin on March 24th, 2009

In traditional environments for software development the various phases for building an application are well-defined and distinct: first one has to write a collection of modules, possibly with some inter dependencies, and with some dependencies to predefined modules stored in libraries; then one has to compile the modules, in order to generate machine code and, [...]

Continue reading about The Composition Process

admin on March 24th, 2009

In the introduction, we described components in terms of their usage: a software fragment is a component if it is designed for reuse and is part of a framework. This does not tell much about the structural aspects of a component. Some global invariants seem to be valid within any composition paradigm: components typically are [...]

Continue reading about Components as Static Abstractions(OOS)

admin on March 24th, 2009

Probably the most fundamental composition mechanism to mention is functional composition. In this paradigm one entity is first encapsulated and parametrized as a functional abstraction, and is then “activated” (instantiated) by receiving arguments that are bound to its parameters. Obviously this compositional mechanism occurs in nearly every programming environment, and is by no means restricted [...]

Continue reading about Paradigms for Assembling Components(OOS)

admin on March 24th, 2009

Component-oriented software development not only requires a change of mind-set and methodology: it also requires new technological support. In this section, we will review some of the issues that arise:
• What are the paradigms and mechanisms for binding components together?  What is the structure of a software component?
10 Component-Oriented Software Technology
• At which stage do [...]

Continue reading about Technical Support for Components(OOS)

admin on March 24th, 2009

Object-oriented programming languages and tools constitute an emerging software technology that addresses the development of open systems in two important ways: 1. as an organizing principle;
2. as a paradigm for reuse. In the first case, one may view an object-oriented application as a collection of collaborating objects. The fact that each object properly encapsulates both [...]

Continue reading about Objects vs. Components(OOS)

admin on March 22nd, 2009

Once the programming language and associated tools support the development of components, we are still left with the question, “Where do the components come from?” Although we argue that a component-oriented approach is necessary to deal with evolving requirements, it turns out that components themselves only emerge through an iterative and evolutionary software lifecycle. This [...]

Continue reading about Where Do Components Come From?(OOS)