60 likes | 174 Views
This document explores the fundamental principles of software components in system and software engineering, emphasizing definitions, interfaces, validation, and interaction within component systems. It outlines how a component serves as an independent unit of composition with specified interfaces, capable of integration within defined architectures. The content also addresses the nuances of packaging, API behavior, and quality of service, essential for seamless deployment and composition by third parties. Insight is drawn from notable industry examples and academic contributions, providing a comprehensive view.
E N D
Components Programming Technology Lab (PROG) System & Software Engineering Lab (SSEL) Dept. of Computer Sciences (DINF) Vrije Universiteit Brussel (VUB) Werner Van Belle (WVB) Tom Toutenel (TT) SEESCOA
Components & Industrial Partners • “A nontrivial piece of software, that fulfills a clear function, has a clear boundary and can be integrated in a well-defined architecture. The component can, but need not be reusable.” Alcatel CDD • “A unit of packaging that includes an implementation, a specification of interfaces provided and required, validation code, and the design (incl. documents and source).” Alcatel RCD SEESCOA
Components & Industrial Partners (ctd) • “Has an API that describes behaviour, not implementation.” Agfa (Portex presentation) . • “Clear interface. Self supporting, independent from other components.Component is a collection of routines, classes.” Barco Graphics . • “Obeys to the rules of its Component System.” Laszlo Huray . SEESCOA
A Software Component Definition “A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties” Szyperski & Pfister, ECOOP 1996 SEESCOA
A Component • Independent entity own code/data space own control flow • Has an interface (API) provided/required interface describes expected interaction • Documented semantics • Quality of Service Memory, Resources • Needs a component system • Validation code • Documented design & source SEESCOA
A Component System • Handles the interaction between components allows specification of real-time behaviour • Support for asynchronous/synchronous events • Ensures interfaces are used correctly(as specified by the interacting components) • Provides glue components to connect ‘different’ components allows for example grouping of components • Platform transparency (seen from the components) SEESCOA