Руководство проектами в области разработки по

Добавил:

Koboku1

По своей натуре перфекционист. Поэтому люблю все аккуратно оформлять и упорядочивать, складывать по полочкам. Вот, не пропадать же добру, нажитому за четыре кропотливых семестра. Тут я выложил все мои ответы, курсовые, отчеты и некоторые ДЗ. Они могут вам помочь для получения зачета или сдачи экзамена. Если чего-то не нашли в папочках, то попытайте удачу в разделе НЕОТСОРТИРОВАННОЕ на моей страничке, там все 4 семестра разложены по папкам. ГРУППА КТ-43-15. Годы обучения 2015-2019. Коллекция будет пополняться. Что ж, удачки :З

Опубликованный материал нарушает ваши авторские права? Сообщите нам.

Вуз:

Предмет:

Файл:

Скачиваний:

87

Добавлен:

15.09.2017

Размер:

293.25 Кб

Скачать

Руководство программным проектом

Руководство
программным проектом

— первый слой процесса конструирования
ПО. Термин «слой» подчеркивает, что
руководство определяет сущность процесса
разработки от его начала до конца.
Принцип руководства иллюстрирует рис.
2.1.Рис.
2.1.
 Руководство
в процессе конструирования ПО

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

Начало
проекта
Перед
планированием проекта следует:установить
цели и проблемную область проекта;
обсудить
альтернативные решения;
выявить
технические и управленческие ограничения.

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

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

Анализ
риска

На
этой стадии исследуется область
неопределенности, имеющаяся в наличии
перед созданием программного продукта.
Анализируется ее влияние на проект. Нет
ли скрытых от внимания трудных технических
проблем? Не станут ли изменения,
проявившиеся в ходе проектирования,
причиной недопустимого отставания по
срокам? В результате принимается решение
— выполнять проект или нет.

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

Трассировка
и контроль
Каждая
задача, помеченная в плане, отслеживается
руководителем проекта. При отставании
в решении задачи применяются утилиты
повторного планирования. С помощью
утилит определяется влияние этого
отставания на промежуточную веху и
общее время конструирования. Под вехой
понимается временная метка, к которой
привязано подведение промежуточных
итогов.В
результате повторного планирования:1)
могут быть перераспределены ресурсы;
2)
могут быть реорганизованы задачи;
3)
могут быть пересмотрены выходные
обязательства

Управление проектами по разработке программного обеспечения. Проблемы и пути решения

Время на прочтение
15 мин

Количество просмотров 26K

Воронка методологий В 2001 году, когда ещё не было Хабра и существенной доли его современных читателей, когда вотерфолл был всемогущим, а об эджайле ещё только-только начинали говорить, я немного поисследовал тему методологий разработки и их отличий друг от друга. В результате появилась статья, которая была опубликована на дружественных мне веб-сайтах. На статью даже ссылались некоторые уважаемые учебные заведения при подготовке курсов по основам менеджмента программных проектов. Поскольку дружественные веб-сайты были не про IT, то и статья со временем с них исчезла. Дабы не допустить её полного исчезновения с просторов рунета, позволю себе опубликовать её на Хабре и предлагаю всем желающим совершить небольшой экскурс в прошлое. Да, многие вещи сейчас кажутся наивными, но ряд выводов всё ещё более чем актуален.

Внимание, статья от 2001 года!

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

Вступление

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

В последние 3 года на западе стали модными термины «легковесный процесс», «адаптивный процесс», «единый рациональный процесс» и «экстремальное программирование». Что это такое? И почему иногда эффект от внедрения ISO9000 оказывается негативным? Какой процесс предпочесть и какими критериями руководствоваться при выборе процесса? Остальная часть статьи является попыткой найти ответы на эти и другие вопросы.

Классификация проектов

Модель и параметры процесса производства ПО в значительной мере зависит от типа проекта. У каждой команды есть свои заказчики, с которыми сложились те или иные отношения.

«Свой» заказчик

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

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

Продукт под заказ

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

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

Тиражируемый продукт

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

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

Аутсорсинг

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

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

Проблемы

Организация процесса

Наиболее типовую в России модель процесса производства программного обеспечения можно охарактеризовать следующим образом: «Каждый разработчик выбирает тот или иной метод или технику для создания программ в соответствии с собственными привычками и пристрастиями. Практически полное отсутствие четкой ответственности за выполнение тех или иных функций. Качество программного обеспечения является случайной величиной и напрямую зависит от способностей отдельных сотрудников компании. Практически все зависит от инициативы и деловых качеств нескольких личностей». Эта формулировка практически полностью соответствует 1 уровню CMM под названием «начальный». По некоторым источником, 2 года назад доля фирм-производителей программного обеспечения, использующих эту модель, составляла свыше 70%.

Вот какие выводы делает Мартин Фаулер [4], сравнивая процесс производства программного обеспечения с классическими типами строительства и производства:

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

Требования и итеративность

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

Фаулер пишет: «В процессе производства программного обеспечения все зависит от требований. Если вы не можете добиться устойчивости требований, вы не сможете создать предсказуемый план». Как же быть? С одной стороны требования должны быть устойчивыми, а с другой они будут неизбежно меняться в ходе проекта.

Ключ ко всему – итеративный процесс производства.

Пути решения

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

Линейный и итеративный жизненные циклы создания ПО

Линейный жизненный цикл создания программного обеспечения (также известный как «Водопад») предусматривает последовательное прохождения 6 этапов: обследование, постановка задачи, проектирование, программирование, тестирование и внедрение. Такой жизненный цикл предполагает неизменность требований, предъявляемых к ПО, с момента постановки задачи до момента подписания акта о внедрении разработанного продукта, каким бы длительным не был этап разработки программного обеспечения.

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

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

Существующие методологии

В мире существует довольно много типовых процессов производства программного обеспечения. ISO9001, ISO12207, ISO15504, CMM (Capability Maturity Model), MSF (Microsoft Solution Framework), RUP (Rational Unified Process), SCRUM, XP (eXtremal Programming), Crystal Clear, ASD (Adaptive Software Development), Lean Development – все это разновидности процессов производства программного обеспечения, семейства процессов и методологии. Под методологией понимается набор методов, практик, метрик и правил, используемых в процессе производства ПО. Согласно Алистеру Кобурну [1], методология нужна для того, чтобы:

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

По определению Джима Хайсмита [16] «Настоящее назначение методологий – это увеличение производительности, обеспечивающее решения для заказчиков »

Методологии можно условно разбить на 3 категории – тяжелые, легкие и средние. Упрощенно, каждая из которых предназначена для работы в условиях, соответственно, больших, малых и средних проектов. Однако, как мы увидим в последствии, это не совсем так.

Согласно Алистеру Кобурну [1]:

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

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

Первая категория методологий появилась на свет раньше всех и является неотъемлемой частью моделей качества программного обеспечения. Тяжелые методологии отличаются тем, что охватывают все аспекты деятельности компании, производящей программное обеспечение – от управления требованиями и планирования процесса до регламентирования взаимоотношений с субподрядчиками и описания требований к вспомогательным процессам. Все методологии данной категории нетерпимы к изменениям и рассматривают людей как обычный ресурс. Примеры: CMM, ISO9000, SPICE.

Вторая категория методологий появилась на свет в качестве некоторой совокупности методов и практик, применявшихся небольшими командами разработчиков в успешных проектах. Здесь огромное значение уделяется взаимоотношениями между людьми внутри команды, учитываются вопросы терпимости и другие психологические аспекты. Все процессы данной категории предусматривают итерационный жизненный цикл разработки ПО. Если попытаться сформулировать основной смысл легких методологий, то получится следующее: «Обеспечение максимальной скорости и качества разработки ПО при минимуме ограничений и условностей». В частности, во всех легких методологиях предусмотрен лишь необходимый минимум документов, т.к. отдается должное принципу «Документация – это не есть понимание». Существенным отличием данных методологий от методологий первого типа является отношение к планированию. Лучше всего суть этого отличия выразил Джим Хайсмит: «В традиционном планировании отклонения от плана являются ошибками, которые должны быть устранены. Однако, в адаптивном процессе, отклонения ведут нас к правильному решению»[4]. Примеры: SCRUM, XP (eXtremal Programming), Crystal Clear.

В третью категорию методологий попадают так называемые «универсальные» процессы. Самым ярким и известным представителем данной категории является RUP. Основной характеристикой подобных процессов является масштабируемость – т.е. процесс может быть настроен как на работу в малой команде над небольшим проектом, так и в большой команде над большим и серьезным проектом.

Анализ применимости процессов

Алистер Кобурн, автор Crystal, является одним из наиболее известных современных специалистов, сделавших объектом своих исследований методологии. Результатом его исследований в данной области является книга «Agile Software Development»[1], в которой автор анализирует процесс производства ПО с различных точек зрения. Алистер Кобурн является автором концепции «Разработка программного обеспечения – это совместная игра изобретения и взаимодействия». Он выделяет 2 цели у этой игры:

  • первая цель: разработать и внедрить работающее программное обеспечение;
  • вторая цель: обеспечить все условия для успешного протекания следующей игры.

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

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

Рисунки 1-3 иллюстрируют закономерности в использовании разных методологий командами разработчиков различной численности.

image

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

image

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

image

Рисунок 3 отражает потолок возможностей команды при использовании методологий разного веса.

Классификация

image

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

  • потеря комфорта (Loss of comfort). Потеря комфорта означает, что в случае ошибки в системе, жизнь людей немного осложнится, они должны буду делать больше ручной работы, или звонить друг другу, чтобы восполнить прерванный канал связи. Программы поддержки корпоративной инфраструктуры обычно лежат в этой области;
  • потеря существенного количества денег (Discretionary money). Означает потерю некоторого количества денег или какого-либо другого материального эквивалента, но только в рамках дискомфорта. Обычно, складские системы лежат в данной области;
  • невосполнимая потеря денег (Irreplaceable money, essential money). Означает потерю денег или их эквивалента в объемах, сравнимых с банкротством предприятия. Система управления национальным банком лежит в этой области;
  • потеря жизни (Loss of life). Означает, что в случае ошибки такой системы возникает опасность для жизни человека. Системы управления атомной станцией, космическим кораблем и самолетом лежат в данной области.

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

Выводы

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

Свой заказчик

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

Продукт под заказ

Самый уязвимый тип проекта. Фирма целиком зависит от количества заключенных договоров. Постоянно производится поиск новых заказчиков. В таких условиях, конечно же, наличие сертификата ISO или CMM является очень желательным, особенно если речь идет о западных заказчиках. Однако, внедрение ISO9001, SPICE или CMM является достаточно трудоемким процессом, который не всегда себя оправдывает. Поэтому, видимо, целесообразно начать внедрение RUP, с прицелом на дальнейшую сертификацию.

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

Тиражируемый продукт

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

Аутсорсинг

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

Заключение

В любом случае, все вышеприведенные выводы являются обобщёнными, поскольку ситуация в каждом конкретном случае является по своему уникальной и стандартных рецептов для процесса производства ПО нет и вряд ли когда-либо будет. Эта область деятельности человека все еще очень молода и в достаточной степени зависит от человеческого фактора. Однако, автор статьи надеется, что приведенный обзор методологий и краткий анализ их применимости поможет вам разобраться в существе вопроса и принять правильные решения. Надо лишь помнить, что «Относительно небольшое увеличение веса используемой методологии ведет к относительно большому увеличению стоимости проекта» [1].

