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

кандидата технических наук
Дубаков, Сергей Анатольевич
город
Томск
год
2005
специальность ВАК РФ
05.13.11
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Информационная технология анализа производительности в процессе разработки программного обеспечения»

Автореферат диссертации по теме "Информационная технология анализа производительности в процессе разработки программного обеспечения"

Дубаков Сергей Анатольевич

Информационная технология анализа производительности в процессе разработки программного обеспечения

Специальность: 05.13.11-Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ

диссертации на соискание ученой степени кандидата технических наук

Томск-2005

Работа выполнена в Томском политехническом университете

Научный руководитель:

доктор технических наук, профессор Силич В.А.

Марков Н.Г. - д.т.н., профессор кафедры ВТ ТПУ, г. Томск

Максимов A.B. - канд. физ.-мат.наук , доцент, зав. каф. информатики АТУ, г. Барнаул

Оффициальные оппоненты:

Ведущая организация: Томский Университет Систем Управления и Радиоэлектроники, г. Томск

Защита состоится « 21 » декабря 2005 г. В 15 час. 00 мин. на заседании диссертационного совета Д 212.269.06 по адресу: 634034, г.Томск, ул. Советская, 84, институт «Кибернетический центр» ТПУ.

С диссертацией можно ознакомиться в библиотеке Томского политехнического университета по адресу: 645045, г.Томск, ул. Белинского, 53.

