D. V. Koznov’s research while affiliated with St Petersburg University and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (19)


Calculating Similarity of Javadoc Comments
  • Article

May 2024

·

14 Reads

Programming and Computer Software

D. V. Koznov

·

E. Yu. Ledeneva

·

·


“Symcrete” memory Model with Lazy Initialization and Objects of Symbolic Sizes in KLEE

January 2023

·

14 Reads

Proceedings of the Institute for System Programming of RAS

Sergey Antonovich Morozov

·

Aleksandr Vladimirovich Misonizhnik

·

Dmitry Aleksandrovich Mordvinov

·

[...]

·

Dmitry Arkadevich Ivanov

Dynamic symbolic execution is a well-known technique for testing applications. It introduces symbolic variables – program data with no concrete value at the moment of instantiation – and uses them to systematically explore the execution paths in a program under analysis. However, not every value can be easily modelled as symbolic: for instance, some values may take values from restricted domains or have complex invariants, hard enough to model using existing logic theories, despite it is not a problem for concrete computations. In this paper, we propose an implementation of infrastructure for dealing with such “hard-to-be-modelled” values. We take the approach known as symcrete execution and implement its robust and scalable version in the well-known KLEE symbolic execution engine. We use this infrastructure to support the symbolic execution of LLVM programs with complex input data structures and input buffers with indeterminate sizes.


Evaluation of Similarity of Javadoc Comments
  • Article
  • Full-text available

January 2023

·

1 Read

Proceedings of the Institute for System Programming of RAS

Code comments are an essential part of software documentation. Many software projects suffer the problem of low-quality comments that are often produced by copy-paste. In case of similar methods, classes, etc. copy-pasted comments with minor modifications are justified. However, in many cases this approach leads to degraded documentation quality and, subsequently, to problematic maintenance and development of the project. In this study, we address the problem of near-duplicate code comments detection, which can potentially improve software documentation. We have conducted a thorough evaluation of traditional string similarity metrics and modern machine learning methods. In our experiment, we use a collection of Javadoc comments from four industrial open-source Java projects. We have found out that LCS (Longest Common Subsequence) is the best similarity algorithm taking into account both quality (Precision 94%, Recall 74%) and performance.

Download

Debugger for Declarative DSL for Telecommunication

January 2023

Proceedings of the Institute for System Programming of RAS

Development of telecommunication product lines is still a very labor-intensive task, involving a great amount of human resources and producing a large number of development artifacts — code, models, tests, etc. Declarative domain-specific languages (DSLs) may reasonably simplify this process by increasing the level of abstraction. We use the term “declarative” implying that such a DSL does not enable the development of a closed software application, but rather supports creation, generation and maintenance of various kind of software assets — product database, events and event handlers, target code data structures, etc. At the same time, such a DSL may have some executable semantic, but it could be very specific and have many environment-wise requirements. Thus, execution and debugging of such DSL specifications is a meaningful task, which has no common solution due to the unique executable semantic. Consequently, it is not possible to use debug facilities of known DSL environments, such as xtext, MPS, etc. for such a case. In the current paper, we present a debugger for DevM — a declarative DSL intended for support device management in software development in the context of a router product line by a large telecommunication company. We clarify executable semantic for DevM, making it possible to execute DevM specifications in an isolated environment, i.e. in simulation mode, without generation of target code. We use a graphic model-based notation to depict every step of execution. Finally, we implement and integrate the debugger in the DevM IDE, using Debug Adapter Protocol and language server architecture combined with the Eclipse xText/EMF tool chain.




Automated testing of LLVM programs with complex input data structures

January 2022

·

8 Reads

·

8 Citations

Proceedings of the Institute for System Programming of RAS

Symbolic execution is a widely used approach for automatic regression test generation and bug and vulnerability finding. The main goal of this paper is to present a practical symbolic execution-based approach for LLVM programs with complex input data structures. The approach is based on the well-known idea of lazy initialization, which frees the user from providing constraints on input data structures manually. Thus, it provides us with a fully automatic symbolic execution of even complex program. Two lazy initialization improvements are proposed for segmented memory models: one based on timestamps and one based on type information. The approach is implemented in the KLEE symbolic virtual machine for the LLVM platform and tested on real C data structures — lists, binomial heaps, AVL trees, red-black trees, binary trees, and tries.



Static Checking Consistency of Temporal Requirements for Control Software

October 2021

·

17 Reads

·

1 Citation

Communications in Computer and Information Science

