Whole-part relationships for software component combination (original) (raw)

Serious Specification for Composing Components

Component-Based Software Engineering, 2003

We discuss the use of an industrial-strength specification language to specify component-level contracts for a product group within Microsoft. We outline how the specification language evolved to meet the needs of the component-based ap- proach followed by that group. The specification language, AsmL, is executable which allows for testing to be done using runtime verification. Runtime verification dynamically monitors the

Flexible Component Composition through Communication Abstraction

Proceedings of the 4th International Conference on Model-Driven Engineering and Software Development, 2016

Software architectures are often abstracted as a combination of reusable components connected to each other by various means. Specifications of components' semantics have been widely studied and many modeling languages have been proposed from coarse-grained loosely-defined elements to operational objects with behavioral semantics that may be generated and executed in a dedicated framework. All these modeling facilities have proven their advantages in many domains through either case studies or real-world applications. However, most of those approaches either consider a subset of composition facilities, i.e. the available types of bindings between components, or do not even consider communication properties at all, staying at behavioral-related compatibility between components. Verifications of communication-related properties are then postponed to the hand of software developers and finally considered at deployment-time only. Part of a general architecture framework, we propose an abstraction formalism to specify communication paths between components. This modeling facility relies on a taxonomy of types of links and the specifications of communication protocols. This protocol serves as a reification element between abstract component compositions, architecture instances and deployment infrastructure, making explicit communication-related constraints and properties.

Towards Composing Software Components in Both Design and Deployment Phases

Lecture Notes in Computer Science

In component-based software development, the design of components should be carried out separately from the deployment of components, in order to enable composition by independent third-parties. However, current component models are biased towards either the design phase or the deployment phase. In this paper, we argue that ideally component models should include both design and deployment phases, and it should be possible to compose components in both phases. We also demonstrate a preliminary implementation of composition in both phases in a component model we have defined.

Report of the International Symposium on Component-Based Software Engineering

ACM SIGSOFT Software Engineering Notes, 2005

The International Symposium on was held at 28 th International Conference on Software Engineering in Edinburgh, Scotland, May 24-25, 2004. The Symposium brought together researchers and practitioners from several communities: component technology, composition languages, compositional analysis, software architecture, software certification and scientific computing. The primary goal of the symposium was to continue clarifying the concepts, identifying the main challenges and findings of predictable assembly of software components. This report gives a comprehensive summary of the position papers, of the symposium, its findings, and its results.

CASCON'98 Workshop Report: Component-Based Software Composition

Has component-based software composition reached a level of maturity where building software from components with minimal programming is feasible? Even if component-based software composition is feasible, is it practical? Building software with components is an approach to increasing productivity, whether these components are available commercially or within an organization. This workshop will focus on both research and current practice. 1. Background Component-based software composition has been discussed for about 30 years, but only recently has a level of maturity been reached where building software from components with minimal programming is feasible. There are now a number of competing and maturing visions of software composition [1,2,3,4]. For example, CORBA, the World Wide Web and ActiveX all offer views of how software components should be integrated and defined. The reasons behind component-based software composition include [5,6]: q The capability of (sutomated) assembly of software components, bringing greater quality and reliability, reduced time to develop and test new systems, and cost amortization from multiple use of software components, which could lead to increased productivity in software development q Increased productivity for software users through improvements in quality of components and dependability of systems q Development of appropriate technologies and processes to overcome barriers to widespread use and reuse of software components

CCDL: the composable components description language

International Journal on Software Tools for …, 2007

Tools that automate component composition decisions need as inputs formal descriptions of following categories: the functional and nonfunctional requirements desired for the target, the structural constraints for the target, and the contractual specifications of available individual components. In this article we present CCDL, a description language able to cover these three aforementioned categories.We define a composable component as an architectural entity described by an external contractual specification and a set of structural constraints for its variable internal configuration. The internal configuration of a composable component is not fixed, but is a target that must be composed from available components. This composition is driven by external requirements while complying with the fixed structural constraints. Such hierarchically composable components permit finetuned customization of component-based systems with a high degree of unanticipated variability. Our composition approach is architectural style specific and addresses multiflow architectures.The most important strength of CCDL is its ability to describe structural constraints of composable components (that represent composition targets), as flexible guidelines for their composition. The CCDL descriptions can be used by automatic composition tools that implement requirements driven compositions strategies.

An Approach for Component-Based Software Composition

2008 Electronics, Robotics and Automotive Mechanics Conference, 2008

Presently, not only a large amount of information resources are available on the Web, but also a complete lattice of dynamic applications, namely, software components and Web Services. Hence, an increasing demand of a proper model and architecture for composition of software components has triggered a huge amount of integration efforts. However, most of them are partially ignoring operational and knowledge-oriented aspects which can hinge on semantics. In this paper, we present a semantically enhanced framework for software composition focusing on component-based systems.

Rigorous development of component-based systems using component metadata and patterns

Formal Aspects of Computing, 2016

In previous work we presented a CSP-based systematic approach that fosters the rigorous design of component-based development. Our approach is strictly defined in terms of composition rules, which are the only permitted way to compose components. These rules guarantee the preservation of properties (particularly deadlock freedom) by construction in component composition. Nevertheless, their application is allowed only under certain conditions whose verification via model checking turned out impracticable even for some simple designs, and particularly those involving cyclic topologies. In this paper, we address the performance of the analysis and present a significantly more efficient alternative to the verification of the rule side conditions, which are improved by carrying out partial verification on component metadata throughout component compositions and by using behavioural patterns. The use of metadata, together with behavioural patterns, demands new composition rules, which al...