Critical
About Engineering
Engineering Competencies
Critical brings together the combined expertise in several engineering in order to engineer solutions for the most complex, demanding, and multidisciplinary problems. Our solutions cover the whole systems and software development life-cycle, from planning and analysis, to design, development, integration, testing and maintenance, ensuring that our clients’ critical systems and processes embody the highest possible standards.
Systems Engineering (High Integrity)
Systems Engineering is a discipline that concentrates on the design and application of the whole (system) as distinct from the parts. It is an interdisciplinary approach and involves looking at a problem in its entirety, taking into account all the facets and all the variables and relating both the social and the technical aspects. It is an iterative process of top-down synthesis, development, and operation of a real-world system that satisfies, in a near optimal manner, the full range of system requirements.
Critical’s systems engineers follow this approach in a structured manner for the development of a system from requirements definition through development, implementation, integration, delivery and acceptance. It promotes communication among acquirers, suppliers and other stakeholders in the design and development of a system, culminating in seamless integration with the best possible mitigation of risks. Full use is made of the latest development practices, including the use of modelling, simulation, configuration management, testing and integration tools. Critical’s work is typically qualified to domain standards such as DO-178, EN50129, Def Stan 00-56 and ISO15288. Processes are continuously monitored, and performance metrics collected, so as to demonstrate appropriate control and management.
Software Engineering (High Integrity)
As software becomes a larger and more important part of complex systems, the need to prove and verify the design becomes an essential part of the development. This is independent of the domain or standard applied and requires a structured approach to design, implementation and verification to ensure that the resultant product meets the required integrity standards. Critical employs the latest methodologies and technologies to ensure the highest standards, including Model Driven Engineering, Formal Methods and Software Patterns for example. Critical also follows domain specific standards, such as DO-178, EN50128 and 00-56, to produce artefacts as evidence of compliance. This structured approach and evidence based methodology is integrated within the company processes to easily facilitate certification and qualification of the software produced.
Data Integrity, Data Mining and Business Intelligence
In order to make better decisions, timely information must be available. Business Intelligence is derived from a set of technologies and practices that allow companies to turn mere data and technological assets into real knowledge. Critical’s BI engineering provides better business insights, and identifies inefficiencies in processes, making it easy to make educated decisions, set objectives and monitor performance. It is based on web interfaces protected with fine-grained security policies.
Critical’s BI capability helps in setting up data quality strategies and data integration processes for a company information architecture, using scalable BI platforms. Using Business Objects, Microstrategy, Microsoft and Oracle technologies, Critical provides a “single version of the truth”, accessible through dashboards and Balanced Score Cards.
For any nontrivial application, software is increasingly relying on modular and generic components. These components can be configured to suit a specific domain or mission, which is achievable by setting specific data items used to configure the behaviour or functionality of the application. These data items are representable in the form of parameters, variables or control tables. In the case of high integrity systems which impact the safety of its users, this data assumes particular relevance as it must be faultless to achieve overall system safety and operational integrity. However, no industry has released best practices ensuring data is produced with the same awareness as software. Therefore, Critical has developed a model on which development of data for such systems can be based. A set of criteria influencing the quality of data is identified. This criterion allows the prompt assessment of established data development practices against the proposed model.
Safety Management
Critical's involvement in high integrity software and systems is underpinned with a comprehensive safety management process. This not only ensures that the developed products meet the required quality and integrity, but that the safety implications of the product have been analysed and appropriately mitigated. The full safety lifecycle is performed using best practice tools and methods to investigate, analyse and mitigate any potential safety hazards. Tools and methodologies include PHA (Preliminary Hazard Analysis), SHA (Safety Hazard Analysis), FTA (Fault Tree Analysis), FMECA (Failure Mode Effect and Criticality Analysis), CCFA (Common Cause Failure Analysis) and ETA (Event Tree Analysis). The evidence produced from this process is used to support arguments made to demonstrate the safety of the system in a safety case. By following evidence based arguments, a strong position is established and the safety of the product can be robustly defended to obtain approval from a certifying body.
Verification, Validation (V&V) and Reliability, Availability, Maintainability & Safety (RAMS)
Verification consists of ensuring that software is compliant with requirements, through all phases of the life-cycle. This is accomplished by analysis, inspection and formal evaluation of intermediate and final software items. The software items to be analysed are selected according to a prior criticality analysis, ensuring that resource is allocated appropriately, thus increasing the "value for money" of the activity.
Validation consists of demonstrating that the software accomplishes its intended purpose. This is achieved by testing the product in real or simulated environments. The intent of these validation activities is to demonstrate appropriate error handling, safety and security measures, and identify areas where a failure might cause undesirable and possibly catastrophic effects.
Critical's RAMS techniques include: Schedule Analysis; Hardware Software Interaction Analysis; Code Inspections; Robustness Testing; Stress Testing and Fault Injection; Software Failure Modes, Effects and Criticality Analysis (SFMECA); Software Fault Tree Analysis (SFTA) and Hazard Analysis (HA).
Model Driven Engineering
In line with the system engineering approach previously mentioned; the latest design paradigms are employed to comply with a move towards model based design. Architecture frameworks such as DoDAF and MoDAF are used to ensure a clear approach and understanding of the complete system engineering lifecycle from the conceptual stage to the disposal stage. Thus “interoperability”, “user environment” and “user interface” issues are considered early on with customer approval to prevent any costly rework at a later stage. This is combined with the use of modelling languages such as SysML, UML and formal methods to provide a structured proof of design and documented evidence to aide certification and qualification. Various industry standard tools such as Artisan, MATLAB, DOORS, LDRA, to name a few, are used to facilitate this approach.
