The SEI helps advance software engineering principles and practices and serves as a national resource in software engineering, computer security, and process improvement. The SEI works closely with defense and government organizations, industry, and academia to continually improve software-intensive systems. Its core purpose is to help organizations improve their software engineering capabilities and develop or acquire the right software, defect free, within budget and on time, every time.

Pin Component Technology

Pin is a basic, simple component technology for building embedded,
safety- and time-critical software and for demonstrating the
feasibility of prediction-enabled component technology.

Pin implements the container idiom for software components.
Containers provide a prefabricated “shell” in which custom code
executes and through which all interactions between custom code and its
external environment are mediated.

The interface of a Pin component comprises a set of communication
channels called pins. Pins support either a synchronous or asynchronous
style of communication.

Components are strictly reactive—behavior is triggered by the
arrival of stimulus on sink pins; response to stimulus is emitted
through source pins.

Components are fully encapsulated—the only communication paths from a component to its environment are through its pins.

Pin supports pure assembly—interaction among two components is
enabled by connecting the source pins of one component to the sink pins
of another.

A fixed repertoire of connectors is provided to support synchronous and asynchronous interaction among components.

An assembly is a set of connected components—assemblies are finite and have fixed connection topology.

Assemblies are deployed to a runtime environment that manages the
life cycle of components and provides services for managing shared
resources.