Автореферат разослан «7(7» ноября 2005 г.

Ученый секретарь диссертационного совета к.т.н., доцент

М.А. Сонькин

М-ч ФИ**

Общая характеристика работы

Актуальность исследования. Одной из ключевых характеристик современного программного обеспечения (ПО) является производительность. Низкая производительность может обуславливать неэффективность работы пользователей и, как следствие, негативную реакцию на программный продукт, потерю прибыли и клиентуры, доли рынка; перерасход средств вследствие затрат на модификации и перепроектирование. Более того, переработка кода с целью увеличения производительности с большой вероятностью может разрушить первоначальную структуру системы, сводя на нет преимущества от использования объектно-ориентированного подхода. Наконец, маловероятно, что переработанный код сможет довести производительность системы до уровня, на котором она могла бы быть в случае изначального проектирования с учетом вопроса производительности. В худшем случае, будет невозможно достичь поставленных целей простой модификацией исходного кода системы, что обусловит необходимость полного перепроектирования или остановки проекта.

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

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

Несмотря на указанные проблемы, многие эксперты считают, что спроектировать программную систему с учетом вопросов производительностью практически возможно. Этой задаче посвящены работы таких авторов, как Смит К., Уильяме Л., Петриу Д., Вудсайд М., Хиллстон Дж., Ролиа Дж., Фрэнке Р. Регулярно проводятся международные конференции, посвященные вопросам анализа производительности ПО, в частности International Workshop on Software and Performance (WOSP).

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

-Шел

подготовке участников команды разработки и, тем самым, снижает эффективность внедрения.

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

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

1. Формулирование требований к технологии анализа производительности в процессе разработки ПО.

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

3. Анализ существующих средств моделирования производительности ПО.

4. Разработка информационной технологии анализа производительности в процессе разработки ПО.

5. Разработка программного комплекса, реализующего предложенный подход.

Методы исследования. В ходе диссертационного исследования были использованы метод экспертных оценок, объектно-ориентированное проектирование и программирование, математическое моделирование, аппарат многоуровневых сетей массового обслуживания, методы математической статистики.

Научная новизна. Получены следующие основные результаты, обладающие научной новизной:

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

2. Предложен алгоритм автоматической генерации модели производительности на основе диаграмм UML.

3. Модифицирован алгоритм анализа многоуровневых сетей массового обслуживания для эффективной поддержки моделей, полученных на основе диаграмм UML.

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

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

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

Основные положения, выносимые на защиту:

1. Информационная технология анализа производительности в процессе разработки ПО.

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

3. Алгоритм анализа многоуровневых сетей массового обслуживания, модифицированный для эффективной поддержки моделей, полученных на основе диаграмм UML.

4. Программное решение поддержки предложенной информационной технологии, позволяющее выполнять формирование и анализ модели производительности на основе диаграмм UML.

Апробация работы. Основные положения диссертации докладывались и обсуждались на научных семинарах кафедры оптимизации систем управления АВТФ ТПУ; конференции Ассоциации научных и учебных организаций-пользова телей сетей передачи данных «RELARN» (Нижний Новгород, 1997); всероссийской научно-методической конференции «Телематика» (1998); международной научно-практической конференции "Актуальные проблемы информатики и информационных технологий" (Тамбов, 2004); международном симпозиуме "KORUS" (Новосибирск, 1999; Томск, 2004); международной научной конференции "Инновации в науке и образовании" (Калининград, 2004); всероссийской научно-практической конференции "Системы и средства автоматизации" (Томск, 2004; Томск, 2005); всероссийской научно-технической конференции «Проблемы информатики в образовании, управлении, экономике и технике» (Пенза, 2005).

По результатам выполненных исследований опубликовано 11 работ.

Личный вклад. Постановка задач исследования выполнена автором совместно с В.А. Силичем. Все результаты, составляющие основное содержание диссертации, получены автором самостоятельно.

Структура и объем работы. Диссертация состоит из введения, 3 глав и заключения. Объем диссертации составляет 132 страниц текста, 45 рисунков, список литературы из 117 наименований.

Содержание работы

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

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

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

Проведен анализ существующих технологий анализа производительности в процессе разработки ПО, таких как Software Performance Engineering (SPE), Performance Design & Engineering (PDE), Structure & Performance Spécification (SP), Hierarchical Evaluation Tool (HIT). Обоснована необходимость создания новой информационной технологии анализа производительности в процессе разработки ПО.

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

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

Результаты оценки показали, что оптимальным средством построения модели производительности в можно считать многоуровневые сети массового обслуживания (Layered Queueing Networks - LQN). Этот формализм обладает достаточной выразительностью для представления сложных, в том числе многоуровневых и распределенных программных приложений. Он также выгодно отличается от других средств аналитического моделирования наличием эффективных методов анализа, таких как стохастические сети с рандеву

(Stochastic Rendezvous Networks) и метод слоев (Method of Layers). Эти методы не базируются на марковских цепях и, соответственно, не подвержены эффекту взрыва пространства состояний.

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

Во второй главе рассматривается авторский подход к моделированию производительности на основе диаграмм UML с помощью многоуровневых сетей массового обслуживания.

В связи с тем, что стандартная модель UML не включает полный набор информации, необходимой для построения модели производительности, было предложено дополнение к нотации UML, включающее в себя следующие элементы:

• Для актеров (Actor) на диаграмме вариантов использования (Use Case Diagram):

о Помеченное значение "multiplicity", определяющее количество взаимодействующих с системой пользователей данного типа;

о Помеченное значение "delay", определяющее задержку между обращениями пользователя к системе;

• Для ассоциации между актером и вариантом использования (Use Case) на диаграмме вариантов использования:

о Помеченное значение "multiplicity", определяющее количество вызовов функции за один сеанс взаимодействия пользователя с системой;

• Для операции класса (Class) или интерфейса (Interface) на диаграмме классов (Class Diagram):

о Помеченное значение "executionTime", определяющее среднее ' прогнозируемое время выполнения метода;

» Для узлов (Node) на диаграмме развертывания (Deployment Diagram):

о Помеченное значение "capacity", определяющее вычислительную мощность аппаратного ресурса;

• Для ассоциаций между узлами на диаграмме развертывания:

о Помеченное значение "communicationDelay", определяющее пропускную способность коммуникационного канала между аппаратными ресурсами.

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

Шаг 1. Для каждого актера из диаграммы вариантов использования, взаимодействующего с каким-либо из выбранных для рассмотрения вариантов использования, создаются начальные задачи (reference tasks). Начальная задача в нотации LQN характерна тем, что не предоставляет услуг другим задачам, а выступает только в качестве клиента.

5

I

Создание начальных задач соответствующих акторам I

V

Соэданио задач, соответствующих вариантам использования

D

V

Создание задач, соответствующих классам, и элементов, соответствующих методам классов I

Установка погробности в обслуживании эломенгам, соответствующим методам классов

D

м/

Создание процессоров, соответствующих узлам развертывания

Созданио задачи и элементов, отражающих коммуникационные издерем

j

Рис.1. Блок-схема алгоритма построения модели производительности в виде диаграммы деятельности 11МЬ.

Шаг 2. Модель производительности дополняется задачами типа "активный сервер" (active server), соответствующими выбранным вариантам использования. Активные серверы в нотации LQN могут как выполнять запросы, поступающие от других задач, так и сами осуществлять запросы.

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

• обобщение;

• включение;

• расширение.

Шаг 3. Модель производительности дополняется задачами, соответствующими классам, с помощью которых реализована анализируемая функциональность.

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

На диаграмме последовательности по оси X расположены объекты, участвующие в реализации рассматриваемой функциональности. Для того, чтобы

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

Шаг 4. После добавления задач, соответствующих классам, реализующим функциональность системы и элементов, соответствующих их методам, необходимо определить потребность в обслуживании (service demand) каждого элемента. Потребность в обслуживании определяется средним временем выполнения соответствующего метода соответствующего класса без учета времени выполнения вызываемых методов. Это значение можно получить из помеченного значения "executionTime" этого метода на диаграмме классов.

Шаг 5. Модель производительности дополняется процессорами, представляющими аппаратные ресурсы окружения системы.

Исходными данными для выполнения этого шага являются диаграммы компонентов и развертывания.

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

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

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

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

В результате выполнения алгоритма формируется модель производительности в нотации многоуровневых сетей массового обслуживания, подобная изображенной на рис. 2.

Далее в главе рассмотрен анализ модели производительности в нотации LQN для расчета требуемых метрик. Для этого можно использоваться одним из

существующих методов анализа многоуровненвых сетей массового обслуживания. Метод Эгравала и Базена "Метод сгруппированных серверов" (Aggregate server method) может использоваться для анализа сетей только с одним уровнем серверов. Метод Ролиа, названный "Методом слоев" (Method of Layers) имеет меньше ограничений, так как поддерживает неограниченное количество уровней серверов, однако требует жесткого разделения на слои при котором задачи могут взаимодействовать только с задачами, находящимися на уровень ниже. И, наконец, наиболее функциональный метод, лишенный всех вышеупомянутых ограничений, был разработан Вудсайдом - это метод стохастических сетей с рандеву (Stochastic Rendezvous Networks - SRN). В данной работе использована одна из модификаций метода SRN, предложенная Роем Грегори Фрэнксом.

Суть метода, предложенного Фрэнксом, состоит в том, что многоуровневая сеть массового обслуживания разбивается на несколько обычных сетей, для анализа которых могут использоваться стандартные алгоритмы, такие как метод анализа среднего значения (Mean Value Analysis - MVA). Анализ сетей проводится в несколько итераций до достижения сходимости одного из результирующих значений.

В рамках рассматриваемой информационной технологии данный метод анализа дополнен процедурой редукции модели, специфичной для модели производительности, сформированной на основе диаграмм UML.

Блок-схема алгоритма в виде диаграммы деятельности UML представлена на рис. 3.

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

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

Разбиение на подмодели выполняется для разделения многоуровневой сети на несколько обычных сетей массового обслуживании, которые можно затем анализировать методом MVA. Существует несколько возможных алгоритмов разбиения:

• строгое разбиение (Strict layering);

• свободное разбиение (Loose layering);

• пакетное разбиение (Batched layering);

• сжимающее разбиение (Squashed layering).

После этого выполняется основная часть алгоритма - анализ подмоделей.

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

Рис. 3. Блок-схема алгоритма анализа модели производительности в виде диаграммы деятельности ЫМЬ.

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

Активные сервера, как принимающие, так и осуществляющие вызовы, в подмоделях играют роль как клиентов, так и серверов.

Если задача от является клиентом в подмодели /, ей соответствует центр обслуживания с задержкой. Его время обслуживания расчитывается как сумма полного времени ожидания wmj к другим приборам обслуживания во всех подмоделях кроме текущей, где этой задаче соответствует поток заявок:

- Z Z'%

iCl.Jrl fcS,

Кроме того, клиент подмодели отображается также на поток заявок соответствующей сети массового обслуживания. Задержка Z// потока заявок i в подмодели / определяется на основе коэффициента использования p,j.i и пропускной способности Л,задачи /, когда она играет роль сервера в подмодели 1-1:

г -м '"

ли "а л

Л.1-1

Если задача т соответствует серверу в подмодели /, его время обслуживания расчитывается как сумма полного времени ожидания всех потоков заявок, соответствующих этой задаче, во всех подмоделях:

Sml ~ Z 2>„

/о 5,

Алгоритм анализа модели предполагает поочередный анализ подмоделей начиная с первой и заканчивая последней. Результаты анализа очередной подмодели фиксируются в ней, а также отражаются в следующей подмодели.

Внешний цикл алгоритма останавливается по достижению критерия сходимости. Таким критерием является допустимая разница между временем обслуживания прибора на итерации / и /+/. Если средняя разница по всем приборам не превышает допустимую, работа алгоритма завершается.

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

Производными показателями являются:

в общее время ожидания заявки, складывающееся из суммы времени ее

ожидания на каждом приборе обслуживания; в пропускная способность потока заявок, определяемая как отношение численности потока к сумме общего времени ожидания и задержке.

Результаты анализа первой подмодели позволяют выявить метрики производительности с точки зрения пользователя. Общее время ожидания для потока заявок, соответствующего начальной задаче (и, как следствие, актеру исходной модели иМЬ), отражает общее время отклика во время всех обращений пользователя к системе, предусмотренных моделью производительности.

Если при редукции модели производительности задачи, соответствующие вариантам использования, не были удалены, можно получить время отклика для каждого варианта использования. Его можно получить из общего времени ожидания потока заявок, соответствующего актеру, на обработку с помощью прибора, соответствующего варианту использования.

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

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

Далее в главе рассмотрен вопрос о месте мероприятий по анализу производительности в жизненном цикле разработки ПО при использовании наиболее распространенных методологий (модель водопада, итеративные и гибкие методологии).

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

Программное решение состоит из двух основных модулей:

® бизнес-логики, реализующей функциональность, необходимую для

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

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

Программное решение реализовано на языке Java с использованием библиотеки SWING для создания графического пользовательского интерфейса. Исходный код системы состоит из 81 класса, общий объем кода которых превышает 5000 строк. Вклад автора диссертации в прооектирование и разработку программного средства составил 100%.

Реализованное программное решение является переносимым и может использоваться на любой программно-аппаратной платформе, поддерживаемой Java SDK 5.0.

В качестве формата исходных данных разработанное приложение использует стандарт XMI (XML Metadata Interchange), предназначенный для обмена объектными моделями, описанными с помощью стандарта MOF (Meta Objects Facility). Спецификация XMI включает отображение метамодели UML на метамодель MOF. Более того, наиболее распространенным способом использования XMI является именно обмен моделями UML.

Внешний вид пользовательского интерфейса приложения показан на рис. 4.

■ - iИЯР в

£ile Settings yelp

; Called" ~ Ráspense time

Customer Add iten iu shnf p nj .art Í6260 D i -i

__ ¿Make ortli?t_ *i4* 0

Mo rterr io «snotioinj cáit ¿слоек Logt« . T{¡ 0

Мак* ortier íunecK Loain 1'C 0

Controllers . .temauaftAaion У 5 0 ¡116 0

iftdälterriActioj-i

jferHettonta« ft 'iSúfl

.600

Check Login ¡uontrojie^Se^vteí ¡85.0

AüdltomActlon •NStWOfK ¡Sendet Container ротэтЗаьалп Ъгйаг !160.0 \l1U Vo й0

MakeC rderArbon_____ !50.Q

~ ТмеГл>-огк~" ЗеМеК■ontainer pamatfiSíííiáion Ort1i>r 1160.0 «tu ;to.o

CherKLO^inArtion f?equestContí»t •HrwSesslun 'Nñtwom , let uontditiei Dumatníe- siori : S 5.0 ¿íi.U tio.ü ifco.ú

R»qu»«lCont*x! _ jserrte^Conjamer 2100

Htta Seizor" 7ser4erConíatner 2Ü П

AppIlCaílOO íitílVfel *;ou t) -

,„.„..,....... ......... .............!!МЛ ft ... ............................... IT

Рис. 4. Внешний вид пользовательского интерфейса разработанного программного решения.

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

• генерация модели производительности на основе иМЬ модели и ее анализ в соответствии с предложенной информационной технологией;

о измерение производительности существующего программного

приложения; ® сравнение полученных показателен.

Для того, чтобы наиболее полно оценить эффективность информационной технологии, она была применена для анализа нескольких модулей системы, находящихся на различных архитектурных уровнях: в уровня веб-сервиса; в уровня представления HTML; ® уровня бизнес-логики.

Была проведена генерация и анализ модели производительности с последующим измерением на реальной системе следующих вариантов использования:

® вход в систему (Login); ® просмотр объявления (View advertising); • поиск объявлений (Search advertising).

Модель UML была разработана в CASE-средстве Enterprise Architect, генерация и анализ модели производительности выполнялся с помощью разработанного программного решения.

Сводные результаты исследования представлены в таблице 1.

Таблица 1. Результаты исследования производительности.

Вариант использования Время отклика (миллисекунды)

Результат измерения Результат анализа

Доверительный интервал (Р=0,95) Среднее

Бизнес-логика

Вход в систему 105,86-108,14 107 110

Просмотр объявления 85,01-86,99 86 85

Поиск объявлений 123,62-126,37 125 120

Представление HTML

Вход в систему 123,59-126,41 125 130

Просмотр объявления 98,87-101,13 100 105

Поиск объявлений 134,36-137,64 136 140

Веб-сервис

Вход в систему 115,58-118,42 117 125

Просмотр объявления 103,76-106,24 105 100

Поиск объявлений 130,47-133,53 132 135

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

В заключении сформулированы основные результаты работы:

1. Определены требования к интеграции анализа производительности в процесс разработки ПО, позволяющей эффективно решать вопросы производительности на протяжении всего жизненного цикла.

2. Проведен анализ существующих технологий анализа производительности в процессе разработки ПО, таких как Software Performance Engineering (SPE), Performance Design & Engineering (PDE), Structure & Performance Specification (SP), Hierarchical Evaluation Tool (HIT). Сделан вывод о том, что в настоящее время подобной информационной технологии, которая бы опиралась на уже существующие артефакты и не требовала бы значительных дополнительных затрат от участников команды, не существует.

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

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

5. Предложен алгоритм автоматической генерации модели производительности в виде многоуровневой сети массового обслуживания на основе диаграмм UML.

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

7. Разработано программное решение поддержки информационной технологии анализа производительности в процессе разработки ПО. Программное средство позволяет загружать модели UML, аннотированные в соответствии с предложенными в данной работе расширениями, из файлов в формате ХМ1. Таким образом, он может использоваться практически с любыми средствами моделирования, включая такие широкораспространенные системы как Rational XDE или Together.

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

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

в частности новой версии UML 2.0, в которой появилась поддержка фрагментов. Фрагменты в частности позволяют отобразить такие структурные блоки программы, как условие или цикл, в диаграмме последовательности. Кроме того, стоит рассмотреть возможность моделирования асинхронных взаимодействий с помощью сообщений (которое применяется например в JMS или MSMQ). Что касается разработанного программного решения, необходимо интегрировать его в инструменты, уже используемые командами разработки, такие как средства моделирования.

Публикации по теме диссертации

1. Дубаков С.А. Моделирование производительности программного обеспечения на основе диаграмм UML / Дубаков С.А., Силич В.А. // Актуальные проблемы информатики и информационных технологий: Материалы международной (VIII Тамбовской межвузовской) научно-практической конференции. - Тамбов: Изд-во ТГУ им. Г.Р. Державина. - с. 52-53.

2. Dubakov S. Performance Evaluation Integration into Object-Oriented Design Process / Dubakov S. // Proc. 8th Korea-Russia International Symposium on Science and Technology KORUS 2004. - Tomsk: Tomsk Politechnic University. 2004. - p. 22-24.

3. Дубаков С.А. Интеграция оценки производительности в процесс объектно-ориентированного проектирования / Дубаков С.А., Силич В.А. // Материалы международной научной конференции «Инновации в науке и образовании-2004». - Калининград: УОП КГТУ.2004.-с. 184.

4. Дубаков С.А. Автоматическая генерация модели производительности на основе диаграмм UML / Дубаков С.А., Силич В.А. // Материалы 5 всероссийской научно-практической конференции «Системы и средства автоматизации». - Томск: Элеси, 2004.-с. 10.

5. Дубаков С.А. Использование набора диаграмм UML для построения моделей производительности / Дубаков С.А., Силич В.А. // Известия ТПУ. - 2005. - Т.308. - N. 3 - с. 154-159.

6. Дубаков С.А. Формирование модели производительности на основе диаграмм UML / Дубаков С.А., Силич В.А. // Материалы V всероссийской научно-технической конференции «Проблемы информатики в образовании, управлении, экономике и технике». -Пенза: Приволжский дом знаний, 2005. - с. 26-30.

Дубаков С.А. Создание региональной информационной системы субъектов и рынка образовательных услуг / Дубаков С.А., Александров А.А., Дубаков А.А., Агранович Б.Л. // Тезисы докладов конференции ассоциации научных и учебных организаций - пользователей сетей передачи данных «RELARN-97». - Нижний Новгород: Ассоциация RELARN, 1997. - с. 15-16. Дубаков С.А. Создание распределенной региональной информационной системы субъектов и рынка образовательных услуг / Дубаков С.А., Александров А.А., Дубаков А.А., Агранович Б.Л. // Тезисы докладов всероссийской научно-методической конференции «Телематика-98». - Санкт-Петербург: Телематика,

1998.-с. 31-34.

Дубаков С.А. Создание и направления развития региональной информационной системы «Электронная биржа образовательных услуг» / Дубаков С.А., Александров А.А. // Кибернетика и ВУЗ. -

1999.-вып. 29.-с. 17-20.

Дубаков С.А. Безопасность интернет-магазина / Дубаков С.А., Мещеряков Р.В. // Интеллектуальные системы в управлении, конструировании и образовании. - Томск: STT, 2001. - с. 51 -56. Dubakov S.A. Using Internet Technologies for Informational Support of School Choice / Dubakov S.A., Alexandrov A.A., Dubakov A.A., Agranovich B.L. // Proceedings of the third Russian-Korean Symposium of Science and Technology "KORUS'99". - Novosibirsk: Novosibirsk State Technical University, 1999. - p. 17-19.

Подписано к печати 17.11.05. Формат 60x84/16. Бумага "Классика". Печать RISO. Усл.печ.л. 1.11. Уч.-изд.л. 0,95. Заказ 1376. Тираж 100 зкз.

«ЗЛДТЕЛЬСТВОЖТПУ. 634050,г. Томск, пр. Ленина,30.

РНБ Русский фонд

2007-4 11191

g

Лъ t

29 ДЕК 2005

Оглавление автор диссертации — кандидата технических наук Дубаков, Сергей Анатольевич

Введение

1 Производительность в процессе разработки программного обеспечения

1.1 Производительность программного обеспечения.

1.1.1 Понятие производительности.

1.1.2 Метрики производительности.

1.1.3 Методы оценки производительности.

1.1.4 Значение производительности.15 •

1.2 Интеграция анализа производительности в жизненный цикл разработки программного обеспечения

1.2.1 Производительность и процесс разработки ПО

1.2.2 Требования к интеграции.

1.2.3 Существующие технологии анализа производительности в процессе разработки ПО.

1.2.4 Необходимость разработки технологии. 1.3 Использование моделей иМЬ для анализа производительности

1.3.1 Анализ производительности на основе модели проектирования .-.

1.3.2 Существующие подходы к использованию моделей 11МЬ для анализа производительности.

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

1.4.1 Сети массового обслуживания.

1.4.2 Сети Петри.

1.4.3 Алгебры процессов.

1.4.4 Имитационное моделирование.

1.4.5 Сравнительная характеристика и выбор средства моделирования

Введение 2005 год, диссертация по информатике, вычислительной технике и управлению, Дубаков, Сергей Анатольевич

Актуальность работы. Одной из ключевых характеристик современного программного обеспечения (ПО) является производительность. Низкая производительность может обуславливать неэффективность работы пользователей и, как следствие, негативную реакцию на программный' продукт, потерю прибыли и клиентуры, доли рынка; перерасход средств вследствие затрат на модификации и перепроектирование. Более того, переработка кода с целью увеличения производительности с большой вероятностью может разрушить первоначальную структуру системы, сводя на нет преимущества от использования объектно-ориентированного подхода. Наконец, маловероятно, что переработанный код сможет довести производительность системы до уровня, на котором она могла бы быть в случае изначального проектирования с учетом вопроса производительности. В худшем случае, будет невозможно достичь поставленных целей простой модификацией исходного кода системы, что обусловит необходимость полного перепроектирования или остановки проекта. В литературе рассмотрены случаи, когда руководство было вынуждено инициировать полное переписывание системы [92] или, например, отложить запуск космического спутника [27]. В последнем случае программное обеспечение реализовывалось Национальным Аэрокосмическим Агентством США (NASA), и задержки, вызванные проблемами с производительностью, заставили Конгресс США рассматривать вопрос о способности NASA выполнять проект.

Очевидно, что большинство серьезных проблем с производительностью программного обеспечения вызвано недооценкой этого вопроса на ранних стадиях процесса разработки, в частности на этапе проектирования. Низкая производительность чаще всего обусловлена недостатками проектирования, а не 4 реализации. Однако в объектно-ориентированном сообществе распространена тенденция откладывать рассмотрение вопроса производительности до момента, когда система реализована. Типичной является следующая формулировка классиков объектно-ориентированного программирования Ауэра и Бека: "Игнорируйте эффективность в течение всего цикла разработки. Выполняйте необходимые настройки производительности, когда программа работает корректно и структура системы выражает ваше понимание о том, как оптимально должен быть организован исходный код. Необходимые изменения будут ограничены соответствующими границами или выявят возможности для улучшения проектирования "[7]. Аналогичных взглядов придерживается и еще один признанный специалист в объектно-ориентированном подходе к разработке программного обеспечения Айвар Якобсон: "Изменения в архитектуре системы, вносимые для улучшения производительности, должны, как правило, откладываться до момента, когда система (хотя бы частично) построена. Практика показывает, что при принятии решений о местах системы, критичных по производительности, часто делают ошибки. Для того чтобы сделать правильную оценку, в большинстве случаев, необходимо иметь что-то, что можно измерить. Поскольку нам нечего измерять до момента построения системы, мы не можем выполнять подобную оптимизацию на ранних этапах" [41].

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

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

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

Несмотря на указанные проблемы, многие эксперты считают, что спроектировать программную систему с учетом вопросов производительностью практически возможно. Этой задаче посвящены работы таких авторов, как Смит К., Уильяме JL, Петриу Д., Вудсайд М., Хиллстон Дж., Ролиа Дж., Фрэнке Р. Регулярно проводятся международные конференции, посвященные вопросам анализа производительности программного обеспечения, в частности International Workshop on Software and Performance (WOSP).

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

Таким образом, несмотря на активные разработки в данной области, проблема создания эффективного подхода к анализу производительности в процессе разработки программного обеспечения до конца не решена. Для того чтобы было возможно учитывать вопросы производительности в течение всего процесса разработки, начиная с ранних стадий, должна быть создана технология, позволяющая, не нарушая сложившийся подход к проектированию программного обеспечения, оценивать те или иные архитектурные решения с точки зрения производительности. При этом должны быть минимизированы издержки использования подобной технологии, для чего она должна опираться в основном на уже существующие артефакты проектирования и не требовать математической подготовки от участников коллектива разработчиков. Под артефактами проектирования понимаются данные моделирования, управления проектами, системной конфигурации, т. е. компоненты информационных систем, которые описывают информационные системы [118].

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

Для достижения поставленной цели были поставлены и решены следующие задачи:

1. Формирование требований к интеграции анализа производительности в процесс разработки программного обеспечения.

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

3. Анализ существующих средств моделирования производительности программного обеспечения.

4. Разработка информационной технологии анализа производительности в процессе разработки программного обеспечения.

5. Разработка программного комплекса, реализующего предложенный подход.

Методы исследования. В ходе диссертационного исследования были использованы метод экспертных оценок, объектно-ориентированное проектирование и программирование, математическое моделирование, аппарат многоуровневых сетей массового обслуживания, методы математической статистики.

Научная новизна. Получены следующие основные результаты, обладающие научной новизной:

1. Разработана новая информационная технология, позволяющая внедрить анализ производительности в процесс разработки программного обеспечения с ранних стадий без необходимости привлечения специализированных моделей и средств.

2. Предложен алгоритм автоматической генерации модели производительности на основе диаграмм 1ШЬ.

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

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

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

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

Апробация работы. Основные положения диссертации докладывались и обсуждались на научных семинарах кафедры оптимизации систем управления АВТФ ТПУ; конференции Ассоциации научных и учебных организаций-пользователей сетей передачи данных "RELARN"(Нижний Новгород, 1997); всероссийской научно-методической конференции "Телематика" (Санкт-Петербург, 1998); международной научно-практической конференции "Актуальные проблемы информатики и информационных технологий"(Тамбов, 2004); международном симпозиуме "KORUS" (Новосибирск, 1999; Томск, 2004); международной научной конференции "Инновации в науке и образовании "(Калининград, 2004); всероссийской научно-практической конференции "Системы и средства автоматизации"(Томск, 2004); всероссийской научно-технической конференции "Проблемы информатики в образовании, управлении, экономике и технике"(Пенза, 2005).

Публикации. По результатам выполненных исследований опубликовано 11 работ.

Структура и объем работы. Диссертация состоит из введения, 3 глав и заключения. Объем диссертации составляет 135 страниц текста, 45 рисунков, 3 таблиц, список литературы из 117 наименований.

Заключение диссертация на тему "Информационная технология анализа производительности в процессе разработки программного обеспечения"

Основные результаты и выводы к главе 3

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

Вариант использования Время отклика (миллисекунды)

Результат измерения) Результат анализа

