The paper deals with the problems of developing tracing software for hard real-time systems. Currently, almost every real-time operating system (RV OS) has event tracking software. The goal of this software is to search for «ordinary» software errors (which traditional debuggers cannot handle) and real-time errors. In this case, it is necessary to analyze not only the sequence of events, but also the «memory leak», the dynamics of the processor states and control flows (profiling), the states of semaphores, mutexes, and other synchronization tools, as well as the queue of control flows waiting to release the resources they need. The methodology for designing programs for viewing and analyzing event logs (traces) generated by RTOS-based software systems is regarded. Specifics of visualizing RTOS events and time diagrams of states of objects in the analyzed systems, represented by data sets containing a large number of records are discussed. A formal specification is proposed to the tracing data models, the methods for their visualization and for filter management of trace records and object states. The effectiveness of these models and methods is confirmed by the operating experience of “The Tool for Viewing and Analyzing the Event Logs for RTOS ‘Baget’ family”, developed with the toolkit for creating graphical user interfaces GTK+.
The paper is devoted to the problem of early error detection and analysis in hyperconverged systems. One approach to organizing hyperconverged systems is to install on each physical server a separate instance of an operating system (OS) that carries virtualization tools and tools for administering and using a distributed data warehouse. Errors can occur both at the level of a single OS instance and at the level of the entire cluster. For example, incorrect control element commands from one infrastructure node can cause software failure on another node. In addition, errors from the subsystems of the cluster can provoke abnormal situations inside virtual machines. The complexity of the architecture of hyperconverged systems makes it difficult to analyze the errors that occur in them. To simplify such an analysis and increase its effectiveness, it is necessary to automate the process of detecting problems and collecting data necessary for their study and correction. Existing approaches for automation of error detection are described and various improvements are suggested to adopt them for systems where distributed storage and virtualization technologies are actively used. Improvements include log collection from the whole cluster just after the error occurred, additional analysis of guest operating system behaviour inside virtual machines, usage of a knowledge base for automated crash recovery and duplicate detection. Finally, a real-life scenario of error handling process in Virtuozzo company products is described starting from error detection and ending with fix deployment.
The creation of reliable unmanned aerial vehicles (drones) now is an important task in the science and technology, because such devices can have a lot of use-cases in the digital economy and modern life, so we need to ensure the reliability here. In this article, it is proposed to assemble a quadcopter from low-cost components in order to obtain a hardware prototype and to develop a software solution for the flight controller with high-reliability requirements, which will meet avionics software standards using existing open-source software solutions, and also apply the results as a model for teaching courses “Components of operating systems” and “Software verification”. In the study, we proceed to analyse the structure of quadcopters and flight controllers for them, represent a self-assembly solution. We describe Ardupilot as open-source software for unmanned aerial vehicles, the appropriate APM controller and methods of PID control. Today's avionics standard of reliable software for flight controllers is a real-time partitioning operating system that is capable of responding to events from devices with an expected speed, as well as sharing processor time and memory between isolated partitions. A good example of such OS is the open-source POK (Partitioned Operating Kernel). In the repository, it contains an example design of a system for the quadcopters using AADL language for modeling its hardware and software. We apply such a technique with Model-driven engineering to a demo system that runs on real hardware and contains a flight management process with PID control as a partitioned process. Using a partitioned OS brings the reliability of flight system software to the next level. And to increase the level of control logic correctness we propose to use formal verification methods and provide examples of verifiable properties at the level of code using the deductive approach as well as at the level of the cyber-physical system using Differential dynamic logic to prove the stability.
The paper considers the task of capturing controlled by a researcher stereo visualization of a complex dynamic virtual scene into a stereopair videosequence (stereoclip) of ultrahigh resolution. An efficient technology of deferred synthesis of stereoclips is proposed. It allows to create stereoclips without violating a real-time visualization. The technology includes real-time constructing of scenario of visualization process and offline-transforming the scenario to stereoclip. In the paper methods to realize these stages are considered for the task of stereovisualization of saturation isosurface of displacing liquid. For this, original file format «scr» of visualization scenario is developed, based on «chunk» data structures. The format developed provides a compact representation of neighboring repeated frames. Transforming scenario file to a sequence of 4K-stereopairs is carried out by means of an offscreen rendering of virtual scene, and adding stereopairs to a stereoclip is performed using a number of open-source FFmpeg libraries designed for processing digital video content. For video recording media container MP4 and video compressing standard H.264 are used. Proposed technologies and methods of 4K-stereoclips deferred synthesis are implemented in a program complex for visualization of simulation results of unstable oil displacement from porous media. By means of the program complex a 4K-stereoclip is created, which illustrates the evolution of the isosurface during the process of unstable oil displacement. The approbation results confirmed the adequacy of the proposed solution to the task. Developed solutions can be used in virtual laboratories, in constructing of virtual environment systems and scientific visualization systems, in educational applications etc.
In the current scenario, the popularity of smartphones has led to the emergence of an ample collection of mobile applications (apps). Mobile apps are dynamic in nature; therefore, classical software development approaches are not suitable. Individual needs of the customer, new technology, battery consumption, and many more issues force app developers regularly introduce new apps to the market. But due to the unavailability of any formal and customized practices of app development, various issues occur in mobile apps. These issues may adversely affect the application and user acceptance of the end product. In this paper, fifteen issues in mobile apps have been identified. Then we applied Fuzzy-DEMATEL (Decision Making Trial and Evaluation Laboratory) method to analyze the critical mobile issues (CMIs) and divide these issues into cause and effect groups. Firstly, multiple experts evaluate the direct relations of influential issues in mobile apps. The evaluation results are presented in triangular fuzzy numbers (TFN). Secondly, convert the linguistic terms into TFN. Thirdly, based on DEMATEL, the cause-effect classifications of issues are obtained. Finally, the issues in the cause category are identified as CMIs in mobile apps. The outcome of the research is compared with the other variants of DEMATEL like G-DEMATEL and E-DEMATEL and the comparative results suggest that fuzzy-DEMATEL is the most fitting method to analyze the interrelationship of different issues in mobile apps development. The outcome of this work definitely assists the mobile apps development industry to successful identification of the serious issues where professionals and project managers could really focus on.
An approach to testing artificial neural networks is described. The model of neural network is based on graph theory, and operations that are used in theoretical works devoted to graphs, trees, paths, cycles, and circuits. The methods are implemented in a C++ program in the form of a set of data structures and algorithms for their processing. C++ classes are used as data structures for implementing the processing of such objects as a graph vertex, edge, oriented and undirected graph, spanning tree, circuit. Lists of standard methods (constructors and destructors, different assigning operations) are given for all classes. Additional operations are represented in details, and among them – adding one graph to another graph, adding an edge to a graph, removing edges and vertices from graph, normalizing graph, and some more. Many different searching operations are offered. Variants of graph sorting operations are also included into graph model, some of them are similar to array sorting algorithms, and some are more specific. Above these low-level operations several more complex operations are considered as graph model components. These operations include building spanning tree for arbitrary graph, building cograph for spanning tree of a graph, discovering circuits in a graph, evaluating of circuit sign, and so on. Examples of the interfaces of the most important overloaded operations on the objects used are given. An example is given of implementation of one of testing procedures where overloaded operations of graph model objects are used.
The supervised learning problem is discussed in the article: it is necessary to restore the dependence that maps a vector set into a scalar based on a finite set of examples of such a mapping - a training sample. This problem belongs to the class of inverse problems, and, like most inverse problems, is mathematically incorrect. This is expressed in the fact that if you construct the solution using the least squares method according to the points of the training sample, you may encounter retraining – a situation where the model describes the training set well, but gives a big error on the test one. We apply the approach when a solution is sought in the form of an ensemble of predictive models. Ensembles are built using the bagging method. Perceptrons and decision trees are considered as basic learning models. The final decision is obtained by weighted voting of predictors. Weights are selected by minimizing model errors in the training set. To avoid over-fitting in the selection of weights, Bayesian regularization of the solution is applied. In order to choose regularization parameters, it is proposed to use the method of orthogonalized basic functions, which allows obtaining their optimal values without using expensive iterative procedures.
This study is concerned with local search metaheuristics for solving Capacitated Vehicle Routing Problem (CVRP). In this problem the optimal design of routes for a fleet of vehicles with a limited capacity to serve a set of customers must be found. The problem is NP-hard, therefore heuristic algorithms which provide near-optimal polynomial-time solutions are still actual. This experimental analysis is a continue of previous research on construction heuristics for CVRP. It was investigated before that Clarke and Wright Savings (CWS) heuristic is the best among constructive algorithms except for a few instances with geometric type of clients’ distribution where Nearest Neighbor (NN) heuristic is better. The aim of this work is to make a comparison of best-known local search metaheuristics by criteria of error rate and running time with CWS or NN as initial algorithms because there were not found any such state-of-the-art comparative study. An experimental comparison is made using 8 datasets from well-known library because it is interesting to analyze “effectiveness” of algorithms depending on type of input data. Overall, five different groups of Pareto optimal algorithms are defined and described.
UML Activity Diagrams are widely used models for representing software processes. Models built from event logs, recorded by information systems, can provide valuable insights into real flows in processes and suggest ways of improving those systems. This paper proposes a novel method for mining UML Activity Diagrams from event logs. The method is based on a framework that consists of three nested stages involving a set of model transformations. The initial model is inferred from an event log using one of the existing mining algorithms. Then the model, if necessary, is transformed into an intermediate form and, finally, converted into the target UML Activity Diagram by the newly proposed algorithm. The transforming algorithms, except one used at the last stage, are parameters of the framework and can be adjusted based on needed or available models. The paper provides examples of the approach application on real life event logs.
Event logs of software systems are used to analyze their behaviour and inter-component interaction. Artificial event logs with desirable specifics are needed to test algorithms supporting this type of analysis. Recent methods allow to generate artificial event logs by simulating ordinary Petri nets. In this paper we present the algorithm generating event logs for Petri nets with inhibitor and reset arcs. Nets with inhibitor arcs are more expressive than ordinary Petri nets, and allow to conveniently model conditions in real-life software. Resets are common in real-life systems as well. This paper describes the net simulation algorithm, and shows how it can be applied for event log generation.
In this paper, we propose an approach to implementation of the algorithm for computing transition priorities for live Petri nets. Priorities are a form of constraints which can be imposed to ensure liveness and boundedness of a Petri net model. These properties are highly desirable in analysis of different types of systems, ranging from business processes systems to embedded systems. The need for them is imposed by resource limitations of real-life systems. The algorithm for computing transition priorities considered in the study has exponential time complexity, since it is based on construction and traversal of the coverability graph. However, its performance may be sufficient for the majority of real-life cases. This paper covers the design considerations of the implementation, including the approach to handling the high time complexity of the algorithm and optimizations introduced in the original algorithm. We target parallelization as the main method of performance increase. While, for some steps of the algorithm the parallelization approach proves to be viable, for others its applicability is questioned. Analysis of different design decisions is provided in the text. On the basis of the actual implementation an application for computing priorities was developed. It can be used for further analysis of the algorithm applicability for real-life cases.
We consider a distributed network whose communication graph is a non-oriented tree. It is assumed that the network itself can change its topology. For this, an extremely local atomic transformation is proposed - the addition of an edge connecting the different ends of two adjacent edges, and the simultaneous removal of one of these edges. This transformation is performed by "command" from the vertex of the tree, namely, the common vertex of two adjacent edges. It is shown that any other tree can be obtained from any tree using only atomic transformations. If trees with degree bounded d (d>2) are considered, then the transformation does not violate this restriction. As an example of the goal of such a transformation, the tasks of maximizing and minimizing the Wiener index of a tree with a bounded degree of vertices without changing the set of its vertices are considered. Corresponding distributed algorithms are proposed and linear estimates of their complexity are proved.
Graph data models are widely used in different areas of computer science such as bioinformatics, graph databases, social networks and static code analysis. One of the problems in graph data analysis is querying for specific paths. Such queries are usually performed by means of a formal grammar that describes the allowed edge-labeling of the paths. Path query is said to be calculated using relational query semantics if it is evaluated to triple , such that there is a path from to such that the labels on the edges of this path form a string derivable from the nonterminal . As the regular and context-free languages have limited expressive power, we focus on a more expressive languages, namely the Boolean languages that use Boolean grammars to describe the labeling of paths. Although path querying using relational query semantics and Boolean grammars is known to be undecidable, in this work we propose a path querying algorithm on acyclic graphs which uses relational query semantics and Boolean grammars and approximates the exact solution. To achieve better performance in compare with the naive algorithm, considered classes of graphs were limited to acyclic graphs.
ISSN 2220-6426 (Online)