Interfaces and Components¶
A page to explain how interfaces between components are handled, and how these relate to the other elements in the Business Object Model such as requirements, ModelTypes and ModelInstances.
Note
The icons representing Interfaces and Components, with the icons for the models are shown below. Interfaces are blue, with the connection represented as a bar with arrows pointing away. The ports are blue blocks on the yellow component.
Overview¶
Introduction¶
It order to manage the development of a complex product like an aircraft, it is divided into logical pieces (or COMPONENTS) that can each be developed independently. The boundaries between the components are known as interfaces.
The components themselves can have many different representations, for example physical representations or behavioural representations.
For the purpose of this document, the view with the components and interfaces is known as the SYSTEM VIEW. The view with the representations is known as the PHYSICAL VIEW.
An interface is not an entity itself, but is made up of PORTs on components and CONNECTIONs between these ports. For example a complete system may have three components; a computer, an information network and a power supply. The computer can have a port for power that connects to a port on the power supply, and a port for data that connects to the information network. The components, ports and connections can all have multiple representations. Many connections can point to a single port, but each connection only points to two ports. For example a port on a wing can be connected to two alternative pylons, showing that the wing has alternative power plant configurations, but each connection points to the wing and one of the pylons.
Interfaces can have hierarchies. For example the power interface between the computer and the power-supply can be broken down into electrical phases, or into assembly pieces of the cable etc.
Interface Connections and Ports can have type definitions and properties. They can also have Specifications applied, for example a connection may have a stiffness behaviour specification and a port may have specifications for mating conditions or positioning. On the computer example, the port on the power supply may reference IEC 60906-1 the International standard for 230V AC domestic plug.
Enterprise Architect Documentation¶
For more information see SysML - Interface Management Diagram
Computer - Power-Outlet Scenario¶
This scenario is purposefully not based on a CRESCENDO example so the engineering concerns do not cloud the issues, and so it is possible to concentrate on modelling the Interfaces and Components.
The scenario has the following evolutionary steps:
- Step 1. Interface between the Computer and the power outlet. At this stage how they are connected is undecided. E.g. it could be with a cable, or an induction loop.
- Step 2. A decision is made to resolve the interface with a cable
- Step 3. On investigation it is discovered that a simple cable is insufficient, and so the cable is replaced with cable-transformer-cable.
- Step 4. The transformer has specific requirements concerning the heat transfer, so an environment component is added and interfaced to all the other components.
The interfaces considered in the scenario are:
- Power - Electrical and Thermal
- Spacial - Movement of plug pins into socket
- Information - USB connection (used for the interface specification illustration)
Wing - Pylon - Engine Scenario¶
The Wing - Pylon - Engine Scenario is a bigger picture view of the Engine - Pylon - Nacelle scenario used in the Power Plant Product Integration test case S3P1. The major part of the scenario will concentrate on the Engine - Pylon interface, but the Wing - Engine is added to reflect the similar levels used in the Computer - Power-Outlet Scenario described above.
The scenario has the following evolutionary steps:
- Step 1. Interface between the wing and the power plant. At this stage it is assumed that the number of power plants has been decided, and that they are to be slung under the wings. But not how they are to be attached to the wings.
- Step 2. A decision is made to attach the power plant using a pylon with engine and nacelle, but to be able to have different engines. Each engine can have a different pylon attachments, which means that there are unique pylons for each engine, but that each pylon must interface in the same way to the wing.
- Step 3. Concentrating on the Engine - Pylon interface for one engine type. It is decided that there will be two mounts, a forward and an aft mount. But it is not decided on the components that constitute each mount.
- Step 4. One of the mounts is further detailed with the mounting elements, ball and socket joints etc.
The interfaces considered in the scenario are:
- Power - Mechanical and Thermal
The scenario could be extended earlier in the lifecycle, to when it is undecided whether to have the engines mounted under the wings, or whether to have the engines embedded in the wings. For example with the concept plane shown below:
System View with Requirements¶
Requirements can be added to Components, Connection Instances and Port Instances. This is achieved by indicating that the requirement should be satisfied by the associated element. These requirements would then be verified by the representations of the element. See Requirements and Verification for more information, also the SysML - Requirement Verification Diagram.
Hierarchies of System Views¶
As better understanding of the system is achieved, then more components are added, the interfaces are broken down into more detail and the so the hierarchies are configured.
Components can be related to other components using an “ComponentAssemblyUsage”. These are classes rather than simple relationships because they may need names and identifiers, and also links to other classes. In the case where there is a common component that is used in multiple places, the ComponentAssemblyUsage can be used in place of the Component in the System View, so can have Ports, and representations in its own right. An illustration is given below in the Engine - Mount-System - Pylon example. See also SysML - Breakdowns and Components Diagram. PortInstances and PortTypes are linked using a PortRelationship class. This is a class rather than a relationship so that different types of relationship can be defined without having to update the Business Object Model. This is achieved by using a string enumeration that is controlled outside of the Business Object Model.
Examples of type could be a Derivation relationship, or a Hierarchical Relationship.
- Derivation relationships are when the one port is derived from the other, for example when more detail is known about how an interface behaves because of design decisions. E.g. when it has been decided to connect the computer to the power-outlet with a cable the post-decision port on the computer is derived from the pre-decision port, in that it needs all the requirements/features that were understood from the pre-decision, but also some additional requirements/features.
- An example of a Hierarchical relationship could be on port that is for Thermal interface, and this has a hierarchical relationship to a Radiation-Thermal port, a Conduction-Thermal port and a Convection-Thermal port. i.e. the children of the hierarchy can be gathered up to make the parent. Similarly an Power port can be broken down into Mechanical power, Thermal power, etc. Ultimately a “world” port is made up of the Power, Information, Spacial and Matter constituents.
Constructed and Unconstructed Interfaces¶
All the interfaces described above are “constructed” interfaces, i.e. ones that someone has constructed to split components. Unconstructed interfaces are ones that exist but have not been explicitly constructed, the most common of these are interfaces to the environment. In the Business Object Model there is no difference between these, but if it is needed to identify whether an interface is constructed or unconstructed, then the InterfaceConnectionInstance can be classified. See SysML - BaseObjects Diagram for more details on classification.
Interface “Type” classes¶
Connections and Ports have Types and Instances - InterfaceConnectionType, InterfaceConnectionInstance, InterfacePortType, InterfacePortInstance. The purpose of a Type is to provide the definition for the Instances, for example a Bolted Flange Connection Type.
The Types:
- can include property definitions (e.g. Spring Stiffness constants Kx, Ky, Kz with unit of N), the instances should then provide the values for these properties.
- can inherit from other Types, so build up a conglomerate definition.
- are versioned
- can have documents to allow a more detailed definition than is possible with properties and descriptions.
- can have representations (in the physical view) of ModelTypes. The PortTypes can also have representations of AccesspbleModelTypeConstituents.
InterfaceConnectionTypes connect two InterfacePortTypes which are ports on BreakdownElements and Components. Note they cannot be ports on BreakdownElementUsage or on ComponentAssemblyUsage.
Interface Specifications¶
Instances and Types of Connections and Ports can have InterfaceSpecifications, and these specifications can inherit from other specifications. The specifications are versioned, and can have documents attached to define the specifications. A specification can be a standard, e.g. the specification for a USB connection. This is illustrated below.
The scenario shows the different areas of the interface that specify the Power, Information and Spatial details are contained in separate InterfaceSpecifications and overall USB specification inherits them. The Computer and Printer Components have three separate sets of ports and connections which are each concerned with only one area of interface. There is then an additional interface that is for the overall USB, and its ports have a hierarchical interface with the ports from the separate areas. The example shows the InterfaceSpecifications are inherited and then used by the overall interface. But it could be that the overall interface understands that it uses the specifications from the child ports in the hierarchy. Also included in the diagram are images of the geometrical representations for the ports on the Computer and Printer.
There is more than one way to declare the information to define an interface, this is because one way may be more suitable to another for a particular interface, and a combination is likely to be used as appropriate. The different ways are summarised as follows:
- InterfaceSpecification - with name, description, documents and inheritance. Can be attached to:
- InterfaceConnectionType
- InterfaceConnectionInstance
- InterfacePortType
- InterfacePortInstance
Properties - with the PropertDefinition on the Types (InterfaceConnectionType and InterfacePortType) and the Values on the Instances (InterfaceConnectionInstance and InterfacePortInstance)
Type documentation - formal and informal documentation describing the Connection or Port Type.
Linking the system view to the physical view, and assistance for Product Integration¶
The links between the system and physical views has been touched on earlier on this page. Each of the interface elements in the system view can have zero to many “representations” in the physical view. The class of representation allowed depends on the interface class as follows:
- InterfaceConnectionType : ModelType
- InterfacePortType : ModelType and/or AccessibleModelTypeConstituent
- InterfaceConnectionInstance : ModelInstance
- InterfacePortInstance : ModelInstance and/or AccessibleModelInstanceConstituent
- Component : ModelInstance
- ComponentAssemblyUsage : ModelInstance
When the representation relationships are initially set up, it is an indication of what data needs to be generated. For example, if a Mesh-ModelInstance is to be a representation of a Component, then the ModelType that the Instance isAnInstanceOf, has documentation containing the definition of the expected mesh characteristics.
The representations for ports can be used to indicate the type of boundary expected (e.g. a mesh, a node, a geometrical surface or curve etc.), and also used to indicate the interface boundary conditions. For example, a typical “Product Integration” problem has the following steps:
- Step 1. An integrated model is created which is made up of simplified models of the elements being integrated.
- Step 2. From this, boundary conditions are extracted for the interfaces between the elements.
- Step 3. Each element is then analysed separately using more complex models.
- Step 4. New simplified models are then created.
- Step 5. The simplified models are then integrated back together into a single model for the next iteration.
Because all the interfaces are contained in the integrated model, it is a representation of all the Connections. The boundary conditions can be exposed either using AccessibleModelInstanceConstituents, or by creating new models containing just the boundary conditions that are derived from the integrated model. These become the representations for the Ports. Using boundary conditions in separate models has the advantage that separate element analysis steps only need the model of the boundary conditions, not the complete integrated model from which to access the constituents. This is illustrated below:
The above image also shows that the ports have representations which are AccessibleModelInstanceConstituents in the simplified models from step 4. This means that in the integrated model in Step 5. can join together the models in Step 4. using the “recipe” defined by the port representations and connections between ports. For example the port on the engine that is connected to the pylon has a representation of a accessible constituent (e.g. publication) inside the Engine model. This publication can be matched up to the accessible constituent (publication) inside the Pylon model that is a representation of the port on the pylon that is connected to the engine. The rules for how to match them up will be contained inside the specifications for the ports (and connections). This is illustrated below.
At each iteration new instances of the models are created in the Physical view, and these are representations of the same Components, Ports and Connections in the system view. So the Components, Ports and Connections will end up with many model representations, but those models will have isEvolvedFrom relationships making it possible to view their lifecycle.