Научная статья на тему 'SOFTWARE MODEL VERSION CONTROL AND COLLABORATION'

SOFTWARE MODEL VERSION CONTROL AND COLLABORATION Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
20
6
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
TESTING / SOFTWARE ENGINEERING / MODELING TOOLS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Kuryazov D.A., Jumanazarov B.B., Sobirov J.Sh.

Evolution and maintenance of the large-scaled software models require collaboration of several designers on the shared modeling artifacts. Since collaborators manipulate shared models in real-time, synchronization of the model changes is the main challenging aspect for collaborative modeling application. In order to achieve efficient real-time synchronization of changes, these changes have to be properly identified, represented by appropriate notations and exchanged by modeling deltas.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРОЦЕССА СОВМЕСТНОГО МОДЕЛИРОВАНИЯ

Эволюция и обслуживание масштабных моделей программного обеспечения требуют совместной работы нескольких дизайнеров на общих моделирования артефактов. Так как сотрудники совместно используют модели в реальном времени, синхронизация изменений модели является основным сложным аспектом для применения совместного моделирования. Для достижения эффективной синхронизации в реальном масштабе времени изменения, эти изменения должны быть надлежащим образом идентифицированы, представлены соответствующими обозначениями и обменялся с помощью моделирования дельт.

Текст научной работы на тему «SOFTWARE MODEL VERSION CONTROL AND COLLABORATION»

Ученый XXI века • 2016 • № 6-3 (18)

Технические науки

УДК 004.4'23

SOFTWARE MODEL VERSION CONTROL AND COLLABORATION

D.A. Kuryazov1, B.B. Jumanazarov2, J.Sh. Sobirov3

Abstract

Evolution and maintenance of the large-scaled software models require collaboration of several designers on the shared modeling artifacts. Since collaborators manipulate shared models in real-time, synchronization of the model changes is the main challenging aspect for collaborative modeling application. In order to achieve efficient real-time synchronization of changes, these changes have to be properly identified, represented by appropriate notations and exchanged by modeling deltas.

Keywords: Software modeling, Testing, Software engineering, UML, modeling tools. I. Introduction

Software engineering is "the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software [...]" [1], and its study. Software engineering [7] has long since become an integral and indispensable part of computing science. It ranges over all phases of software development, starting from requirements elicitation and management, to software specification, architecture, design and implementation, as well as testing and verification, maintenance and evolution. Software modeling (e.g. in UML - Unified Modeling Language [8]) is a key field of modern day software development activities which is well-suited to design, develop and produce large-scaled software projects. Modeling techniques in software engineering allow for viewing complex systems from a more abstract level, or focusing only on selected and detailed aspects, making the development and evolution of very large software systems feasible. Models on all abstraction levels enable traceability, synchronization, and proper co-evolution of requirements, design decisions, test cases, and implementation artifacts. Software engineering is the engineering means to achieve higher levels of integration and automation in software development and evolution.

In Uzbekistan, research activities in software development focus more strongly on technical aspects, solid programming skills, and a well-founded mathematical basis. In most other developed countries, software engineering practices on the university and industry level has an emphasis on imparting general concepts such as integrating software engineering disciplines, developing large integrated systems, and best practices of model-driven software development. Therefore, applying modern software modeling principles and technologies to software engineering education and industry in Uzbekistan is quite important and beneficial. Like source code of software systems, software models also evolve over time undergoing various changes such as optimizations, extensions and corrections. Moreover, large-scaled and complex software models are designed a team of software designers. Since software models are likely more of visualization of software system source code or real-world objects, they are mostly the subject to analyze the change histories and evolution process.

1Kuryazov Dilshod Atabaevich - a senior teacher of the department of "Software engineering", Urgench branch of Tashkent University of Information Technologies, Uzbekistan.

2Jumanazarov Bunyod Baxrom ugli -student Urgench branch of Tashkent University of Information Technologies, Uzbekistan.

3Sabirov Jaxongir Shavkatovich -student Urgench branch of Tashkent University of Information Technologies, Uzbekistan.

Considering all aforementioned discussions, software models need to be versioned using model version control systems, developed using real-time collaborative modeling tools, the histories of model changes analyzed using model history analysis tools.