Доверительный Среднее интервал (Р=0,95)

Бизнес-логика

Вход в систему 105,86-108,14 107 110

Просмотр объявления 85,01-86,99 86 85

Поиск объявлений 123,62-126,37 125 120

Представление HTML

Вход в систему 123,59-126,41 125 130

Просмотр объявления 98,87-101,13 100 105

Поиск объявлений 134,36-137,64 136 140

Веб-сервис

Вход в систему 115,58-118,42 117 125

Просмотр объявления 103,76-106,24 105 100

Поиск объявлений 130,47-133,53 132 135

Заключение

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

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

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

2. Проведен анализ существующих технологий анализа производительности в процессе разработки программного обеспечения, таких как Software Performance Engineering (SPE), Performance Design & Engineering (PDE), Structure Sz Performance Specification (SP), Hierarchical Evaluation Tool (HIT). Сделан вывод о том, что в настоящее время подобной информационной технологии, которая бы опиралась на уже существующие артефакты и не требовала бы значительных дополнительных затрат от участников команды, не существует.

3. В рамках анализа требований к информационной технологии анализа ripo

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

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

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

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

5. Предложен алгоритм автоматической генерации модели производительности в виде многоуровневой сети очередей массового обслуживания на основе диаграмм UML.

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

7. Разработано программное решение поддержки информационной технологии анализа производительности в процессе разработки программного обеспечения. Программное средство позволяет загружать модели UML, аннотированные в соответствии с предложенными в данной работе расширениями, из файлов в формате XMI. Таким образом, он может использоваться практически с любыми средствами моделирования, включая такие широкораспространенные системы как Rational XDE или Together.

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