Библиографический список:

  1. A. Cockburn. Agile Software Development, 2001, Addison Wesley
  2. A. Cockburn. Cristal Clear, 2002, Addison Wesley (готовится к печати)
  3. Mark C. Paulk. Extreme Programming from CMM perspective, Paper for XP Universe, Raleigh,NC, 2001
  4. Martin Fowler. The New Methodology (www.martinfowler.com/articles/newMethodology.html)
  5. A Guide to the Project Management Body of Knowledge, PMI, 2000
  6. Jim Highsmith. Agile Methodologies. Problems, Principlee and Practices, Cutter consortium, 2001 (www.surgeworks.com/resources/papers/AgileMethodologiesXP2001.pdf)
  7. Angelo Corsaro, eXtreme Programming Concepts, Department of computer science, Washington university, 2001
  8. Thomas Dudziak. eXtreme Programming. An Overview. Methoden und Werkzeuge der Softwareproduktion WS 1999/2000
  9. Spice. Consolidated product. Software Process Assessment (http://www.sqi.gu.edu.au/spice)
  10. Н. Сапрыкина, А Абарыков, А. Григорьев. Сертификация российских IT-компаний, PCWeek, #41(311)
  11. John Smitm. A Comparision of RUP and XP, Rational Software White Paper, 2000
  12. Gary Pollice. Using The Rational Unified Process For Small Projects: Expanding Upon eXtreme Programming, Rational Software White Paper, 2000
  13. McConnell. Software Project Survival Guide, Microsoft Press, 1998
  14. Philippe Kruchten. The Rational Unified Process, An Introduction, Second Edition, Addison-Wesley, Addison-Wesley, 2000
  15. Tom DeMarko, Cutter Trends Report on light methodologies, 2000
  16. Jim Highsmith, E-Project Management: Harnessing Innovation And Speed, Cutter consortium, 2001, VOL 1, No. 1
  17. Kent Beck, Mike Beedle etc, Manifesto for Agile Software Development (http://agilealliance.org)
  18. Assessing the Rational Unified Process against ISO/IEC15504-5: Information Technology Software Process Assessment Part 5: An Assessment Model And Indicator Guidance. Rational Corporation Whitepaper, 2000
  19. Reaching CMM Levels 2 and 3 with the Rational Unified Process. Rational Corporation Whitepaper, 2000
  20. http://www.objectmentor.com/resources/articles/RUPvsXP.pdf
  21. A. Cockburn. Surviving Object-Oriented Projects (The Agile Series for Software Developers), Addison Wesley 1998

Особенности управления проектами в области разработки программного обеспечения

КУРСОВАЯ РАБОТА

Особенности управления
проектами в области разработки программного обеспечения

Введение

управление программный
проектный

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

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

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

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

Проектный подход к управлению уже доказал свою эффективность
на практике и применяется ведущими мировыми компаниями, его успешно используют
IBM, Motorola, Boeing, Intel и множество других.

1.
Теория управления программными проектами

 

.1
История и основные понятия

Программное обеспечение (далее ПО) появился в 1958 году
благодаря трудам статистика Джона Тьюкей.

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

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

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

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

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

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

Модель процесса разработки ПО — формализованное представление
процесса разработки ПО. Часто при описании процессов вместо слова модель
употребляется термин методология, что приводит к неоправданному расширению
данного понятия.

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

. Software requirements — программные требования.

. Software design — дизайн (архитектура).

. Software construction — конструирование программного
обеспечения.

. Software testing — тестирование.

. Software maintenance — эксплуатация (поддержка)
программного обеспечения.

6. Software configuration management — конфигурационное управление.

. Software engineering management — управление в программной инженерии.

. Software engineering process — процессы программной инженерии.

. Software engineering tools and methods — инструменты и методы.

10. Software quality — качество программного обеспечения.

Дополнительные области знаний включают в себя:

. Computer engineering — разработка компьютеров.

. Computer science — информатика.

. Management — общий менеджмент.

. Mathematics — математика.

. Project management — управление проектами.

. Quality management — управление качеством.

. Systems engineering — системное проектирование.

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

 

.2
Эволюция подходов к управлению программными проектами

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

«Как получится». Разомкнутая система управления. Полное
доверие техническим лидерам. Представители бизнеса практически не участвует в
проекте. Планирование, если оно и есть, то неформальное и словесное. Время и
бюджет, как правило, не контролируются. Аналогия: баллистический полет без
обратной связи. Можно, но недалеко и неточно.

«Водопад» или каскадная модель. Жесткое управление с обратной
связью. Расчет опорной траектории (план проекта), измерение отклонений,
коррекция и возврат на опорную траекторию. Лучше, но не эффективно.

«Гибкое управление». Расчет опорной траектории, измерение
отклонений, расчет новой попадающей траектории и коррекция для выхода на нее.
«Планы — ничто, планирование — все» (Эйзенхауэр, Дуайт Дэвид)

«Метод частых поставок». Самонаведение. Расчет опорной
траектории, измерение отклонений, уточнение цели, расчет новой попадающей
траектории и коррекция для выхода на нее.

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

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

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

Известно, что производительность разных программистов может
отличаться в десятки раз. Утверждаю, что производительность одного и того же
программиста может так же отличаться в десятки раз. Заставьте лучшего в мире
бегуна бегать в мешке, и он покажет в 10 раз худший результат. Заставьте
лучшего программиста заниматься «сизифовым трудом»: плодить документацию
(которую, как правило, никто не читает) в угоду «Методологии» (именно с большой
буквы ‘М’), — и его производительность снизится в 10 раз.

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

 

.3
Оценка успешности проекта разработки программного обеспечения

Стив Макконнелл в своеих работах приводит тест программного
проекта на выживание. Это перечень из 33-х пунктов. Руководитель программного
проекта должен его периодически использовать для внутреннего аудита своих процессов.

Чтобы программный проект стал успешным, необходимо:

—      Четко ставить цели.

—       Определять способ достижения целей.

—       Контролировать и управлять реализацией.

—       Анализировать угрозы и противодействовать
им.

—       Создавать команду.

. Ставим цели

.1. Концепция определяет ясные недвусмысленные цели.

.2. Все члены команды считают концепцию реалистичной.

.3. У проекта имеется обоснование экономической
эффективности.

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

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

.6. С конечными пользователями продукта налажена
двухсторонняя связь

. Определяем способ достижения целей

.1. Имеется детальный письменный план разработки продукта.

.2. В список задач проекта включены «второстепенные» задачи
(управление конфигурациями, конвертация данных, интеграция с другими
системами).

.3. После каждой фазы проекта обновляется расписание и
бюджет.

.4. Архитектура и проектные решения документированы.

.5. Имеется план обеспечения качества, определяющий
тестирование и рецензирование.

.6. Определен план многоэтапной поставки продукта.

.7. В плане учтены обучение, выходные, отпуска, больничные.

.8. План проекта и расписание одобрен всеми участниками
команды.

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

.2. У проекта есть менеджер, причем только один!

.3. В плане проекта определены «бинарные» контрольные точки.

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

.5. Между руководством и разработчиками установлены
доверительные отношения.

.6. Установлена процедура управления изменениями в проекте.

.7. Определены лица, ответственные за решение о принятии
изменений в проекте.

.8. План, расписание и статусная информация по проекту
доступна каждому участнику.

.9. Код системы проходит автоматическое рецензирование.

.10. Применяется система управления дефектами.

. Анализируем угрозы

.1. Имеется список рисков проекта. Осуществляется его
регулярный анализ и обновление.

.2. Руководитель проекта отслеживает возникновение новых
рисков.

.3. Для каждого подрядчика определено лицо, ответственное за
работу с ним.

. Работаем над созданием команды

.1. Опыт команды достаточен для выполнения проекта.

.2. У команды достаточная компетенция в прикладной области.

.3. В проекте имеется технический лидер.

.4. Численность персонала достаточна.

.5. У команды имеется достаточная сплоченность.

.6. Все участники привержены проекту.

Оценка и интерпретация теста

Оценка: сумма баллов, каждый пункт оценивается от 0 до 3:

—       0 — даже не слышали об этом;

—       1 — слышали, но пока не применяем;

—       2 — применяется частично;

—       3 — применяется в полной мере.

Поправочные коэффициенты:

—       для малых проектов (до 5 человек) — 1.5;

—       для средних (от 5 до 20 человек) — 1.25.

Результат:

—       <40 — завершение проекта сомнительно.

—       40-59 — средний результат. В ходе проекта
следует ожидать серьезные проблемы.

—       60-79 — хороший результат. Проект, скорее
всего, будет успешным.

—       80-89 — отличный результат. Вероятность
успеха высока.

—       >90 — великолепный результат. 100%
шансов на успех.

 

1.4
Критерии успешности проекта

Задача проекта — достижение конкретной бизнес-цели, при
соблюдении ограничений «железного треугольника» (Рисунок 2). Это означает, что
ни один из углов треугольника не может быть изменен без оказания влияния на
другие.

Например, чтобы уменьшить время, потребуется увеличить
стоимость и / или сократить содержание.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Программные продукты обычно представляют собой совокупность
программ и необходимых

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

. Выполнен в соответствие со спецификациями.

. Выполнен в срок.

. Выполнен в пределах бюджета.

. Каждый участник команды уходил с работы в 18:00 с чувством
успеха.

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

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

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

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

Современное предприятие обязано относиться к своим работникам
так же, как к своим лучшим клиентам. Главный капитал современной компании — это
знания.

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

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

 

2.
Методы управления проектами разработки программных средств

 

.1
Особенности организации проектной команды

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

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

. Анализ. Извлечение, документирование и сопровождение
требований к продукту.

. Производство. Проектирование и разработка ПО.

. Тестирование. Тестирование ПО.

. Обеспечение. Производство дополнительных продуктов и услуг.

Группа анализа включает в себя следующие роли:

—       Бизнес-аналитик. Построение модели
предметной области (онтологии).

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

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

—       Специалист по требованиям.
Документирование и сопровождение требований к продукту.

—       Менеджер продукта (функциональный
заказчик). Представляет в проекте интересы пользователей продукта.

Группа управления состоит из следующих ролей:

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

Куратор проекта. Оценка планов и исполнения проекта.
Выделение ресурсов.

—       Системный архитектор. Разработка
технической концепции системы. Принятие ключевых проектных решений относительно
внутреннего устройства программной системы и её технических интерфейсов.

—       Руководитель группы тестирования.
Определение целей и стратегии тестирования, управление тестированием.

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

В производственную группу входят:

—       Проектировщик. Проектирование компонентов
и подсистем в соответствие с общей архитектурой, разработка архитектурно
значимых модулей.

—       Проектировщик базы данных.

—       Проектировщик интерфейса пользователя.

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

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

Группа тестирования в проекте состоит из следующих ролей:

—       Проектировщик тестов. Разработка тестовых
сценариев.

—       Разработчик автоматизированных тестов.

—       Тестировщик. Тестирование продукта. Анализ
и документирование результатов.

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

—       Технический писатель.

—       Переводчик.

—       Дизайнер графического интерфейса.

—       Разработчик учебных курсов, тренер.

—       Участник рецензирования.

—       Продажи и маркетинг.

—       Системный администратор.

—       Технолог.

—       Специалист по инструментальным средствам.

—       Другие.

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

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

—       Руководитель проекта + системный аналитик
(+ системный архитектор)

—       Системный архитектор + разработчик

—       Системный аналитик + проектировщик тестов
(+ технический писатель)

—       Системный аналитик + проектировщик
интерфейса пользователя

—       Ответственный за управление конфигурациями
+ ответственный за сборку и поставку (+ разработчик)

Крайне нежелательно совмещать следующие роли:

—       Разработчик + руководитель проекта

—       Разработчик + системный аналитик.

—       Разработчик + проектировщик интерфейсов
пользователя.

—       Разработчик + тестировщик

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

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

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

Из профессиональных программистов получаются отличные
тестировщики. Лучшая команда тестирования, которую я встречал, была в Luxoft.
Это были маститые программисты из одного академического НИИ с опытом 20-30 лет.

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

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

В модели Scrum рекомендуются ежедневные совещания по
состоянию работ — «Stand Up Meeting», но мне кажется, что это применимо,
скорее, для небольших рабочих групп от 3 до 5 разработчиков. Хотя в критические
периоды проекта, приходилось проводить и ежедневные совещания.

Важно помнить, что организационная структура проекта —
«живой» организм. Она начинает складываться на стадии планирования и может
меняться в ходе проекта. Нестабильность организационной структуры (частые
замены исполнителей) — серьезная проблема в управлении сложными программными
проектами, поскольку существует время вхождения в контекст проекта, которое
может измеряться месяцами.

2.2
Жизненный цикл проекта. Фазы и продукты

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

Жизненный цикл и основные продукты программного проекта

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

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

Как правило, редкий проект выполняется в соответствие с
первоначальными планами, поэтому важным элементом фазы завершения является
«обратная связь»: анализ причин расхождения и усвоение уроков на будущее.
Помним, что управляющая система без обратной связи не может быть устойчивой.

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

Распределение ресурсов по фазам проекта

Проект часто начинается с идеи, которая появляется у одного
человека.

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

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

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

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

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

2.3
Особенности управления приоритетами проектов

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

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

Эта информация заносится в Устав проекта и, если он
одобряется, проект официально авторизуется.

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

В российской практике данный документ чаще называется
Концепция проекта.

Концепция (от лат. conceptio — понимание, система),
определённый способ понимания, трактовки какого-либо предмета, явления,
процесса, основная точка зрения на предмет и др., руководящая идея для их
систематического освещения.

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

Приоритет любого проекта должен определяться на основе оценки
трех его характеристик:

—       Финансовая ценность.

—       Стратегическая ценность.

—       Уровень рисков.

Шкала оценки финансовой ценности проекта может выглядеть
следующим образом:

Высокая. Ожидаемая окупаемость до 1 года. Ожидаемые доходы от
проекта не менее чем в 1.5 раз превышают расходы. Все допущения при проведении
этих оценок четко обоснованны.

Выше среднего. Ожидаемая окупаемость проекта от 1 года до 3
лет. Ожидаемые доходы от проекта не менее чем в 1.3 раза превышают расходы.
Большинство допущений при проведении этих оценок имеют под собой определенные
основания.

Средняя. Проект позволяет улучшить эффективность производства
в Компании и потенциально может снизить расходы компании не менее чем на 30%.
Проект может иметь информационную ценность или помочь лучше контролировать
бизнес.

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

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

Шкала оценки стратегической ценности проекта может иметь
следующий вид:

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

Выше среднего. Создает временные конкурентные преимущества.
Выполнение обязательств перед многими важными клиентами. Конкурентное
преимущество может быть удержано в течение 1 года.

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

Низкая. Стратегическое воздействие отсутствует или
незначительно. Влияние на клиентов несущественно. Конкуренты могут легко
повторить результаты проекта.

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

Примерная шкала оценки уровня рисков проекта может иметь
следующий вид:

Низкий. Цели проекта и требования хорошо поняты и
документированы. Масштаб и рамки проекта заданы четко. Ресурсы требуемой
квалификации доступны в полном объеме. Разрабатываемые системы не потребуют
новой технологической платформы.

Средний. Цели проекта определены более-менее четко. Хорошее
понимание требований к системе. Масштаб и рамки проекта заданы достаточно
хорошо. Ресурсы требуемой квалификации доступны в основном. Системы создаются
на новой, но стабильной технологической платформе.

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

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

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

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

2.4
Особенности рисков программных проектов и способы реагирования

В мировой практике выделяют пять основных причин неудачного
исполнения проекта:

—       Требования заказчика отсутствуют / не
полны / подвержены частым изменениям.

—       Отсутствие необходимых ресурсов и опыта.

—       Отсутствие рабочего взаимодействия с
заказчиком.

—       Неполнота планирования. «Забытые работы».

—       Ошибки в оценках трудоемкостей и сроков
работ.

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

К часто упускаемым требованиям можно отнести:

—       Функциональные

o   Программы установки,
настройки, конфигурации.

o   Миграция данных.

o   Интерфейсы с внешними
системами.

o   Справочная система.

—       Общесистемные

o   Производительность.

o   Надежность.

o   Открытость.

o   Масштабируемость.

o   Безопасность.

o   Кросплатформенность.

o   Эргономичность.

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

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

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

—       Итерационная разработка. Контракт с
компенсацией затрат на основе «Time & Materials» (передача риска
Заказчику).

—       Учет в оценках трудоемкости и сроков
возможности роста требований, например, на 50% (резервирование риска).

Для большинства программных продуктов применим принцип
Парето: 80% ценности продукта заключены лишь в 20% требований к нему.

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

—       Привлечь экспертов-консультантов на
начальных этапах.

—       Учитывать в оценках трудоемкости издержки
на обучение сотрудников.

—       Уменьшать потери от текучести кадров,
привлекая на начальном этапе избыточное число участников.

—       Учесть в оценках «время разгона» для новых
сотрудников.

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

—       Постоянное взаимодействие.

—       Согласование пользовательских интерфейсов
и разработка прототипа продукта.

—       Периодические поставки тестовых версий
конечным пользователям для их оценки.

При планировании работ по проекту часто «забывают»:

—       Обучение.

—       Координация работ.

—       Управление конфигурациями.

—       Разработка и поддержка скриптов
автосборки.

—       Разработка автотестов.

—       Создание тестовых данных.

—       Обработка запросов на изменения.

И еще. Не стоит надеяться, что участники проекта будут каждую
неделю по 40 часов работать именно над вашим проектом. Есть множество причин,
по которым они не смогут работать по проекту 100% своего времени. К списку
наиболее распространенных причин этого относятся:

—       Сопровождение действующих систем.

—       Повышение квалификации.

—       Участие в подготовке технико-коммерческих
предложений.

—       Участие в презентациях.

—       Административная работа.

—       Отпуска, праздники, больничные.

Рекомендация, планировать, что разработчики, которые
назначены в проект на 100% будут реально работать над ваши ми задачами в
среднем от 24 до 32 часов в неделю.

 

Заключение

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

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

Чтобы программный проект стал успешным, необходимо:

. Четко ставить цели.

. Определять способ достижения целей.

. Контролировать и управлять реализацией.

. Анализировать угрозы и противодействовать им.

. Создавать команду.

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

Участников типового проекта разработки ПО можно условно
разделить на пять групп ролей:

. Анализ. Извлечение, документирование и сопровождение
требований к продукту.

. Управление. Определение и управление производственными
процессами.

. Производство. Проектирование и разработка ПО.

. Тестирование. Тестирование ПО.

. Обеспечение. Производство дополнительных продуктов и услуг.

У программного проекта имеется четыре фактора, которые
определяют его успешность:

. Выполнен в соответствие со спецификациями.

. Выполнен в срок.

. Выполнен в пределах бюджета.

. Каждый участник команды уходил с работы в 18:00 с чувством
успеха.

 

Литература

1.     Арчибальд Р. Управление
высокотехнологичными программами и проектами. М.: ДМК-Пресс.2002.

2.      Грей К, Ларсен Э. Управление проектами.
Пер. с англ. — М.: «Дело и Сервис».2003.

.        Дитхелм Г. Управление проектами. В 2 т.:
Пер. с нем. — СПб.: Издательский дом «Бизнес — пресса», 2003.-258 с.

.        Кофанов Ю.Н. Теоретические основы
конструирования, технологии и надежности радиоэлектронных средств. — М.: Радио
и связь, 1991.-360 с.

.        ЛитвакБ.Г. Экспертная информация. Методы
получения и анализа. — М.: Радио и связь, 1982.

.        Руководство к Своду знаний по управлению
проектами. Третье издание (Руководство PMBOK)/. Американский национальный
стандарт ANSI/PMI 99-001-2004.

.        Топка В.В. Вероятностное моделирование в
управлении проектами. — М., 1995 (Препринт / Институт проблем управления).

.        Управление проектами. Основы
профессиональных знаний. Национальные требования к компетенции специалистов. —
М.: Изд-во «Консалтинговое Агентство «КУБС Групп — Кооперация, Бизнес-Сервис»,
2001.

.        Управление проектами: Основы
профессиональных знаний. Национальные требования к компетентности специалистов.
М.: Изд-во «Консалтинговое Агенство «КУБС Групп — Кооперация, Бизнес — Сервис»,
2001-265 с.

.        Щедровицкий Г.П. Организация.
Руководство. Управление. (Оргуправленческое мышление: идеология, методология,
технология. Курс лекций / из архива Г.П. Щедровицкого. Т.4). М.: «Путь», 2000 —
384 с.

  • Авторы
  • Резюме
  • Рецензия
  • Файлы
  • Ключевые слова
  • Литература


Кочеткова Л.И.

1

Сенкевич Л.Б.

1


1 ФГБОУ ВО «Тюменский индустриальный университет»

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

план управления проектом

программное обеспечение

IT-проект

жизненный цикл

моделирование

система

1. Гухман А.А. Введение в теорию подобия. – М.: Изд-во ЛКИ, 2010. – 296 с.

2. Ньютон Р. Управление проектами от А до Я. – М.: Альпина Паблишер, 2013. – 192 c.

3. Определение целей, результатов и продуктов проекта [Электронный ресурс]. – Режим доступа: http://pm-way.com/materials/material/show/157 (дата обращения 20.05.2017).

4. Романова М.В. Управление проектами: учебное пособие. – М.: ИНФРА-М, 2010. – 253 с.

5. Руководство к Своду знаний по управлению проектами (Руководство PMBOK). – 4-е изд. – М.: Олимп-Бизнес, 2010. – 496 с.

6. Солдатов В.П. Управление программными проектами. – М.: Бином-Пресс, 2010. – 382 c.

7. Эрик Синк. Бизнес для программистов. – СПб.: Питер, 2008. – 256 с.

8. Яворский В.В., Сергеева А.О., Пошанов Р.Т. Подготовка специалистов в сфере информационных технологий // Международный журнал экспериментального образования. – 2015. – № 11–4. – С. 554–556.

Сфера разработки программного обеспечения (ПО) – одна из самых активно развивающихся в настоящее время. В области разработки программного обеспечения на данный момент задействовано около 19 миллионов инженеров.

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

Согласно открытым данным исследований группы Standish Group в 2016 г., из 50 тысяч изученных программных проектов по всему миру, по причине неэффективного управления 19 % оказались провальными, 52 % спорными, что потребовало дополнительных вложений финансов и затрат времени и только 29 % проектов оказались успешными. По данным этого же исследования, бюджет проектов превышается на 179 %, а затраченное время на 202 % превышает изначально рассчитанное. Наряду с этим, реализуется в среднем всего 68 % объявленной в спецификации функциональности. Результаты исследования графически показаны на рис. 1.

pic_kochetkov_1.tif

pic_kochetkov_1_2.tif

Рис. 1. Диаграмма результатов данных исследований Standish Group

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

Существующие системы управления ресурсами рассчитаны на контролирование проектами на стадии их реализации и применяются изначально для разрешения таких необходимых задач, как [5]:

– представление общих норм проекта;

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

– установление объединенного организационного состава исполнителей, имеющихся средств и перечня материалов;

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

– регулирование плана проекта с учетом ограниченности средств;

– установление кризисного плана и запаса времени исполнения работ проекта;

– установление требований к проекту в финансировании, ресурсах и техническом обеспечении;

– подготовка плана разделения во времени загрузки восстановляемых ресурсов;

– оценка вероятности рисков и проектирование расписания с учетом рисков;

– извлечение, подборка и обобщение работ по срокам, средствам, видам и т.д.;

– введение фактических показателей состояния решения поставленных задач, объемов выполненных работ и применения средств;

– оценка несоответствия в порядке выполнения работ от поставленного плана и прогнозирование основных норм проекта в будущем;

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

– объединение системы управления проектами в корпоративные управленческие системы.

Выбор необходимой системы управления обуславливается такими критериями, как [6]:

– объемом и затруднительностью проекта (объем работ, средств, времени, календарей);

– необходимый объем организованных порядков работ;

– обязательность объединенной работы над проектами и потенциал обмена информацией через Internet;

– потребность ввода и вывода данных из других систем и баз данных;

– потребность исполнения расчетов по формулам, заданным пользователем;

– потребность планирования средств между несколькими проектами, учитывая приоритет проекта;

– простота овладения и практичность графического интерфейса;

– наиболее допустимая цена программы;

– условия заказчиков и руководителей по составлению промежуточных результатов реализации проекта;

– единые правила компании по реализации специальных программных средств.

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

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

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

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

Фаза «Разработка требований» включает сбор требований заказчика и их формализацию. Требования – основа для всего проекта.

На фазе «Проектирование» проектная команда разрабатывает документы дизайнов в соответствии с требованиями.

На фазе «Разработка» проектная команда производит продукт в соответствии с документами дизайнов.

На фазе «Верификация» продукт проходит верификацию и приёмку, для того чтобы убедиться, что требования реализованы корректно и продукт удовлетворяет требованиям заказчика.

После стадии «Верификация» проект переходит в фазу «Ввод в эксплуатацию». На данной фазе продукт должен быть развернут для эксплуатации и быть принят заказчиком [8].

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

Инкрементальная модель применима на проектах с плохо определёнными или не до конца определенными требованиями. Разработка производится итерациями (2–4-недельными циклами). Требования на итерацию оговариваются с заказчиком до старта итерации. Итерация планируется в соответствии с объёмом требований на итерацию, и каждая итерация включает проектирование, разработку и верификацию. Результаты первой итерации используются для уточнения требований на следующую итерацию. Итерации продолжаются, пока не достигнуты цели проекта, определенные в документе требований. Последняя версия построения продукта проходит полную проверку перед вводом в эксплуатацию [4].

pic_kochetkov_2.wmf

Рис. 2. Последовательность фаз в водопадной модели

pic_kochetkov_3.wmf

Рис. 3. Последовательность фаз в инкрементной модели

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

В качестве наиболее надежного и совершенного на практике аппарата аналогового моделирования предлагается применить теорию подобия [1].

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

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

– создание одной (первой) версии программного продукта группой разработчиков;

– создание аналогичной системы другой группой разработчиков;

– создание показательного прототипа системы.

Универсализация опыта разработки программного продукта допускает произвести оценку трудозатрат, стоимости и времени выполнения аналогичного проекта (реализовать подобный программный продукт).

Для использования аналогового моделирования программных проектов требуется установить:

– процессы, которые будут входить в класс;

– процессы, которые будут входить в группы (определить множество условий, определяющее подобие процессов реализации программных проектов) [1].

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

– методом разработки (быстрая разработка, разработка по водопадной, спиральной, инкрементной, открытой и т.д. модели);

– типом разрабатываемого продукта (система обработки транзакций, система поддержки принятия решений, среда разработки, офисное приложение, учетное приложение и т.д.) [2].

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

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

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

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

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

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

– существует функциональная зависимость между входными и выходными данными системы;

– входные и выходные данные системы установлены на одном и том же множестве моментов времени;

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

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

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

– хранение общей информации о проекте: цели, задачи, заказчик, ключевые сроки;

– формирование календарного плана этапов проекта с указанием сроков начала и окончания каждого этапа, критериев приемки каждого этапа и ответственных;

– распределение ролей в проекте между сотрудниками фирмы-разработчика;

– формирование плана взаимодействия исполнителей и заказчиков в рамках IT-проекта;

– хранение данных о процедурах эскалации и приемки проекта;

– формирование планов оценки проекта, мониторинга и контроля, управления рисками;

– формирование технических планов проекта;

– формирование планов по поддержке программного продукта;

– контроль сроков выполнения задач;

– обеспечение возможности корректировки сроков и исполнителей по различным этапам проекта в случае незапланированной ситуации;

– формирование итогового плана управления проектом.


Библиографическая ссылка

Кочеткова Л.И., Сенкевич Л.Б. СТРУКТУРА ПЛАНА УПРАВЛЕНИЯ ПРОЕКТОМ В ОБЛАСТИ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ // Современные наукоемкие технологии. – 2017. – № 6.
– С. 62-66;

URL: https://top-technologies.ru/ru/article/view?id=36699 (дата обращения: 25.09.2023).


Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»

(Высокий импакт-фактор РИНЦ, тематика журналов охватывает все научные направления)

Тема: Управление проектом разработки
информационной системы

1.     Методология
разработки сложных программных систем

2.     Основные
принципы организации работы над проектом

3.     Методология
Rational Unified Process (RUP)

4.     Моделирование
и проектирование

5.     Средства
разработки ПО

6.     Тестирование

7.     Управление
проектами и портфелями

8.     Управление
требованиями

9.     Управление
конфигурациями и изменениями

10.       Автоматизированное
тестирование

11.       Управление
выполнением проекта и документированием

12.       IBM
Software Development Platform – новый подход к разработке программного
обеспечения

13.       Инструментальные
средства IBM Rational

14.       IBM
Rational – состав пакетов и краткое описание продуктов

1.                 
Методология разработки сложных программных
систем

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

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

        
Отсутствие “чертежей”. Отсутствие проектных
спецификаций («чертежей») на систему приводит к отсутствию структуры
и единой концепции системы. Развитие такой системы трудоемко и ведет к
дальнейшему росту «хаотичности».

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

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

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

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

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

Ведущей методологией, в которой инструментально
поддерживаются все этапы жизненного цикла разработки ПО, является методология
Rational Unified Process (RUP). Она опирается на проверенные практикой методы
анализа, проектирования и разработки ПО, методы управления проектами. RUP
обеспечивает прозрачность и управляемость процесса и позволяет создавать ПО в
соответствии с требованиями заказчика на момент сдачи ПО, а также в
соответствии с возможностями инструментальных средств поддержки разработки.

2.                 
Основные принципы организации работы над
проектом

Ведущие
идеологи инструментальной инфраструктуры IBM Rational (Г. Буч, Дж. Рамбо, А.
Джекобсон), проанализировав опыт различных проектов в области разработки ИС,
выделяют следующие обязательные факторы для успешного ведения любого проекта:

        
постоянное взаимодействие с потенциальными пользователями с
целью выяснения реальных требований к системе;

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

        
наличие высококвалифицированных специалистов;

        
грамотно подобранный инструментарий;

        
определение верного направления работ;

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

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

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

Программные проекты должны завершаться в
ограниченные сроки и при этом оставаться в рабочем состоянии с гарантией
качества. Возникает ключевая проблема – необходимо достичь баланса между
качеством исполнения и скоростью разработки. Решения IBM Rational помогут Вам
преодолеть эту проблему, объединяя лучший опыт и методологии разработки,
соответствующие требованиям качества SEI CMM/CMMI, с унифицированными
инструментами и сервисом, ускоряющими промышленную разработку ПО.

Итеративная
разработка

Классический
подход, широко применявшийся в прошлом и до сих пор часто встречающийся в
настоящее время, – разработка программного обеспечения по методу
«водопада» (рисунок 1).

Рисунок 1 – Метод
«водопада»

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

Метод «водопада» не позволяет эффективно
выявлять и нивелировать последствия подобных рисков. «Если вы сами активно
не атакуете риски, то потом они будут активно атаковать вас” (Том Глиб, IBM
Rational).

Эффективной альтернативой методу
«водопада» служит итеративный подход (рисунок 2).

Рисунок 2 –
Итеративный подход

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

Основные
преимущества итеративного подхода:

        
нивелирование воздействия серьезных рисков на ранних стадиях
проекта, пока это еще можно сделать с минимальными затратами;

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

        
акцент усилий на наиболее важные и критичные направления
проекта;

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

        
раннее обнаружение несоответствий между требованиями, моделями
и программным кодом;

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

        
эффективное использование накопленного опыта;

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

Эффективное
управление требованиями

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

Рисунок 3 –
Управление требованиями

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

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

        
выявление;

        
организацию;

        
документирование.

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

        
организованный подход к управлению требованиями;

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

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

        
объективная оценка реализованного функционала и полученной
производительности;

        
раннее предсказание различных несоответствий и расхождений;

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

Компонентный
подход

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

Рисунок
4 – Пример использования компонентного подхода

Применение компонентного подхода дает возможность
повысить эффективность процесса разработки следующим образом:

        
использование компонентов повышает гибкость архитектуры
создаваемой системы;

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

        
наличие множества коммерческих компонентов, которые
разработаны и протестированы третьими фирмами, а также построены на основе
промышленных спецификаций COM+, CORBA, Enterprise Java Beans (EJB) и др.,
облегчает реализацию и позволяет экономить проектные ресурсы;

        
программные компоненты задают естественную основу для
конфигурируемости продукта;

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

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

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

Рисунок 5 – Визуальное
моделирование

Используя универсальный язык моделирования UML
(Unified Modeling Language), участники проекта могут эффективно
взаимодействовать друг с другом. Продуманное моделирование в различных его
проявлениях предоставляет следующие возможности:

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

        
спецификация и анализ технических особенностей системы с
помощью моделей;

        
ранний акцент на построение гибкой и надежной архитектуры;

        
сокрытие излишней детализации;

        
выявление и исключение на ранних стадиях проекта ошибок
проектирования.

Гарантия
качества продуктов

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

Непрерывный контроль качества приводит к следующим
позитивным моментам:

        
оценка состояния проекта приобретает большую объективность, т.
к. оценивается реальное функционирование системы, а не качество проектной
документации;

        
оценка проекта позволяет раскрыть несоответствия в требованиях,
моделях и реализации;

        
тестирование акцентирует внимание на тех сторонах работы
системы, которые имеют наибольшую важность и повышенный риск;

        
дефекты выявляются на ранних стадиях, что снижает затраты на
их устранение;

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

Контроль
изменений

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

        
деятельность по изменению требований становится предсказуемой
и повторяемой;

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

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

        
все изменения проекта находятся под контролем;

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

3.                 
Методология Rational Unified
Process (RUP)

Ведущей методологией, в которой инструментально
поддерживаются все этапы жизненного цикла разработки ПО, является методология
Rational Unified Process (RUP). Она опирается на проверенные практикой методы
анализа, проектирования и разработки ПО, методы управления проектами. RUP
обеспечивает прозрачность и управляемость процесса и позволяет создавать ПО в
соответствии с требованиями заказчика на момент сдачи ПО, а также в
соответствии с возможностями инструментальных средств поддержки разработки.

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

        
состав и последовательность работ, а также правила их
выполнения;

        
распределение полномочий среди участников проекта (роли);

        
состав и шаблоны формируемых промежуточных и итоговых
документов;

        
порядок контроля и проверки качества.

RUP как
методология

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

Рисунок 6 – Rational
Unified Process

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

Rational
Unified Process –
управляемый процесс. Итеративный подход
предполагает управление требованиями и изменениями, чтобы между всеми
участниками проекта обеспечивать единое понимание ожидаемых функциональных
возможностей, требуемый уровень качества, наилучшее управление затратами и
графиками выполнения работ.

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

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

Rational Unified Process поддерживает
объектно-ориентированную технологию. Моделирование по методологии RUP является
объектно-ориентированным и базируется на понятиях объектов, классов и
зависимостей между ними. Эти модели, подобно многим другим техническим
искусственным объектам (артефактам), в качестве единого стандарта для
организации взаимодействия участников проекта используют Unified Modelling
Language™ (UML) – универсальный язык моделирования.

Rational Unified Process поддерживает
компонентно-ориентированный подход. Компоненты – это нетривиальные модули или
подсистемы, которые выполняют конкретную функцию и могут быть использованы
многократно. Как правило, компоненты соответствуют одной из промышленных
спецификаций, таких как CORBA, COM/DCOM, ActiveX, Enterprise Java Beans и др.

Rational Unified Process – адаптируемый и
конфигурируемый процесс. Опыт единичного проекта, даже успешно завершенного,
вряд ли подойдет для создания ПО во всех случаях и условиях. Но способность RUP
к адаптации подойдет как маленьким группам разработчиков, так и большим
организациям. RUP содержит рекомендации по конфигурированию процесса для
удовлетворения потребностей практически любых компаний и их подразделений.

Rational Unified Process поддерживает объективно
осуществляемое управление качеством. Оценка качества всех работ, выполняемых
любыми участниками проекта, использует объективные метрики и критерии.
Методология RUP создавалась с прицелом на поддержку управления качеством в
рамках требований SEI CMM/CMMI.

Структура
жизненного цикла проекта

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

Процессы и фазы жизненного цикла проекта

Рисунок 7 – Процессы
и фазы жизненного цикла проекта

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

        
моделирование бизнес-процессов;

        
управление требованиями;

        
анализ и проектирование;

        
реализация;

        
тестирование;

        
развертывание;

        
конфигурационное управление и управление изменениями;

        
управление проектом;

        
управление средой.

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

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

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

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

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

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

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

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

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

Важнейшие
акценты RUP

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

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

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

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

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

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

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

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

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

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

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

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

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

4.                 
Моделирование и проектирование

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

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

        
понимание структуры и динамики предметной области, в которой
должна быть развернута система (целевой организации);

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

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

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

Область моделирования
охватывает следующие дисциплины:

        
бизнес-моделирование предметной области, которая
рассматривается как потенциальная для внедрения процессов автоматизации;

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

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

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

Для выполнения этих требований, IBM существенно
расширило возможности традиционных средств моделирования, таких как IBM
Rational Rose и IBM Rational XDE Modeler, новыми инструментами в составе пакета
IBM Rational Software Architect (RSA). Одним из преимуществ новых средств
моделирования является возможность автоматизированного преобразования моделей,
позволяющая быстро переходить от высокоуровнего моделирования к разработке и
тестированию приложений. Это позволяет более эффективно использовать шаблоны
проектирования (patterns), стандарты и лучшие проектные решения для создания
высококачественного кода и повышения общей эффективности проектов разработки
программных систем. Базовые возможности новой линейки средств графического
моделирования, дизайна и проектирования реализованы в продукте IBM Rational
Software Modeler. IBM Rational Software Architect включает всю функциональность
IBM Rational Software Modeler, дополняя ее возможностями автоматизированного
преобразования моделей и поддержкой C++ в дополнение к Java.

Кроме того, новые средства моделирования в линейке
IBM исключают риски использования нестандартной технологии моделирования,
жестко привязанной к технологии конкретного поставщика. Решения IBM Rational
Software Architect построены на базе Eclipse – платформы с открытым исходным
кодом, написанной на Java, что дает возможность быстро наращивать объем
функциональных возможностей предлагаемых решений в соответствии с конкретными
требованиями проекта. Eclipse поддерживает использование модулей расширения
независимых разработчиков (plug-in), что также способствует созданию
оптимальной среды моделирования приложений как в среде Windows, так и в среде
Linux.

Специализированные средства моделирования позволяют
автоматизировать повторяющиеся действия, тем самым повышая не только
продуктивность, но и зрелость процесса разработки программного обеспечения в
целом. Во многом этому способствует использование стандартизованного языка
моделирования Unified Modeling Language (UML). Однако, как показывает опыт,
текущей версии UML были присущи определенные ограничения, в частности, в сфере
моделирования структуры и поведения сложных систем. Новые средства
моделирования IBM поддерживают UML версии 2 (UML 2), в которой предлагаются
структурированные классы, усовершенствованные блок-схемы, диаграммы действий и
диаграммы конечных автоматов, что позволяет гораздо более точно отображать
архитектуру будущих программных систем.

Кроме того, средства моделирования в составе IBM
Rational Software Architect поддерживают Model Driven Architecture (MDA) –
новую инициативу Object Management Group (OMG) в области описания управления
процессами, благодаря которой становится возможным определять несколько уровней
моделей, связанных с заданными пользователем преобразованиями между моделями,
для более четкого разделения аспектов жизненного цикла. Новые средства
проектирования IBM поддерживают как последнюю версию этого языка – UML 2.0, так
и более ранние реализации.

Для поддержки инструментальных средств и платформ,
не вошедших в пакет IBM Rational Software Architect, используются средства
моделирования из пакета IBM Rational Suite. При совместном использовании
пакетов IBM Rational Professional Bundle и IBM Rational Suite возможен импорт
моделей из IBM Rational Rose в RSA для реализации моделей на платформе J2EE.

Возможности инструментального средства IBM Rational
XDE Modeler включены в инструментальные средства нового пакета RSA. Однако,
если в организации уже наработано большое количество скриптов для IBM Rational
XDE Modeler, то, из-за возможной трудоемкости переноса имеющихся скриптов на
новые инструментальные средства, может оказаться целесообразным продолжение
использования IBM Rational XDE Modeler наряду с новой линейкой инструментальных
средств RSA.

Кроме того, линейка средств моделирования IBM
включает также IBM WebSphere® Business Integration Modeler (WBI Modeler) –
средство моделирования бизнес-процессов, которое входит в пакет для
бизнес-интеграции IBM WebSphere. WBI Modeler наряду с новыми средствами IBM
Rational является частью интегрированной платформы разработки на основе
Eclipse. По этой причине мы посчитали целесообразным также включить его
описание в данный раздел.

5.                 
Средства разработки ПО

Основные цели разработки ПО:

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

        
реализация классов и объектов в виде модулей (исходных,
двоичных, исполняемых файлов и др.);

        
тестирование разработанных модулей;

        
интеграция результатов работы отдельных программистов (или
групп) в рабочую систему.

Для ведения непосредственной разработки IBM Rational
предлагает целый набор специализированных инструментальных средств:

        
IBM
Rational Application Developer

        
IBM
Rational Web Developer

        
IBM
Rational XDE Developer

6.                 
Тестирование

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

Основные цели тестирования:

        
проверить взаимодействие между объектами;

        
проверить корректную интеграцию всех модулей системы;

        
проверить, что все требования были корректно реализованы;

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

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

В соответствии с RUP принята следующая базовая
классификация видов тестирования:

1. Функциональное тестирование

        
непосредственно функциональное тестирование (Function
testing);

        
тестирование целостности данных (Data integrity testing);

        
тестирование на разных платформах (Configuration testing);

        
тестирование отказоустойчивости (Failover & recovery
testing);

        
тестирование доступа (Security testing);

        
инсталляционное тестирование (Installation testing);

        
тестирование пользовательского интерфейса (User interface
testing).

2. Нагрузочное тестирование

        
непосредственно нагрузочное тестирование (Load testing);

        
профилирование производительности (Performance profiling);

        
тестирование цикла работы (Business cycle testing);

        
тестирование при большой пользовательской нагрузке (Stress
testing);

        
тестирование на больших объемах данных (Volume testing).

Для автоматизации процессов тестирования IBM
Rational предлагает следующие инструментальные средства.

Средства тестирования в линейке продуктов Atlantic,
входящие в пакет IBM Rational Professional Bundle:

        
IBM Rational Performance Tester – средство нагрузочного
тестирования.

        
IBM Rational Functional Tester – средство функционального
тестирования, включает также IBM Rational Manual Tester – средство для
организации и проведения ручного тестирования.

Эти средства предназначены для функционального и
нагрузочного тестирования программного обеспечения, создаваемого на платформе
J2EE. Они интегрированы с инструментом IBM Rational TestManager, входящего в
пакет IBM Rational Team Unifying Platform и служащего средством планирования и
мониторинга процесса тестирования как для инструментов тестирования новой
линейки продуктов Atlantic, так и многоплатформенных средств тестирования
линейки продуктов IBM Rational Suite.

Средства тестирования, в составе IBM Rational Suite:

        
IBM Rational Robot – cредство разработки, записи и выполнения
скриптов автоматизированного функционального и регрессионного тестирования
приложений, предоставляющее полную поддержку тестирования всех средств
управления Visual Studio.NET.

        
IBM Rational XDE Tester – расширенные средства
автоматизированного функционального и регрессионного тестирования Java- и Web-приложений
из сред разработки Eclipse IDE, IBM WSAD и Rational XDE.

        
IBM Rational Purify – средство выявления ошибок, связанных с
обращением к динамической памяти (версии для Windows и UNIX)

        
IBM Rational Quantify – средство выявления узких мест в коде,
оказывающих влияние на производительность разрабатываемой информационной
системы.

        
IBM Rational PureCoverage – средство определения полноты
тестирования кода.

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

Средства управления тестированием в составе Team
Unifying Platform:

        
IBM Rational TestManager – средство планирования и мониторинга
процесса тестирования, входит в объединяющую платформу Team Unifying Platform,
а также в пакет IBM Rational Suite.

Основным инструментом для планирования процесса
тестирования, описания его сценариев и управления всем ходом данного процесса
является IBM Test Manager, который входит в состав пакета Team Unifying Platform
и подробно описан в соответствующем разделе. На основе требований на
тестирование, которые аккумулируются с помощью IBM Rational RequisitePro,
специальный механизм интеграции RequisitePro и TestManager позволяет
сформировать план тестирования. Элементами плана служат сценарии, каждый из
которых позволяет протестировать какой-либо аспект работы создаваемой ИС.
Сформированный план тестирования дополняется тестовыми скриптами, которые
формируются с помощью IBM Rational Robot и позволяют автоматизировать процесс
тестирования.

При проведении распределенного тестирования, в
частности, когда требуется одновременно проверить систему на разных
программно-аппаратных платформах, используются специальные агенты (Test
Agents). Таким образом, можно одновременно протестировать систему в
операционных системах Windows, Linux, HP-UX, Solaris и AIX.

Для проведения расширенного функционального и
регрессионного тестирования Java- и Web-приложений рекомендуется использовать
новый продукт – IBM Rational XDE Tester. Для автоматизации процесса создания
необходимых отчетов – плана тестирования, отчетов по результатам тестирования и
т. п. – могут быть использованы Seagate Crystal Report и IBM Rational SoDA.

Для анализа работы систем, построенных с помощью
языков C/C++, Microsoft Visual Basic, Java, C# .NET, VB. NET и Java .NET, можно
использовать средства IBM Rational Purify, Quantify и PureCoverage. Основное
назначение Purify при тестировании native-приложений (приложения, работа
которых не управляется с помощью дополнительного окружения, например, так
называемых сборщиков мусора) – выявить всевозможные утечки памяти и любые иные
ошибки работы с ней. Для приложений класса managed applications (такие, как
Java- и .NET-приложения) Purify позволяет провести эффективное профилирование
памяти с целью оптимизации ее использования. С помощью Quantify становится
проще определить узкие места производительности системы и провести ее настройку
вплоть до отдельных строк программного кода. PureCoverage окажется незаменимым,
если требуется оценить полноту тестирования системы.

IBM Rational TestFactory – еще одно
специализированное средство автоматизированного тестирования, предназначенное
для анализа графического интерфейса пользователя (GUI) разрабатываемой
информационной системы и генерации полного набора тестов, позволяющего провести
максимально полное функциональное тестирование.

7.                 
Управление проектами и портфелями

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

Основные цели управления проектами:

        
организация процесса управления проектом, планирование проекта
на протяжении всего жизненного цикла и отдельной итерации;

        
соблюдение основных принципов планирования, управления
персоналом, выполнения работ и мониторинга проекта с помощью соответствующих
метрик;

        
эффективное управление рисками.

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

В составе новой линейки средств IBM Rational предлагается
надежный инструмент для управления проектами и портфелями, который играет
ключевую роль в обеспечении процесса разработки программного обеспечения,
управляемого бизнес целями компании – IBM Rational Portfolio Manager. Этот
инструмент предоставляет командам разработчиков возможности по управлению
проектами, значительно превышающие возможности программы MS Project, в то же
время позволяя интегрироваться с ней.

8.                 
Управление требованиями

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

Основные цели процесса управления требованиями:

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

        
понять текущие проблемы предметной области и определить
потенциальные возможности ее усовершенствования;

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

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

        
установить и поддержать соглашение с клиентами и другими
заинтересованными лицами на том, что система должна делать;

        
обеспечить разработчиков системы лучшим пониманием требований
к ее созданию;

        
определить функциональные границы создаваемой информационной
системы;

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

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

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

Основным инструментом для организации работы с
требованиями в проекте является IBM Rational RequisitePro. Он позволяет команде
работать с требованиями, отслеживать возможные изменения в них и организовывать
обсуждения.

9.                 
Управление конфигурациями и изменениями

Перефразируя модель зрелости процессов Института
программной инженерии (SEI CMM), можно сказать, что конфигурационное управление
и управление изменениями обеспечивает контроль за изменениями и обеспечивает
взаимосвязь артефактов проекта. Методы, процессы и инструментальные средства,
используемые для обеспечения конфигурационного управления и управления
изменениями в организации, могут рассматриваться как единая система
конфигурационного управления.

Управление конфигурациями и изменениями

Рисунок 8 –
Единая с система конфигурационного управления

Конфигурационное управление и управление изменениями
включают:

        
идентификацию объектов конфигурационного управления;

        
ограничение возможности изменения этих объектов;

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

        
определение конфигураций объектов конфигурационного управления
и управление этими конфигурациями.

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

Инструментом, позволяющим организовать эффективное
управление версиями и конфигурациями является IBM Rational ClearCase, а
управления изменениями – IBM Rational ClearQuest.

10.             
Автоматизированное тестирование

Специализированный инструмент для организации
тестирования в составе Team Unifying Platform – IBM Rational TestManager –
значительно повышает эффективность процесса тестирования, предоставляя в
распоряжение команды общие средства планирования, проектирования, исполнения и
анализа результатов тестов. Объединение операций тестирования в единый процесс
дает возможность проектной команде наладить эффективный процесс контроля
качества создаваемого продукта.

Работа c Rational TestManager

Рисунок 9 – Работа c Rational TestManager

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

IBM Rational TestManager связывает наборы тестов с
конкретной итерацией процесса разработки и конфигурацией разрабатываемой
информационной системы.

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

Интеграция TestManger с Eclipse IDE предоставляет
богатые возможности для автоматизации процесса тестирования с продуктами,
являющимися производными по отношению к Eclipse (XDE Tester, средства
тестирования в составе инструментов Atlantic и т.д.).

Интеграция TestManager с IBM Rational Rose позволяет
использовать функциональные элементы визуальной модели в качестве источника
сценариев тестирования.

Интеграция TestManager с IBM Rational RequisitePro
позволяет использовать требования репозитория требований для определения других
сценариев тестирования.

Интеграция TestManager с IBM Rational ClearQuest
дает возможность прямо заносить описания ошибок в репозиторий запросов на
изменения проекта.

Интеграция TestManager с IBM Rational SoDA позволяет
наладить процесс автоматической генерации документов по репозиторию
тестирования.

11.             
Управление выполнением проекта и
документированием

IBM
Rational ProjectConsole

IBM Rational ProjectConsole автоматизирует процесс
создания и мониторинга отчетов о состоянии проекта благодаря созданию
динамического Web-сайта, который отображает панель основных показателей
проекта. Это экономит время, необходимое для создания и поддержания Web-сайта
команды проекта, а также позволяет избежать сбора подобных данных вручную.

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

Возможности IBM Rational ProjectConsole:

        
Обеспечивает доступ всех членов команды к полной информации по
проекту через единый Web-сайт.

        
Собирает и автоматически публикует информацию, полученную из
IBM® Rational Suite® и инструментов других поставщиков, по запросу или согласно
расписанию.

        
Объективно измеряет качество и ход выполнения проекта.

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

        
Предлагает индикаторы и средства для анализа трендов.

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

IBM Rational ProjectConsole помогает ответить на
следующие вопросы:

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

        
Какие тенденции могут негативно повлиять на затраты и график
работ

        
Насколько стабильной является используемая архитектура.

        
Сколько строк программного кода требует внесения
изменений/добавления и как это соотносится с графиком выпуска релиза

Интеграция с существующими приложениями IBM Rational
позволяет получать и просматривать информацию из IBM Rational Rose®, IBM
Rational RequisitePro®, IBM Rational ClearQuest®, IBM Rational ClearCase®, IBM
Rational XDE® Developer и IBM Rational TestManager®.

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

Упрощение
доступа к информации по проекту

IBM Rational ProjectConsole предоставляет в
распоряжение команды единую точку доступа к точной информации по проекту. Вам
больше не придется тратить время на ожидание отчетов о состоянии, отправку многочисленных
запросов об обновлении, «копание» в различных приложениях, базах данных,
каталогах и документах с целью получения требуемой информации. Вы больше не
будете принимать решения на базе устаревшей информации. Благодаря
ProjectConsole вы экономите время, уменьшаете число ошибок, связанных с ручным
вводом информации, и получаете более полный контроль за проектами по разработке
ПО.

Настраиваемые
шаблоны

IBM Rational ProjectConsole предлагает полный набор
типовых шаблонов для создания отчетов, а также возможность создавать
собственные шаблоны, что позволяет представлять информацию, нужную членам
команды, в удобном формате. Каждый отчет автоматически извлекает информацию из
платформы разработки IBM Rational Suite и инструментов других компаний согласно
заданному расписанию или по запросу. После этого данные публикуются на
Web-сайте, которые сразу доступны всем членам команды. Упрощенный доступ к
информации по проекту позволяет уменьшить время на поиск информации и уделять
больше внимания самому проекту.

Измерение
степени завершенности и качества проекта

Продукт IBM Rational ProjectConsole позволяет
автоматически получать количественную оценку текущего состояния проекта и
анализировать тенденции. Измеряемые показатели автоматически формируются
средствами IBM Rational Suite и инструментами других поставщиков с последующим
их сохранением в хранилище данных.

Результаты измерений, полученные из IBM Rational
RequisitePro, IBM Rational ClearQuest и IBM Rational ClearCase, могут быть
графически отображены в IBM Rational ProjectConsole.

IBM Rational ProjectConsole позволяет с помощью
гиперссылок связать все объекты и отображать результаты анализа в виде
диаграмм, индикаторов и таблиц, публикуя их на автоматически создаваемом и
обновляемом Web-сайте.

Объективное
состояние проекта

Графическая панель позволяет всем членам команды
быстро определять реальное состояние и качество проекта. IBM Rational
ProjectConsole позволяет анализировать подробную информацию по отдельным
операциям, такие как моделирование, создание программного кода, тестирование.
Кроме того, можно визуально сравнить плановые показатели с фактическими,
проследить тенденции в хронологических данных и просмотреть междисциплинарные
измерения, получив полное представление о состоянии проекта в целом. Все это
позволяет команде разработчиков ПО:

        
принимать своевременные корректирующие меры;

        
анализировать причины задержек;

        
иметь реалистичные ожидания в отношении проекта;

        
лучше прогнозировать этапные события проекта;

        
обеспечивать объективное и точное измерение состояния и
качества проекта.

IBM
Rational ProjectConsole
входит в состав платформы IBM
Rational Suite Team Unifying Platform.

IBM
Rational SoDA

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

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

Работа в Rational SoDA

Рисунок 10 – Работа в Rational SoDA

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

Основу IBM Rational SoDA составляет Microsoft Word. Любой внешний вид документа, который можно
создать в Word, может быть представлен в виде шаблона SoDA Таким образом, IBM
Rational SoDA поддерживает возможность стандартизации типов документов в рамках
отдельного проекта или всей организации в целом. Эта стандартизация может
обеспечить соответствие документов таким стандартам, как ISO, SEI CMM/CMMI и
IEEE, повышая качество проектной документации и облегчая взаимодействие занятых
в проекте сотрудников.

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

IBM Rational SoDA генерирует документы, извлекая
информацию из следующих проектных репозитариев:

        
репозитарий требований Rational RequisitePro;

        
репозитарий тестирования Rational TestManager;

        
базы данных запросов на изменения Rational ClearQuest;

        
версионные объектные базы (VOB) Rational ClearCase;

        
общий проектный репозитарий Rational Administrator.

Кроме того, IBM Rational SoDA может извлекать данные
из следующих отдельных артефактов проекта:

        
модели
Rational Rose
и
Rational Rose RealTime;

        
планы
Microsoft Project;

        
документы Microsoft Word.

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

12.             
IBM Software Development Platform – новый подход
к разработке программного обеспечения

IBM Software Development Platform (IBM SDP) –
платформа IBM для разработки программного обеспечения – представляет собой
реализацию новой концепции роли ИТ, согласно которой разработка информационных
систем является важной частью бизнеса любой организации, которая стремится
быстро реагировать на меняющиеся требования рынка. В основе IBM SDP лежат
продукты, услуги и лучшие методы организации работ IBM Rational.

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

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

Программное
обеспечение как бизнес-процесс

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

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

Новая концепция процесса разработки ПО

Рисунок 11 – Новая
концепция процесса разработки ПО

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

Роль ИТ в компании, действующей в соответствии с моделями бизнес-процессов

Рисунок 12 – Роль ИТ в компании, действующей в соответствии с моделями
бизнес-процессов

Несмотря на то, что ключевые элементы автоматизации
многих бизнес-процессов сегодня можно купить в «готовом» виде, существует
множество других задач, которые имеют уникальный характер для каждого бизнеса. Тиражируемые
решения, такие как системы управление ресурсами предприятия (ERP), системы
управления цепочкой поставок (SCM), системы управления взаимоотношениями с
клиентами (CRM) и многие другие, предлагают стандартные варианты реализации
соответствующих функций и обеспечивают минимальные риски в процессе их
внедрения, эксплуатации и модернизации. Но чтобы выделить компанию в ряду
конкурентов, внедрения этих продуктов недостаточно, нужны адаптированные
решения, которые учитывают специфику данной компании и отражают ее уникальные
ключевые практики. Автоматизацию подобных процессов невозможно осуществить,
просто купив готовые пакеты приложений. Вот некоторые примеры таких процессов
для конкретных отраслей:

        
Страхование – заключение договоров, ранжирование клиентов и
обработка заявлений от клиентов

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

        
Туризм и транспорт – фрахтование, обслуживание инфраструктуры
и эксплуатация оборудования

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

Разработка программного обеспечения — стратегический бизнес-процесс

Рисунок 13 – Разработка программного обеспечения – стратегический
бизнес-процесс

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

        
Увязывание потребностей бизнеса с решениями в сфере ИТ

        
Организация совместной работы специалистов

        
Обеспечение прозрачности решений, контроля затрат и управления
рисками

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

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

        
Руководители отдела разработки ПО и руководители проектов
получают новые возможности для контроля за состоянием проекта и обеспечения
качества конечного продукта

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

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

Организация коллективной работы с IBM SDP

Рисунок 14 – Организация коллективной работы с IBM SDP

IBM Rational Suite в свое время стала первым
интегрированным решением для разработки программного обеспечения. Теперь идеи
коллективной работы получили дальнейшее развитие на уровне всей компании, а IBM
Software Development Platform стала первой интегрированной платформой, которая
позволяет увязать задачи разработки ИТ с целями бизнеса.

Портфель
решений, основанный на ролях

IBM Software Development Platform предоставляет
полный набор средств, ориентированных на реализацию идеи о том, что для более
четкого управления затратами и повышения предсказуемости бизнеса, инвестиции в ИТ
должны быть увязаны с целями организации.

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

Интегрированная платформа IBM SDP, основанная на ролях

Рисунок 15 – Интегрированная платформа IBM SDP, основанная на ролях

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

Примеры
решений, ориентированных на задачи проектирования и разработки

Высокопроизводительная
разработка, визуализация кода и визуальное редактирование

IBM Rational Application Developer

IBM Rational Web Developer

Моделирование
и сквозное проектирование – от начала до конца и обратно

IBM Rational Application Developer

IBM Rational XDE Modeler

IBM Rational Rose

IBM Rational Rose XDE Developer Plus

Интеграция
с унаследованными системами

IBM WebSphere Studio Enterprise
Developer

Быстрая
разработка – прямая и архитектурно-ориентированная

IBM Rational Web Developer

Бизнес-моделирование
и исполнение моделей

IBM WebSphere Business Integration
Modeler

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

        
Языки
разработки

        
Операционные
среды

        
Уровни
профессиональной квалификации

        
Парадигмы
моделирования

Техническая основа IBM Software Development Platform

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

Техническая инфраструктура платформы IBM Software
Development Platform состоит из пяти ключевых элементов:

        
Открытая интегрированная платформа разработки Eclipse

        
Среда моделирования Eclipse Modeling Framework

        
Открытая платформа для Model-Driven Development (MDD)

        
Unified
Modeling Language (UML), UML2

        
Инструментарий тестирования Hyades Testing Framework

        
Модель программирования WebSphere

Открытая
интегрированная платформа разработки Eclipse

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

Модульная архитектура Eclipse

Рисунок 16 – Модульная архитектура Eclipse

Основу Eclipse составляет инструментальная
платформа, которая предлагает набор базовых функций для использования
архитектуры подключаемых модулей (plug-in architecture), расширяющих и
адаптирующих платформу Eclipse. Более того, архитектура Eclipse сама по себе
состоит из основы и набора инструментальных средств, которые также состоят из
отдельных подключаемых модулей.

Архитектура Eclipse

Рисунок 17 – Архитектура Eclipse

Проект Eclipse изначально был ориентирован на
разработчиков Java, которым были необходимы легко настраиваемые средства разработки
следующего поколения. На сегодняшний день Eclipse завоевала большую
популярность в сообществе Java разработчиков и достигнуты значительные успехи в
области создания коммерческих продуктов на базе Eclipse, включая семейство
продуктов IBM WebSphere Studio. Многие крупные компании, работающие с
программным обеспечением – как поставщики, так и потребители, поддерживают
Eclipse, являются членами Eclipse Foundation и вносят свой вклад в разработку
программного обеспечения или используя Eclipse в качестве основного компонента
их технической инфраструктуры. Около 200 поставщиков уже имеют или планируют к
выпуску продукты, реализованные на основе Eclipse. Все это позволяет технологии
Eclipse быстро развиваться, достигая нового уровня зрелости и ширины охвата.

В последнее время особое внимание уделялось развитию
инфраструктуры Eclipse. С добавлением новых инструментальных средств после
приобретения IBM CrossWorlds®, Holosofx® и Rational, IBM Software Group смогла
расширить возможности предлагаемых средств разработки, которые теперь
охватывают более широкий спектр ролей, проектов и предметных областей. Многие
из приобретенных программных пакетов уже поддерживали определенный уровень
взаимодействия с базовыми компонентами инструментальных средств IBM, например,
при помощи общих форматов файлов или процедур импорта/экспорта, использующих
стандартные механизмы обмена.

Тем не менее, важное значение имело именно
объединение всех этих средств разработки на основе единой, технологической
платформы, отвечающей таким потребностям заказчиков, как уровень интеграции,
гибкость и расширяемость. Именно в таком, объединяющем качестве выступает
технология Eclipse для IBM Software Development Platform. Технология Eclipse во
многом ускорила создание многофункциональной, интегрированной платформы для
разработки программного обеспечения благодаря возможностям организации
взаимодействия между различными группами специалистов, работающих над IBM
Software Development Platform.

Ключевая роль Eclipse в IBM Software Development Platform

Рисунок 18 – Ключевая роль Eclipse в IBM
Software Development Platform

Как показано на рисунке, платформа Eclipse выполняет
три основных функции в IBM Software Development Platform. Во-первых, Eclipse
предоставляет платформу и набор сервисов для графического интерфейса
пользователя, являющиеся общими для всей платформы IBM Software Development
Platform. Eclipse, таким образом, обеспечивает богатый пользовательский
интерфейс для клиентов и высокий уровень целостности при выполнении различных
действий в рамках IBM Software Development Platform. Во-вторых, Eclipse
обеспечивает улучшенный механизм использования одних и тех же информационных
массивов при выполнении различных действий в системе благодаря применению
группы общих моделей, выраженных в технологии EMF. В-третьих, Eclipse реализует
мощные функции инфраструктуры для коллективной работы в рамках IBM Software
Development Platform.

Эти функции интегрированы в инфраструктуру Eclipse в
виде подключаемых модулей и, соответственно, в таком же виде доступны другим
подключаемым модулям IBM Software Development Platform.

Среда
моделирования Eclipse Modeling Framework

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

Eclipse Modeling Framework – это инструментарий и
средства генерации кода, которые обычно используются при описании структур
данных, которыми манипулирует приложение. На основе UML модели, XML схемы или
интерфейса Java EMF генерирует соответствующие классы реализации. Одна из
основных задач, решаемых EMF, состоит в соотнесении сущностей моделирования
непосредственно с их реализацией. Это дает Eclipse преимущества моделирования в
совокупности с низким уровнем затрат при переходе к кодированию.

Eclipse Modeling Framework призвана обеспечить
унифицированное представление «структур данных», описанных в
приложении, независимо от того, были ли эти структуры определены при помощи
языка UML, в XML-схеме, либо в виде интерфейсов Java. Например, при создании
приложения, которое будет манипулировать структурой сообщений XML, можно
определить схему XML. Затем при помощи EMF можно сгенерировать диаграмму
классов UML для этой схемы. Кроме этого, можно сгенерировать набор Java классов
реализации для обработки XML. Аналогичным образом, если вы начинаете с кода
Java, описывающего ключевые интерфейсы в дизайне приложения, при помощи EMF
можно сгенерировать соответствующую модель UML и структуру сообщений XML.

Модели, описываемые в Eclipse Modeling Framework,
представлены в виде внутренней модели, именуемой Ecore. EMF представляет собой
реализацию Meta Object
Facility (MOF),
выполненную IBM.
MOF представляет собой стандарт описания хранилищ метаданных, разработанный
Object Management Group (OMG). MOF определяет подмножество операторов UML для
описания понятий моделирования классов внутри хранилища объектов.
Соответственно, MOF походит на Ecore возможностью описания структурных и
поведенческих характеристик классов, наследования, пакетов и способов
отображения (reflection). Отличие между MOF и Ecore состоит в том, что MOF
обладает дополнительными комплексными функциями управления жизненным циклом,
структурами данных, связями между пакетами и сложными ассоциативными типами.

Открытая
платформа Model-Driven Development (MDD), построенная на основе Eclipse

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

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

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

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

        
Производится уточнение и обеспечивается совместный доступ к
общей семантике метаданных, описанной при помощи таких языков, как UML, XSD,
XMI, Annotated Java и др.

        
Все взаимодействия между инструментальными средствами
осуществляются с использованием общего программного интерфейса (Java).

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

        
На основе моделей генерируются простые функции реализации
(операции CRUD, базовые функции редактирования и т.д.).

        
Для осуществления внутренних преобразований применяются
метамодели для J2EE, Web-сервисов и MDD.

        
Полученная в итоге техническая инфраструктура IBM Software
Development Platform, как показано на рисунке, состоит из трех основных
компонентов:

        
В основе инфраструктуры лежит группа open source технологий,
реализованных в рамках проекта Eclipse. Сюда относятся ядро Eclipse, различные
подключаемые модули и группа метамоделей, описанных в EMF.

        
Дополнительные возможности, предлагаемые IBM, реализованы на
базе упомянутых выше open source технологий. Эти возможности используются во
многих продуктах IBM и предоставляют техническим специалистам IBM целый спектр
повторно используемых сервисов.

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

Компоненты технической инфраструктуры

Рисунок 19 – Компоненты технической инфраструктуры

Две технологических разработки особенно ярко
иллюстрируют мощные возможности и открытость IBM Software Development Platform,
базирующейся на данной технологической инфраструктуре: это метамодель UML2 и
инструментарий тестирования Hyades.

Unified Modeling Language (UML),
UML2

Унифицированный язык моделирования (UML – Unified Modeling
Language) стал промышленным стандартом для разработки и проектирования
программного обеспечения. Благодаря UML разработчики получают мощный базис для
успешного взаимодействия друг с другом и своими заказчиками, а также
документирования разрабатываемого программного обеспечения.

Согласно отчетам IDC и Gartner, средства IBM
Rational занимают лидирующие позиции в области средств бизнес-моделирования,
анализа, и проектирования с использованием языка Unified Modeling Language.
Именно в этих областях технологии моделирования систем любой сложности с
использованием UML наиболее востребованы. Unified Modeling Language
поддерживается широким набором популярных средств IBM Rational, включая:

        
IBM
Rational Rose (UML 1.3)

        
IBM
Rational Rose RealTime (UML 1.3)

        
IBM
Rational XDE Modeler (UML 1.4)

        
IBM
Rational XDE Developer (UML 1.4)

        
IBM
Rational XDE DeveloperPlus (UML 1.4)

        
IBM
Rational Software Modeler (UML 2.0)

        
IBM
Rational Application Developer (UML 2.0)

        
IBM
Rational Software Architect (UML 2.0)

Метамодель UML2 представляет собой реализацию
основных элементов спецификации UML 2.0 в EMF. Эта метамодель является основной
реализацией UML 2.0, лежащей в основе всех инструментальных средств,
объединенных платформой IBM Software Development Platform, и, следовательно,
представляет базовые семантические элементы, составляющие основу IBM Software
Development Platform. Эта метамодель широко используется различными
инструментальными средствами IBM; если необходимо, ее можно модернизировать для
каждого из инструментальных средств, воспользовавшись стандартными механизмами
расширения UML.

Метамодель UML2 разработана участниками open source
проекта в рамках сообщества Eclipse. Задачами данного проекта являются создание
удобных в использовании реализаций:

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

        
общей схемы обмена метаданными – XML Metadata Interchange
(XMI) для упрощения обмена семантическими моделями;

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

Инструментарий
тестирования Hyades Testing Framework

Инструментарий тестирования Hyades – Hyades Testing
Framework – обеспечивает централизованный механизм управления ресурсами и
жизненным циклом тестирования для всех средств разработки, объединенных
платформой IBM Software Development Platform. Эта среда обеспечивает
синхронизацию всех этапов тестирования на протяжении жизненного цикла,
стимулируя упреждающее тестирование (test-first) в процессе разработки и
улучшая возможности трассировки от тестовых артефактов к другим артефактам в
рамках жизненного цикла. Hyades поддерживает весь спектр методологий
тестирования за счет использования инфраструктуры с открытым исходным кодом,
посредством которой средства тестирования и трассировки взаимодействуют друг с
другом.

Hyades Testing Framework является open source
проектом в рамках сообщества Eclipse. Цель проекта Hyades заключается в
интеграции средств тестирования и трассировки в рамках среды Eclipse для
обеспечения совместимости со средствами разработки на протяжении жизненного
цикла программного обеспечения. Такая интеграция позволяет снизить затраты и
облегчить процесс внедрения эффективных автоматизированных процессов контроля
качества программного обеспечения. Hyades позволяет улучшить средства
функционального и нагрузочного тестирования, используемые разработчиками, за
счет повышения уровня совместимости и снижения затрат на приобретение
инструментальных средств и последующих затрат на сопровождение.

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

Модель
программирования WebSphere

Одним из ключевых аспектов IBM Software Development
Platform является использование модели программирования, реализованной в рамках
платформы WebSphere, в ряде приложений IBM промежуточного слоя (DB2, Tivoli и
Lotus) и, в частности, в рамках IBM Software Development Platform.

Ключевые элементы модели программирования, общие для
IBM Software Development Platform и платформы IBM промежуточного слоя, включают
в себя:

        
Service Data Objects (SDO), в настоящий момент находятся в
стадии стандартизации в рамках Java Community Process. Объекты SDO предоставляют
упрощенную модель программного доступа к данным для различных ресурсов (как
данных, так и корпоративных информационных систем – EIS), и служат дополнением
к базовым стандартам для Web-сервисов, таким, как XML, Web Services Definition
Language (WSDL) и Simple Object Access Protoсol (SOAP).

        
BPEL4WS, представляющий собой стандарт согласования сервисов
(service orchestration) и написания скриптов для компонентов, поддерживающий
интеграцию процессов workflow и бизнес-процессов.

        
JSF, представляющий собой инструментарий Java, позволяющий
ускорить процесс создания Web-приложений разработчиками, не являющимися
большими специалистами в J2EE.

        
Адаптация и настройка приложений с использованием внешних
политик и правил. В настоящее время разрабатывается целая серия стандартов,
регламентирующих описание и применение политик, в том числе такие стандарты,
как Web Services Policy и OMG Business Semantics of Business Rules (BSBR).

Таким образом, IBM Software Development Platform – это
самое полное и мощное в индустрии решение для создания программных систем и
управления жизненным циклом приложений. Она обеспечивает поддержку
автоматизации практически для всех аспектов разработки программного
обеспечения.

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

13.             
Инструментальные средства IBM Rational

Решения IBM Rational ориентированы на решение
следующих основных задач:

        
Поддержка основных процессов создания программного обеспечения
– моделирования, разработки и тестирования (IBM Professional Bundle, IBM
Rational Suite)

        
Организация совместной работы проектной команды (IBM Team
Unified Process)

        
Управление проектами и портфелями (IBM Portfolio Mangager)

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

Продукты, услуги и лучшие методы организации работ
Rational лежат в основе IBM Software Development Platform – платформы для
разработки и развертывания программного обеспечения в рамках бизнес-приложений,
встроенных систем и программных продуктов. Это модульное и функционально
законченное решение позволяет командам разработчиков использовать подход к
разработке, учитывающий интересы бизнеса и основанный на открытых стандартах,
включая оболочку Eclipse Результатом этого подхода является исключительная
эффективность бизнеса.

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

Обзор
инструментальных средств IBM Rational

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

Наиболее полно интеграция инструментальных средств
основных процессов создания приложений на платформе J2EE – моделирования,
разработки и тестирования – реализована в пакете IBM Rational Professional
Bundle, который объединяет новые продукты линейки IBM Rational, получившей
название Atlantiс. Отличительной чертой пакета IBM Rational Professional Bundle
является тесная интеграция средств проектирования, разработки и тестирования в
рамках единой среды разработки на базе платформы Eclipse. Это позволяет быстро
переходить от проектирования к разработке и легко визуализировать код в
графическом представлении на языке моделирования UML. Новые инструменты
интегрированы со средствами организации совместной работы IBM Rational Team
Unifying Platform на основе среды Eclipse. IBM Rational Professional Bundle
включает полный комплект инструментальных средств, необходимых для
проектирвоания, разработки и тестирования приложений, ориентированных на
J2EE/порталы/службы, на платформах Windows и Linux, а также для тестирования
.NET-приложений:

        
IBM Rational Software Architect – инструменты
проектирования и разработки приложений на основе моделей на языке UML, которые
позволяют выполнять детальное проектирование информационной системы и
обеспечивать создание качественной архитектуры. Включает такие средства как IBM Rational Software Modeler, IBM Rational Application Developer и IBM Rational Web Developer;

        
Инструменты тестирования в
составе новой линейки продуктов
Atlantic –
это средство нагрузочного тестирования
IBM Rational Performance Tester
и средство функционального тестирования
IBM Rational Functional Tester (
включает средство ручного тестирования IBM Rational Manual Tester).

Интегрированное
решение по проектированию и разработке приложений – IBM Rational Software Architect (RSA), которое входит в IBM Rational
Professional Bundle,
содержит средства моделирования IBM Rational Software Modeler (RSM) и разработки приложений IBM
Rational Application Developer (RAD),
дополненное инструментом разработки сайтов IBM Rational Web Developer (RWD). Эти
продукты позволяют создавать средства преобразования моделей, обеспечивающие
автоматизированный переход от высокоуровневых моделей к низкоуровневым моделям
реализации, вплоть до графического представления кода на UML. Средства
поддержки процесса тестирования в составе пакета IBM Rational Professional
Bundle – это IBM Rational Performance Tester – средство нагрузочного
тестирования и IBM Rational Functional Tester – средство функционального тестирования,
в состав которого входит также и средство ручного тестирования – IBM Rational
Manual Tester.

Для организации совместной работы по моделированию и
тестированию программных систем для различных платформ разработки, не
поддерживаемых IBM Rational Professional Bundle, успешно используется пакет IBM
Rational Suite, объединяющий такие хорошо знакомые разработчикам средства, как
IBM Rational Rose, IBM Rational XDE DeveloperPlus, IBM Rational Robot. IBM
Rational PurifyPlus for Windows, а также средства организации коллективной
работы проектной команды IBM Team Unifying Platform.

Пакет IBM Rational Team Unifying Platform
обеспечивает совместную работу проектной команды по управлению требованиями,
изменениями, тестированием, конфигурациями, документированию и отслеживанию
состояния проекта в соответствии с методологией процесса разработки
программного обеспечения. IBM Rational Team Unifying Platform является
объединяющей платформой, которая рекомендуется как основа для организации
взаимодействия в рамках коллективов разработчиков при использовании
инструментальных средств обоих пакетов – IBM Rational Professional Bundle и IBM
Rational Suite. В состав пакета входят следующие инструментальные средства: IBM
Rational RequisitePro, IBM Rational ProjectConsole, IBM Rational ClearQuest,
IBM Rational ClearCase LT, IBM Rational TestManager, IBM Rational SoDA, IBM
Rational Unified Process.
Кроме того, для управления проектами
используется пакет IBM Rational Portfolio Manager, обеспечивающий управление
портфелем проектов разработки программного обеспечения.

Технологии
Rational в портфеле IBM

После приобретения IBM весной 2003 года компании
Rational Software, технологии Rational стали неотъемлемой частью портфеля
программного обеспечения IBM. «Rational является неотъемлемым элементом нашей
недавно объявленной инициативы в области электронного бизнеса по требованию, –
говорит Стив Миллз (Steve Mills), вице-президент IBM и руководитель
подразделения IBM Software. – Законченная, открытая программная платформа
Rational позволит повысить скорость, качество и прогнозируемость проектов в
области программного обеспечения. Продукты Rational станут великолепным
дополнением к имеющимся у нас четырем семействам ПО – WebSphere, DB2, Lotus и
Tivoli». Программные инструменты компании используют более 600 тысяч
разработчиков программного обеспечения.

Компания Rational Software была основана Полом Леви
(Paul Levy) и Майком Девлином (Mike Devlin) в 1981 г. Их вдохновили перспективы
позитивного влияния программного обеспечения на мировую экономику. С тех пор
постоянно растет роль корпоративного ПО как двигателя мировой экономики и
ключевого элемента в конкурентной борьбе компаний, сервисов и продуктов.
Компания Rational Software была основана с конкретной миссией, которая остается
неизменной до сих пор – обеспечение успеха клиентов, разрабатывающих и
развивающих программное обеспечение. Цель Rational Software – помочь клиентам в
создании информационных систем. Подход компании Rational Software помогает
решать проблемы разработки, развития, тестирования и управления разработкой,
позволяя создавать корпоративное ПО более быстро, качественно, надежно и с
наименьшим риском.

Свой первый продукт компания Rational Software
поставила на рынок в конце 1984 г. С тех пор она выросла в мощную,
высокотехнологичную компанию. К моменту слияния Rational Software была
крупнейшим специализированным поставщиком средств разработки ПО. По итогам ее
последнего финансового года (31.03.2002) объем доходов компании составил 689
млн. долл. На момент вхождения Rational в IBM в компании работало около 3400
сотрудников, действовали 80 офисов по всему миру, ее продуктами пользовались
более 600 тысяч разработчиков. С этих пор продукты корпорации распространяются
под торговой маркой IBM Rational, а бывший руководитель и один из основателей
Rational Software Майк Девлин встал во главе нового подразделения IBM.

IBM Rational Suite в свое время стала первым
интегрированным решением для разработки программного обеспечения. Теперь идеи
коллективной работы получили дальнейшее развитие на уровне всей компании, а IBM
Software Development Platform стала первой интегрированной платформой, которая
позволяет увязать задачи разработки ИТ с целями бизнеса. Продукты, услуги и
лучшие методы организации работ IBM Rational лежат в основе IBM Software
Development Platform.

IBM Team Unifying Platform. Эффективная
организация совместной работы над проектом

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

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

Набор средств IBM Rational под названием Team
Unifying Platform (Объединяющая платформа) включает в себя следующие средства
совместного управления проектами и создания коллективной инфраструктуры:

        
IBM Rational Unifying Process – методология создания
информационных систем, обеспечивает всеобщее понимание и следование
итеративному подходу;

        
IBM Rational RequisitePro – средство управление требованиями,
которое позволяет коллективу справляться с постоянно меняющимися требованиями;

        
IBM Rational ClearQuest – средство управления запросами на
изменения, предоставляет возможности для отслеживания дефектов и изменений,
которое позволяет каждому понимать текущий статус качества ПО;

        
IBM Rational ClearCase – средство конфигурационного
управления, надежный инструмент для управления версиями, который служит в
качестве общего репозитария для всех объектов разработки ИС;

        
IBM Rational TestManager – средство организации процессов
тестирования, которое объединяет в себе планирование тестов, их выполнение и
анализ, включая частные и унаследованные тестовые объекты;

        
IBM Rational Project Console – средство мониторинга ключевых
показателей проекта, которое упрощает контроль за статусом проекта и
генерирование объективных метрик проекта с целью улучшения его предсказуемости.

        
IBM Rational SoDA – средство документирования, автоматизирует
создание и сопровождение всеобъемлющей проектной документации и отчетов;

В основе работы инструментария лежит подход Unifying
Change Management (UCM), который позволяет организовать индивидуальные рабочие
пространства для каждого участника проекта на базе единого проектного
репозитария. В зависимости от специфики деятельности конкретного участника
проекта он использует необходимые инструментальные средства. Интеграция
указанных средств позволяет объединить деятельность всей команды в единый и
четкий процесс построения эффективной ИС.

Организация
процесса разработки.
IBM Rational Unified Process

В каждом проекте разработчики стремятся к общей цели
– в утвержденные сроки создавать качественное и надежное ПО, отвечающее текущим
требованиям и масштабируемое для будущих задач. Достичь этой цели практически
невозможно без хорошо организованного процесса разработки. IBM Rational Unified
Process (RUP) предоставляет группам разработчикам возможность общего,
интерактивного и интегрированного управления процессом.

RUP – база знаний

Рисунок 20 – RUP – база знаний

Rational Unified Process – обширный справочник в
виде портала, который организует работу проектной команды. RUP содержит
инструкции, шаблоны и примеры для большинства критических задач, которые могут
возникнуть в ходе проекта.

Rational Unified Process – практическое руководство,
помогающее разработчикам выполнять их повседневные задачи. Реализованный с
использованием HTML и Java для простого и независимого от платформы доступа с
локального компьютера и через корпоративную сеть, продукт RUP имеет мощные
графические средства навигации, позволяющие быстро находить необходимую
информацию по разработке ПО, а также шаблоны для документов, создаваемых в ходе
проекта.

Rational Unified Process позволяет интегрировать
функции инструментальных средств IBM Rational:

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

        
расширенная помощь облегчает поиск инструкций для реализации
текущей задачи.

Rational Unified Process может быть адаптирован как
для малых, так и для больших проектов и использоваться при разработке
приложений всех типов, включая электронную коммерцию (e-business) и
Web-приложения, приложения реального времени и встроенное ПО.

Пример адаптированного Web-сайта RUP

Рисунок 21 – Пример адаптированного Web-сайта RUP

Существует два разных подхода к внедрению Rational Unified Process: целиком или
по шагам. Наиболее эффективно внедрять весь процесс
целиком, когда начинается новый проект, участники проекта хорошо владеют
методологией RUP или некоторый проект ведется настолько хаотично, что любая его
реорганизация заведомо принесет пользу. Предпочесть внедрение RUP по шагам
стоит, если речь идет о внесении изменений в уже существующий проект, в котором
есть налаженные механизмы командного взаимодействия или участники проекта плохо
знакомы с положениями RUP.

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

Для адаптации методологии Rational Unified Process в
организации IBM Rational предлагает средства, поддерживающие задачи
моделирования и описания процессов разработки. Эти средства представляют собой
набор инструментов для настройки и публикации Web-сайтов на основе RUP, которые
позволяют вносить изменения в RUP и описывать собственные стандарты ведения
проектов:

        
IBM RUP Builder – средство автоматической генерации Web-сайта,
модифицированного RUP, которое входит в стандартную поставку IBM Rational Suite
Enterprise. При разработке сайта можно использовать готовые модули расширения
(plug-in), которые могут встраиваться в текущее описание процесса, добавляя в
него некоторую специфику. Готовые модули расширения можно загрузить с сайта IBM
Rational

        
IBM Rational XDE Modeler – визуальное средство создания взаимосвязи
процессов на основе метамодели RUP, повышающее уровень абстракции и облегчающее
понимание и изменение процессов (возможно также использование IBM Rational XDE
Developer for Java или IBM Rational XDE DeveloperPlus for Java).

        
IBM Rational Process Engineering – средство формирования
контента сайта, может быть бесплатно получен с сайта IBM Rational.

Адаптация Rational Unified Process проводится
инженерами-технологами организации или внешними консультантами и включает этапы
определения, описания и представления процессов. В качестве основы для
определения процесса используется модель RUP, затем выполняется изменение и
расширение базовой модели. Визуализация связей между элементами процесса
показывает, например, какие артефакты задействованы в процессе и какие роли
отвечают за их создание. Библиотека элементов процесса содержит текстовую
информацию о каждом элементе в модели процесса. Библиотека содержит также все
текстовые страницы RUP, а также необходимые шаблоны для создания новых страниц
описания. На последнем этапе – этапе представления процесса, генерируется
описание процессов, включающее текст и графику в виде Web-сайта и соединяющее
модели процессов и библиотеку описаний в единое целое.

Внедрение RUP может быть проведено

        
во всей организации с распространением на все проекты;

        
в отдельном проекте;

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

        
в подразделениях, задействованных в какой-либо части крупных
проектов, ведущихся в других компаниях (аутсорсинг).

Начинать проект по адаптации Rational Unified
Process рекомендуется с внедрения части RUP в одном или нескольких
подразделениях, а в дальнейшем распространить успешный опыт на организацию в
целом. Таким образом, можно организовать на основе RUP эффективные процессы
визуального моделирования и управления требованиями, создания прототипов
графического интерфейса, планирования работ и определения необходимых ресурсов,
автоматизированного тестирования, управления изменениями (дефектами, запросами
на улучшение, задачами и т. д.), управления версиями и конфигурацией.

14.             
IBM Rational – состав пакетов и краткое описание
продуктов

Управление проектами

IBM
Rational Portfolio Manager

Эффективное решение, автоматизирующее управление и мониторинг
портфеля проектов организации.

Моделирование,
разработка и тестирование

IBM
Rational Professional Bundle

Пакет,
объединяющий новую линейку продуктов Atlantic для моделирования, разработки
и тестирования программного обеспечения, создаваемого на платформе J2EE.

В состав
пакета входит весь комплекс программных средств, необходимых предприятию
для разработки, конструирования и тестирования приложений, ориентированных
на J2EE/порталы/службы, на платформах Windows и Linux, а также для
тестирования приложений .NET. Интегрируется со средствами организации
совместной работы IBM Rational Team Unifying Platform на основе среды
Eclipse. В состав пакета входят следующие средства:

    • IBM Rational Software Architect
    • IBM Rational Performance
      Tester
    • IBM Rational Functional
      Tester

Пакет
приобретается единовременно с единым контрактом на техобслуживание

IBM
Rational Suite

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

    • IBM Team Unifying Platform
    • IBM Rational PurifyPlus
      for Windows
    • IBM Rational Rose XDE
      DeveloperPlus
    • IBM Rational Robot

Моделирование
и разработка

IBM Rational Software Architect

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

      • IBM Rational Software
        Modeler
      • IBM Rational Application
        Developer
      • IBM Rational Web
        Developer

Существует
как отдельный продукт и входит в состав пакета IBM Rational Professional
Bundle

Моделирование

IBM
Rational Software Modeler

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

IBM
Rational Rose

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

Существует
как отдельный продукт и входит в состав пакета IBM Rational Suite.

Разработка приложений

IBM Rational
Application Developer

Средство для
быстрого проектирования, разработки, анализа, тестирования, профилирования
и развертывания приложений Web, Web-служб, Java, J2EE и порталов в полной
среде IDE на базе Eclipse. Пришел на смену Rational Rapid Developer. Существует
как отдельный продукт и входит в состав пакета IBM Rational Software
Architect

IBM
Rational XDE Developer

Инструментарий, интегрируемый в рабочую среду разработчика (Microsoft Visual Studio .NET, IBM Websphere
Studio Application Developer, Eclipse IDE)
и позволяющий организовать Round-Trip разработку информационных систем. Существует как отдельный продукт.

Разработка Web-сайтов

IBM
Rational Web Developer

Средство для быстрой
разработки статических и динамических Web сайтов, их тестирования и
развертывания. Существует как отдельный продукт и входит в состав пакета
IBM Rational Software Architect.

Тестирование

IBM
Rational Performance Tester

Средство нагрузочного
тестирования в линейке продуктов Atlantic. Существует как отдельный продукт
и включает в состав своего пакета IBM Rational Functional Tester

IBM
Rational Robot + Test Manager

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

IBM
Rational Functional Tester

Средство
функционального тестирования в линейке продуктов Atlantic. В состав пакета
входит:

      • IBM Rational Manual
        Tester

IBM
Rational Manual Tester

Средство для организации
и проведения ручного тестирования информационных систем в линейке продуктов
Atlantic. Существует как отдельный продукт и входит в состав пакета IBM
Rational Functional Tester

IBM
Rational Robot

Средство,
предназначенное для разработки и записи скриптов автоматизированного
тестирования и являющееся непосредственным инструментом, с помощью которого
происходит их запуск. Входит в состав пакета IBM Rational Suite

IBM
Rational XDE Tester

Средство, ориентированное,
главным образом, на функциональное тестирование Java приложений и
Web-сайтов.

IBM
Rational Purify

Средство,
предназначенное для помощи разработчику в выявлении ошибок, связанных с
обращением к динамической памяти.

Входит в
состав пакета IBM Rational Suite

IBM
Rational Quantify

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

Входит в
состав пакета IBM Rational Suite

IBM
Rational PureCoverage

Средство,
предназначенное для помощи разработчику в определении полноты тестирования
кода.

Входит в
состав пакета IBM Rational Suite

IBM
Rational TestFactory

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

Входит в
состав пакета IBM Rational Suite

Организация
совместной работы

IBM
Rational Team Unifying Platform

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

В состав
пакета входят следующие инструментальные средства:

    • IBM Rational RequisitePro
    • IBM Rational
      ProjectConsole
    • IBM Rational ClearQuest
    • IBM Rational ClearCase LT
    • IBM Rational TestManager
    • IBM Rational SoDA
    • IBM Rational Unified
      Process

Существует
как отдельный продукт и входит в состав пакета IBM Rational Suite. На
платформе Eclipse интегрирован с инструментальными средствами пакета IBM Rational
Professional Bundle.

IBM
Rational RequisitePro

Средство,
позволяющее организовать процесс эффективного управления требованиями в
организации

Существует
как отдельный продукт и входит в состав пакета IBM Rational Team Unifying
Platform.

IBM
Rational ProjectConsole

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

Входит в состав пакета IBM Rational Team Unifying Platform.

IBM
Rational ClearQuest

Средство,
позволяющее организовать процесс эффективного управления изменениями в
организации.

Существует
как отдельный продукт и входит в состав пакета IBM Rational Team Unifying
Platform.

IBM
Rational ClearCase

Семейство
масштабируемых и наращиваемых средств конфигурационного и версионного
управления в проекте, которое при использовании с другими продуктами IBM
Rational позволяет организовать гибкие и контролируемые процессы разработки
информационных систем.

IBM
Rational TestManager

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

Входит в состав пакета IBM Rational Team Unifying
Platform.

IBM
Rational SoDA

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

    • Репозиторий
      требований Rational RequisitePro,
    • Репозиторий
      тестирования Rational TestManager,
    • Базы
      данных запросов на изменения Rational ClearQuest,
    • Версионные
      объектные базы (VOB) Rational ClearCase,
    • Общий
      проектный репозиторий Rational Administrator.

Входит в состав
пакета IBM Rational Team
Unifying Platform
.

IBM
Rational Unified Process

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

Входит в состав пакета IBM Rational Team Unifying
Platform.

Понравилась статья? Поделить с друзьями:

А вот и еще интересные новости по теме:

  • Taskalfa 1800 инструкция по эксплуатации на русском
  • Лиринон сироп инструкция по применению для детей
  • Дюфастон инструкция по применению взрослым в таблетках
  • Должностная инструкция старшего менеджера по продажам скачать
  • Аристон elixia посудомоечная машина инструкция по применению

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии