??????????   ??????
DonNTU   Masters' portal

?ontents

Introduction

At the moment, software engineering is the most popular and promising engineering specialty. And the tasks of software engineering are relevant. The whole range of work, combined terms – software engineering, can be divided into a number of threads. We list the available threads of software engineering [1]:

The last three threads are executed in parallel and it is important when working so that programmers do not interfere with each other's work. In the stream analysis and design feedback occurs when identifying inconsistencies in the requirements. In this thread, sufficient information content and the ability to correctly inform what is changing at the development stage are important. In this regard, the version control system is an actual solution in this situation. One of the most important problems is the organization of a software package to support the solution of the task of version control. The aim of this work is to analyze methods and software implementations in the field of version control, identify problems and discuss possible solutions to them.

1. Place and role of the version control task in the software engineering workflow

During the development of a software product, frequent changes to the program code are made. Sometimes changing a piece of code entails fatal problems. And you need to spend a lot of energy to identify the problem area. The question is about change control. Also, given the current state of software engineering development, namely, that in most cases projects are developed not by one person, but by a group of people. This entails a number of problematic situations that are important to consider. For example, when two people can modify the same file or even part of the code; when someone needs to experiment with a new idea, without affecting the main project and without creating a new one. Then the second question appears, namely, how to design the work in such a way so that there are no conflicts during the development of a software product. And so, to summarize and get a common problem, which consists in the ability to work as a group of people without interfering with the work of each member of the group and controlling the changes both at the level of the entire project, and each individual part of it.

At the current moment of development of information technologies, a significant role is played by version control systems (VCS), which provide control over the change of any documents. They can be used both in software engineering and CAD, and in other areas of information technology.

At this stage of programming development, it is hard to imagine a project in which backups and control of different versions of files will not be important. An important point is that hard currency is able to provide a joint development of software products by a team of programmers.

The joint development of software products of a certain class of programs within the framework of hard currency allows you to accumulate different options for working software solutions. The main advantage of modern hard currency is the ability to accumulate and reuse expert knowledge about proven software solutions in a form convenient for storage, transmission and editing [4].

In connection with the widespread use of version control systems, the urgent task is to develop their capabilities and search for new areas of application.

VCS with advanced functionality allows you to create add-ons that can perform intellectual analysis and synthesis of programs based on accumulated software solutions.

2. Goal and tasks of the research

A version control system is software for simplifying work with documents that change frequently. The version control system can store different versions of the same document, and allows you to navigate through different versions of the project and even to the very first. Also, when receiving any version, you can see all changes to the document, and who made changes at what time. These systems are often used in the development of software for storing and managing documents with source code. But this does not exclude the situation that they can be used in other areas in which work takes place in frequently changing documents and you need to track all changes with them. It is also worth noting that very often, SUVs are used in CAD systems, which are used as part of a product data management system (PDM).[2]. The traditional version control system has a centralized model. The system has a certain storage and management of this system occurs on the server. The order of the main actions with the version control system:

  1. the user who works with the file receives the desired version from the repository. You can get absolutely any version, as well as the latest, and the very first.
  2. a local copy is created on the user's computer.
  3. then the user makes changes and saves the file, which will be automatically placed in the repository, but it is important to understand that the old one will not be deleted.

As mentioned above, two or more users can modify a file. In such a situation, it may happen that one user accidentally discards changes to another. The version control system monitors such conflict situations and is able to provide their solutions. If the changes of two users do not affect each other, then the system is capable of combining the changes of both users into one result file.

In various control systems there are such features as:

There are still distributed version control systems. Their main difference is that they have a distributed model, and not a traditional client-server model. They do not need a specific repository: the entire change history and all versions are stored on the machine, in local repository, and only if necessary, the necessary parts of documents are synchronized with such repository on another computer. This gives an advantage over centralized ones in that each user works on his local copy, and then he already adds (produces push) to the centralized storage. But before this stage, you need to download the current copy to your computer (pull). This is done in order to, if there are conflicts in two versions of the document (the one on the other computer and the one on the local computer), resolve them:

Benefits of Distributed Version Control Systems:

Version control systems can be used, the so-called delta-compression - this is an approach in which only changes to the document are recorded, and not the entire version. A simple example can be given on numbers, instead of writing 2, 4, 6, 7, 9, 5, 15, we will write 2, 2, 2, 1, 2, -4, 10 [3]. Since in most cases the latest version is needed, we write on the server, replacing the previous current model.

3. Analysis of the main problems and the formation of basic requirements

Having analyzed the main methods and software of the version control system. It was revealed that there is a bias in the stream of software engineering for parallelizing work processes, where it is very important that the work of one programmer does not affect the work of another. Also important points include insufficient information content when working with different versions and branches in the SUV. When you receive a new, more current version, sometimes it takes a lot of time to analyze and understand what has been changed in this particular version. The comment when uploading to the server (the so-called “commit”) in most cases has a limited size, and not everyone is able to correctly mark the completion. In this regard, the ability to identify corrections and provide instead of the changed lines the formulated analysis of changes is appropriate in the stream of software engineering:

4. Proposed way to create an intelligent add-in

An add-in (plug-in) is an independently compiled software module that is dynamically connected to the main program and intended for expansion.

To solve the problem, it is proposed to use the way to create an intellectual add-on over git. A git-based add-in, as a specific problem-oriented CAD system, should have the following characteristics:

Conclusion

Widespread use of hard currency opens up further prospects in their development, the search for new solutions and directions for their use.

In this work, a general analysis of the features and purposes of hard currency, a private analysis of version control systems with advanced functionality, and ways to create an intelligent add-on based on hard currency of this class are proposed.

Thus, this paper proposes one of the new possible new areas of application for hard currency, which consists in using its functionality as a basis for creating intelligent CAD software on their basis.

The essence of the proposed path is to create an intelligent add-on that will allow you to perform intellectual analysis and synthesis of programs using the experience of programmers in the development of a software product in a specific software field, accumulated in the framework of hard currency.

As a promising work, it is necessary to determine the creation of a set of specific methods and mechanisms for implementing the chosen path.

References

  1. Analysis of requirements and other work flows of software engineering [Electronic resource] - Access mode: https://studfiles.net/preview/1644196/page:17/ - Zagl. from the screen.
  2. Version control system [Electronic resource] // Wikipedia - Access mode: https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC % D0% B0_% D1% 83% D0% BF% D1% 80% D0% B0% D0% B2% D0% BB% D0% B5% D0% BD% D0% B8% D1% 8F_% D0% B2% D0 % B5% D1% 80% D1% 81% D0% B8% D1% 8F% D0% BC% D0% B8.
  3. Delta coding [Electronic resource] // Wikipedia - Access mode: https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BB%D1%8C%D1%82%D0%B0 % D0% BA% D0% BE% D0% B4% D0% B8% D1% 80% D0% BE% D0% B2% D0% B0% D0% BD% D0% B8% D0% B5
  4. Grigoryev A.V., Grishchenko D.A. - Intellectualization of the hardware design process using VHDL language [Electronic resource] - Access mode: http://masters.donntu.ru/2007/fvti/tsatsenkina/library/stat_kosh.htm.
  5. Grigoryev A.V. - Ways to create intelligent CAD systems at various expert skill levels [Electronic resource] - Access mode: http://masters.donntu.ru/2010/fknt/shaydt/library/article4.htm.