There is a number of version control approach like Subversion, Git, Miranda or RCS for versioning source code of software systems and collaborative editing tools like Google Docs, Etherpad, etc. But, unlike source code of software systems, software models have graph-like rich and complex data structures. Therefore, aforementioned text-based version control and collaborative editing tools can not fully handle software models and provide sufficient information about model changes and their histories.

This paper addresses to the application of modern software engineering, modeling methods and technologies including model version control, real-time collaborative model editing and model history analysis approaches in both academia and industry. In the following, the main objectives and goals of the problem area are portrayed in Section II. In Section III, the current issues and problems are presented as well as benefits and proposed solutions are demonstrated in the same section. This paper ends up in Section IV by drawing some conclusion and outline for future work.

II. Motivation

In standard software development life-cycle (requirements analysis, designing, implementation, testing and validation), software models are firstly have to be designed and secondly have to be maintained. Unlike source code, software models have rich and complex graph-like data structures. To that end, designing and maintaining such software models is a challenge. Additionally, maintenance and development of the large-scaled evolving software models require real-time collaboration of several designers on the shared modeling artifacts. During the collaborative modeling process, collaborators apply various changes to the shared model in parallel. Since several users collaboratively work on shared artifacts, the collaborative modeling application needs to provide sharing of modeling artifacts and synchronize the user changes among collaborators when new artifacts are created or existing ones are deleted or changed.

Collaborative modeling has to be capable of handling a huge amount of the shared modeling artifacts and control their versions by storing the histories of these models. Changes of shared models have to be exchanged between collaborative modelers in real-time. Software models are the one of main designing and documentation techniques. They are the best aid for software managers for communicating with software customers and stakeholders as well as with their employees such as developers and testers.

In addition to collaborative modeling, there is a need for model version control tools for storing, managing and revert model versions when needed. For instance, software modelers may feel a need to revert earlier versions of software model in case of lost or damage of data. Additionally, software designers are usually interested in seeing or know about how their model evolving, which model elements are constantly changing, when was created an particular element, etc.

All model designing and maintenance activities require certain tools with realtime model designing, version control and model history analysis features. All these discussions show that there is a need for software modeling and modeling tools in both academia (education) and industry.

III. Software Modeling

As mentioned in Section II, there is a need for real-time modeling, model version control and model history analysis tools. This section is dedicated to present the results of research work in the field of model version control, real-time collaborative modeling and model history analysis from the earlier works of authors of this paper.

In the beginning we have introduced a generic model difference representation approach DOL - Delta Operations Language in [5] for representing differences between subsequent versions of an evolving software model. DOL is a meta-model

YneHbiH XXI BeKa • 2016 • № 6-3 (18)

generic domain specific language for representing the differences/changes between subsequent versions of a software model. Obviously, each software modeling language conforms to its meta-model which describes construction blocks, syntax and semantics of that languages. Therefore, DOL is derived from the meta-model of a modeling language by DOL generator. The DOL generator takes the meta-model of a modeling language as an input and generates a specific DOL for that modeling language. Then, all model differences on the instance level can be representing using DOL operations in modeling deltas. A modeling delta consists of model differences between any two subsequent versions of a model. Modeling delta is also the executable descriptions of model differences so that DOL operations in a modeling delta can directly be applied to an initial version of a model in order to revert earlier version.

As application areas of the research work, real-time collaborative modeling tool is introduced in [3] and [4], model version control systems is introduced [7] and model history analysis tool is introduced in [6].

Real-time collaborative modeling tool (Kotelett) [2] enables modelers designing the shared modeling artifact at real-time. Usually software models are designed and maintained by a team of modelers at real-time and they might be located in different places geographically. In such situations, synchronization of model changes made by each team member is a challenge, especially at real-time. Kotelett tool allows for synchronization of model changes (using modeling deltas) among software modelers very quickly with high performance and speed while collaboration of several model designers. Each team member can choose a name and color for himself, then his changes on a model appear with his color so that every team member knows which change is made by which team member. Additionally, modelers can design several models simultaneously and can see which team members are currently working on a model. At the moment, this tool allows for designing UML Class diagrams [8]. It will be extended in future for further UML diagrams.

Model Version Control System (GMoVerS) [3] is a generic tool for storing model differences and the model histories. It is a tool for model version control (similar to Subversion, Git and Miranda for source code version control). The differences between subsequent model versions are efficiently stored in modeling deltas and designers can revert to any other versions of a model if needed. It allows for storing model histories, managing models and their versions as well as reverting. Currently, GMoVerS is capable of version control of UML class and activity diagrams.

