Composing Software Components


Book Description

Software components and component-based software development (CBSD) are acknowledged as the best approach for constructing quality software at reasonable cost. Composing Software Components: A Software-testing Perspective describes a 10-year investigation into the underlying principles of CBSD. By restricting attention to the simplest cases, startling results are obtained: • Components are tested using only executable code. Their behavior is recorded and presented graphically. • Functional and non-functional behavior of systems synthesized from components are calculated from component tests alone. No access to components themselves is required. • Fast, accurate tools support every aspect of CBSD from design through debugging. Case studies of CBSD also illuminate software testing in general, particularly an expanded role for unit testing and the treatment of non-functional software properties. This unique book: • Contains more than a dozen case studies of fully worked-out component synthesis, with revealing insights into fundamental testing issues. • Presents an original, fundamental theory of component composition that includes persistent state and concurrency, based on functional software testing rather than proof-of-programs. • Comes with free supporting software with tutorial examples and data for replication of examples. The Perl software has been tested on Linux, Macintosh, and Windows platforms. Full documentation is provided. • Includes anecdotes and insights from the author’s 50-year career in computing as systems programmer, manager, researcher, and teacher. Composing Software Components: A Software-testing Perspective will help software researchers and practitioners to understand the underlying principles of component testing. Advanced students in computer science, engineering, and mathematics can also benefit from the book as a supplemental text and reference.




Invasive Software Composition


Book Description

Invasive software composition as a new, component-based way to construct software systems is presented. To improve reuse, this method regards software components as greybox and integrates them during composition. Components are distinct in design, but are merged in implementations, leading to highly integrated and more efficient systems. Building on a minimal set of program transformations, composition operator libraries can be developed that parameterize, extend, connect, mediate, and aspect-weave components. Invasive software composition unifies several software engineering techniques such as generic programming, architecture systems, inheritance, and aspect-oriented programming. The book is centered around the JAVA language and a freely available demonstrator library called COMPOST. The book provides a wealth of material for researchers, students and professional software architects alike.




The Rubato Composer Music Software


Book Description

Both modern mathematical music theory and computer science are strongly influenced by the theory of categories and functors. One outcome of this research is the data format of denotators, which is based on set-valued presheaves over the category of modules and diaffine homomorphisms. The functorial approach of denotators deals with generalized points in the form of arrows and allows the construction of a universal concept architecture. This architecture is ideal for handling all aspects of music, especially for the analysis and composition of highly abstract musical works. This book presents an introduction to the theory of module categories and the theory of denotators, as well as the design of a software system, called Rubato Composer, which is an implementation of the category-theoretic concept framework. The application is written in portable Java and relies on plug-in components, so-called rubettes, which may be combined in data flow networks for the generation and manipulation of denotators. The Rubato Composer system is open to arbitrary extension and is freely available under the GPL license. It allows the developer to build specialized rubettes for tasks that are of interest to composers, who in turn combine them to create music. It equally serves music theorists, who use them to extract information from and manipulate musical structures. They may even develop new theories by experimenting with the many parameters that are at their disposal thanks to the increased flexibility of the functorial concept architecture. Two contributed chapters by Guerino Mazzola and Florian Thalmann illustrate the application of the theory as well as the software in the development of compositional tools and the creation of a musical work with the help of the Rubato framework.




An Introduction To Component-based Software Development


Book Description

The book provides a comprehensive coverage of the widely accepted desiderata of component-based software development, as well as the foundations that these desiderata necessitate. Its unique focus is on component models, the cornerstone of component-based software development. In addition, it presents and analyses existing approaches according to these desiderata.This compendium is an indispensable textbook for an advance undergraduate or postgraduate course unit. Researchers will also find this volume an essential reference material.




Software Composition


Book Description

Software composition is a complex and fast-moving field, and this excellent new Springer volume keeps professionals in the subject right up to date. It constitutes the thoroughly refereed post-proceedings of the 6th International Workshop on Software Composition, SC 2007. The 21 papers are organized in topical sections on composition contracts, composition design and analysis, dynamic composition, short papers, aspect-oriented programming, and structural composition.




Software Composition


Book Description