In this paper, we propose an approach to checking consistency of control software requirements described using pattern-based notation. This approach can be used at the beginning of control software verification to effectively identify contradicting and incompatible requirements. In this framework, we use pattern-based Event-Driven Temporal Logic (EDTL) to formalize the requirements. A set of requirements is represented as a set of EDTL-patterns which formal semantics defined by formulas of linear-time temporal logic LTL. Based on this semantics, we define the notion of requirement inconsistency and describe restrictions on the values of pattern attributes which make requirements inconsistent. Checking algorithm takes as an input pairs of requirements and compare their attributes. Its output is sets of consistent, inconsistent and incomparable requirements.


Visual Language for Device Management in Telecommunication Product Line

October 2021

·

32 Reads

·

1 Citation

Communications in Computer and Information Science

In the present paper, we consider the task of creating hardware specifications for telecommunication devices that close the communication gap between hardware engineers and software developers. This task has arisen during the development of a family of telecommunication systems at Huawei. The specifications need to describe hardware from the viewpoint of driver development (i.e., device management), omitting many hardware details and including information for automatic generation of driver data structures and signatures. Furthermore, they need to be comprehensive and illustrative for both engineering groups. To meet this challenge, we propose a visual language supporting five views (representations): Structured view (all structural elements of a device), Composite view (all connections of a device), Datapath view (device parts that process the data flow), Control view (device parts that control the data flow processing), and Service view (device parts that provide additional functionality). We present an implementation of the visual language built with the Eclipse Modeling Tools Xtext/EMF/Sirius and integrated into a development environment for device management. We have received positive feedback from the device management software engineers.


Citations (8)


... Their interpretation falls entirely on the implementation of inference engine. We suggest to create ontologies using environment of our visual ontology editor named ONTOLIS [11][12][13]. ONTOLIS is aimed at ordinary users and at the same time allows developers uniformly storing a wide range of attributes in the nodes and arcs of the ontology graph in a unified form which is necessary to take into account the specifics of solving specific tasks during inference [13]. This allows the user to expand the possibilities of interpreting ontologies to some extent, providing an inference engine with additional information in simple machine-readable format, which gives the opportunity to modify its behavior (including referencing external tools). ...

Reference:

Ontology-based Neurointerface IoT Integration Approach
Ontology-Driven Visual Analytics Software Development
  • Citing Article
  • June 2022

Programming and Computer Software

... In this way, we have showed how to turn the requirements validation into tests. Although we are still on the initial path in creating test cases for this formalism, some patterns for more complex control systems have already been discussed in a CSMML workshop publication [21]. ...

Static Checking Consistency of Temporal Requirements for Control Software
  • Citing Chapter
  • October 2021

Communications in Computer and Information Science

... The problem is in a large range of hardware, complicated hardware connections (in particular, it is possible to insert various cards into the motherboard of the router) and various configurations of one product depending on demands of customers. To meet these problems, a special declarative DSL was developed [2]. This language provides the ability to specify hardware structure of the product that is visible to software. ...

Visual Language for Device Management in Telecommunication Product Line
  • Citing Chapter
  • October 2021

Communications in Computer and Information Science

... Properties are not identified in this approach. Moreover, the authors of [13] extracted requirements of concurrent systems from documentation to verify the designs of the systems and ensure their correctness. They adopted ontologies to extract requirements and used ontology instances to represent system modules for supporting formal verification. ...

An Ontology-Based Approach to Support Formal Verification of Concurrent Systems
  • Citing Chapter
  • August 2020

Lecture Notes in Computer Science

... Luciv et al. (2016Luciv et al. ( , 2018 and Koznov et al. (2015) proposed methods to automate the detection of repeated fragments of text in technical documentation. They also suggested methods to modify, refactor and manage the document based on the texts identified, to improve the quality of documentation (Koznov et al. 2017). These works perform duplicate detection within a single documentation type and propose changes and refactoring on individual documents. ...

Duplicate management in software documentation maintenance

... This section offers valuable insights into 32 predictors [7,[12][13][14][15][16][17][18][19][20][21][22][23][24][33][34][35][36][37][38][39][40][41][42][43][44][45][46][47][48][49][50] developed over past 10 years for conflict/duplicate detection in requirements. Among these, specifically 12 predictors [7,12,16,17,[33][34][35][36][37][38][39][40] focus on duplicate detection, while 17 predictors [13,14,18,19,[22][23][24][41][42][43][44][45][46][47][48][49][50] target conflict identification. ...

Detecting Near Duplicates in Software Documentation

Programming and Computer Software

... In [16] we presented a pilot version of a duplicate detection algorithm based on the n-gramm model (a processing natural language processing technique). The algorithm showed some interesting results and appeared quite simple. ...

Discovering Near Duplicate Text in Software Documentation

Proceedings of the Institute for System Programming of RAS