Тип работы:
Предмет:
Язык работы:


КОНСТРУКТОР ПРАКТИК ESSENCE

Работа №184123

Тип работы

Бакалаврская работа

Предмет

программирование

Объем работы54
Год сдачи2023
Стоимость4540 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
15
Не подходит работа?

Узнай цену на написание


АННОТАЦИЯ 3
Введение 4
1 Обзор прототипа конструктора практик 6
2 Версионирование методов 9
2.1 Архитектурные особенности версионирования 11
2.2 Шаги алгоритма слияния 13
2.3 Загрузка версий 14
2.3.1 Загрузка версий методов 14
2.3.2 Определение общей версии 15
2.4 Сравнение версий 17
2.4.1 Парообразование 17
2.4.2 Определение состояния с общей версией 18
2.4.3 Определение результирующих состояний 20
2.5 Применение изменений 24
2.6 Генерация новой общей версии 25
2.7 Модели данных и сервисы версионирования 25
3 Права доступа 28
3.1 Реализация прав доступа в прототипе 30
3.2 Модель прав доступа 30
3.3 Особенности доступа на комментирование 31
4 История изменений 33
4.1 Хранение данных об изменениях 33
4.2 Хранение метаданных истории 35
4.3 Восстановление данных из истории 36
4.4 Записывание данных в историю 36
4.5 Сравнение версий 38
4.6 Откат к предыдущему состоянию в истории 38
5 Особенности реализации приложения 40
5.1 Используемые технологии 40
5.2 Разделение серверного приложения по пакетам 40
5.3 Дополнительные архитектурные механизмы 42
5.3.1 Представление практик в виде методов 42
5.3.2 Дублирование кода в истории и версионности 42
5.3.3 Восстановление внешних ключей при удалении в истории ... 43
5.4 Скриншоты приложения 44
Заключение 48
Список литературы

В программной инженерии существует множество различных процессов разработок и методологий таких как: Agile [1], Kanban [2], Feature-driven development [3] и проч. В основном при описании внутренних правил, сущностей и принципов всех этих процессов разработки, авторские коллективы создавали и использовали собственные нотации, термины и правила описания, что создаёт определённые проблемы и трудности для исследователей и методологов, которые пытаются делать сравнительные анализы, или изучать зоны приемлемости описанных процессов разработки.
Для решения этой проблемы был разработан язык Essence [4], который позволяет описывать методологии в единых понятиях и языке. Однако существует единственный инструмент - Practice Workbench [5], который поддерживает эту нотацию, и распространяется на платной основе, что затрудняет развитие и обмен зафиксированными практиками между заинтересованными лицами.
Поэтому разработка бесплатного аналога подобного инструмента, который позволил бы всем заинтересованным в использовании Essence лицам конструировать и обмениваться практиками, является актуальной задачей. Но поскольку подобный инструмент должен включать в себя в первую очередь возможность описывать практики, используя ограничения целостности, заложенные в правилах самого языка, то сначала было необходимо разработать прототип именно с таким функционалом.
Помимо создания самих практик, для конструктора важно предоставлять возможность компоновки практик в методы. Возможность обмениваться практиками и использовать их в создании собственных методов является важной с точки зрения практического применения конструктора.
Из возможности обмена практиками вытекает необходимость поддержания использования конструктора несколькими пользователями, что означает необходимость деления функциональных прав между пользователями, а также возможность отслеживать изменения, которые были выполнены другими пользователями.
Цель данной работы - разработать полноценный конструктор практик Essence.
Задачи работы:
1) провести анализ требований для конструктора;
2) спроектировать и разработать конструкцию методов на основе имеющихся практик;
3) спроектировать и разработать версионирование практик и методов;
4) спроектировать и разработать разделение прав доступа к методам и практикам;


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


Таким образом был разработан конструктор практик Essence.
Следующим шагом будут проведён ввод конструктора в эксплуатацию.



1. Agile [электронный ресурс] // Wikipedia. URL:
https://en.wikipedia.org/wiki/Agile_software_development (дата обращения: 23.02.2023). - Режим доступа: свободный.
2. Kanban [электронный ресурс] // Wikipedia. URL:
https://en.wikipedia.org/wiki/Kanban_(development) (дата обращения:
23.02.2023). - Режим доступа: свободный.
3. Feature-driven development [электронный ресурс] // Wikipedia. URL: https://en.wikipedia.org/wiki/Feature-driven development (дата обращения: 23.02.2023) - Режим доступа: свободный.
4. Object Management Group. Essence - Kernel and Language for Software Engineering Methods Version 1.2 // Object Management Group. - 2018. - 316 с. - URL: https://www.omg.org/spec/Essence/1.2/PDF (дата обращения: 14.09.2022).
- Режим доступа: свободный.
5. Practice Workbench [электронный ресурс] // Ivar Jacobson International.
URL: https://www.ivarjacobson.com/esswork-practice-workbench (дата
обращения: 23.02.2023). - Режим доступа: свободный.
6. Змеев Д.О. Прототип системы поддержки принятия решений для управления проектами на основе стандарта OMG Essence и Байесовских сетей.
- Томск, 2022. - 152 с.
7. Отслеживание изменений в EF Core [электронный ресурс] // Microsoft. URL: https://learn.microsoft.com/en-us/ef/core/change-tracking (дата обращения: 23.02.2023). - Режим доступа: свободный.
8. Документация по ASP.NET Core [электронный ресурс] // Microsoft. URL: https://learn.microsoft.com/en-us/aspnet/core/?view=aspnetcore-7.0 (дата обращения: 23.03.2023). - Режим доступа: свободный.
9. Документация по C# [электронный ресурс] // Microsoft. URL: https://learn.microsoft.com/ru-ru/dotnet/csharp/ (дата обращения: 23.03.2023). - Режим доступа: свободный.
10. Jon P Smith Entity Framework Core in Action / Jon P Smith - Manning Publications Co. 2018. - 520 с.
11. AutoMapper [электронный ресурс] // AutoMapper. URL:
https://automapper.org/ (дата обращения: 23.02.2023). - Режим доступа:
свободный.
12. ng-book The Complete Guide to Angular / Nate Murray, Felipe Coury, Ari Lerner, Carlos Taborda. - San Francisco: Fullstack.io, 2020. - 769 с.
13. Angular Material UI Component Library [электронный ресурс] // Angular Material. URL: https://material.angular.io/ (дата обращения: 23.02.2023).
- Режим доступа: свободный.
14. Semantic UI [электронный ресурс] // Semantic UI. URL:
https://semantic-ui.com/ (дата обращения: 23.02.2023). - Режим доступа:
свободный.
15. Font Awesome [электронный ресурс] // Font Awesome. URL:
https://fontawesome.com/ (дата обращения: 23.02.2023). - Режим доступа:
свободный.
16. Игнорирование атрибутов AutoMapper [электронный ресурс] //
AutoMapper. URL: https://docs. automapper.org/en/stable/Attribute-
mapping.html?highlight=ignore#ignoring-members (дата обращения: 23.02.2023).
- Режим доступа: свободный.
17. Изменение внешних ключей и навигаций [электронный ресурс] //
Microsoft. URL: https://learn.microsoft.com/en-us/ef/core/change-
tracking/relationship-changes#relationship-fixup (дата обращения: 23.02.2023). - Режим доступа: свободный.



Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