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


Технология создания семейства приложений на основе анализа предметной области

Работа №61804

Тип работы

Магистерская диссертация

Предмет

информатика

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

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


Введение 4
Постановка задачи 7
1. Обзор существующих подходов 8
1.1. Методы анализа предметной области 8
1.2. Метод анализа предметной области FODA 11
1.3. Подходы к разработке линейки продуктов, включающие
переиспользование 13
1.3.1. Предметно-ориентированные языки 13
1.3.2. Порождающее программирование 13
1.3.3. Методология разработки, основанная на моделях 15
1.3.4. Melusine подход 15
1.4. Выводы 20
2. Описание подхода 21
3. Реализация 26
4. Апробация подхода 30
4.1. Семейство приложений для удаленного управления роботами 30
4.2. Семейство приложений текстовых редакторов 33
Заключение 37
Список литературы 38


Тема переиспользования объекта в сфере разработки программного обеспечения в настоящее время рассматривается активно. Объектом переиспользования может быть что угодно, например: классы, методы, целые библиотеки, спецификации, требования, архитектуры, планы тестирования, тест-кейсы и многое другое.
Принято считать, что переиспользование как некая деятельность подразделяется на виды в зависимости от того, что будет переиспользовано: компоненты продукта, процесс получения программного продукта, технология для получения продукта или же знания, которые представляют некий опыт работы. Каждый следующий вид переиспользования представляет собой более высокий уровень абстракции.
В области программного обеспечения трудно понять, что именно надо переиспользовать и каким путем. Например возможна ситуация, когда переиспользование одного объекта тянет за собой переиспользование связанных с ним компонент. Таким образом возникает проблема контекста переиспользования.
Однако, если переиспользовать объекты в одной предметной области, то проблема контекста может быть сужена. Линейка продуктов подразумевает, что в линейке есть что-то общее, например: архитектура, компоненты, алгоритмы, методы и др., — и эти общие элементы находятся в одном и том же контексте. Общие части линейки должны быть переиспользованы. Очевидны преимущества такого переиспользования. Во-первых, это ускоряет процесс разработки, так как не надо реализовывать один и тот же функционал, а во-вторых, такое переиспользование обезопасит разработчиков от ошибок, т.е. линейка продуктов будет соответствовать должному уровню качества.
Переиспользование в одной предметной области предполагает, что необходим анализ предметной области, чтобы понять, что и как переиспользовать. Для того, чтобы говорить о переиспользовании с помощью анализа предметной области, необходимо понять, что такое анализ предметной области, а сперва и что такое “предметная область”. Итак, предметная область — та область знаний, проблемы которой создаваемое программное обеспечение призвано решать. По Ругаберу [1], предметная область характеризуется своим словарем, принятыми соглашениями, архитектурным подходом и литературой.
Релевантная информация о предметной области должна быть предоставлена в каком-то объективном, легкодоступном и понятном виде. Такой вид называют моделью предметной области. По Мернику [2] модель предметной области должна включать в себя не только словарь терминов предметной области, но также должна описывать сходства и изменчивость этих понятий. Такая модель должна точно задавать границы области, т.е. четко и ясно описывать тот круг вопросов, который будет рассматриваться в рамках этой области.
Изменчивость понятий (от англ. “variabilities”) позволяет точно определить, какая информация должна быть специфицирована в реализации конкретной системы. Сходства (от англ. “commonalities”) используются для определения вычислительной модели (как множества общих операций) и примитивов языка. Реализуя сходства и дополняя полученную вычислительную модель той информацией, которая задается в экземпляре конкретной системы, мы получаем множество систем, основанных на одной вычислительной модели. Таким образом на базе одной модели предметной области может быть разработано целое множество различных систем в этой предметной области. Это заметно ускоряет процесс разработки ПО.
Можно сказать, что так или иначе, в настоящее время как бы ни происходил анализ предметной области и каким бы ни был итог этой деятельности, он в самом лучшем случае распечатывается в каком- либо виде или изложен в каких-либо электронных базах знаний, но никак явно не помогает в разработке программного обеспечения. Т.е. разработчики анализируют как-то эти знания и реализуют то, как они это поняли. Риск некорректного понимания специфики предметной области возрастает. Таким образом, некоторые особенности предметной области могут быть упущены, благодаря человеческому фактору. Далее возрастает риск реализации совсем не того продукта, который хотел заказчик, т.е. требования были поняты по-другому, а следовательно, и реализованы не так, как хотелось бы заказчику. Результат — продукт не соответствует требованиям.
Вследствие этого существует необходимость в инструменте, в котором деятельность по анализу предметной области играет ключевую роль при разработке программного обеспечения. Подразумевается, что, опираясь на деятельность по анализу предметной области, будет возможно сгенерировать некоторую проективную модель, так, чтобы разработчики и другие участники процесса могли бы положиться на такую модель и быть уверенными в ее валидности и актуальности. Таким образом, вероятно, уменьшится риск человеческой ошибки в понимании терминов и особенностей предметной области.
В качестве такого инструмента может быть рассмотрен metaCASE- инструмент. Такие инструменты призваны создавать CASE-средства (от англ. “Computer-Aided Software Engineering”) [3], в которых по описанию приложения в виде множества диаграмм можно сгенерировать код приложения. Такое описание создается на предметно-ориентированном визуальном языке. Описание сущностей и связей же самого такого визуального языка задается с помощью его метамодели. Такая метамодель описывается как раз в metaCASE-инструменте. Так, можно соединить деятельность по анализу предметной области и meta- технологию для почти автоматической генерации различных конфигураций приложений по модели предметной области. Такой подход заметно ускоряет процесс разработки. Также, реализуя инструменты для анализа предметной области в metaCASE-инструментах, получаем возможность получить именно тот продукт, который удовлетворяет выдвинутым требованиям.
Постановка задачи
Целью данной работы является создание технологии разработки семейства приложений, позволяющей по модели характеристик предметной области полуавтоматически генерировать предметно-ориентированный визуальный язык для конфигурирования продуктов семейства. Для достижения этой цели были сформулированы следующие задачи.
1. Рассмотреть различные генерационные подходы к созданию семейств приложений.
2. Описать метод переиспользования ПО, основанный на построении модели характеристик и генерации по ней метамодели визуального языка, который используется для конфигурирования и описания правил композиции переиспользованных компонентов целевого приложения.
3. Реализовать инструментальную поддержку предложенного метода на основе metaCASE-инструмента QReal.
4. Провести апробацию представленного подхода на примере создания семейства приложений для удаленного управления роботами разных моделей с мобильного телефона, а также на примере создания модельного семейства приложений текстовых редакторов.

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

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

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


