Спонсор: Microsoft
Опубликован: 24.09.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Московский физико-технический институт
Лекция 10:

Инженерия приложений и предметной области

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >

9.5. Основные аспекты инженерии приложений и предметной области

Базис инженерии программирования, основанной на использовании ПИК, - прикладная инженерия и инженерия ПрО, которые используют готовые ПИК, программы, а также отдельные части систем многоразового применения [9.3, 9.4, 9.10].

Прикладная инженерия - это инженерия ПИК и процесс создания ПС из готовых компонентов и ПИК.

Инженерия ПрО ориентирована на создание архитектуры ПрО - каркаса (framework), включающего ПИК, компоненты многоразового применения из семейства программ разных доменов и их интерфейсов, а также готовые приложения прикладной инженерии.

Основные этапы инженерии ПрО это:

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

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

Инженерия ПрО включает в себя следующие вспомогательные процессы:

  • корректировку процессов для разработки решений на основе ПИК;- моделирование изменчивости и зависимостей компонентов многоразового использования, фиксации их в модели характеристик и в справочнике информации об изменении моделей (объектных, Use Case и др.).

Фиксация зависимостей между характеристиками модели избавляет разработчиков от некоторых конфигурационных операций, выполняемых, как правило, вручную;

  • разработку инфраструктуры ПИК - описание, хранение, поиск, оценивание и объединение готовых ПИК;
  • создание репозитария ПИК и компонентов многоразового использования в классе задач ПрО (рис. 9.3);
  • обеспечение безопасности, защиты данных, изменений;
  • обеспечение синхронизации и взаимодействия ПИК.
Структура репозитария в интегрированной среде ПрО

увеличить изображение
Рис. 9.3. Структура репозитария в интегрированной среде ПрО

Стандартизация процессов доменной инженерии. В стандарте ISO/IEC 12207: 2002 дано описание процесса доменной инженерии (Domain engineering process) как нового процесса в модели процессов ЖЦ. Согласно этому стандарту процесс доменной инженерии охватывает ряд видов деятельности.

Анализ домена состоит:

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

в оценке моделей и словарей домена с учетом выбранной методологией моделирования. Архитектурное проектирование домена (Domain design) - это определение архитектуры домена на основе программных компонентов - специфичных активов/ресурсов.

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

Технология доменной инженерии базируется на новом процессе в модели ЖЦ (ISO/IEC 12207) и включает стандартизированные подпроцессы:

  • формирование ресурсов (Asset provision), т.е. разработка или приобретение ресурсов (активов), которые могут использоваться при компоновки новых программных систем или подсистем.
  • разработка базы ресурсов (asset-based development), в основе которой лежит концепция повторного использования (software reuse) - ПИК, обеспечивающая компоновку программных продуктов домена;
  • сопровождение ресурсов (Asset maintenance) - модификация и эволюция модели, архитектуры и продуктов домена за счет готовых ресурсов типа ПИК.

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

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

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

9.6. Структура линейки программных продуктов

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

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

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

Американский институт программной инженерии SEI предложил линию продуктов или линию семейства продуктов как производство систем из множества программ, ПИК и ПС, которые удовлетворяют специфическим потребностям некоторого рынка программной продукции и показателям качества. В результате множество компонентов и систем образуют семейство продуктов, если они имеют общие свойства, а каждый член семейства имеет свои индивидуальные свойства [9.10].

Понятие линейки программных продуктов (Framework for Product Line Practice) сформировалось как поддержка инженерии ПрО, в задачу которой входит применение подходов и методов для автоматизированного построения разных видов программных продуктов на линейке продуктов.

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

Институт SEI предложил также инфраструктуру разработки линейки продуктов, в которую входят различные методы и средства программной инженерии, необходимые для построения и эксплуатации линеек продуктов (рис. 9.4) [9.10], а также определены соответствующие руководящие материалы и методики.

Инфраструктура построения линейки продукта

Рис. 9.4. Инфраструктура построения линейки продукта

Построение конкретной линейки для разработки программного продукта для некоторого представителя (члена) семейства домена определяется:

  • ограничениями, свойственными продуктам линейки;
  • образцами и каркасами, которые могут использоваться на ЛиНИИ;
  • производственными ограничениями, стратегиями и методами;
  • набором средств и инструментов для разработки продукта на линии.

На основе этих данных определяются область действия линейки и набор базовых средств, строится план создания продукта на линейке, который учитывает сроки, стоимость и требования к управлению производством продукта путем:

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

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