9. По результатам исследования можно очертить пути дальнейшего развития информационной технологии, предложенной в данной работе. Прежде всего, необходимо расширить использование выразительных возможностей языка UML, в частности новой версии UML 2.0 [24], в которой появилась поддержка фрагментов. Фрагменты в частности позволяют отобразить такие структурные блоки программы, как условие или цикл, в диаграмме последовательности. Кроме того, стоит рассмотреть возможность моделирования асинхронных взаимодействий с помощью сообщений (которое применяется например в JMS или MSMQ). Что касается разработанного программного решения, необходимо интегрировать его функциональность в инструменты, уже используемые командами разработки, такие как средства моделирования.

Библиография Дубаков, Сергей Анатольевич, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. A toolset for Performance Engineering and Software Design of Client-Server Systems / Franks, G. et al] // Performance Evaluation. - 1995. - Vol. 24, 1.sue 1-2. - p. 117-136.

2. Agility Counts // The Economist. 2001. - September, 20. - p.ll.

3. Agrawal S.C. The Aggregate Server Method for Analyzing Serialization Delays in Computer Systems / Agrawal S.C., Buzen J.P. // ACM Transactions on Computer Systems. 1983. - Vol.1, No. 2. - pp. 116-143.

4. Allen A. Probability, Statistics and Queueing Theory with Computer Science Applications / Allen A. San Diego: Academic Press, 1990. - 740 p.

