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


АВТОМАТИЗИРОВАННОЕ КОНФИГУРИРОВАНИЕ ПОВЕДЕНИЯ ВЕБ-ПРИЛОЖЕНИЙ .NET CORE НА ОСНОВЕ ДИАГРАММ СОСТОЯНИЙ UML

Работа №38868

Тип работы

Дипломные работы, ВКР

Предмет

информационные системы

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

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


Глоссарий 3
Введение 5
1 Обзор предметной области 8
1.1 Обзор литературы и существующих решений 8
1.2 Обзор технологий и инструментов 11
2 Проектирование и разработка фреймворка 15
2.1 Файл конфигурации на основе UML диаграммы 15
2.2 Проектирование фреймворка 18
2.3 Разработка фреймворка 21
2.4 Принцип работы фреймворка 24
3 Разработка веб-приложения 26
Заключение 31
Список использованных источников 33
Приложение

Современное программное обеспечение в виде веб-сайтов или приложений для операционных систем становятся всё сложнее. Также это относится и к бизнесу - корпоративные системы неконтролируемо расширяются. Становится проблематично поддерживать и развивать такую систему. А чем больше функционала, тем в большее количество непредвиденных состояний может перейти программное обеспечение.
На начальной стадии разработки программного обеспечения, считается хорошим тоном использовать такой инструмент как UML [1]. Существуют коммерческие разработки, а также научные статьи по преобразованию UML диаграмм в исходный код программного обеспечения. В чем преимущество этого подхода? В том, что, если программный код будет генерироваться машиной, разработчики будут практически не нужны. В идеальном случае необходимы лишь аналитики, которые описывают программное обеспечение в виде, например, UML диаграмм, а также системные администраторы (или DevOps инженеры), которые разворачивают и поддерживают систему. Но, очевидно, на данный момент такой подход не осуществим. Проблема преобразования UML диаграмм до сих пор не решена, что подробнее будет рассмотрено в главе 1.
В данной работе предлагается несколько иной подход: использовать поведенческую UML диаграмму (диаграмма состояний) для конфигурирования поведения создаваемого приложения. Соответственно для такого подхода необходим инструмент, который даст возможность приложению использовать созданную конфигурацию.
В мире программного обеспечения также существует такой тренд, что программное обеспечение мигрирует в интернет. Многие приложения для операционных систем становятся веб-приложениями, или же изначально созданы для использования в веб пространстве. Поэтому данная работа посвящена именно разработке веб-приложений.
Для того, чтобы использовать подход, описанный выше, предлагается разработать фреймворк, на основе которого будет разрабатываться необходимое веб-приложения, которое в свою очередь будет неким образом настраивать своё поведение при помощи UML диаграммы состояний.
При разработке современного ПО приходится закладывать в него большое количества функционала. Адекватное преобразование требований в программный код является проблемой, так как на этом этапе часто совершаются ошибки из-за недопонимания между заказчиком, аналитиком и требованием. А также в принципе тяжело адекватно перевести весь функционал из требований в программный код. Данная работа решает эту проблему, перевод из требований в программный код будет автоматизирован.
Актуальность данной разработки в том, что решается проблема сложности процесса разработки и поддержки программного обеспечения. Во- первых, часть разработки будет автоматизирована, а во-вторых, решение повышает удобство поддержки, разработки и развития системы, так как вся информация о поведении системы будет находиться в декларативном виде.
Объектом исследования является разработка фреймворка, позволяющего разрабатывать веб-приложения, которые используют UML диаграммы состояний в качестве конфигурации поведения.
Предметом исследования является фреймворк, позволяющий разрабатывать веб-приложения, которые используют UML диаграммы состояний в качестве конфигурации поведения.
Таким образом, целью данной работы будет разработка фреймворка, позволяющий разрабатывать веб-приложения, которые используют UML диаграммы состояний в качестве конфигурации поведения.
Для достижения поставленной цели необходимо выполнить следующие задачи:
1. проанализировать предметную область - какие разработки и исследования существуют в данной сфере;
2. рассмотреть способы преобразования и представления UML диаграммы состояний в машинном формате;
3. спроектировать и разработать фреймворк, который включает в себя инструменты по преобразованию UML диаграммы состояний, а также веб-фреймворк, при помощи которого разрабатывается непосредственно вебприложение;
4. разработать веб-приложение для апробации рассматриваемого в работе подхода.

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

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

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