The goal of the International Symposia on Software Composition is to advance the state of the research in component-based software development. We focus on the challenges related to component development, reuse, veri?cation and, of course,composition.Softwarecompositionisbecomingmoreandmoreimportant as innovation in software engineering shifts from the development of individual components to their reuse and recombination in novel ways. To this end, for the 2008 edition, researchers were solicited to contribute on topics related to component adaptation techniques, composition languages, calculi and type systems, as well as emerging composition techniques such as aspect-oriented programming, service-oriented architectures, and mashups. In line with previous editions of SC, contributions were sought focusing on both theory and practice, with a particular interest in e?orts relating them. This LNCS volume contains the proceedings of the 7th International S- posium on Software Composition, which was held on March 29–30, 2008, as a satellite event of the European Joint Conferences on Theory and Practice of Software (ETAPS), in Budapest, Hungary. We received 90 initial submissions from all over the world, out of which 70 were considered for evaluation by a Program Committee consisting of 30 - ternational experts. Among these submissions, we selected 13 long papers and 6 short papers to be included in the proceedings and presented at the conf- ence. Each paper went through a thoroughrevisionprocess and was reviewedby three to ?ve reviewers. This ensured the necessary quality for publishing these proceedings in time for the event, a ?rst in the history of the symposium.




Hierarchy-Aware Software Metrics in Component Composition Hierarchies


Book Description

Software metrics like Lines of Code are commonly used in software engineering. Although software metrics are defined to give a concrete statement on a particular facet of a software entity, they are usually interpreted from the viewpoint of more abstract concepts like complexity. Software metrics were developed for a particular context (like an architectural model), but are often used in others than the one they were defined for. The usability of metrics in a particular context highly depends on whether they have properties like extensive structure. Extensive structure and more basic properties were originally introduced in the field of measurement theory that has been used as basis for software measurement in the past. In this thesis we address the software measurement related issues arising from considering software metrics in component based systems.




Component-Based Software Engineering


Book Description

The 2010 Symposium on Component-Based Software Engineering (CBSE 2010) was the 13th in a series of successful events that have grown into the main forum for industrial and academic experts to discuss component technology. CBSE is concerned with the development of software-intensive systems from - dependently developed software-building blocks (components), the development of components, and system maintenance and improvement by means of com- nent replacement and customization. The aim of the conference is to promote a science and technology foundation for achieving predictable quality in software systems through the use of software component technology and its associated software engineering practices. In line with a broad interest, CBSE 2010 received 48 submissions. From these submissions, 14 were accepted after a careful peer-review process followed by an online program committee discussion. This resulted in an acceptance rate of 29%. The selected technical papers are published in this volume. For the fourth time, CBSE 2010 was held as part of the conference series: Fed- ated Events on Component-Based Software Engineering and Software Archit- ture (COMPARCH). The federated events were: the 13th International S- posium on Component-Based Software Engineering (CBSE 2010), the 6th - ternational Conference on the Quality of Software Architectures (QoSA 2010), andthe1stInternationalSymposium onArchitecting CriticalSystems(ISARCS 2010). Together with COMPARCH’s Industrial Experience Report Track and the co-located Workshop on Component-Oriented Programming (WCOP 2010), COMPARCH provided a broad spectrum of events related to components and architectures.




Component-Based Software Engineering


Book Description

Providing all the latest on a topic of extreme commercial relevance, this book contains the refereed proceedings of the 10th International ACM SIGSOFT Symposium on Component-Based Software Engineering, held in Medford, MA, USA in July 2007. The 19 revised full papers presented were carefully reviewed and selected from 89 submissions. The papers feature new trends in global software services and distributed systems architectures to push the limits of established and tested component-based methods, tools and platforms.




Invasive Software Composition


Book Description

Invasive software composition as a new, component-based way to construct software systems is presented. To improve reuse, this method regards software components as greybox and integrates them during composition. Components are distinct in design, but are merged in implementations, leading to highly integrated and more efficient systems. Building on a minimal set of program transformations, composition operator libraries can be developed that parameterize, extend, connect, mediate, and aspect-weave components. Invasive software composition unifies several software engineering techniques such as generic programming, architecture systems, inheritance, and aspect-oriented programming. The book is centered around the JAVA language and a freely available demonstrator library called COMPOST. The book provides a wealth of material for researchers, students and professional software architects alike.