You are here
Department of System Programming
Head of the department: Victor P. Ivannikov, Academician of RAS, Professor, Dr.Sc.
The Department was founded in 1970 simultaneously with the CMC Faculty. The position of the head of Department was hold by the Distinguished Professor of the Moscow State University, Academician of the Russian Academy of Natural Sciences M.R. Shura-Bura (1918 — 2008).
The Department prepares specialists in information technologies with a more profound knowledge in the following areas: the general questions of software engineering and information security, architecture of the system software including operating systems, compilers, database management systems, the telecommunication software and middleware.
Along with the fundamental lecture courses, students also study main technologies of software engineering and special courses on architecture and methods for the system software development.
An important part of our specialists' education is formed by the special seminars of the Department and their special practice. The set of special courses supported by a related practice, forms a basis for preparing high level specialists who are able to create in practice and to maintain at different stages the software systems of various scale and complexity, both in state and commercial organizations.
The main subjects of special seminars include the following research directions: the distributed object-oriented systems; program analysis and optimization; correctness of programs; database technologies; technologies of the automated software engineering and knowledge engineering (CASE and CAKE); Internet technologies, the distributed information systems and digital libraries; operating systems and programming languages for the distributed systems.
For many years the Department successfully cooperates with the Institute for System Programming (RAS), M.V. Keldysh Institute of Applied Mathematics (RAS), A.A. Dorodnitsyn Computing Center (RAS) and other organizations.
Staff members:
- Victor A. Krukov, Professor, Dr.Sc.
- Sergey D. Kuznetsov, Professor, Dr.Sc.
- Alexander K. Petrenko, Professor, Dr.Sc.
- Vladimir A. Serebriakov, Professor, Dr.Sc.
- Leonid E. Karpov, Associate Professor, Dr.Sc.
- Sergey S. Gayssaryan, Professor, PhD
- Eugene P. Vedeneev, Associate Professor, PhD
- Ludmila S. Korukhova, Associate Professor, PhD, Vice Head and Scientific Secretary of the Department
- Eugenia A. Kuzmenkova, Associate Professor, PhD
- Victor V. Kuliamin, Associate Professor, PhD
- Victor V. Malyshko, Associate Professor, PhD
- Vladislav A. Fisun, Associate Professor, PhD
- Andrey A. Belevantsev, Associate Professor, PhD
- Vartan A. Padaryan, Associate Professor, PhD
- Alexey V. Khoroshilov, Associate Professor, PhD
- Denis Yu. Turdakov, Associate Professor, PhD
- Eugene V. Kornykhin, Senior Lecturer, PhD
- Vladimir A. Bakhtin, Assistant Professor, PhD
- Vladimir A. Morozov, Assistant Professor
- Sergey V. Morozov, Assistant Professor, PhD
- Oleg A. Tarlapan, Assistant Professor, PhD
- Mikhail A. Soloviev, Assistant Professor, PhD
- Kirill A. Batuzov, Mathematician
- Kirill B. Teimurazov, Mathematician
- Irina A. Savosina, Technician
Regular courses:
- Algorithms and programming languages by Prof. Gayssaryan and Dr. Belevantsev, 54 lecture hours and 72 seminar hours.
- Computer architecture and Assembler by Prof. Ivannikov and Dr. Padaryan, 48 lecture hours and 64 seminar hours.
- Programming systems by Assoc. Prof. Karpov, 46 lecture hours and 60 seminar hours.
- Databases by Prof. Kuznetsov, 128 lecture hours.
- Compiler construction by Prof. Serebriakov, 48 lecture hours and 16 seminar hours.
- Databases by Dr. Morozov and Dr. Tarlapan, 36 lecture hours.
- Distributed operating systems by Prof. Krukov and Dr. Bakhtin, 36 lecture hours.
- Object-oriented analysis and design by Assoc. Prof. Malyshko, 32 lecture hours and 32 seminar hours.
- Parallel processing by Assoc. Prof. Fisun, 68 lecture hours.
- Software formal specification and verification by Prof. Petrenko and Dr. Khoroshilov.
Special courses:
- Component-based software development by Assoc. Prof. Kuliamin, 36 lecture hours.
- Model-based testing by Assoc. Prof. Kuliamin, 36 lecture hours.
- Parallel programming for high performance computing by Dr. Bakhtin and Assoc. Prof. Popova, 36 lecture hours.
- Static analysis and machine-independent optimization of programs in the compilers by Prof. Gayssaryan, 32 lecture hours.
- Distributed software systems architecture by Assoc. Prof. Karpov, 36 lecture hours.
- Additional chapters of databases by Prof. Kuznetsov, 64 lecture hours.
- Modern operating systems by Prof. Kuznetsov, 128 lecture hours.
- Introduction to text processing by Dr. Turdakov, 36 lecture hours.
Special scientific seminars:
- Program analysis and transformation by Prof. Gayssaryan.
- Operating systems and programming languages for Distributed Computing Systems by Prof. Krukov and Dr. Bakhtin.
- Software Correctness by Prof. Petrenko, Assoc. Prof. Kuliamin, Dr. Khoroshilov.
- Goal-oriented Activity Planning by Assoc. Prof. Korukhova., Assoc. Prof. Malyshko, Dr. Morozov.
- Databases by Prof. Kuznetsov and Dr. Paskonin.
- Management of data and information systems by Prof. Ivannikov and Dr. Turdakov.
- Distributed systems, Internet and digital libraries by Prof. Serebriakov.
Main Scientific Directions:
Management of data and information systems
(Academician Victor Ivannikov, Ph.D. Denis Turdakov)
The main directions of research are connected with text mining and distributed systems for data management and analysis.
A toolkit for text mining (Texterra) has been developed in collaboration with the Institute for System Programming of the RAS. Novel methods for text processing exploit semantics extracted from ontologies that are automatically constructed from the Web-sources like Wikipedia. The toolkit includes the following tools:
- Ontology Manager
- Text Categorizer
- Fact Extractor
- Search and Navigation Engine
Basing on this toolkit a system for content exploration (Blognoon.com) has been developed. It performs the semantic search and content browsing, generates an automatic description of content and its source, and recommends other content sources. The system increases the search and browsing efficiency by semantically ranking results and supporting facets browsing. Possible applications of this system include news monitoring and analyzing, electronic libraries organization, enterprise knowledge bases and workflow systems building.
Information extraction from tabular data is also investigated. In this direction self-learning methods for classification and clusterisation have been developed. The algorithm learns the semantics of processed data by tracking user actions and then uses it to search duplicates of data in tables.
Another direction of research is an analysis of social interactions in the Web, in particular: detection of static and dynamic groups in social networks; analysis of information flows and influencer detection; identification of users by analyzing the structure of social graphs. Developed distributed algorithms are used for building scalable systems based on the open source technologies for cloud computing such as Apache Hadoop.
Ongoing research is supported by grants from the Russian Foundation for Basic Research and different commercial companies. Results of work in these areas are published in proceedings of the high-ranking international conferences.
Program analysis and optimiztion
(Professor Sergey S. Gayssaryan )
The Department’s team is researching and developing program optimizations for modern processor architectures (x86/x86-64, ARM) using GCC and LLVM compilers. Inter-procedural optimizations, machine-dependent optimizations, automatic compiler tuning tools (for given program and machine architecture), and user feedback-directed dynamic optimizations are applied.
The following works are performed jointly with the Institute for System Programming of Russian Academy of Sciences: creating tools for automatic defect detection in the C/C++ source code using static and dynamic analysis, analyzing binary programs that are built for various target architectures to allow reverse engineering those programs’ algorithms and data structures.
Research on the emulation technology (based on QEMU) and on the hardware virtualization, including high-performance computing virtualization, is also performed. A number of other topics are also being researched, including but not limited to: compiler technologies for supporting effective programming of multicore, heterogeneous (with accelerators similar to GPUs), and massively parallel distributed architectures; profiling and code analysis tools for the application programmers that support program parallelization for those architectures.
The research mentioned above is supported by grants of the Russian Foundation for Basic Research, by finances of the Russian Academy of Sciences, by contracts with the Ministry of Science and Education of the Russian Federation within the topics of federal financing programs, and by commercial contracts with foreign and national companies.
Automation of parallel programming
(Professor Victor A. Krukov, Ph.D. Vladimir A. Bakhtin)
Students and graduates together with the staff of Keldysh Institute of Applied Mathematics (RAS) are working on the development of a DVM-system.
The DVM-system is widely known – it is used for developing applications for parallel computing of various scientific and engineering problems, for studying the parallel programming in Faculty of Computational Mathematics and Cybernetics at MSU and other Universities. The main directions of work include: 1. hybrid high-level programming languages that combine different models of parallel programming; 2. languages with implicit parallelism (for example, standard Fortran or C). When a programmer uses these languages he does not need to know the architecture of parallel computers, thus the mapping of these programs to parallel machines can be carried out automatically; 3. automation of transformation of existing sequential programs into efficient parallel programs on hybrid languages or languages with implicit parallelism.
Database technologies
(Professor Sergey D. Kuznetsov)
The Department develops new technologies of data management. New algorithms for DBMS development are continuously monitored. The research is done within the area of relational DBMSs as well as in a recently popular direction of NoSQL DBMSs.
These efforts result in new techniques of transaction management which is based on data versioning, techniques of semistructural data with use of descriptive schemes, new algorithms, and data structures for index maintenance. These and other results are described in many research papers and used by PhD students of the Department in their theses. Practical aspects of this research are emphasized. The most part of new algorithms are deployed in the native XML DBMS Sedna. Sedna is the full-featured DBMS which supports ACID transactions, triggers, indexes, and XML data model. The user interface of the system is based on XQuery.
Sedna has been developed by employees and PhD students of the Department and the Institute for System Programming of RAS. The system is used in different applications. In particular, it has been used within the content management system of the Great Russian Encyclopedia, as a basis of the system wikiXMLDB for querying Wikipedia etc.
This research has been supported by grants of the Russian Foundation for Basic Research.
Software Correctness
(Professor Alexander K. Petrenko)
Software and hardware design, analysis, and verification methods targeted on higher quality, reliability, and interoperability of resulting complex systems are developed. This development is based on constructing formal models of requirements, automation of model analysis, and integrated tool chain supporting the whole development lifecycle. It focuses on results’ quality assurance and checking conformance between the code and models created.
Significant results have been achieved in the following directions:
- Automated test construction based on formal models in the form of finite state machines combined with software contracts;
- Automated test data generation based on grammars, combinatorial approaches, and automatic constraints solving;
- Test automation architecture combining accuracy of formal models with flexibility and extensibility required for successful practical software and hardware development;
- Code verification based on integration of static analysis and model checking with lazy counterexample-based abstraction.
These approaches are used successfully in the UniTESK technology of an automated test construction on the base of formal models (www.unitesk.com); in the tools for simulation testing of high-level hardware models (hardware.ispras.ru); in the tool set for an interoperability assurance between applications and various Linux versions (ispras.linuxfoundation.org); in the framework for requirement analysis, design, and testing of the avionic software; in the tools for an automatic verification of Linux drivers and test suites for mathematical libraries.
The research in these areas is conducted in collaboration with industrial leaders of the information technology development like Microsoft, Intel, the Fraunhofer Institute, and several European universities. The research and development results are applied in the Russian industry, including telecommunication companies and other commercial developers of highly-reliable software and hardware.
Distributed systems, internet and digital libraries
(Professor Vladimir A. Serebriakov)
The main areas of research form the study and development of formal foundations of modern technologies and various approaches to building distributed information systems, in particular, digital libraries. These technologies are the foundation of the Semantic Web which forms the so-called pyramid Semantic Web. The research results are also used in the teaching process, students study the elements of the pyramid and technologies elaborated for real practical systems.
Recent papers:
- V.V.Kuliamin and A.A. Petukhov, Covering arrays generation methods survey // Leveraging Applications of Formal Methods, Verification, and Validation: Lecture Notes in Computer Science. Berlin, Germany: Springer, no. 6416, pp. 382-396, 2010.
- V.V.Kuliamin and A.A. Petukhov, Covering arrays generation methods survey // Proceedings of ISOLA'2010, part II. Lecture Notes in Computer Science. Berlin: Springer, no. 6416, pp. 382-396, 2011.
- M.A.Grineva, M.N.Grinev, D.A.Lizorkin, A.A.Boldakov, D.Y.Turdakov, A.A.Sysoev and A.S.Kiyko, Blognoon: exploring a topic in the blogosphere [PDF]
(http://www.www2011india.com/proceeding/companion/p213.pdf).
• 2013
- Astrakhantsev N.A., Turdakov D.Yu. Automatic construction and enrichment of informal ontologies: A survey // Programming and Computer Software. 2013. 39. N 1. P. 34-42.
- Nedumov Ya.R., Turdakov D.Yu., Maiorov V.D., Ovchinnikov P.E. Automation of data normalization for implementing master data management systems // Programming and Computer Software. 2013. 39. N 3. P. 115-123.
• 2012
- Mandrykin M.U., Mutilin V.S., Novikov E.M., Khoroshilov A.V., Shved P.E. Using Linux device drivers for static verification tools benchmarking // Programming and Computer Software. 2012. 38. N 5. P. 245-256.