Главная » Просмотр файлов » Современные подходы и методы моделирования изменяемых программных систем

Современные подходы и методы моделирования изменяемых программных систем (1187429), страница 5

Файл №1187429 Современные подходы и методы моделирования изменяемых программных систем (Современные подходы и методы моделирования изменяемых программных систем) 5 страницаСовременные подходы и методы моделирования изменяемых программных систем (1187429) страница 52020-09-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

Шаг 2. Ограничение вариабельности семейства программных продуктов состоит в обеспечении текущих потребностей и перспектив эволюции. В семействе вводится характеристика в форме множества точек вариации – мест в архитектуре и реализации компонент повторного использования. При этом для вариабельности вводятся следующие данные: время введения и способы присоединения вариантной характеристики в архитектуре семейства программных продуктов.

Шаг 3. Реализация вариабельности выбирается по технологии реализации точек вариации. Решение относительно варианта вариантной характеристики будет использоваться для программной системы и конкретизируется ссылка на элементы в файле конфигурации.

Шаг 4. Управление вариабельностью состоит в планировании, учете и контроле реализации модели вариабельности, а также действий по регуляции уровня вариабельности семейства программных продуктов.

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

В данной главе был описан метод создания вариабельных систем, а так же представлены основные аспекты вариабельности метода ОКМ.

Глава 3. ИЗВЛЕЧЕНИЕ ВАРИАБЕЛЬНОСТИ ИЗ LEGACY-КОДА

Ранее были рассмотрены подходы к созданию вариабельных программных систем. Но истории различных софтварных продуктов показывают, как можно сэкономить деньги, время до выпуска продукта на рынок и повысить качество продукта за счет переиспользования старого кода - Legacy-кода для создания нового программного продукта Product Line, который будет являться вариабельным.

На Product Line создан набор связанных программных продуктов (вариантов) для домена из общих артефактов [8], как код и конструкции, которые систематически используют повторные reuses. Эксперты домена анализируют варианты домена и выявляют общие и отличительные характеристики. Каждый вариант программного продукта – это сочетание характеристик, реализующих совокупность функций домена. Для анализа и извлечения таких продуктов создан полуавтоматический инструмент Variability mining. Он способствует извлечению объектов в унаследованном коде системы путем:

  • обеспечения согласованности индикатора, основанного на изменчивости системы;

  • извлечения особенностей характеристик на уровнях детализации программного продукта;

  • использования домена знаний для установления отношений между разными объектами.

Данный процесс извлечения изменчивости реализуется за счет нахождения и извлечения характеристик объектов. Извлечение изменчивости Variability mining на линии программного продукта связано с исследованием функции идентификации, реверс инжиниринга и восстановления архитектуры программной системы на основе обязательных и необязательных функций для производственного использования [8].

3.1 Цель работы

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

На передний план выдвинулись методы и технологии анализа данных, получившие название Data Mining направленные на выявление скрытых закономерностей различного типа.

Существует множество определений Data Mining, которые друг друга дополняют. Вот некоторые из них.

Data Mining – это процесс, цель которого – обнаружить новые значимые корреляции, образцы и тенденции в результате просеивания большого объема хранимых данных с использованием методик распознавания образцов плюс применение статистических и математических методов (GartnerGroup).

Data Mining – это исследование и обнаружение «машиной» (алгоритмами, средствами искусственного интеллекта) в сырых данных скрытых знаний, которые ранее не были известны, нетривиальны, практически полезны, доступны для интерпретации человеком (А.Баргесян «Технологии анализа данных»).

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

Одним из методов Data mining является Variability mining. Variability mining – это процесс извлечения необходимых признаков (features) из имеющейся системы для дальнейшего построения модели вариабельности.

Таким образом, целью данной работы является создание рекомендательной системы для извлечения вариабельности из Legacy-кода. Для этого предлагаются полуавтоматические инструменты Data mining – Variability mining, которые помогают разработчикам с нахождением, документацией и извлечением Legacy-кода для создания нового программного продукта Product Line.

Основу метода Variability Minning составляет задача выпуска качественной продукции за счет переиспользования старого кода с помощью полуавтоматических инструментов, позволяющих находить и извлекать требуемую информацию из готового старого Legacy-кода, формировать модель характеристик, документировать ее элементы и по этой построенной модели производить сборку, тестирование и поставку новых вариантов системы. То есть Variability mining является процессом выявления особенностей в Legacy-коде и перепись его в виде качественных дополнительных (или альтернативных) функций для повторного использования в программных продуктах. В программных продуктах на основе этих функций создаются варианты или разные версии продукта для разных целей, чтобы передать только тот набор функций, который необходим. Для этого необходимо разработать набор оптимизированных альтернативных решений сборки версии на основе существующей функциональности.

3.2 Сущность подхода Variability Mining

Переменные в Product Line коде будем называть features. Предметная область анализируется и выявляются общие и различающие features.

Product Line код пишется таким образом, чтобы была возможность извлечь изменения для каждой feature.

Несмотря на принятие Product Line подхода, адаптация к нему вызывает ряд трудностей и рисков у компании. Как правило уже существует Legacy-код, поэтому надо мигрировать от Legacy-кода к Product Line коду. Таким образом, поддержка в миграции является очень важной для широкого принятия технологии Product Line.