5. Amer H. Software Performance Evaluation: Graph Grammar-based Transformation of UML Design Models into Performance Models / Amer H., Petriu D. Carleton: Carleton University, 2002. - 33 p.

6. Arief L.B. A UML Tool for an Automatic Generation of Simulation Programs / Arief L.B., Speirs N.A. // Proc. 2nd International Workshop on Software and Performance, WOSP2ÛOO, Ottawa, Canada, 2000. New York: ACM Press, 2000. - p. 71-76.

7. Auer K. Lazy Optimization: Patterns for Efficient Smalltalk Programming / Auer K., Beck K. // Pattern Languages of Program Design, Volume 2 (J.Vlissides et al, ed.). Boston: Addison-Wesley, 1996. - p. 19-42.

8. Beilner H. Concepts and Techniques of the Performance Modeling Tool HIT / Beilner H., Stewing F.-J. // Proc. European Simulation Multiconference. -Vienna: CSC Europe, 1987. p. 84-89.

9. Bernardo M. A Tutorial on EMPA: A Theory of Concurrent Processes with Nondeterminism, Priorities, Probabilities and Time / Bernardo M., Gorrieri R. // Theoretical Computer Science. 1998. - 202. - p. 1-54.

10. Birtwistle G.M. A System for Discrete Event Modeling on Simula / Birtwistle G.M. Oxford: Macmillan, 1979. - 214 p.