В рамках данной квалификационной работы были достигнуты следующие результаты.
1. Выполнен обзор и проведен анализ различных генерационных подходов к созданию семейств приложений.
2. Предложен метод переиспользования ПО, основанный на построении модели характеристик и генерации по ней метамодели визуального языка, который используется для конфигурирования и описания правил композиции переиспользованных компонентов целевого приложения.
3. Инструментальная поддержка предложенного метода реализована на основе metaCASE-инструмента QReal и состоит из следующих компонентов: редактор модели характеристик и генератор метамодели визуального языка.
4. Проведена апробация представленного подхода на примере создания семейства приложений для удаленного управления роботами разных моделей с мобильного телефона, а также на примере создания модельного семейства приложений текстовых редакторов. Для каждой из этих предметных областей были реализованы: библиотека переиспользуемых компонентов, модель предметной области, редактор визуального языка, примеры приложений в области.
5. Результаты данной работы представлены на научно-практической конференции студентов, аспирантов и молодых ученых Северо- Запада “Современные технологии в теории и практике программирования” от 26 апреля 2016 года.
6. Результаты данной работы приняты программным комитетом для представления на семинаре SYRCoSE 2016 года.



[1] Rugaber S. Domain analysis and reverse engineering // White Paper, January. 1994.
[2] Mernik M., Heering J., Sloane A. M. When and how to develop domain¬specific languages // ACM computing surveys (CSUR). 2005. Vol. 37, no. 4. P. 316-344.
[3] Кознов Дмитрий Владимирович. Основы визуального моделирования // М.: Изд-во Интернетуниверситета информационных технологий, ИНТУИТ. ру, БИНОМ, Лаборатория знаний. 2008.
[4] Prieto-Diaz R. Domain analysis for reusability // Software reuse: emerging technology / IEEE Computer Society Press. 1988. P. 347¬353.
[5] Ferre X., Vegas S. An evaluation of domain analysis methods // 4th CASE/IFIP8 International Workshop in Evaluation of Modeling in System Analysis and Design / Citeseer. 1999. P. 2-6.
[6] Гудошникова А. А. Генерация метамодели языка по модели предметной области в проекте QReal, - ВКР бакалавра. 2014.
[7] Arango Guillermo. Domain analysis methods // Software Reusability.
1994. С. 17-49.
[8] DARE: Domain analysis and reuse environment / W. Frakes, R. Prieto,
C. Fox et al. // Annals of Software Engineering. 1998. Vol. 5, no. 1. P. 125-141.
[9] Taylor R. N., Tracz W., Coglianese L. Software development using domain-specific software architectures // ACM SIGSOFT Software Engineering Notes. 1995. Vol. 20, no. 5. P. 27-38.
[10] Feature-oriented domain analysis (FODA): Tech. Rep.: / K. C. Kang,
S. G. Cohen, J. A. Hess et al.: DTIC Document, 1990.
[11] FORM: A feature-; oriented reuse method with domain-; specific reference architectures / Kyo C Kang, Sajoong Kim, Jaejoon Lee [и др.] // Annals of Software Engineering. 1998. Т. 5, № 1. С. 143-168.
[12] Falbo Ricardo de Almeida, Guizzardi Giancarlo, Duarte Katia Cristina. An ontological approach to domain engineering // Proceedings of the 14th international conference on Software engineering and knowledge engineering / ACM. 2002. С. 351-358.
[13] Simos Mark, Anthony Jon. Weaving the model web: A multi-modeling approach to concepts and features in domain engineering // Software Reuse, 1998. Proceedings. Fifth International Conference on / IEEE. 1998. С. 94-102.
[14] FAMILIAR-project. 2012. URL: https://github.com/FAMILIAR- project.
[15] pure::variants. URL: http://www.pure-systems.com.
[16] Czarnecki Krzysztof. Generative programming: Principles and techniques of software engineering based on automated configuration and fragment-based component models. 1998.
[17] Estublier J., Vega G. Reuse and variability in large software applications // ACM SIGSOFT Software Engineering Notes. 2005. Vol. 30, no. 5. P. 316-325.
[18] An approach and framework for extensible process support system / Jacky Estublier, Jorge Villalobos, LE Anh-Tuyet [и др.] // Software Process Technology. Springer, 2003. С. 46-61.
[19] Chen Lianping, Babar Muhammad Ali. A systematic review of evaluation of variability management approaches in software product lines // Information and Software Technology. 2011. Т. 53, № 4.
С. 344-362.
[20] Denger Christian, Kolb Ronny. Testing and inspecting reusable product line components: first empirical results // Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering / ACM. 2006. С. 184-193.
[21] The Variability Model of The Linux Kernel. / Steven She, Rafael Lotufo, Thorsten Berger [и др.] // VaMoS. 2010. Т. 10. С. 45¬
51.
[22] Kelly Steven, Tolvanen Juha-Pekka. Domain-specific modeling: enabling full code generation. John Wiley & Sons, 2008.


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



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


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