«Kvant Program»: system engineering as a basis for innovative software solutions for complex systems.
Sophisticated levels and scales of human activities management aimed at the creation of systems, increase of accountability, rapid growth of complexity of concurrent scientific, technical and managerial problems have resulted in the creation in the middle of XX century of a new applied systematic methodology – system engineering.
System engineering is an interdisciplinary approach to the creation of complex systems that comply with a certain set of economic and technical requirements.
The uprising of system engineering and increase of its role in our life is a natural phenomenon, as a significant growth of the complexity of up-to-date engineering systemsis evident. Many systems have a complex multidisciplinary nature and include interrelated technical, informational and organizational aspects. Design requirements and specifications are obtained from different sources and alter steadily.
Significant effects from the point of view of practical use are ensured by system engineering due to using a common interdisciplinary language that enables mutual understanding of the stakeholders, due to the targeted search and use of data that reduce project risks, and due to the error correction at the earliest possible stage when it is still relatively cheap. By understanding a life cycle as the development of a system, product, service, project or another man-made object, beginning with the concept and ending with the withdrawal from circulation, system engineering strives to achieve a state of being capable of selecting and implementing effective life cycle processes based on the properly built methodology, as an objective of the life cycle management. As a result, the system that is of interest for stakeholders develops throughout the life cycle and becomes capable of complying with the requirements set.
At present, the world scientific and industrial communities recognize system engineering as a methodological basis of arrangement and implementation of activities aimed at the creation of systems of any purpose. Up-to-date practical experience has proved that 8% of the project price spent on the implementation of system engineering results in 20% economy and increase the probability of meeting the project deadlines by 50%.
In consideration of the foregoing, «Kvant program» considers system engineering as a crucial discipline the principles of which are obligatory to be applied for software development for complex systems.
Most intensive use of system engineering has been recently made in the sphere of telecommunications and IT and nuclear power engineering, NPP being a most complex engineering facility with strict safety requirements that are prerequisite for software development (including that of online diagnostic tools and I&C for NPPs).
Software is a crucial part of any complex system to be developed. Reliable, safe and competitive software that complies with all the customer requirements is developed on the basis of the same principles as the whole system.
Arguably, the qualification of a system engineer in our company is the top rank of engineering qualification and the system engineering principles set forth below make up the basis for the development of software for complex system.
System Engineering Fundamentals:
- Transition from reductive approach to system approach
The system approach focuses on the significance of the goal of the complex system developed, interaction of components for the achievement of this goal in contrast to mere availability of randomly chosen parts. Any system has a hierarchy of subsystems and a supersystem. The boundaries separating the system from the surrounding systems are crucial and shall be clearly defined: all the stakeholders of the interdisciplinary discussion should have the same idea of the system’s boundaries to avoid the misunderstanding in the course of the system discussion and development.
- Transition from structural to process approach
The main thing that happens to the system is its change over time. Considering the system from the point of view of its structure (a scheme of interconnections of subsystem components) is not sufficient. It is necessary to consider its change over time and temporal interactions.
The compliance with these requirements is ensured by the concept of product full life cycle management and project-based approach of all types.
- Transition from a set of descriptions to a variety of sets of descriptions
A single professional view is not sufficient to obtain a more or less complete realizable description of the system. Sets of interrelated descriptions should be made that are often obtained in an interdisciplinary way. With regard to system engineering, it is ISO 42010, the standard of architecture descriptions.
- Transition from detailed design (engineering) to mandatory architecture-based design
Instead of dealing with software codes and equipment drawings as well as instructions and descriptions, an essential description of the system to be created should be made at first that does not depend on the implementation details – i.e. architecture. The architecture describes main subsystems and their interaction in a way free from the implementation details. A variety of implementations can correspond to the same architecture. An architecture is more durable than its implementations.
- Transition from immediate implementation to model-centric implementation
Before the creation of a real system a variety of system models are built at first – both abstract architectural models and simulation models that depend on the implementation. These models represent a detailed variable description of the system that is appropriate to the reality (this refers first of all to simulation modelling, including simulation runs of architectural models). First, the system is built in the ideal world of simulation before building it in the real world: all errors are excluded at the stage of simulation, not at the stage of real implementation. The descriptions of the system (including architectural descriptions) shall be made not in a natural but in a formal language that implies the possibility of computer processing.
- Transition from document-centric approach to data-centric approach
Various system descriptions shall be stored as interrelated separate information units – data ready to be united in this or that form — this refers to data storage as a database and access to this data by way of various queries. Changes shall be dealt with as separate data, not as “documents”.
- Transition from working for one employer to working with a variety of stakeholders
For any system, there is a variety of stakeholders whose opinion should be taken into consideration. This implies that requirements set to the system are always contradictory, originate from different sources and special efforts aimed at their coordination should be made — a significant part of this work is reduced not to technical solutions but to negotiations between the stakeholders. A large number of stakeholders affects the essence of engineering activities: these activities aimed at the «requirements engineering» go beyond the sphere of exclusively technical solutions and should take into consideration the contradictory interests of various people.
- Transition from «checks» to separate verification and validation
The idea of verification (a check for compliance with formal requirements) is well-known. But this check is definitely not sufficient: the focus is not only on the compliance with the requirements but on the fact that the system can be used — because a mistake can be made in the requirements during the system development. That is why not only verificationbut validationis necessary — a check aimed to make sure that the requirements of a certain external consumer or product, system or service user have been satisfied.
- Transition from rigid planning to using flexible methods
Elaborate plans are known to be incomplete and vague. Plans should be dealt with as forecasts and a transition to risk-oriented forms of life cycle should be made that imply step-by-step resource allocation based on regular revision of the resources allocation structure with the due regard to ever changing project situation.
- Transition from «production lines» to «order-based supplies»
In the process of life cycle management, independent stakeholders take part in the common process by performing their part of contractual obligations. System engineering treats this issue as a separate set of contract practices with both explicit contracts between different legal bodies and implied agreements between the stakeholders inside the same organization.
The above principles make up the basis for the project implementation in the main business dimensions:
- Innovative solutions in the field of complex systems software;
- Development and adaptation of data bases for data transmission;
- Adaptation of software interfacing modules for monitoring systems software;
- Creation of virtual worlds for industrial systems and computer games;
- Creation of augmented reality systems. Virtualization of real objects in industry and culture;
Development of computer games of various profiles.