11. Boehm B. A Spiral Model of Software Development and Enhancement / Boehm B. // ACM SIGSOFT Software Engineering Notes (SEN). 1986. - Volume 11, Issue 4. - p. 14-24.

12. Clarke E.M. Model Checking / Clarke E.M., Grumberg O., Peled D.A. -Cambridge: MIT Press, 2000. 330 p.

13. Cortellessa V. Deriving a Queueing Network based Performance Model from UML Diagrams / Cortellessa V., Mirandola R. // Proc. 2nd International Workshop on Software and Performance, WOSP2000, Ottawa, Canada, 2000. New York: ACM Press, 2000. - p. 58-70.

14. Createasoft Inc. Home Page. Электронный ресурс]. Электрон, дан. -Naperville, 2002. - Режим доступа: http://www.createasoft.com/.

15. Custom Simulations Home Page. Электронный ресурс]. Электрон, дан. -Berkeley, 2004. - Режим доступа: http://www.customsimulations.com/.

16. Donatelli S. A comparison of Performance Evaluation Process Algebra and Generalized Stochastic Petri Nets / Donatelli S., Hillston J., Ribaudo M. // Proc. 6th International Workshop on Petri Nets and Performance Models. -Durham: 1995. p. 158.

17. Dubakov S. Performance Evaluation Integration into Object-Oriented Design Process / Dubakov S. // Proc. 8th Korea-Russia International Symposium on Science and Technology KORUS 2004. Tomsk. 2004. - p. 22-24.

18. Elswijk, P. van. Performance Design & Engineering, Volume II: Performance Modeling Tool, version 0.1 / Elswijk, P. van. Maynard: Digital Equipment Corporation, 1994. - 359 p.

19. Fowler M. The New Methodology / Fowler M. Электронный ресурс] Электрон, дан. - Chicago, 2003. - Режим доступа: http://www.martinfowler.com/articles/newMethodology.html.

20. Franks R.G. Performance Analysis of Distributed Server Systems. PhD Thesis / Franks R.G. Ottawa: Carleton Institute for Electrical and Computer Engineering, 1999. - 294 p.

21. Grassle P. UML 2.0 in Action: A project-based tutorial / Grassle P., Baumann H., Baumann P. Birmingham: Packt Publishing, 2005. - 229 p.

22. Grose Т.Л. Mastering XMI: Java Programming with XMI, XML and UML / Grose T.J., Doney G.C., Brodsky S.A. West Sussex: Wiley, 2002. - 480 p.

23. Gu G. XSLT transformation from UML models to LQN performance models / Gu G., Petriu D. // Proc. 3rd international workshop on Software and performance. Rome: 2002. - p. 227-234.

24. Harreld H. NASA Delays Satellite Launch After Finding Bugs in Software Program / Harreld H. // Federal Computer Week. April 20, 1998. - p. 12.

25. Harrison P. Performance Modelling of Communication Networks and Computer Architectures / Harrison P., Patel N. Boston: Addison-Wesley, 1993. - 472 p.

26. Hillston J. A Compositional Approach to Performance Modeling / Hillston J. -Cambridge: Cambridge University Press, 1996. 170 p.

27. Hillston J. Performance Investigation of an On-Line Auction System / Hillston J., Kloul L. // Concurrency and Computation: Practice and Experience. 2001. - N. 13. - p. 23-41.

28. Hoare C.A.R. Communicating Sequential Processes / Hoare C.A.R. Upper Saddle River: Prentice-Hall, 1985. - 238 p.

29. Hoeben F. Using UML Models for Performance Calculation / Hoeben F. // Proc. 2nd International Workshop on Software and Performance, WOSP2000, Ottawa, Canada, 2000. New York: ACM Press, 2000. - p. 77-82.

30. Hoeben F. Performance in Distributed Object Systems / Hoeben F., Sterk M. -Utrecht: Software Engineering Resource Center, 1998. 229 p.

31. Hrischuk C. The Automatic Generation of Software Performance Models From a Prototype / Hrischuk C. Ottawa: Carleton Institute for Electrical Engineering, 1994.- 84 p.

32. Hutton P. Performance Prediction: An Industry Perspective / Hutton P., Hill B. // Proc. 9th International Conference on Computer Performance Evaluation: Modelling Techniques and Tools. London: 1997. - p. 1-5.

33. Hutton P. Further Experiences with Software Performance Modelling / Hutton P., Martin G. // Proc. 1st International Workshop on Software and Performance, WOSP98. Santa Fe: 1998. - p. 14-15.

34. IEEE Std 610.12-1990. IEEE Standard Glossary of Software Engineering Terminology. New York: Institute of Electrical and Electronic Engineers, 1993.- 96 p.

