Informative
(1) Definitions of terms used from other standards, such as the IEEE Standard Glossary of Software Engineering Terminology [IEEE Std. 610.12-1990], ISO/IEC 9945-1:1996 [IEEE/ANSI Std 1003.1, 1996 Edition], Information Technology – Portable Operating System Interface (POSIX), Unified Modeling Language Specification [UML 2004, version 1.4.2], or the IFIP WG10.4 Dependability: Basic Concepts and Terminology [IFIP WG10.4-1992] are so marked. Terms not defined in this standard are to be interpreted according to the Webster's Third New International Dictionary of the English Language.
· Actual System: [UML] 1) Subject of a model; 2) A collection of connected physical units, which can include software, hardware, and people, that are organized to accomplish a specific purpose. [AADL] The system being modeled by an AADL specification. This includes software components, execution platform components, including interfaces to the external environment, and system components.
· Aggregate Data Port: [AADL] An aggregate data port makes a collection of data from multiple thread out data available in a time-consistent manner.
· Ancestor: [AADL] An ancestor in the component extension hierarchy is a component type or component implementation that (directly or indirectly) has been extended to the given component type or implementation.
· Annex Document: [AADL] An approved addition to the core AADL standard in the form of additional standardized properties and/or a sublanguage notation to be used in annex subclauses and libraries.
· Annex Subclause: [AADL] An annex-specific subclause expressed in a sublanguage notation. Annex subclauses can be declared in component types and component implementations.
· Annex Library: [AADL] A library of reusable declaration expressed in a sublanguage notation. Annex libraries can be declared in packages.
· Anomaly: [IFIP, AADL] An anomaly occurs when a component is in an erroneous or failed state that does not result in a standard exception.
· Application: [IEEE] Software designed to fulfill specific needs of a user.
· Architecture: [IEEE] An architecture represents the organizational structure of a system or component.
· Binding-dependent Implementation: [AADL] A binding-dependent implementation of a subcomponent is determined after the binding to an execution platform component is fixed.
· Behavior: [AADL] A behavior is a description of sequencing of various kinds that may occur in a component. Examples are execution sequences of subprograms, end-to-end sequencing of data and event flow, the interaction between components, or a specification of mode transitions. Behaviors describe how various fault events cause a component to transition between various error states. Behaviors are nameable objects in specifications and have properties.
· Binding: [AADL] A binding establishes a many-to-one hosted/allocated relationship between components using resources and those representing resources. In particular, it maps application components to execution platform components.
· Bus: [AADL] A bus is a category of component used to model a communication channel, typically hardware together with communication protocols that can exchange control and data between memories, processors, and devices. Depending on the properties of the bus, a bus may be used to access a memory or device. A bus may be used to send data messages between processors. Connections may be bound to buses.
· Component: [AADL] A component is a hardware, software, or system unit used as a part of some system. A component belongs to a component category. Each component has a name (also called its defining identifier) and has category–specific properties that can be assigned values. A fully defined component is an instance of a component type and has an implementation.
· Component Category: [AADL] A component category is either the name of a kind of execution platform component (e.g., processor), a software component (e.g., process), or a composite component (e.g., system). The AADL defines several categories for software components: process, thread group, thread, subprogram, data. Several categories are also defined for execution platform components: processor, memory, bus, and device. The composite category only defines the system component category.
· Component Classifier: [AADL] A component classifier is a language element that defines one or more components regarded as forming a group by reason of the same structure and behavior. The classifier is a reusable description of the structure and behavior used to define one or more components. There are two kinds of classifiers: component type and component implementation. A component classifier belongs to a particular component category.
· Component Classifier Reference: [AADL] A component classifier reference is a uniquely named reference to a component type or to a component type and implementation pair.
· Component Extension: [AADL] A component extension allows a component classifier to be defined in terms of an existing component classifier through addition of features, subcomponents, property associations, connections, and behaviors, while inheriting the elements of the component being extended.
· Component Implementation: [AADL] A component implementation is a component classifier that describes an internal structure (subcomponents, features, connections), properties, and behaviors of a component. A component type can have several implementations.
· Component Instance: [AADL] Another name for component.
· Component Type: [AADL] A component type is a kind of component classifier that describes a component’s visible functional and behavioral interface. The component type describes the provided features and accessible components of an instance of the type that other components may use. The component type also specifies the features and components required to create each instance of itself.
· Configuration: [AADL] The set of components and connections that are active in the current mode.
· Connection: [AADL] A connection is a link between the features of two components over which data, events, or subprogram calls can be exchanged. Connections are directional.
· Data: [IEEE] A representation of facts, concepts, or instructions in a manner suitable for communication, interpretation, or processing by humans or automatic means.
· Data Component: [AADL] A data component represents static data in the source text. This data may have shared access by multiple threads.
· Data Port: [AADL] A data port is a port through which data is transferred in unqueued form. It represents a variable declared in source text.
· Data Subprogram: [AADL] A subprogram that provides an interface to a data component.
· Data Type: [IEEE] A class of data, characterized by the members of the class and the operations that can be applied to them.
· Declaration: [AADL] A language statement that introduces a component classifier, component instance, feature, connection, or property.
· Delayed Connection: [AADL] A connection between two data ports, where the data is transferred at the deadline of the originating thread. This results in deterministic communication of state data and receipt of data in a phase-delayed manner.
· Descendent: [AADL] A descendent in the component extension hierarchy is a component type or component implementation that (directly or indirectly) extends the given component type or implementation.
· Deterministic: [IEEE] Pertaining to a process, model, or variable whose outcome, result, or value does not depend on chance.
· Deterministic Communication: [AADL] Communication of state data between periodic threads in predictable order.
· Device: [AADL] A device models components that interface with an external environment, i.e., exhibit complex behaviors that require a nontrivial interface to application software systems. A device cannot directly store and execute binary images associated with software process specifications. Software components can communicate with devices via ports. Examples of devices are sensors and actuators that interface with the external physical world, or standalone systems such as a GPS. Devices interact with the embedded application system through port connections and with the computing hardware through bus access.
· Dispatch Time: [AADL] For periodic threads: any non-negative integral multiple of the period following the transition out of the loaded process state. For sporadic and aperiodic threads: the arrival of an event or event data at an event or event data port of the thread, or the arrival of a remote subprogram call at a subprogram (access) feature of the thread following the transition out of the loaded process state.
· Error: [AADL] An error in a component occurs when an existing fault causes the internal state of the component to deviate from its nominal or desired operation. For example, a component error may occur when an add instruction produces an incorrect result because a transistor in the adding circuitry is faulty.
· : Event: [Webster] An outcome or occurrence.
· Event Port: [AADL] Port through which events are passed between components. Events may be queued at the receiving end.
· Event Data Port: [AADL] Port through which data is passed between components, whose transfer implies the passing of an event. Event data may be queued at the receiving end.
· Exception: [IFIP] An exception represents an error condition that changes the behavior of a component. An exception may occur for an erroneous or failed component when that error or failure is detected, either by the component itself or by another component with which it interfaces.
· Execution Platform: [AADL] A combination of hardware and software that supports the execution of application software through its ability to schedule threads, store source text code and data, and perform communication modeled by connections. This combination would typically include runtime support (O/S or language runtime environment) and the specific hardware.
· Execution Platform Component: [AADL] A component of the execution platform.
· Failure: [IFIP] A failure in a physical component occurs when an error manifests itself at the component interface. A component fails when it does not perform its nominal function for the other parts of the system that depend on that component for their nominal operation.
· Fault: [IFIP] A fault is defined to be an anomalous undesired change in thread execution behavior, possibly resulting from an anomalous undesired change in data being accessed by that thread or from violation of a compute time or deadline constraint. A fault in a physical component is a root cause that may eventually lead to a component error or failure. A fault is often a specific event such as a transistor burning out or a programmer making a coding mistake.
· Feature: [AADL] A feature models a characteristic or a component that is externally visible as part of the component type. A feature is used to establish interaction with other components. Features include: ports and feature groups to support flow of data and control, access to data components to support coordination of access to shared data components, subprogram access to bind subprogram calls, and parameters to represent the data values that can be passed into and out of subprograms.
· Immediate Connection: [AADL] A connection between two data ports, where the execution of the receiving thread is delayed until the sending thread completes execution and data is transferred at that time. This results in deterministic communication of state data and receipt of data in mid-frame, i.e., within the same dispatch of both the sending and receiving thread.
· Implementation: [IEEE] The result of translating a design, i.e., architecture, components, interfaces, and other characteristics of a system or component, into hardware components, software components, or both.
· Instance: [AADL] An individual object of a class that is indicated by a component classifier.
· Instantiation: [IEEE] The process of substituting specific data, instructions, or both into a generic program unit to make it usable in a computer program.
· Interface: [IEEE] 1) A shared boundary across which information is passed; 2) A hardware or software component that connects two or more other components for the purpose of passing information from one to the other; 3) To connect two or more components for the purpose of passing information from one to the other; 4) To serve as a connecting or connected component as in (2). [UML] A named set of operations that characterize the behavior of an element.
· Memory: [AADL] A memory is a category of component used to model randomly addressable physical storage or logical storage. A memory component may be contained in a platform, or may be accessible from a platform via a bus.
· Mode: [AADL] A mode models an operational mode in the form of an alternative set of active threads and connections and alternative execution behavior within threads. A mode behavior models dynamic mode changes by declaring runtime transitions between operational modes as the result of events. Mode specifications can be hierarchical; sub-modes and concurrent reconfiguration of different subsystems can be specified.
· Model: [UML] An abstraction of a actual system, with a certain purpose.
· Noncompliance: [AADL] Noncompliance of a component with its specification is a kind of design fault. This may be handled by run-time fault-tolerance in an implemented actual system. A developer is permitted to classify such components as anomalous rather than noncompliant.
· Package: [AADL] A package defines a namespace for component type and component implementation declarations and allows them to be logically organized into a hierarchy. Packages can control visibility of declarations by declaring them public or private.
· Port: [AADL] Ports are connection points between components that are used for directional transfer of data, events, or both. Data transferred through ports is typed.
· Port Connection: [AADL] Port connections represent directional transfer of data and control between data, event, and event data ports of components. The endpoints of such a connection are threads, devices, or processors.
· Feature Group: [AADL] A grouping of features or feature groups. Outside a component a feature group is treated as a single unit. Inside a component the features of a feature group can be accessed individually. Feature groups allow collections of features to be connected with a single connection.
· Predictable: [Webster] Determinable in advance.
· Private: [AADL] Declarations contained in a package that can only be referenced from within the package.
· Process: [IEEE] An executable unit managed by an operating system scheduler; [POSIX] a conceptual object with an address space, one or more threads of control executing within that address space, a collection of system resources required for execution, and possibly other attributes. [AADL]: A process represents a space partition in terms of virtual address spaces containing source text that forms complete programs. A process contains threads as concurrent units of execution scheduled to execute on processors.
· Processor: [AADL] A processor is an abstraction of hardware and software that is responsible for scheduling and executing threads. Processors may contain memory and may access memory and devices via buses.
· Program: [AADL] A program is a body of source text written in a standard programming language that can be compiled, linked and loaded as an executable image. A program has a self-contained namespace (no source names appear that are not declared within that program or are part of the language standard). The complete set of source files associated with a process must form a legal program as defined by the applicable programming language standard.
· Property: [AADL] A property is a named value associated with an AADL component, connection, flow, or feature. Every property has a name and can be assigned a value of a specific type in a specification. There is a standard set of properties for each category of component, connection, flow or feature, e.g., thread components have a Period property that can be assigned a time value. Implementations, components, features, connections, and behaviors have properties. Non-standard property definitions may be defined and used in a specification, this is the primary means available to create non-standard extensions to the language.
· Property Set: [AADL] A new set of properties and property types as extension to existing categories of components, features, behaviors, and connections.
· Property Type: [AADL] The type of values that can be associated with a property.
· Property Value Association: [AADL] A property value association is a statement in the language that associates a value with a named property. In some cases a property value may be overridden.
· Public: [AADL] Declarations contained in a package that can be referenced from within another package or component.
· Qualified Name: [AADL] A qualified name uniquely identifies the component classifier identifier with a package name separated by a double colon (“::”). Only the public package namespace is used to resolve these references.
· Reconfiguration: [AADL] Transition from one mode to another resulting in a change from one component and connection configuration to another.
· Remote Subprogram: [AADL] A subprogram that executes in its own thread and can be called remotely.
· Sampling Connection: [AADL] A connection between two data ports, where the periodic recipient thread samples the output of another thread. This may result in non-deterministic communication of state data.
· Shared Component: [AADL] A component that is directly accessible to two or more components.
· Software Component: [AADL] A software component is a component that represents software, i.e., source text describing a program or procedure in an implementation language, and represents the units of concurrency of an application in terms of its threads and processes.
· Source Text: [AADL] Refers to a body of text written in a conventional programming language such as Ada or C, written in a domain-specific modeling language such as MatLab®/Simulink®, or written in a hardware description language such as VHDL.
· Specification: [AADL] An AADL source file that specifies, in a complete or legally partial manner, a set of requirements, design, behavior, or other characteristics of a system or component.
· Subcomponent: [AADL] A component declared inside a component implementation that represents the application system or the execution platform. A subcomponent that belongs to the system category is also known as a subsystem.
· Subprogram: [AADL] A subprogram is a category of component used to model source text and images that have a single entry point that can be called by a thread. Subprograms have no statically allocated variables. A data subprogram can be declared as a feature of a data component. A subprogram may be declared as a feature of a thread, thread group, process, processor or system.
· System: [AADL] A system is an integrated composite that consists of one or more hardware, software, or system components. System is the name of a component category.
· Task: [IEEE] 1) A sequence of instructions treated as a basic unit of work by the supervisory program of an operating system; 2) A software component that can operate in parallel with other software components.
· Thread: [AADL] A thread is used to model a physical thread of execution. A thread communicates with other threads through ports. Threads can have different dispatch protocols such as periodic, aperiodic, sporadic, and background.
· Type: [AADL] Qualities common to a number of individuals that distinguish them as an identifiable class. In this standard the term type is used to characterize three classes: component type, property type, data type.