Целью данной работы является понизить адаптационный барьер между Legacy и Product Line кодами. Предлагается полуавтоматическая система, которая обнаруживает features в коде и извлекает их. Данному процессу дано название Variability mining, так как вводится изменчивость в Product Line при помощи обнаружение и извлечения features.

Главной трудностью Variability mining является нахождение и извлечение всего согласованного участка кода, то есть чтобы при полном переносе этого участка кода программа работала, без каких-либо ошибок.

К сожалению, полная автоматизация невозможна в силу сложности задачи. Поэтому при нахождении feature эксперты в области должны подтверждать, что данный фрагмент кода принадлежит к данной feature.

Разработаны полуавтоматические инструменты, которые рекомендуют вероятные фрагменты кода и направляют разработчиков в поиске нужного места. Кроме того, данные инструменты автоматизируют задачи документации и извлечения features.

В рамках данной работы вводится следующее определение Variability mining: это процесс идентификации features в Legacy-коде и переписывание их как альтернативные features в Product Line коде.

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

Процесс извлечения и построение системы состоит из четырех шагов:

1. В данной предметной области описываются релевантные features и их взаимосвязь.

2. Идентифицируется начальный смысл (стартовые точки) каждой функции в унаследованном кодовом ядре.

3. Для каждой feature итеративно расширяется идентифицированный код до тех пор пока он не станет согласованным и полным.

4. На заключительном этапе фрагменты кода переписываются таким образом, чтобы варианты системы с и без этих фрагментов кода могли быть сгенерированы.

3.3 Базовая модель алгоритма

Процесс Variability mining может выполняться последовательно и с чередованием. Для того, чтобы выявить все объекты из готовой системы и определить их отношения, необходимо начать извлечение отдельных объектов постепенно, а затем сформулировать их дополнительные функции. В рамках этого процесса выполняется третий этап: поиск всего кода функции. Необходимо найти всю реализацию объектов в Legacy-коде с помощью инструментальной поддержки. Процесс Variability mining определяет фрагменты кода, при котором разработчики должны идти дальше и обновлять их всякий раз, когда дополнительная информация доступна. Например: изменение функций и их взаимосвязей или когда разработчики аннотируют дополнительные фрагменты кода. В качестве известного программного инструмента используется LEADT (Location, Expansion, And Documentation Tool)[30].

Рассмотрим модель, которая описывает элементы кода, features и отношения между ними.

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

Для совокупности элементов кода программы вводится обозначение – E. Между этими элементами кода E извлекаются отношения содержания – REE.

Между данными элементами кода описывается иерархичная структура.

2. Features. В отличие от традиционной concern-location техники, в предложенную модель встраиваются имеющиеся знания о предметной области. Знания области описываются как совокупность признаков F и отношений между ними, извлеченных из модели. Представляет интерес 2 вида отношений: взаимное исключение (MFF) и импликация ().

3. Аннотации. И наконец строится карта взаимоотношений между элементами кода и features. Аннотации соотносят элементы кода с признаками (AEF). Разработчик может помечать рекомендацию как неполную (NEF), тогда данный фрагмент кода будет отмечен, как не имеющий отношения к данной feature.

Используя введенные выше обозначения, получим

extent(f) = {e(e,f) A} ,

exclusion(f) = {e(e,f) N} extent(g)

(g,f) M

Все элементы кода, которые не принадлежат ни extent(f), ни exclusion(f) являются кандидатами для будущего mining f.

Приоритетная рекомендация моделируется как совокупность взвешенных ассоциаций элементов с признаками recommend EF[0,1].

3.3.1 Система типов

Система типов – это ключевой элемент предложенной рекомендательной системы и движущий фактор Variability mining. Система типов обеспечивает согласованность, работает с высокой детализацией и встраивает знания предметной области о взаимосвязи между features.

Базовая идея заключается в том, чтобы искать ссылки в реализации Product Line, аналогично тому, как делает система типов. От вызова функции до ее объявления, от места доступа к переменной до ее объявления.

Рекомендациям системы типов дается наивысший приоритет, так как эти рекомендации должны быть использованы для достижения согласованности. Но, в то же время, одной только системы типов недостаточно для Variability mining. Система типов обеспечивает согласованность, но обычно не способна достичь полноты.

Проверка типов может быть рассмотрена как функция, которая принимает элементы кода E, аннотации A и модель вариабельности VM и выдает ряд сообщений об ошибке типа (e,f), которым мы даем приоритет 1: recommendTS = typeerrors(E, A, VM) {1}.

3.3.2 Топологический анализ

Далее используется топология Робилларда, которая подстраивается под Product Line, используя высокую детализацию и экспертные знания.

Основная идея заключается в хождении по графу зависимостей от текущей точки ко всем структурным соседям. Далее алгоритм извлекает приоритеты и ранжирует рекомендации, используя метрику specificity и reinforcement.

Под specificity подразумевается, что элементы, которые относятся только к одному объекту, имеют больший приоритет, чем элементы, относящиеся ко многим.

Под reinforcement подразумевается, что элементы относящиеся ко многим аннотированным элементам имеют более высокий приоритет, так как они вероятно являются частью кластера feature.

recommendTA = {(e, f, w)e neighbors(extent(f)),

Характеристики

Список файлов ВКР

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6489
Авторов
на СтудИзбе
303
Средний доход
с одного платного файла
Обучение Подробнее