9.7. Оценивание стоимости системы из компонентов

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

Общую стоимость создания компонентной системы считаем состоящей из таких составных элементов:

С = С_{1} + С_{2} + С_{3} + С_{4} ,

где С_{1} - стоимость анализа функций ПрО;

С_{2} - стоимость подбора ПИК из репозитария или библиотеки методов с учетом вновь разработанных компонентов;

С_{3} - стоимость интеграции всех компонентов в систему;

С_{4} - стоимость определения и обработки данных ПС.

Рассмотрим в отдельности каждую составную единицу стоимости ПС.

Стоимость анализа функций ПрО имеет вид

C_1 = \sum_{i=1}^M{b_i^1 C_{1i} F_i(D_i)}

где D_{i} - данные i -функции, M - количество функций F в системе,

b_i^1 = \left\{ \begin{array} {ll}
            1, & \text{когда функция реализована компонентом,} \\
            0, & \text{в противном случае.}
           \end{array}

Стоимость поиска и исследования возможностей применения ПИК из репозитария для реализации некоторой определенной функции ПрО вычисляется с помощью выражения

C_2 = \sum_{j=1}^N{\sum_{i=1}^M a_{ji}^2 C_2(F_{ji})+ C_2(PF_{ji})}

где С_{2}(F_{ji}) - стоимость поиска ПИК для функции F_{i}, сформулированной на этапе анализа ПрО, N - количество новых компонентов и ПИК, C_{2}(PF_{ji}) - стоимость разработки некоторых типичных программных компонентов,

a_{ji}^2 = \left\{ \begin{array} {ll}
            1, & \text{когда }j\text{-компонент используется функцией }F_i \\
            0, & \text{в противном случае.}
           \end{array}

Стоимость композиции компонентов определяется так:

C_3 = \sum_{j=1}^N{\sum_{i=1}^M{\sum_{r=1}^R d_{jir}^2 C_3(I_{jr})}}}

где С_{3}(I_{jr}) - стоимость создания интерфейсных модулей пары компонентов K_{i} и K_{r},

d_{jir}^2 = \left\{ 
            \begin{array} {ll}
            1, & \text{когда }r R \text{ соответствует количеству параметров } \\
            &X=(X_1,\dots,X_r)\text{-входных для }j\text{-компонента,}\\
            & r \text{-функции } (r=1,\dots,R)& \\
            0, & \text{в противном случае.}
           \end{array}

Таким образом, конечный результат оценивания стоимости ПС получается путем суммирования С = С_{1} + С_{2} + С_{3} + С_{4} (расчет С_{4} громоздкий, поэтому не приводится) и имеет вид:

C = \left\{\begin{array} {l}\sum_{i=1}^M{b_i^1 C_{1i} F_i(D_i)} + 
           \sum_{j=1}^N{\sum_{i=1}^M a_{ji}^2 C_2(F_{ji})+ C_2(PF_{ji})} + \\
           + \sum_{j=1}^N{\sum_{i=1}^M{\sum_{r=1}^R d_{jir}^2 C_3(I_{jr})}}}
           \end{array}

Основное ограничение данного выражения - это факт реализации заданных функций в ПС, наличие средств интеграции пар компонентов K_{i} и K_{r}, которые могут быть заданы в любых современных ЯП в заданной среде функционирования, количество компонентов R соответствует заданным функциям для решения задач ПрО.

Расчет стоимости для компонентных систем является трудоемким процессом. Общая стоимость уменьшается, если описание компонентов выполнено на одном из ЯП, за счет отсутствия интерфейсных модулей преобразования данных в системе.

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

Контрольные вопросы и задания

  1. Определите базис инженерии приложения.
  2. Определите базис инженерии предметной области.
  3. Приведите модель спецификации ПИК.
  4. Назовите функции репозитария.
  5. Определите интерфейс компонентов.
  6. В чем суть доменной инженерии?
  7. Назовите назначение линеек производства программ.
< Лекция 9 || Лекция 10: 1234 || Лекция 11 >
Alex Diil
Alex Diil

Здравствуйте, прошел курс МБА Управление ИТ-проектами и направил документы на получение диплома почтой. Подскажите, сроки получения оного в бумажной форме?

:

Наталья Ра
Наталья Ра

Здравствуйте!

Большинство курсов из этой программы я изучила в бесплатном режиме и сдала экзамены. Теперь нужно будет все пересдавать?

Олег Секеркин
Олег Секеркин
Россия, Москва, ГОУВПО "Московский энергетический институт (ТУ)"