Тема: Технология создания семейства приложений на основе анализа предметной области
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
Постановка задачи 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 года.