35. Ibe O. Performance Evaluation of Client-Server Systems / Ibe O., Choi H., Trivedi K. // IEEE Transactions on Parallel and Distributed Systems. 1993. -Volume 4, Issue 11. - p. 1217-1229.

36. Jackson J.R. Jobshop-like queueing systems / Jackson J.R. // Management Science. 1963. - Volume 10, Issue 1. - p. 131-142.

37. Jacobson I. Object-Oriented Software Engineering A Use Case Driven Approach / Jacobson I. - Boston: Addison-Wesley, 1994. - 552 p.

38. Jacobson P.A. Analyzing queueing networks with simultaneous resource possession / Jacobson P.A., Lazowska E.D. // Communications of the ACM.- 1982. Volume 25, Issue 2. - p. 142-151.

39. Jain R. The Art of Computer Systems Performance Analysis Techniques for Experimental Design, Measurement, Simulation, and Modeling / Jain R. - New York: Wiley and Sons, 1991. - 720 p.

40. Jou C.-C. Equivalences, Congruences and Complete Axiomatizations of Probabilistic Processes / Jou C.-C., Smolka S.A. // CONCUR. 1990. - Volume 458. - p. 367-383.

41. Kabajunga C. Simulating UML sequence diagrams / Kabajunga C., Pooley R. // Proc. UK Performance Engineering Workshop, July 1998. Edinburgh: 1998. - p. 198-207.

42. Lavenberg S.S. A perspective on queueing models of computer performance / Lavenberg S.S. // Performance Evaluation. 1989. - Volume 10, Issue 1. - p. 53-76.

43. Lisowski W. Performance Design & Engineering, Volume I: Methodology, version AX0.2 / Lisowski W. Maynard: Digital Equipment Corporation, 1992. - 374 p,

44. Manardt D. Applications Optimization Methodology An Approach / Manardt D. // Proc. 1st International Workshop on Software and Performance. - Santa Fe: ACM Press, 1998. - pp. 93-100.

45. Mani Chandy K. Linearizer: A heuristic algorithm for queueing network models of computing systems / Mani Chandy K., Neuse D. // Communications of the ACM. 1982. - Volume 25, Issue 2. - p. 126-134.

46. Mania D. Framework for predicting the performance of component-based systems / Mania D., Murphy J. // Proc. IEEE 10th International Conference on Software, Telecommunications and Computer Networks. Venice: 2002. - p. 46-50.

47. McNab R. Using Java for Discrete Event Simulation / McNab R., Howell F.W. // Proc. 12th UK Computer and Telecommunications Performance Engineering Workshop (UKPEW). Edinburgh: University of Edinburgh, 1996. - p. 219-228.

48. Milner R. Communication and Concurrency / Milner R. Upper Saddle River: Prentice-Hall, 1989. - 260 p.

49. Mirandola R. UML-based Performance Modeling of Distributed Systems / Mirandola R., Cortellessa V. // Proc. 3rd International Conference on UML.-York: 2000. p.178-193.

50. Modelling with Generalized Stochastic Petri Nets / Marsan M. et al]. West Sussex: Wiley, 1995. - 324 p.

51. Non-Functional Requirements in Software Engineering / Chung L. et al] -Boston: Kluwer, 2000. 472 p.

52. JavaSim Home Page. Электронный ресурс]. Электрон, дан. - New Castle, 2004. - Режим доступа: http://javasim.ncl.ac.uk/.

53. JiST: Embedding Simulation Time into a Virtual Machine // Proc. EuroSim Congress on Modelling and Simulation, September 2004. Paris: EUROSIM-FRANCOSIM-ARGESIM, 2004. - p. 54-57.

54. MacDougall M.H. Simulating Computer Systems : Techniques and Tools / MacDougall M.H. Cambridge: MIT Press, 1987. - 290 p.

55. Manifesto for Agile Software Development. Электронный ресурс]. Электрон, дан. - Snowbird, 2001. - Режим доступа: http://agilemanifesto.org/.

56. Meta Object Facility. Электронный ресурс]. Электрон. дан. - Needham: 2005. - Режим доступа: http: / / www.omg.org/technology/documents/formal/mof.htm.

57. Micro Analysis & Design Inc. Home Page. Электронный ресурс]. Электрон, дан. - Boulder, 2003. - Режим доступа: http://www.maad.com/.

58. Muller К. Advanced systems simulation capabilities in SimPy / Muller K. // Proc. EuroPython 2004, Gothenburg, Sweden. Gothenburg: EuroPython Conference Team, 2004. - p. 43-48.

59. Performance Analysis of Time-enhanced UML Diagrams Based on Stochastic Processes / Lindemann C. et al] // Proc. 3rd International Workshop on Software and Performance. Rome: 2002. - p. 24-34.

60. Petriu D. Applying the SPT Profile for Performance Analysis / Petriu D. Электронный ресурс]. Электрон, дан. - Ottawa, 2002. - Режим доступа: http://www.ensieta.fr/mda/ecoleMDA2002/presentations/PetriuTalk2.ppt.

61. Petriu D. Deriving Performance Models from UML Models by Graph Transformations / Petriu D. // Proc. 2nd International Workshop on Software and Performance, WOSP2000, Ottawa, Canada, 2000. New York: ACM Press, 2000. - p. 31-43.

62. Quantitative System Performance: Computer System Analysis Using Queueing Network Models / Lazowska E.D. et al] Englewood Cliffs: Prentice-Hall, 1984.- 417 p.

63. Rolia J.A. Predicting the Performance of Software Systems. PhD Thesis / Rolia J.A. Toronto: University of Toronto, 1992. - 315 p.

64. Rolia, J.A. The Method of Layers / Rolia, J.A., Sevcik, K.C. // IEEE Transactions on Software Engineering. 1995. - Volume 21, Issue 8. - p. 689-700.

65. Royce W.W. Managing the development of large software systems: concepts and techniques / Royce W.W. // 1970 WESCON Technical Papers. Vol. 14. - pp. 1-9.

66. Rüssel E. Building Simulation Models with Simscript II.5 / Rüssel E. -Arlington: CACI Marketing Systems, 1990. 500 p.

67. Sauer C. A Language for Extended Queueing Network Models / Sauer C., MacNair E., Salza S. // IBM Journal of Research and Development. 1980.- Volume 24, No 6. p. 747-755.

68. Schriber T. An Introduction to Simulation Using GPSS/H / Schriber T. New York: John Wiley and Sons, 1991. - 464 p.

69. Schweitzer P. Approximate analysis of multiclass closed networks of queues / Schweitzer P. // Proc. International Conference on Stochastic Control and Optimization. Amsterdam: North Holland, 1979. - p. 25-29.