Итогом данной работы является разработанный фреймворк, для создания .NET Core приложений с гибкой настройкой поведения, которое можно конфигурировать при помощи UML диаграммы состояний. Раннее говорилось, что данный фреймворк разработан для веб-приложений, но его возможно использовать также и в обычных десктоп приложениях, к тому же в .NET Core 3 добавлена возможность создания оконных приложений [34], а значит круг использования фреймворка расширяется. Фреймворк назван State Flow Framework.
State Flow Framework уже сейчас готов к использованию. Как пример также разработано веб-приложение с использованием данного фреймворка. Помимо этого, фреймворк имеет большие возможности для доработки и добавления нового функционала, так как при создании закладывалось возможности для этого. Таким образом все задачи и цели поставленные в этой работы достигнуты.
Можно сказать, что благодаря данной работе разработка программного обеспечения стала ещё на один шажок ближе к полной автоматизации. Так как поведение приложения ложится на плечи уже раннее созданной диаграмме состояний, а значит при условии грамотного проектирования у разработчика ПО становится больше времени на другие детали приложения или же просто ускоряется разработка программного обеспечения.
В дальнейшем планируется поддержка решения. Переход на новую версию .NET Core. Использование базы данных для хранения конфигураций поведения. Добавить возможность использования фреймворка для JavaScript приложений. Добавление большего количества тестов. Также планируется создание большего количества примеров приложений на основе State Flow Framework, примеры для десктоп приложений.
В ходе выполнения этой работы были написаны и опубликованы следующие научные статьи:
- «Конфигурирование веб-приложений на основе диаграмм состояний UML» - описана идея фреймворка, а также первая версия реализации фреймворка. Журнал «Электронные библиотеки». Индексируется в системе РИНЦ [35];
- «Преобразование UML диаграммы состояний в конфигурацию поведения веб-приложения» - описана идея использования UML диаграмм состояний для настройки поведения приложений. Конференция «Фундаментальные и прикладные разработки в области технических и физико-математических наук». Индексируется в системе РИНЦ [36];
- «Веб-приложение для контроля знаний студентов на основе State Flow Framework» - описан State Flow Framework, а также описана разработка веб-приложения для тестирования на основе данного фреймворка. Конференция «Электронная Казань 2019». Индексируется в системе РИНЦ [37].




1. Unified Modeling Language [электронный ресурс]. Режим доступа http://www.uml.org/ свободный. Дата обращения 25.11.2018.
2. Варганов Д. Обзор средств генерации программного кода на основе UML // Альманах научных работ молодых ученых университета ИТМО. Материалы XLVI научной и учебно-методической конференции, Санкт-Петербург, Россия, 31 января-03 февраля 2017, с. 38-41.
3. ИНТУИТ. Лекция 8: Обзор CASE-средств для построения диаграмм UML [электронный ресурс]. Режим доступа https://www.intuit.ru/studies/courses/941/229/lecture/5963/ свободный. Дата обращения 18.11.2018.
4. Мухин М.С., Хоружева Ю.И. Проектирование приложения на основе прямого преобразования UML моделей в Java, на примере Rational Software Architect // Информационные Технологии. Радиоэлектроника. Телекоммуникации, 2017, №7, с. 379-394.
5. Dominguez, E., Perez, B., Rubio, A.L., Zapata, M.A. A systematic review of code generation proposals from state machine specifications // Information and Software Technology, October 2012, Volume 54, Issue 10, pp. 1045-1066.
6. Charfi, A., Mraidha, C., Gerard, S., Terrier, F., Boulet, P. Does code generation promote or prevent optimizations? // 13th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing - ISORC 2010, Carmona, Sevilla, Spain, 5-6 May 2010, pp. 75-79.
7. Petrasch, R. Transformation of state machines for a microservice- based event-driven architecture: A proof-of-concept // Advances in Intelligent Systems and Computing, 2019, Volume 769, pp. 327-336.
8. Pham, V.C., Radermacher A., Gerard S., Li S. Complete code generation from UML state machine // 5th International Conference on Model-
Driven Engineering and Software Development, Porto, Portugal, 19-21 Feb. 2017, pp. 208-219.
9. Sunitha, E.V., Samuel, P. Object constraint language for code generation from activity models // Information and Software Technology, Volume 103, November 2018, pp. 92-111.
10. SinelaboreRT [электронный ресурс]. Режим доступа www.sinelabore.com/ свободный. Дата обращения 18.11.2018.
11. The North State Framework [электронный ресурс]. Режим доступа https://www.northstatesoftware.com/ свободный. Дата обращения 18.11.2018.
12. Workflow Engine [электронный ресурс]. Режим доступа https://workflowengine.io/ свободный. Дата обращения 18.11.2018.
13. Шамгунов Н. Н., Корнеев, Г. А., Шалыто А. А. State Machine — новый паттерн объектно-ориентированного проектирования // Информационно-управляющие системы, 2004. № 5, с. 13-25.
14. Statem [электронный ресурс]. Режим доступа https://github.com/aksonov/statem/ свободный. Дата обращения 07.04.2019.
15. Finite State Machine Public Source Repository [электронный ресурс]. Режим доступа https://github.com/Dentrax/Finite-State-Machine/ свободный. Дата обращения 07.04.2019.
16. Stateless [электронный ресурс]. Режим доступа https://github.com/dotnet-state-machine/stateless/ свободный. Дата обращения 07.04.2019.
17. Spring Web Flow [электронный ресурс]. Режим доступа http://projects.spring.io/spring-webflow/ свободный. Дата обращения 18.11.2018.
18. Vervaet E. The Definitive Guide to Spring Web Flow. Berkeley: Apress, 2008, pp. 380.
19. Навигация: вариант реализации для корпоративного приложения [электронный ресурс]. Режим доступа https://habr.com/post/175507/ свободный. Дата обращения 18.11.2018.
20. TIOBE Index [электронный ресурс]. Режим доступа
https://www.tiobe.com/tiobe-index/ свободный. Дата обращения 18.11.2018.
21. Буй Д., Шишацкая Е. UML: история, спецификация,
библиография // XIII-th International Conference Knowledge-Dialogue-Solution, Varna, Bulgaria, 18-24 June 2007, pp. 309-316.
22. Visual Studio [электронный ресурс]. Режим доступа
https://vismlstudio.microsoft.com/ свободный. Дата обращения 25.11.2018.
23. Visual Paradigm [электронный ресурс]. Режим доступа https://www.visual-paradigm.com/ свободный. Дата обращения 25.11.2018.
24. State Chart XML (SCXML): State Machine Notation for Control
Abstraction [электронный ресурс] Режим доступа
https://www.w3.org/TR/scxml/ свободный. Дата обращения 20.11.2018.
25. About the XML Metadata Interchange Specification Version 2.5.1 [электронный ресурс]. Режим доступа https://www.omg.org/spec/XMI/ свободный. Дата обращения 25.11.2018.
26. Harel, D. Statecharts: A visual formalism for complex systems // Science of Computer Programming, Volume 8, 1987, pp. 231-274.
27. Commons SCXML Extras [электронный ресурс]. Режим доступа https://github.com/apache/commons-scxml/tree/master/extras/ свободный. Дата обращения 07.04.2019.
28. Мартин Фаулер, Архитектура корпоративных программных приложений / Мартин Фаулер - Изд-во Вильямс, 2006. - 544 c.
29. Внедрение зависимостей в ASP.NET Core [электронный ресурс]. Режим доступа https://docs.microsoft.com/ru-ru/aspnet/core/fundamentals/ dependency-injection/ свободный. Дата обращения 07.04.2019.
30. The Principles of OOD [электронный ресурс]. http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod/ свободный. Дата обращения 07.04.2019.
31. Сиверс А.А. Обзор функциональных особенностей систем и сервисов для создания тестов, используемых в электронном и дистанционном обучении // Конференциум АСОУ: сборник научных трудов и материалов научно-практических конференций, 2016. № 3, с. 938-944.
32. Данилов А. А., Авдеев В. В. Обзор бесплатных онлайн-сервисов для создания тестов и организации тестирования // Третья межрегиональная научно-практическая конференция «актуальные проблемы гуманитарных, социальных и экономических наук: вопросы теории и практики», Великий Новгород, Россия, 24-25 апреля 2014, с. 16-19.
33. Code First в новой базе данных [электронный ресурс]. Режим
доступа https://docs.microsoft.com/m-ru/ef/ef6/modeling/code-first/workflows/
new-database/ свободный. Дата обращения 07.04.2019.
34. Новые возможности .NET Core 3.0 [электронный ресурс]. Режим доступа https://docs.microsoft.com/ru-ru/dotnet/core/whats-new/dotnet-core-3-0/ свободный. Дата обращения 21.04.2019.
35. Габидуллин И.А., Марченко А.А. Конфигурирование вебприложений на основе диаграмм состояний UML // Электронные Библиотеки, 2018. Том 21, № 3-4, с. 314-322.
36. Габидуллин И.А., Марченко А.А. Преобразование UML диаграммы состояний в конфигурацию поведения веб-приложения // Фундаментальные и прикладные разработки в области технических и физико-математических наук. Сборник научных статей по итогам работы седьмого международного круглого стола, Казань, Россия, 30 ноября 2018, с. 205-206.
37. Габидуллин И.А., Марченко А.А. Веб-приложение для контроля знаний студентов на основе State Flow Framework // Ученые записки ИСГЗ. Материалы XI Международной научно-практической конференции «Электронная Казань 2019», 2019. Том 17, № 1, с. 119-125.


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




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