Model History Analysis (MoHA) [5] is a tool for visualizing and analyzing the histories of a model or its artifacts. For instance, designers might ask questions like when was a model element created, how often does an element change, when was an element deleted, which element did exist in the initial model version, etc. Modelers can find answers such questions using MoHA tool. The MoHA application is designed to handle several software models and their versions at the same time so that users can easily compare two models, any two versions, even model elements with each other, or a particular model element can be focused on and its history of changes can be traced and visualized.

IV. Conclusion

This paper expressed the general application areas of the DOL approach using the DOL statements for representing model differences. In collaborative modeling, exchanging model changes made by designers is eased by exchanging only modeling deltas which contain only the change operations. The model histories can be handled by generic model version control system. The change histories of software models can be analyzed using the model history analysis tool. Using such methods and technologies brings a lot of advantages to both academician and industry people in the field of software management and engineering. Software models are used to define requirements specification, design specification and documentations of planned and realized software systems. As an integral part of software engineering, software modeling is the best aid for project managers and students for designing their projects in our country.

All collaborative modeling, version control and history analysis applications are

planned to be extended for further UML diagrams as future work.

The client side of the real-time collaborative modeling tool can be downloaded

at [9].

References:

1. J. Frank, M. Rollin: IEEE Standard Glossary of Software Engineering Terminology. IEEE std. 610.12-1990, 1990.

2. D. Kuryazov and A. Winter: Collaborative Modeling Empowered by Modeling Deltas. In: 15th ACM SIGWEB International Symposium on Document Engineering, DChanges, Lausanne, Switzerland, 2015.

3. D. Kuryazov: Delta Operations Language for Model Difference Representation. Informatik 2014, In: 44. Jahrestagung der Gesellschaft für Informatik e.V. (GI), Vol. P-232, Stuttgart, Germany, 2014.

4. D. Kuryazov and A. Winter: Representing Model Differences by Delta Operations. IEEE Computer Society Press, In: International Workshop on Methodical Development of Modeling Tools, EDOC, Ulm, Germany, 2014.

5. D. Kuryazov and A. Winter: Towards Model History Analysis Using Modeling Deltas, vol. 35, no. 2, In: Softwaretechnik-Trends, pp. 15—16, May 2015.

6. D. Kuryazov, A. Solsbach and A. Winter: Versionierung von Nachhaltigkeits-berichten. Springer Berlin Heidelberg, IT-gestütztes Ressourcen - und Energiemanagement: Konferenzband zu den 5. BUIS-Tagen, vol. VIII, no. 978-3-642-35029-0, pp. 409 - 419, Oldenburg, January 2013.

7. Pressman, Roger S. Software engineering: a practitioner's approach. Palgrave Macmillan, 2005.

8. J. Rumbaugh, J. Ivar, and B. Grady. Unified Modeling Language Reference Manual. Pearson Higher Education, 2004.

9. Project Group. Kotelett: Collaborative Modeling

10. Tool. https://pg-kotelett.informatik.uni-oldenburg.de:8443/build/stable/

© D.A. Kuryazov, B.B. Jumanazarov, J.Sh. Sobirov, 2016

УДК 004.4'23

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРОЦЕССА СОВМЕСТНОГО МОДЕЛИРОВАНИЯ

Д.А. Курязов, Б.Б. Жуманазаров, Ж.Ш. Сабиров

Аннотация. Эволюция и обслуживание масштабных моделей программного обеспечения требуют совместной работы нескольких дизайнеров на общих моделирования артефактов. Так как сотрудники совместно используют модели в реальном времени, синхронизация изменений модели является основным сложным аспектом для применения совместного моделирования. Для достижения эффективной синхронизации в реальном масштабе времени изменения, эти изменения должны быть надлежащим образом идентифицированы, представлены соответствующими обозначениями и обменялся с помощью моделирования дельт.

Ключевые слова: моделирование программного обеспечения, тестирование, разработка программного обеспечения, UML, инструменты моделирования.

© Д.А. Курязов, Б.Б. Жуманазаров, Ж.Ш. Сабиров, 2016

i Надоели баннеры? Вы всегда можете отключить рекламу.