System integration is defined in engineering as the process of bringing together the component sub-systems into one system (an aggregation of subsystems cooperating so that the system is able to deliver the overarching functionality) and ensuring that the subsystems function together as a system.
With regards to software solutions, system integration is typically defined as the process of linking together various IT systems, services and/or software to enable all of them to work functionally together. System integration is the process of joining software and hardware modules into one cohesive infrastructure, enabling all pieces to work as a whole.
System integration consists of taking delivery of the implemented system elements which compose the system-of-interest (SoI), assembling these implemented elements together, and performing the verification and validation actions (V&V actions) in the course of the assembly.
The assembly activity joins together, and physically links, the implemented elements. Each implemented element is individually verified and validated prior to entering integration. Integration then adds the verification activity to the assembly activity, excluding the final validation.
Interface. Per INCOSE, an interface is, “A shared boundary between two functional units, defined by functional characteristics, common physical interconnection characteristics, signal characteristics, or other characteristics, as appropriate”. An interface is a common functional or physical boundary between two systems of interest (SOIs) over which the two interact.
Interface requirement. An interface requirement, which is associated with a SOI, specifies a
characteristic of an interface or a characteristic of what crosses the interface. There must be
complimentary or matching requirements for both sides of the interface (the interacting SOIs).
The goal of interface management is to identify, define, control, and verify interfaces; ensure
compatibility; provide an efficient system development; be on time and within budget; while meeting stakeholder requirements.
Interface Control Document (ICD) is a document that describes the interface(s) to a system or subsystem. It may describe the inputs and outputs of a single system or the interface between two systems or subsystems. It can be very detailed or pretty high level, but the point is to describe all inputs to and outputs from a system. Interface control documents are a key element of systems engineering as they define and control the interface(s) of a system, and thereby bound its requirements. An ICD should only describe the interface itself, and not the characteristics of the systems which use it to connect.
ICDs allow systems to be developed in smaller, well understood components. ICDs are often used where subsystems are developed by distributed teams (perhaps offshore) as a way to communicate information about subsystems interfaces between different subsystem design teams.
An ICD doesnt have to be a textual document. It can come in many forms. For instance, an application programming interface (API) is a form of ICD.
Purpose and Goal of System Integration
The purpose of system integration can be summarized as below:
- Completely assemble the implemented elements to make sure that the they are compatible with each other.
- Demonstrate that the aggregates of implemented elements perform the expected functions and meet measures of performance/effectiveness.
- Detect defects/faults related to design and assembly activities by submitting the aggregates to focused V&V actions.
The ultimate goal of system integration is to ensure that the individual system elements function properly as a whole and satisfy the design properties or characteristics of the system. System integration is one part of the realization effort and relates only to developmental items. Integration should not to be confused with the assembly of end products on a production line. To perform the production, the assembly line uses a different order from that used by integration.
Activities of the Process (According to SEBok)
Major activities and tasks performed during this process include:
- Establishing the integration plan (this activity is carried out concurrently to the design activity of the system) that defines:
- The optimized integration strategy – order of aggregates assembly using appropriate integration techniques.
- The V&V actions to be processed for the purpose of integration.
- The configurations of the aggregates to be assembled and verified.
- The integration means and verification means (dedicated enabling products) that may include , (harness, specific tools), V&V tools (simulators, stubs/caps, launchers, test benches, devices for measuring, etc.), and .
- Obtain the integration means and verification means as defined in the integration plan. The acquisition of the means can be accomplished through various ways such as procurement, development, reuse, and sub-contracting; usually the acquisition of the complete set of means is a mix of these methods.
- Take delivery of each implemented element:
- Unpack and reassemble the implemented element with its accessories.
- Check the delivered configuration, conformance of implemented elements and compatibility of interfaces, and ensure the presence of mandatory documentation.
- Assemble the implemented elements into aggregates:
- Gather the implemented elements to be assembled, the integration means (assembly tools, assembly procedures), and the verification means (V&V tools and procedures).
- Connect the implemented elements to each other using assembly tools to constitute aggregates in the order prescribed by the integration plan and in assembly procedures.
- Add or connect the V&V tools to the aggregates as predefined.
- Carry out eventual operations of welding, gluing, drilling, tapping, adjusting, tuning, painting, parametering, etc.
- Verify each aggregate:
- Check the aggregate is correctly assembled according to established procedures.
- Perform the verification process that uses verification and validation procedures and check that the aggregate shows the right design properties/specified requirements.
- Record integration results/reports and potential issue reports, change requests, etc.
Challenges of integration
System integration can be challenging for organizations and these challenges can diminish their overall return on investment after implementing new software solutions. Some of these challenges include lack of trust and willing to share data with other companies, unwillingness to outsource various operations to a third party, lack of clear communication and responsibilities, disagreement from partners on where functionality should reside, high cost of integration, difficulty finding good talents, data silos, and common API standards.
These challenges result in creating hurdles that “prevent or slow down business systems integration within and among companies”. Clear communication and simplified information exchange are key elements in building long term system integrations that can support business requirements.
References and Resources also include: