<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Methods  for  identification  of  objects  of  development  of  cross‐ platform  on‐board  software  for  communication  and  navigation  satellites </article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Dmitry Kovalev</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Igor Kovalev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
          <xref ref-type="aff" rid="aff3">3</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Nikolay Testoyedov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vasily Losev</string-name>
          <xref ref-type="aff" rid="aff4">4</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mikhail Saramud</string-name>
          <email>msaramud@gmail.com</email>
          <xref ref-type="aff" rid="aff4">4</xref>
          <xref ref-type="aff" rid="aff5">5</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>China Aviation Industry General Aircraft Zhejiang Institute Co., Ltd</institution>
          ,
          <country country="CN">China</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>JSC “Academician M F Reshetnev Information satellite systems”</institution>
          ,
          <addr-line>52, Lenin street, Zheleznogorsk, Krasnoyarsk region, 662972</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Krasnoyarsk Science and Technologies City Hall</institution>
          ,
          <addr-line>61, Uritskogo str., Krasnoyarsk, 660049</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>Krasnoyarsk State Agrarian University</institution>
          ,
          <addr-line>90, Mira pr., Krasnoyarsk, 660049</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff4">
          <label>4</label>
          <institution>Reshetnev University</institution>
          ,
          <addr-line>31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff5">
          <label>5</label>
          <institution>Siberian Federal University</institution>
          ,
          <addr-line>79, Svobodny pr., Krasnoyarsk, 660041</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>  The article discusses the architectural basis of the cross-platform onboard software for navigation and communication satellites. The functional characteristics of the designed software components are the queues used, the ports, the supported hardware, and the low-level inter-hardware communication protocols. The verbal description of the selected area of knowledge and the formalization of relations between individual entities allows you to move from the architectural basis, limited by physical parameters and the environment for the functioning of software tools, to a descriptive model, which served as the basis for a relational database. An identification method is proposed for unambiguously identifying a specific component of the on-board software with the possibility of performing further actions on it, for example, archiving, retrieving, duplicating, etc. An onboard software component is viewed as a complex entity that contains not only program code, but also a number of attributes that are used during operation. The structural diagram of a relational database is presented. This structure unites and links both information about software components and the electronic document management tool as a whole.</p>
      </abstract>
      <kwd-group>
        <kwd> 1  On-board software</kwd>
        <kwd>identification method</kwd>
        <kwd>development</kwd>
        <kwd>cross-platform software</kwd>
        <kwd>navigation and communication satellite</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction </title>
      <p>
        The purpose of the developed identification method is to unambiguously determine a specific
component of the on-board software (OBS) for the possibility of further actions on it (archiving,
retrieval, duplication, etc. [
        <xref ref-type="bibr" rid="ref1 ref2 ref3">1-3</xref>
        ]). The OBS component is considered as a complex object containing not
only program code, but also a number of attributes that are used in the process of working on it (Figure
1).
      </p>
      <sec id="sec-1-1">
        <title>Figure 1: Development objects </title>
        <p>There are several options for identifying the program code that can be used in the process of
searching for development objects for the cross-platform OBS of navigation communication satellites:
 information extraction (IE);
 parsing of program code;
 the method of labeling;
 building the atomic structure of the project.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Method of information extraction </title>
      <p>
        Information extraction (IE) is an applied direction in the field of computational linguistics, which
studies the tasks of extracting certain information from natural language (NL) texts - terms and their
relations, events and named entities (names, personalities, geographical names), etc. [
        <xref ref-type="bibr" rid="ref4 ref5 ref6">4-6</xref>
        ].
      </p>
      <p>
        The solution of such problems requires the recognition of certain linguistic structures (for example,
noun phrases) in the text, which is usually implemented on the basis of partial parsing, without full
parsing of sentences of the text. The construction of specific AI applications is most often performed
using specialized instrumental systems [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], the most famous of which is the GATE system [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. At the
same time, a characteristic feature is the use of special formal languages (in the GATE system, the Jape
language) to specify information about the composition and grammatical properties of the recognized
structures, usually in the form of special templates. With the help of templates, ready-made modules
for the analysis of NL-text can be customized to solve the required word processing problem in a
specific subject area. 
      </p>
      <p>Template languages used in instrumental systems for building NL-applications have a number of
problems that complicate their effective use.</p>
      <p>
        When constructing the internal representation of the text, it is first broken up into fragments - words,
punctuation marks and whitespace characters, and a morphological analysis of words is performed, the
morphological (syntactic) interpretations of which form the edges of the graph. In this case, in the
general case, a pair of adjacent vertices of the graph are connected by several edges due to
morphological homonymy (for example, the nominative and accusative cases of nouns). For any
structure highlighted in the text, its syntactic interpretation is represented in the text graph by an
additional edge [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>The considered graphical representation of the text is convenient for taking into account various
combinations of morphological interpretations of words included in the text and allows, when imposing
templates, to uniformly process both word elements and auxiliary templates. Selection of a structure
using the LSPL (Lexico-Syntactic Pattern Language) pattern is a search in a text graph, which includes
three main stages.</p>
      <p>Step 1. The set of edges from which the search can be started is determined; for this, the indexes of
words, patterns and parts of speech are used (these indexes are built simultaneously with the
construction of the text graph).</p>
      <p>Step 2. Paths starting from found edges and corresponding sequences of template elements are
defined in the graph. The search for these paths represents a depth-first traversal of the graph with a
backward step, while at each step all admissible path extensions are considered that correspond to the
current element of the template and the restriction on morphological characteristics specified for it. The
conditions for matching elements are checked immediately after specifying morphological
characteristics, which makes it possible to reduce the set of considered paths in the graph.</p>
      <p>Step 3. The found paths are grouped together to form overlay variants that are added to the graph as
new edges. The grouping of paths is carried out for more efficient operation of the method.</p>
      <p>For the analysis, a software component was used, developed by the authors within the framework of
the project "Technology for organizing the life cycle of cross-platform software for onboard equipment
for unmanned aerial vehicles" (Reg. No. R&amp;D AAAA-A17-117041910158-8).</p>
      <p>The very structure of the handler scanner might look like this:
#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include "FlexLexer.h"
std::string tmpstr;
int main(int argc, char* argv[])
{
if (argc &lt; 2) {
std::cout &lt;&lt; "USE: ccflexscan &lt;source file&gt;"
return 0;</p>
      <p>
        }
std::ifstream infile(argv[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]);
FlexLexer* lexer = new yyFlexLexer(&amp;infile);
int iRes = 0;
while ((iRes = lexer-&gt;yylex()) &gt; 0)
{
std::cout &lt;&lt; "Read " &lt;&lt; lexer-&gt;YYText()
&lt;&lt; " (token value is "
&lt;&lt; iRes &lt;&lt; ") &lt;&lt; std::endl;
}
return 0;
&lt;&lt; std::endl;
}
      </p>
      <p>When applying it, observing the conditions of the syntax and the rules of the dictionary, at the output
we will receive a list of the following content:</p>
      <p>Read ' RUN ' (token values is 286)
Read ' OPTIMIZATION ' (token values is 283)</p>
      <p>The multiplicity of syntactic interpretations of one piece of text inherent in natural language
inevitably increases the search space and the amount of memory required to store a graph of text. This
is especially noticeable when the template contains a large number of elements that do not participate
in the matching conditions, and also includes repetitions of elements without their matching.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Parsing </title>
      <p>Parsing (often called parsing in computer science) is a technology for automatically collecting data
based on a given attribute.</p>
      <p>The information retrieved by parsers (parsers) is accumulated for the purpose of selection according
to certain criteria, analysis of dynamics, backup storage in case of loss of access to primary sources,
and is also used for cataloging.  </p>
      <p>The separation of the necessary information occurs through the syntactic and lexical analysis of its
content. This process is called parsing. Parsing is part of many information processing processes, from
translating text to translating high-level language code into machine code.</p>
      <p>Parsers are most actively used in the processing of Internet pages by search engine algorithms. But
parsing is also used for solving less global problems, for example - parsing is used by programs to
automatically check the uniqueness of text information, quickly comparing the content of hundreds of
web pages with the proposed text. Parsing can also be used to automatically search for information, for
example, to fill in the fields of characteristics of hardware, sensors, etc.</p>
      <p>As an example of a tool for analyzing program code, we present the following program:
#include &lt;stdio.h&gt;
#include &lt;string&gt;
extern FILE *yyin, *yyout; // referenced from flex-generated
scanner
extern int yylineno;
extern std::string tmpstr;
int yylex();
int main(int argc, char* argv[])
{
yyin = fopen("test.txt","r"); //yyout will ptr to stdout
int iRes = 0;
while ((iRes = yylex()) &gt; 0)
{ //read something useful from file
printf ("Read ‘%s’ (token values is %d) at</p>
      <p>line %d\n",tmpstr.c_str(), iRes, yylineno);
}
printf ("Scanner return %d code\n",iRes);
return 0;
}</p>
      <p>Its functions are similar to the program described in section 2 above, but the execution speed is
lower, but this method has also proved to be an effective analysis tool.</p>
      <p>As an intermediate result, we can conclude that the existing methods of parsing program code do
not meet the requirements stated at the beginning - storage and retrieval of metadata, the possibility of
hierarchical linking of components and memory of the final structure of projects as one of the elements
of flexible search. To meet all the requirements for storing and retrieving useful information about the
project, it is proposed to create a new identification method based on deterministic metadata.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Method of functional identification of cross‐platform OBS components </title>
      <p>At the stage of forming the basic description of the area of knowledge - the software components of
the cross-platform OBS of communication and navigation satellites, the requirements for the description
of the principles of functioning and the limitations of the physical environment of functioning were
determined and formalized, such as: ensuring the operation of the power system, voltage level, board,
etc.</p>
      <p>In general, this will allow us to carry out effective identification of software components, since the
presented restrictions and requirements can act as metadata that uniquely describe a specific component.</p>
      <sec id="sec-4-1">
        <title>Figure 2: Architectural basis of cross‐platform OBS of navigation communication satellites </title>
        <p>
          The architectural basis of the cross-platform OBS of navigation communication satellites (Figure 2)
is presented in [
          <xref ref-type="bibr" rid="ref10 ref11 ref12">10-12</xref>
          ]. The most important functional characteristics of the designed software
components, as can be seen from the diagram presented in [
          <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
          ], are: used queues, ports, supported
hardware and low-level inter-hardware communication protocols.
        </p>
        <p>The resulting verbal description of the selected area of knowledge and the formalization of relations
between individual entities made it possible to move from an architectural basis, limited by physical
parameters and the environment for the functioning of software, to a descriptive model that served as
the basis for a relational database.
4.1.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Database schema </title>
      <p>the cross-platform OBS being developed. These informational attributes are typical for both applied
and executive software. because from the point of view of the programmer there is no fundamental
difference in the development of a software component. When designing a component, it should be
noted that a separate software function in the future can be used both as an independent component and
as one of the versions of the multiversion pool. Technically, there is no difference between the
development of one of the versions of the multiversion pool and a separate software component, since
they will be executed in the same way as a FreeRTOS stream, and a separately developed module - the
decision block - is responsible for the functionality of the multiversion execution.</p>
      <p>Let's consider an example of a software module for processing readings of a digital temperature
sensor.</p>
      <p>Design Reference (Component): This module must be connected to an Analog Devices ADT7318
Digital Temperature Sensor or equivalent. The sensor output is connected to DIO pin 5 on the board.
The module must poll the sensor every 2000ms, calculate the temperature value in Celsius and
Fahrenheit. The temperature value in Celsius is placed in the xQueueCTemp () queue. The temperature
value in Fahrenheit is placed in the xQueueFTemp () queue.</p>
      <p>The task itself is an element of electronic document management and is stored in the database in the
form of a document signed with an electronic signature. Inside the document, there is also
metainformation for the unambiguous definition of the parameters of the developed software block and is
used to create the "skeleton" of the project. The metadata related to the design assignment for the
temperature sensor readings processing module are given below (Table 1 ). Supported hardware
ADT7318 digital temperature sensor or equivalent. The range of input values is presented in Table 5</p>
      <sec id="sec-5-1">
        <title>Required value</title>
      </sec>
      <sec id="sec-5-2">
        <title>Queue name xQueueСTemp() xQueueFTemp()</title>
        <p>Table 5   </p>
        <sec id="sec-5-2-1">
          <title>Input range </title>
          <p>Port / Queue</p>
          <p>DIO5</p>
          <p>The metadata themselves uniquely identify the block when searching for information through the
database, and also serve as keys for searching for block variants close to the criteria.</p>
          <p>Storage order for later retrieval. To break many-to-many data, intermediate tables are used, in which
two foreign keys of the tables being linked are used as the primary key of the table itself.</p>
          <p>Table 6 is an example of a table for breaking a many-to-many relationship.</p>
          <p>Table 6   
Example of the relationship 
queue_id modules_id
101 1
101 2
101 3
i/o
1
1
0</p>
          <p>Since the primary keys are the id of the queue and the id of the module, a many-to-many relationship
is formed when the tables are directly linked. To break this connection, an intermediate table is used,
which also serves to facilitate the process of finding the necessary information. As a request, let's try to
find out which modules work with the queue at index 101.</p>
          <p>Figure 3 shows the following tables:</p>
          <p>Table 1 . The modules entity serves as a repository of the main attributes of the components being
developed and the platform, modules_status, users "dictionaries" are connected to it.</p>
          <p>Table 2 . The docs entity serves as a repository of data about the elements of the electronic document
management system, the “dictionaries” docs_type, docs_status, users are connected to it.</p>
          <p>Also, in the environment of electronic document management, database objects can be created,
retrieved and modified by means of the PHP language. Below is an example of a script that generates a
report on the stage of module readiness.</p>
          <p>&lt;?
if (!is_numeric($rank) || $rank &lt;= 0) {header("Location:
./check.php");
die;
}
$mods_status=[ "&lt;span style='color:gray;'&gt;Indeveloping&lt;/span&gt;",
"&lt;span style='color:pink;'&gt; Readytotest&lt;/span&gt;",
"&lt;span style='color:blue;'&gt; Ontesting &lt;/span&gt;",</p>
          <p>"&lt;spanstyle='color:red;'&gt; Submitted for revision
&lt;/span&gt;",
"&lt;span style='color:green;'&gt; Ready&lt;/span&gt;"];
if (!$_GET[id]){
echo "&lt;table border=0 width=100% class='docs-table'&gt;";
echo "&lt;tr&gt;&lt;th
width=30px&gt;Ver&lt;/th&gt;&lt;th&gt;Modulename&lt;/th&gt;&lt;th&gt;Status&lt;/th&gt;&lt;th&gt;Author&lt;/th&gt;
&lt;th&gt;Data&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=5&gt;&lt;hr&gt;&lt;/td&gt;&lt;/tr&gt;";</p>
          <p>$q_mod_all=mysqli_query($link, "SELECT * FROM `modules` ORDER
BY date DESC");
for ($c=0; $c&lt;mysqli_num_rows($q_mod_all); $c++)
{
$new='normal';
$mods = mysqli_fetch_array($q_mod_all);</p>
          <p>if ($mods['creater']==$user['id'])
$author=$user['f']." ".substr($user['i'],0,2).".
".substr($user['o'],0,2).". ";</p>
          <p>else {
$creater=mysqli_fetch_array(mysqli_query($link, "SELECT
`f`,`i`,`o` FROM `users` WHERE id='{$mods['creater']}' LIMIT 1"));
$author=$creater['f']."
".substr($creater['i'],0,2).". ".substr($creater['o'],0,2).". ";
}
echo "&lt;tr style='font-weight:{$new}'
onMouseMove=(this.style.background='#EBF4FD')
onMouseOut=(this.style.background='white')&gt;
&lt;td&gt;".$mods[ver]."&lt;/td&gt;
&lt;td
onClick=(document.location.href='?act=modules&amp;id=".$mods['id']."')&gt;"
.$mods[title]." ::&lt;/td&gt;
&lt;td&gt;".$mods_status[$mods['status']]."&lt;/td&gt;</p>
          <p>&lt;td&gt;".$author."&lt;/td&gt;
&lt;td&gt;".date('d.n.Y',$mods['date'])."&lt;/td&gt;</p>
          <p>
            &lt;/tr&gt;&lt;tr&gt;&lt;td
colspan=5&gt;&lt;hr&gt;&lt;/td&gt;&lt;/tr&gt;";
}
echo "&lt;/table&gt;";
} else {
//echo "&lt;div class=noprint&gt;&lt;a
class=btnsaleonClick='window.print() ;'&gt;Print&lt;/a&gt;&lt;/div&gt;";
href='#'
$mod=mysqli_fetch_array(mysqli_query($link,
`modules` WHERE id=".intval($_GET[id]).""));
$author=author($mod, intval($_GET[id]));
$stack_in=explode("=&gt;", $mod[stack])[0];
$stack_out=explode("=&gt;", $mod[stack])[
            <xref ref-type="bibr" rid="ref1">1</xref>
            ];
echo "&lt;table width=100% cellpadding=6&gt;";
"SELECT
*
          </p>
          <p>FROM
echo "&lt;tr&gt;&lt;td&gt;&lt;h3&gt;{$mod[title]}&lt;/h3&gt;{$mod[date]}, {$author},
{$mods_status[$mod[status]]}&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;";
echo "&lt;tr&gt;&lt;td&gt;&lt;h3&gt; description&lt;/h3&gt;{$mod[info]}&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;";
echo "&lt;tr&gt;&lt;td&gt;&lt;h3&gt;Inputqueues:
&lt;/h3&gt;{$stack_in}&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;";</p>
          <p>echo "&lt;tr&gt;&lt;td&gt;&lt;h3&gt;Outqueues:
&lt;/h3&gt;{$stack_out}&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;";
if ($mod[status]==4)
{</p>
          <p>//$test=mysqli_fetch_array(mysqli_query($link, "SELECT *
FROM `docs` WHERE type=pid=".intval($_GET[id]).""));</p>
          <p>echo "&lt;tr&gt;&lt;td&gt;&lt;h3&gt;Test results:&lt;/h3&gt;&lt;a href='#'&gt;Test
report&lt;/a&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;";</p>
          <p>echo "&lt;div class=noprint&gt;&lt;a
class=btnsaleonClick='#'&gt; Archive&lt;/a&gt;&lt;/div&gt;";
}
echo "&lt;tr&gt;&lt;td&gt;&lt;h3&gt; Programcode:&lt;/h3&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;";
echo "&lt;/table&gt;";
//echo "&lt;div
href='?act=modules&amp;id={$mod['id']}'
Newmodulebasedoncurrent&lt;/a&gt;&lt;/div&gt;";
//echo $mod[link];
$file= file_get_contents("./modules/{$mod[link]}.txt");
?&gt;</p>
          <p>Thus, the obtained scheme of interactions within a relational database will allow efficiently
performing functional identification both in the form of SQL queries and third-party tools, if necessary.</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>4.2. Identification procedure </title>
      <p>In the process of developing the components of the cross-platform onboard software, their
functional attributes will be entered into the database. According to these attributes, it becomes possible
in the future to perform functional identification of the required module. Let's consider an example of
functional identification of a component based on specified parameters.</p>
      <p>These parameters are input / output queues (their IDs), platform selected, author, etc. In general, the
set of attributes should be a strict filter list that filters out mismatched base lines. If a strict search did
not give the necessary results, then a flexible search is used, which makes it possible to include in the
search process the possibility of identifying components that do not strictly correspond to all specified
search restrictions, but are the most suitable from those available in the database, for example, they
correspond to 4 out of 5 parameters.</p>
      <p>If the search is completed successfully, then a number of actions can be performed on the found
component: print it, send it, open it for editing (the old version of the OBS component is saved, a
separate copy is created), create a document in the electronic document management tool.</p>
      <p>As an example of retrieving information from a database, let's take the creation of a query in the
SQL language - finding out all the components working with the queue under index 4. Figure 4 is shown
below, showing both the structure of the query and the result of the query. As a result of executing the
requests, we see that the queue of interest to us is used by the 19 and 20 components as the output data
queue, and the module 25 as the input data queue.</p>
      <p>The developed method makes certain requirements for the process of entering information into the
database, which are dictated by the need for clear structuring and building links between metadata for
flexible search. Figure 5 depicts these relationships as relational database relationship diagrams.</p>
    </sec>
    <sec id="sec-7">
      <title>Pre‐identification method </title>
      <p>Using the previously developed design method for the components of the cross-platform OBS of
communication and navigation satellites, which involves the stage of architectural and detailed design,
we define the attributes of the components as metadata elements that allow identification, and the set
of metadata for each component is complete and sufficient to unambiguously identify an individual
component and create a flexible system search by partial match. We will also include in the metadata
the information about the component being developed that is necessary in the development process to
specify the binding of components to specific equipment (names of supported ports, types of ports,
names of queues). The developed descriptive information model of the knowledge area related to the
elements of the components of the cross-platform OBS of communication and navigation satellites will
be stored in a relational database.</p>
      <p>The above procedure for development, formalized recording and functional identification,
implemented by means of manipulating an electronic relational database, allows you to effectively
organize the creation, storage and retrieval of software components. In general, the process of working
with a separate component can be divided into stages for which you can create rules for filling in the
database:
 creation of a new component (all numbers of administrative documents become elements of
metadata associated with the components). Rule - it is necessary to fill in a complete list of
metadata related to administrative document flow, physical parameters of the selected
development platform and specific parameters, data when forming a task for creating
components;
 search for a component similar to the one under development. Rule - if the search for strict
compliance did not give any results, launch a flexible search for partial compliance, carried out
by means of the main and foreign keys of the base;
 editing / creating the required component, observing the decomposition rules for elements sent
to the database for storage (information about the developer also becomes a metadata element).</p>
      <p>Rule - one component can have several developers, it is necessary to save intermediate versions;
 component testing, test results also become metadata elements belonging to a specific
component. Rule - it is necessary to fill in all fields in a structured manner that are responsible
for certain characteristics of the testing process;
 sending the document to the archive (the electronic version of the archive document is tied to
the component). Rule - after sending to the archive, it is impossible to change the metadata or
to carry out a cascade deletion by the component number;
 component search (performed by searching for a set of metadata associated with a specific
component or by its id, if known). Rule - when searching, use standard templates written in the
development environment;
 further work with the found component (after sending the component to the archive, there is
only one editing option - creating a new instance, which can be linked to the original block
through metadata). Rule - when creating a child block based on an old instance, the new
component is assigned its own index and metadata space.</p>
      <p>The result of going through all the stages and the execution of the rules will be a built structure of a
relational database that has the ability to fully describe all the necessary metadata and has the correct
links between them. Figure 6, Figure 7, Figure 8 show an example of the description of the modules
entity, created using the presented pre-identification method.</p>
      <p>Figure 8 shows the types of data stored in attributes, as well as the parameters for the uniqueness of
these attributes.</p>
      <sec id="sec-7-1">
        <title>Figure 6:   Data types and parameters of attributes of the modules entity </title>
      </sec>
      <sec id="sec-7-2">
        <title>Figure 7:   Indices of the modules entity </title>
        <p>Figure 8 shows all the foreign keys working in the modules entity and their corresponding tables.</p>
      </sec>
      <sec id="sec-7-3">
        <title>Figure 8:   Foreign keys of the modules entity </title>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>5. Conclusion </title>
      <p>Thus, the developed identification methods provide the ability to identify previously developed
components in order to reuse them. They also allow verification of components in the process of project
development for the correspondence of the attributes of the components to the architecture of the
project.</p>
    </sec>
    <sec id="sec-9">
      <title>6. Acknowledgements </title>
      <p>The research is carried out with the support of the Krasnoyarsk Regional Fund for Support of
Scientific and Scientific and Technical Activities, within the framework of the project "Control of the
flight trajectory of aircraft in the extreme conditions of the Arctic and the Far North" in accordance with
application 2021110907918. The authors are grateful to the China Aviation Industry General Aircraft
Zhejiang Institute Co., Ltd for supporting this study and creating favorable conditions for research.
7. References </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>I. V.</given-names>
            <surname>Kovalev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. V.</given-names>
            <surname>Saramud</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. V.</given-names>
            <surname>Losev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Koltashev</surname>
          </string-name>
          ,
          <article-title>Method and tools for verification of cross-platform onboard software</article-title>
          ,
          <source>Modern innovations, systems and technologies 1</source>
          (
          <issue>2</issue>
          ) (
          <year>2021</year>
          )
          <fpage>26</fpage>
          -
          <lpage>37</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>I. V.</given-names>
            <surname>Kovalev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. V.</given-names>
            <surname>Losev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. V.</given-names>
            <surname>Saramud</surname>
          </string-name>
          et al.,
          <article-title>To the question for formation of a block-modular structure of the control system for unmanned aerial vehicles</article-title>
          ,
          <source>Modern innovations, systems and technologies 1</source>
          (
          <issue>3</issue>
          ) (
          <year>2021</year>
          )
          <fpage>54</fpage>
          -
          <lpage>71</lpage>
          . DOI 10.47813 /
          <fpage>2782</fpage>
          -2818-2021-1-3-
          <fpage>48</fpage>
          -64.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>I. N.</given-names>
            <surname>Kartsan</surname>
          </string-name>
          ,
          <article-title>Construction of ground control points for spacecraft using optimization-simulation model</article-title>
          ,
          <source>Modern innovations, systems and technologies 1</source>
          (
          <issue>2</issue>
          ) (
          <year>2021</year>
          )
          <fpage>69</fpage>
          -
          <lpage>76</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>H.</given-names>
            <surname>Ji</surname>
          </string-name>
          , Information Extraction. In: LIU L., ÖZSU M.
          <source>T. (eds) Encyclopedia of Database Systems</source>
          . Springer, Boston, MA,
          <year>2009</year>
          . https://doi.org/10.1007/978-0-
          <fpage>387</fpage>
          -39940-9_
          <fpage>204</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>H.</given-names>
            <surname>Ji</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Westbrook</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Grishman</surname>
          </string-name>
          ,
          <article-title>Using semantic relations to refine coreference decisions</article-title>
          .
          <source>Proc. Conf. Human Language Tech. and Empirical Methods in Natural Language Proc. (</source>
          <year>2005</year>
          )
          <fpage>17</fpage>
          -
          <lpage>24</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P.S.</given-names>
            <surname>Jacobs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.R.</given-names>
            <surname>Krupka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.F.</given-names>
            <surname>Rau</surname>
          </string-name>
          ,
          <article-title>Lexico-semantic pattern matching as a companion to parsing in text understanding</article-title>
          . URL: http://pdf.aminer.org/000/511/641/lexico_semantic_
          <article-title>pattern_matchin g_as_a_companion_to_parsing_in.pdf (дата обращения</article-title>
          :
          <volume>10</volume>
          .
          <fpage>01</fpage>
          .
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>H.</given-names>
            <surname>Cunningham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Maynard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Tablan</surname>
          </string-name>
          ,
          <article-title>JAPE: a Java Annotation Patterns Engine. (Second Edition)</article-title>
          .
          <source>Technical report CS--00--10</source>
          , University of Sheffield, Department of Computer Science (
          <year>2000</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>H.</given-names>
            <surname>Cunningham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Bontcheva</surname>
          </string-name>
          ,
          <source>Computational Language Systems</source>
          , Architectures,
          <source>Encyclopedia of Language and Linguistics. 2nd Edition</source>
          . Elsevier (
          <year>2005</year>
          )
          <fpage>733</fpage>
          -
          <lpage>752</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>D. N.</given-names>
            <surname>Kolisnichenko</surname>
          </string-name>
          , PHP and MySQL, Web Application Development,
          <source>BHV-Petersburg</source>
          <volume>6</volume>
          (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>I. V.</given-names>
            <surname>Kovalev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. V.</given-names>
            <surname>Saramud</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. V.</given-names>
            <surname>Losev</surname>
          </string-name>
          <article-title>Simulation environment for the choice of the decision making algorithm in multi-version real-time system</article-title>
          ,
          <source>Information and Software Technology</source>
          <volume>120</volume>
          (
          <issue>106245</issue>
          ) (
          <year>2020</year>
          ). DOI:
          <volume>10</volume>
          .1016/j.infsof.
          <year>2019</year>
          .
          <volume>106245</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>V. A.</given-names>
            <surname>Obukhov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. A.</given-names>
            <surname>Kirillov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V. G.</given-names>
            <surname>Petukhov</surname>
          </string-name>
          et al.,
          <article-title>Problematic issue of spacecraft development for contactless removal of space debris by ion beam</article-title>
          ,
          <source>Acta Astronautica</source>
          <volume>181</volume>
          (
          <year>2021</year>
          )
          <fpage>569</fpage>
          -
          <lpage>578</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>T. V.</given-names>
            <surname>Radionov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. B.</given-names>
            <surname>Molodan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Mikhalev</surname>
          </string-name>
          et al.,
          <article-title>Automated system design for experimental research of the technological process parameters of spacecraft waveguide paths induction soldering</article-title>
          ,
          <source>Iop Conference Series: Materials Science and Engineering</source>
          <volume>734</volume>
          (
          <issue>1</issue>
          ) (
          <year>2020</year>
          )
          <fpage>012137</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M. V.</given-names>
            <surname>Saramud</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.V.</given-names>
            <surname>Kovalev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.V.</given-names>
            <surname>Losev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.A.</given-names>
            <surname>Kusnetsov</surname>
          </string-name>
          ,
          <article-title>Software interfaces and decision block for the execution environment of multi-version software in real-time operating systems</article-title>
          ,
          <source>International journal on information technologies and security</source>
          <volume>1</volume>
          (
          <issue>10</issue>
          ) (
          <year>2018</year>
          )
          <fpage>25</fpage>
          -
          <lpage>34</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>V. V.</given-names>
            <surname>Losev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I. V.</given-names>
            <surname>Kovalev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.V.</given-names>
            <surname>Saramud</surname>
          </string-name>
          et al.,
          <article-title>Methodological approaches to increase the fault tolerance of software system in multiversion environments</article-title>
          ,
          <source>Journal of Physics: Conference Series</source>
          <volume>1679</volume>
          (
          <issue>5</issue>
          ) (
          <year>2020</year>
          )
          <fpage>052088</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>