SPECIAL  ISSUE  ON 

NEW  SOFTWARE  COMPOSITION  CONCEPTS

Journal of Science of Computer Programming (Elsevier)

SCP Journal's Homepage
Call for Papers
Guest Editors
Reviewers
Dates
Authors' Instructions
Submission
Publication
Related Links
 



 
Publication

Publication Details:
Publisher: Elsevier
Journal Name: Science of Computer Programming (http://www.sciencedirect.com/science/journal/01676423)
Special Issue on New Software Composition Concepts
Volume 56, Issues 1-2 (The Special Issue is published as double issue.)
Pages 1-249 (April 2005)
Edited by E. Pulvermueller and G. Goos and U. Assmann

Available at ScienceDirect: http://www.sciencedirect.com/science/issue/5667-2005-999439998-578775
To access the full-text of the papers online, your institute will need to have a subscription to this journal on ScienceDirect. If your institute does not subscribe to this journal, you will only have access to the abstract.

Please refer to the Journal's homepage for ordering information:
http://www.elsevier.com/locate/issn/01676423

We thank all members of the scientific and publishing staff of this Journal for making this Special Issue possible and for their continuous support in the whole process!


Contents - Accepted Contributions

Component Development Process

Use-Case Components for Interactive Information Systems

Eliezer Kantorowitz Computer Science Dept., Technion, Israel
Alexander Lyakas (Computer Science Dept., Technion, Israel)


Abstract: Specification-oriented components (SOC) are designed to facilitate the implementation of a system directly from its specifications. An earlier study has shown cases, in which SOC's enabled information systems to be implemented with considerably less code, than when implemented with components designed by a typical object-oriented approach. This study goes a further step by considering the essence of an information system to be the flow and processing of data. The components based on this abstraction attempt to hide code that is not implementing data flow or data processing. Based on this approach, an experimental framework called WebSI has been developed. WebSI components hide the code for the construction of the user interface (UI), the database access code and the Web-related code. WebSI was designed to facilitate the manual translation of English language use-case specifications into Java code. WebSI enabled the construction of information systems with a modest amount of code. The similarity between the WebSI-based Java code and the English language use-case specifications facilitated verifying that the code implements the specifications correctly. The automatically produced UI's were relatively easy to learn and to use. The modification of WebSI-based legacy code was facilitated by the high level of the code and its use-case structure, but remained a labor-intensive task.

Date of Submission: 28 November 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 30 April 2004
Date of 2nd Revision: 31 August 2004
Date of Final Paper Submission: 13 September 2004
Date of Acceptance: 06 September 2004
Date of Publication: April 2005


Extending component-based design with hardware components

Péter Arató (Budapest University of Technology and Economics, Hungary)
Zoltán Ádám Mann (Budapest University of Technology and Economics, Hungary)
András Orbán (Budapest University of Technology and Economics, Hungary)


Abstract: In order to cope with the increasing complexity of system design, component-based software engineering advocates the reuse and adaptation of existing software components. However, many applications -- particularly embedded systems -- consist of not only software, but also hardware components. Thus, component-based design should be extended to systems with both hardware and software components.
Such an extension is not without challenges though. The extended methodology has to consider hard constraints on performance as well as different cost factors. Also, the dissimilarities between hardware and software (such as level of abstraction, communication primitives etc.) have to be resolved.
In this paper, the authors propose such an extended component-based design methodology to include hardware components as well. This methodology allows the designer to work at a very high level of abstraction, where the focus is on functionality only. Non-functional constraints are specified in a declarative manner, and the mapping of components to hardware or software is determined automatically based on those constraints in the so-called hardware/software partitioning step.
Moreover, a tool is presented supporting the new design methodology. Beside automating the partitioning process, this tool also checks the consistency between hardware and software implementations of a component.
The authors also present a case study to demonstrate the applicability of the outlined concepts.

Date of Submission: 28 November 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 30 April 2004
Date of 2nd Revision: 23 August 2004
Date of Final Paper Submission: 31 August 2004
Date of Acceptance: 06 September 2004
Date of Publication: April 2005


Component Development Techniques, Component-specific Languages

Supporting Software Composition at the Programming-Language Level

Peter H. Froehlich (Department of Computer Science and Engineering University of California, Riverside, USA)
Andreas Gal (School of Information and Computer Science University of California, Irvine, USA)
Michael Franz (School of Information and Computer Science University of California, Irvine, USA)


Abstract: We are in the midst of a paradigm shift toward component-oriented software development, and significant progress has been made in understanding and harnessing this new paradigm. Oddly enough, however, the new paradigm does not currently extend to the level at which components themselves are constructed. While we have composition architectures and languages that describe how systems are put together out of atomic program parts, the parts themselves are still constructed based on a previous paradigm: object-oriented programming. We argue that this mismatch impedes the progress of compositional software design: many of the assumptions that underly object-oriented languages simply do not apply in the open and dynamic contexts of component software environments. What, then, would a programming language that supported component-oriented programming at the smallest granularity look like? Lagoona, our project to develop such a language, tries to answer this question. This paper motivates the key concepts behind Lagoona and briefly describes their realization (using Lagoona itself as the implementation language) in the context of Microsoft's .NET environment.

Date of Submission: 31 October 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 04 May 2004
Date of 2nd Revision: 22 Aug 2004
Date of Final Paper Submission: 19 October 2004
Date of Acceptance: 06 September 2004
Date of Publication: April 2005


A Form-based Metamodel for Software Composition

Markus Lumpe (Dept. of Computer Science, Iowa State University, USA)
Jean-Guy Schneider (School of Information Technology Swinburne University of Technology, Australia)


Abstract: In recent years considerable progress has been made to facilitate the specification and implementation of software components. However, it is far less clear what kind of language support is needed to enable a flexible and reliable software composition approach. Object-oriented programming languages seem to already offer some reasonable support for component-based programming (e.g., encapsulation of state and behavior, inheritance, late binding). Unfortunately, these languages typically provide only a fixed and restricted set of mechanisms for constructing and composing compositional abstractions. In this article, we will present a generic meta-level framework for modeling both object- and component-oriented programming abstractions. In this framework, various features, which are typically merged in traditional object-oriented programming languages, are all replaced by a single concept: the composition of forms. Forms are first-class, immutable, extensible records that allow for the specification of compositional abstractions in a language-neutral and robust way. Thus, using the meta-level framework, we can define a compositional model that provides the means both to bridge between different object models and to incorporate existing software artifacts into a unified composition system.

Date of Submission: 09 November 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 30 April 2004
Date of 2nd Revision: 07 August 2004
Date of Final Paper Submission: 16 August 2004
Date of Acceptance: 06 September 2004
Date of Publication: April 2005


Architectural Styles for Active Documents

Uwe Assmann (RISE, PELAB, Linköpings Universitet, Sweden and Fakultät für Informatik, TU Dresden, Germany)


Abstract: This paper proposes several novel architectural styles for active documents. Active documents are documents that do not only contain data, but also servlets, applets, expressions in spreadsheet languages, and other forms of software. To grasp the different forms of architectures, several novel concepts are defined. Invasive document composition is a type-safe form of template expansion and extension; transconsistency is a form of transclusion for architectures; and staged architectures provide a form of staged programming on the architectural level. With these concepts, it is possible to explain the architectures of many document processing applications for web and office, and we define the architectural styles of wizard-parameterized, script-parameterized, transconsistent, stream-based, and staged active documents. Finally, we give a hypothesis of active document composition: it consists of four elements viz., explicit architecture, invasiveness, transconsistency, and staging. Based on this hypothesis, many applications in web engineering and document processing get a common background, can be compared and simplified.

Date of Submission: 24 November 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 22 June 2004
Date of 2nd Revision: 18 October 2004
Date of Final Paper Submission: 19 October 2004
Date of Acceptance: 18 October 2004
Date of Publication: April 2005


"Componentization" and Component Modeling / Specification

A Technique for Automatic Component Extraction from Object-Oriented Programs by Refactoring

Hironori Washizaki (National Institute of Informatics, Japan)
Yoshiaki Fukazawa (Waseda University, Japan)


Abstract: Component-based software development (CBD) is based on building software systems from previously-existing software components. In CBD, reuse of common parts in component form can reduce the development cost of new systems, and reduce the maintenance cost associate with the support of these systems. However, existing programs have usually been built using another paradigm, such as the Object-Oriented (OO) paradigm. OO programs cannot be reused rapidly or effectively in the CBD paradigm even if they contain reusable functions. In this paper, we propose a technique for extracting components from existing OO programs by our new refactoring "Extract Component". Our technique of refactoring can identify and extract reusable components composed of classes from OO programs, and modify the surrounding parts of extracted components in original programs. We have developed a system that performs our refactoring automatically and extracts JavaBeans components from Java programs. As a result of evaluation experiments, it is found that our system is useful for extracting reusable components along with usage examples from Java programs.

Date of Submission: 29 October 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 04 May 2004
Date of 2nd Revision: 22 September 2004
Date of Final Paper Submission: 20 September 2004
Date of Acceptance: 22 September 2004
Date of Publication: April 2005


Hierarchical Composition of Industrial Components

Ursula Scheben (FernUniversitaet Hagen, Germany)


Abstract: In this paper we focus on hierarchical composition of instances of arbitrary industrial component models yielding new (compound) components with specified capabilities and requirements which can themselves be composed to yield higher level components. For this purpose special component interfaces and component implementations are defined which ensure a smooth integration of industrial components. The component implementations of compound components enable a late binding by referring to enclosed component instances only by their component interfaces. But also explicit bindings between component interfaces and component implementations can be defined. A type system for components is introduced enabling a formal definition of exchangeability and interoperability of components. Using this type system, tools are able to decide, which components may be exchanged by others and which components fit together. They can also support the creation of new components from existing ones by checking a new assembly for consistency.

Date of Submission: 20 November 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 01 May 2004
Date of 2nd Revision: 12 August 2004
Date of Final Paper Submission: 16 August 2004
Date of Acceptance: 06 September 2004
Date of Publication: April 2005


Component Mining

Self Cerfication and Trust in Component Procurement

Hans-Gerhard Gross (Fraunhofer Institute for Experimental Software Engineering, Germany
Matteo Melideo (Engineering Ingegneria Informatica S.p.A, Italy)
Alberto Sillitti (Free University of Bolzano, Bolzano, Italy)


Abstract: Component-based software engineering is typically perceived as application development in which existing individual software components are assembled and integrated in order to make up the final product. The main recent technological advances in this field are therefore mainly focusing on the integration step. This encompasses the syntactic and semantic mapping between components, the development of component wrappers and adapters, and the validation of all pair-wise component interactions. Additionally, prior to integration, components have to be located on a component market place, evaluated for their fitness for the purpose, and selected according to non-functional requirements. These activities are typically referred to as component procurement. Component brokerage platforms provide the support for these early phases of component assembly, and they are indispensable for strengthening the software component market. Although such platforms are good at the provision of components, they are not so good at their certification.
This article proposes the combination of two contrasting technologies, component-brokerage at one end of the component technology spectrum, and built-in contract testing at its other end, that combined, may alleviate the efforts involved in component certification. This is achieved through the access mechanisms that built-in contract testing provides for components, and additional tester components through which customers can themselves assess the quality of a candidate component that is coming from a broker. Every such an extended component is added to the certification according to well-defined standards, that are provided by a third party on behalf of the supplier.

Date of Submission: 23 October 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 28 April 2004
Date of 2nd Revision: 14 September 2004
Date of Final Paper Submission: 16 September 2004
Date of Acceptance: 14 September 2004
Date of Publication: April 2005


Component Adaptation

Achieving Seamless Component Composition Through Scenario-Based Deep Adaptation And Generation

Xiaodong Liu (School of Computing, Napier University, Edinburgh, UK)
Beihu Wang (School of Computing, Napier University, Edinburgh, UK)
Jon Kerridge (School of Computing, Napier University, Edinburgh, UK)


Abstract: Mismatches between pre-qualified existing components and the particular reuse context in applications have been a major factor hindering component reusability and successful composition. Although component adaptation has acted as a key solution of eliminating these mismatches, deep adaptation is often either impossible or incurring heavy overheads in the components. This paper proposes an approach, namely Scenario-based dynamic component Adaptation and GenerAtion (SAGA), to achieve deep adaptation with little code overhead through XML-based component specification, interrelated adaptation scenarios and corresponding component adaptation and generation.

Date of Submission: 29 October 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 30 April 2004
Date of 2nd Revision: 17 August 2004
Date of Final Paper Submission: 23 August 2004
Date of Acceptance: 06 September 2004
Date of Publication: April 2005


Component Verification, Interference Detection and Testing

Composition of Software Artifacts Modelled Using Coloured Petri Nets

Leandro Dias da Silva (Department of Electrical Engineering, Federal University of Campina Grande, Brasil)
Angelo Perkusich (Department of Electrical Engineering, Federal University of Campina Grande, Brasil)


Abstract: In this work it is introduced a new formal model for software components supporting behavioral interpretability based on temporal logic, Petri nets, model checking, and an assume-guarantee strategy to specify and reason about the composition of concurrent component systems. The formal specification and verification strategies, methods and techniques presented in this work contribute to the development of more dependable component-based software systems in a modular way. An approach based on two complementary formalisms, Hierachical Coloured Petri Nets (HCPN) and temporal logic is introduced. HCPNs are used to visualize the structure and model the behavior of software architectures and components and temporal logic is used to specify the required properties of software architectures and component interfaces.

Date of Submission: 30 October 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 18 May 2004
Date of 2nd Revision: 01 September 2004
Date of Final Paper Submission: 08 September 2004
Date of Acceptance: 06 September 2004
Date of Publication: April 2005


Software Composition and Verification for Sensor Networks

Peter Völgyesi (Hungarian Academy of Sciences, Budapest University of Technology and Economics, Hungary)
Miklos Maróti (Vanderbilt University, Nashville, USA)
Sebestyen Dóra (Vanderbilt University, Nashville, USA)
Esteban Osses (Vanderbilt University, Nashville, USA)
Akos Lédeczi (Vanderbilt University, Nashville, USA)


Abstract: Component-based design has become a necessity for networked embedded systems where hardware platforms come in a great variety and evolve extremely rapidly. Operating system components and higher level middleware services call for modular software construction along clear interfaces. The way we describe these interfaces and process the captured information is of crucial importance to exploit the benefits of component-based design. In this paper we present a model based approach to the development of embedded applications with a special emphasis on interfacespecification. The proposed formalism captures the temporal and type aspects of interfaces and supports composition and verification of components. Along with the formal definition of the proposed interface language and component compatibilityrules, we present a modeling environment targeting TinyOS, a representative embedded operating system. Two prototype tools are also described that check the composability of components based on their interface models and verify that the implementation of a component matches its formal model, respectively.

Date of Submission: 06 November 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 30 April 2004
Date of 2nd Revision: 31 August 2004
Date of Final Paper Submission: 02 September 2004
Date of Acceptance: 06 September 2004
Date of Publication: April 2005


Coverage Testing of Java Programs and Components

Auri Vincenzi (Centro Universitario Euripides de Marilia - UNIVEM, Brazil)
Jose Maldonado (Instituto de Ciencias Matematicas e de Computacao - ICMC/USP, Brazil)
Eric Wong (University of Texas at Dallas - UTD, USA)
Marcio Delamaro (Centro Universitario Euripides de Marilia - UNIVEM, Brazil)


Abstract: Although software testing is a crucial activity in the software development process, only recently have more sound and consistent testing tools become available for testing Java programs and their components. These tools support mostly functional and control-flow based structural criteria. In this paper we explore control-flow and data-flow based coverage criteria to support the testing of java programs and/or components. We also describe a testing tool, named JaBUTi, which can be used by both the component developer and the component user to test Java-based components and/or systems. To achieve this goal, the tool works at the bytecode level such that no source code is required during the testing activity. We illustrate these ideas and concepts with an example extracted from the literature.

Date of Submission: 8 November 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 30 April 2004
Date of 2nd Revision: 24 August 2004
Date of Final Paper Submission: 30 August 2004
Date of Acceptance: 06 September 2004
Date of Publication: April 2005


Sequences as a Basis for Pattern Language Composition

Ronald Porter (School of Informatics and Engineering Flinders University of South Australia, Australia)
James O. Coplien (Vrije Universiteit Brussel, Belgium and North Central College, Naperville, USA)
Tiffany Winn (School of Informatics and Engineering, Flinders University of South Australia, Australia)


Abstract: Pattern Languages have begun to appear and mature as a presentation of the structures and processes that support the building of complex software systems. A pattern language describes how to compose structures in a particular domain such as telecommunications, client-server architecture, or object-oriented programming, to achieve system-level architectures that are greater than the sum of their parts. A problem lurks on the horizon: How do you compose patterns from multiple domains---from multiple pattern languages---in a single system? For example, today there is nothing other than an ad-hoc approach to combining the pattern languages for telecommunications and for object-oriented design to build object-oriented telecommunications systems from the respective pattern languages. To understand the solution to this dilemma, it pays to examine sequences: an important aspect of pattern application that is often overlooked. Sequences are the loci of concern about interleaving patterns, whether from a single pattern language or multiple pattern languages. Sequences are critical because pattern languages represent long-term archives of the rhythms of critical, recurring sequences.

Date of Submission: 12 November 2003
Date of Notification: 05 April 2004 / 15 July 2004
Date of 1st Revision: 28 April 2004
Date of 2nd Revision: 04 August 2004
Date of Final Paper Submission: 10 August 2004
Date of Acceptance: 06 September 2004
Date of Publication: April 2005

 


This Special Issue is partially supported by the European Community under the IST programme - Future and Emerging Technologies, contract IST-1999-14191- EASYCOMP. The authors are solely responsible for the content of this communication. It does not represent the opinion of the European Community, and the European Community is not  responsible for any use that might be made of data appearing therein.