70. Schwetman H. CSIM: A C-based, Process-Oriented Simulation Language / Schwetman H. // Proc. 1986 Winter Simulation Multiconference. Washington: Winter Summer Conference, 1986. - p. 387-396.

71. Scollo G. On the specification in LOTOS of OSI Protocols / Scollo G., Minissale F. // Proc. Computing 85. Amsterdam: North Holland, 1985. - p.101-114.

72. Simkit Home Page. Электронный ресурс]. Электрон, дан. - Monterey: 2005.- Режим доступа: http://diana.gl.nps.navy.mil/Simkit/.

73. Simulink Home Page. Электронный ресурс]. Электрон, дан. - Natick, 2004.- Режим доступа: http://www.mathworks.com/products/simulink/.

74. Smith С.U. Performance Engineering of Software Systems / Smith C.U. -Boston: Addison-Wesley, 1990. 570 p.

75. Stuck B.W. A Computer and Communications Network Performance Analysis Primer / Stuck B.W., Arthurs E. Upper Saddle River: Prentice-Hall, 1984. -593 p.

76. TOMASWEB Home Page. Электронный ресурс]. Электрон, дан. - Delft, 1999. - Режим доступа: http://www.tomasweb.com/.

77. The Stochastic Rendezvous Network Model for Performance of Synchronous Client-Server-like Distributed Software / Woodside, C.M et al] // IEEE Transactions on Computers. 1995. - Volume 44, Issue 1. - p. 20-34.

78. UML Profile for Schedulability, Performance and Time Specification. Version 1.0. Электронный ресурс]. Электрон, дан. - Needham: 2003. - Режим доступа: http: / / www.omg.org/technology / documents / formal/schedulability.htm.

79. UML Resource Page. Электронный ресурс]. Электрон, дан. - Needham, 2004- Режим доступа: http://www.omg.org/uml/.

80. Vetland V. Measurement-Based Composite Computational Work Modeling of Software. PhD Thesis / Vetland V. University of TYondheim: 1993. - 221 p.

81. Williams L.G. Five Steps to Solving Software Performance Problems / Williams L.G., Smith C.U. Santa Fe: Performance Engineering Services, 2002. - 8 p.

82. Williams L.G. Performance Evaluation of Software Architectures / Williams L.G., Smith C.U. // Proc. 1st International Workshop on Software and Performance. New York: ACM Press, 1998. - pp. 164-177.

83. Williams L.G. The Business Case for Software Performance Engineering / Williams L.G., Smith C.U. Santa Fe: Performance Engineering Services, 2002. -8 p.

84. Woodside C.M. Throughput Calculation for Basic Stochastic Rendezvous Networks / Woodside C.M. // Performance Evaluation. 1989. - Volume 9, Issue 2. - p. 143-160.

85. Zeichick A. UML Adoption Making Strong Progress / Zeichick A. // Software Development Times. 2004. - August 15. - p. 5.

86. Буч Г. Язык UML. Руководство пользователя / Буч Г., Рамбо Д., Якобсон А. СПб: Питер, 2003 г. - 429 с.

87. Дубаков С.А. Автоматическая генерация модели производительности на основе диаграмм UML / Дубаков С.А., Силич В.А. // Материалы 5 всероссийской научно-практической конференции «Системы и средства автоматизации» Томск: Элеси, 2004 - с. 10.

88. Дубаков С.А. Безопасность интернет-магазина / Дубаков С.А., Мещеряков Р.В. // Интеллектуальные системы в управлении, конструировании и образовании. Томск: STT, 2001. - с. 51-56.

89. Дубаков С.А. Интеграция оценки производительности в процесс объектно-ориентированного преоктирования / Дубаков С.А., Силич В.А. // Материалы международной научной конференции «Инновации в науке и образовании-2004» Калининград: УОП КГТУ, 2004 - с. 184.

90. Дубаков С.А. Использование набора диаграмм UML для построения моделей производительности / Дубаков С.А., Силич В.А. // Известия ТПУ. -2005. Т.308. - N. 3 - с. 154-159.

91. Дубаков С.А. Создание и направления развития региональной информационной системы "Электронная биржа образовательных услуг"/ Дубаков С.А., Александров A.A. // Кибернетика и ВУЗ. 1999. - вып. 29. - с. 17-20.

92. Ивницкий В.А. Теория сетей массового обслуживания / Ивницкий В.А. -М.: Физматлит, 2004. 770 с.

93. Котов В.Е. Сети Петри / Котов В.Е. М., Наука, 1984. - 160 с.

94. Кузин Л.Т. Основы кибернетики: В 2-х т. Т. 2. Основы кибернетических моделей. Учеб. пособие для вузов / Кузин Л.Т. М.: Энергия, 1979. - 584 с.

95. Леффингуэлл Д. Приципы работы с требованиями к программноу обеспечению. Унифицированный подход / Леффингуэлл Д., Уидриг Д. -М.:Вильямс, 2002 448 с.

96. Лоу А. Имитационное моделирование / Лоу А., Кельтон Д. СПб: BHV, 2004. - 848 с.

97. Менаске Д., Алмейда В. Производительность веб-служб. Анализ и планирование СПб.: ДиаСофтЮП, 2003. - 480 с.

98. Питерсон Дж. Теория сетей Петри и моделирование систем / Питерсон Дж. М.: Мир, 1984. - 264 с.

99. Рыжиков Ю.И. Имитационное моделирование: теория и технологии / Рыжиков Ю.И. СПб: Корона, 2004. - 384 с.

100. Саймон А. Репозитории и управление метаданными / Саймон А. // СУБД. 1996. - 5-6. - стр. 154-162.

101. Силич М.П. Системная технология: объектно-ориентированный подход / Силич М.П. Томск: Томский государственный университет систем управления и радиоэлектроники, 2002. - 224 с.

102. Томашевский В. Имитационное моделирование в среде GPSS / Томашев-ский В., Жданова Е. М.: Бестселлер, 2003. - 416 с.

103. Управление проектами: технология MSF. Электронный ресурс]. Электрон, дан. - Redmond, 2005. - Режим доступа: http: / / www.microsoft.com/rus / msdn / msf/.

104. Фаулер М. UML в кратком изложении. Применение стандартного языка объектного моделирования / Фаулер М., Скотт К. М.: Мир, 1999. - 191 с.

105. Феррари Д. Оценка производительности вычислительных систем / Ферра-ри Д. М.: Мир, 1981. - 576 с.

106. Французов Д. Оценка производительности вычислительных систем / Французов Д. // Открытые системы. 1996. - N. 02. - с. 17-19.

107. Якобсон А. Унифицированный процесс разработки программного обеспечения / Якобсон А., Буч Г., Рамбо Дж. СПб: Питер, 2002. - 496 с.