- •Оглавление
- •Глава 1. Жизненный цикл программного обеспечения ……………………………………………43
- •Глава 2. Методические аспекты
- •Глава 3. Моделирование бизнес-процессов
- •Глава 4. Анализ и проектирование
- •Глава 5. Технологии создания программного
- •Глава 6. Оценка трудоемкости создания
- •Глава 7. Особенности современных проектов ........527
- •Предисловие
- •Введение
- •Глава 1 жизненный цикл программного обеспечения
- •Нормативно-методическое обеспечение создания по
- •Стандарт жизненного цикла по
- •Основные процессы жц по
- •Вспомогательные процессы жизненного цикла по
- •Организационные процессы жизненного цикла по
- •Взаимосвязь между процессами жц по
- •Модели жизненного цикла по
- •Каскадная модель жц
- •Итерационная модель жизненного цикла
- •Методика spmn
- •Пример процесса «управление требованиями»
- •Пример процесса «управление конфигурацией по»
- •Общие принципы проектирования систем
- •Визуальное моделирование
- •Структурные методы анализа и проектирования по
- •Метод функционального моделирования
- •Описание типов связей
- •Моделирования процессов idef3
- •Типы связей idef3
- •Типы соединений
- •Моделирование потоков данных
- •Количественный анализ диаграмм
- •Сравнительный анализ sadt-моделей и диаграмм потоков данных
- •Моделирование данных
- •Объектно-ориентированные методы анализа и проектирования по
- •Основные принципы построения объектной модели
- •Основные элементы объектной модели
- •Значения мощности
- •Унифицированный язык моделирования uml
- •Диаграммы вариантов использования
- •Диаграммы взаимодействия
- •Диаграммы классов
- •Диаграммы состояний
- •Диаграммы деятельности
- •Диаграммы компонентов
- •Диаграммы размещения
- •Механизмы расширения uml
- •Количественный анализ диаграмм uml
- •Основные элементы языка uml
- •Основные типы связей языка uml
- •Диапазоны оценок для диаграмм uml
- •Образцы
- •Сопоставление и взаимосвязь структурного и объектно-ориентированного подходов
- •Структурный (процессный) подход к моделированию бизнес-процессов
- •Принципы процессного подхода
- •Применение диаграмм потоков данных
- •Система моделирования aris
- •Метод ericsson-penker21
- •Пример использвания процессного подхода
- •История болезни пациента
- •Спецификация структур данных
- •Построение диаграмм потоков данных нулевого и последующих уровней
- •Объектно-ориентированный подход к моделированию бизнес-процессов
- •Методика моделирования
- •Пример использования объектно-ориентированного подхода
- •Пример спецификации требований к программному обеспечению
- •Пример структурного проектирования по
- •Построение диаграмм системных процессов и диаграмм последовательностей экранных форм
- •Объектно-ориентированный анализ
- •Архитектурный анализ
- •Анализ вариантов использования
- •Объектно-ориентированное проектирование
- •Проектирование архитектуры системы
- •Проектирование элементов системы
- •Глава 5 технологии создания программного обеспечения
- •Определение технологии
- •Общие требования, предъявляемые
- •Внедрение тс по в организации
- •Общие сведения
- •Определение потребностей в тс по
- •Оценка и выбор тс по
- •Критерии оценки и выбора тс по
- •Выполнение пилотного проекта
- •Практическое внедрение тс по
- •Примеры тс по
- •Технология rup (rational unified process)
- •Технология oracle
- •Технология borland
- •Технология computer associates
- •Глава 6 оценка трудоемкости создания программного обеспечения
- •Методы оценки и их классификация
- •Методика оценки трудоемкости разработки по на основе функциональных точек
- •Определение функциональных типов
- •Определение количества и сложности функциональных типов по данным
- •Сложность ilf и eif
- •Определение количества и сложности транзакционных функциональных типов
- •Подсчет количества функциональных точек
- •Зависимость количества fp от сложности функционального типа
- •Коммуникации данных
- •Распределенная обработка данных
- •Сложность ei
- •Сложность ео
- •Производительность
- •Эксплуатационные ограничения
- •Частота транзакций
- •Ввод данных в режиме «онлайн»
- •Эффективность работы конечных пользователей1
- •Онлайновое обновление
- •Сложная обработка31
- •Повторное использование
- •Простота установки
- •Простота эксплуатации
- •Количество возможных установок на различных платформах
- •Гибкость32
- •Оценка трудоемкости разработки
- •Размер программного обеспечения в fp и loc
- •Распределение временных затрат по стадиям для маленьких и больших проектов
- •Статистические данные
- •Статистические (регрессионные) модели
- •Группа процессов
- •Определение весовых показателей вариантов использования
- •Определение технической сложности проекта
- •Определение уровня квалификации разработчиков
- •Оценка трудоемкости проекта
- •Методы, основанные на экспертных оценках
- •Метод дельфи
- •Метод декомпозиции работ
- •Средства оценки трудоемкости
- •Планирование итерационного процесса создания по
- •Глава 7 особенности современных проектов
- •Категории «безнадежных» проектов
- •Причины, порождающие «безнадежные» проекты
- •Причины разногласий между участниками проекта
- •Переговоры в «безнадежном» проекте
- •Человеческий фактор в «безнадежных» проектах
- •Процессы в «безнадежных» проектах
- •Динамика процессов
- •Контроль над продвижением проекта
- •Технология и инструментальные средства «безнадежных» проектов
- •Дополнительная литература
- •Краткий словарь терминов
- •Список основных сокращений
Выполнение пилотного проекта
Перед полномасштабным внедрением выбранной ТС ПО в организации выполняется пилотный проект, целью которого является экспериментальная проверка правильности решений, принятых на предыдущих этапах, и подготовка к внедрению.
Пилотный проект представляет собой первоначальное реальное использование ТС ПО в предназначенной для этого среде и обычно подразумевает более широкий масштаб использования ТС ПО по отношению к тому, который был достигнут во время оценки. Пилотный проект должен обладать многими характеристиками реальных проектов, для которых предназначено данное средство. Он преследует следующие цели:
подтвердить достоверность результатов оценки и выбора;
установить, действительно ли ТС ПО годится для использования в данной организации, и если да, то определить наиболее подходящую область ее применения;
собрать информацию, необходимую для разработки плана практического внедрения;
приобрести собственный опыт использования ТС ПО.
Пилотный проект позволяет получить важную информацию, необходимую для оценки ТС ПО и его поддержки со стороны поставщика после того, как средство установлено.
Важной функцией пилотного проекта является принятие решения относительно приобретения или отказа от использования ТС ПО. Провал пилотного проекта позволяет избежать более значительных и дорогостоящих неудач в дальнейшем, поскольку пилотный проект обычно требует приобретения относительно небольшого количества лицензий и обучения узкого круга специалистов.
Первоначальное использование новой ТС ПО в пилотном проекте должно тщательно планироваться и контролироваться. Пилотный проект включает следующие шаги (рис. 5.5).
Определение характеристик пилотного проекта
Пилотный проект должен обладать следующими характеристиками.
Типичность предметной области. Чтобы облегчить окончательное определение области применения ТС ПО, предметная область пилотного проекта должна быть типичной для обычной деятельности организации. Пилотный проект должен помочь определить любую дополнительную технологию, обучение или поддержку, которые необходимы для перехода от пилотного проекта к широкомасштабному использованию ТС ПО. В рамках этих ограничений пилотный проект должен иметь небольшой, но значимый размер.
Масштабируемость. Результаты, полученные в пилотном проекте, должны показать масштабируемость ТС ПО. Цель — получить четкое представление о масштабах проектов, для которых данная ТС ПО применима.
Рис. 5.5. Шаги пилотного проекта
Представительность. Пилотный проект не должен быть необычным или уникальным для организации. ТС ПО должна использоваться для решения задач, относящихся к предметной области, хорошо понимаемой всей организацией.
Критичность. Пилотный проект должен иметь существенную значимость, чтобы оказаться в центре внимания, но не должен быть критичным для успешной деятельности организации в целом. Необходимо осознавать, что первоначальное внедрение новой ТС ПО подразумевает определенный риск. При выборе пилотного проекта приходится решать следующую дилемму: успех незначительного проекта может остаться незамеченным, с другой стороны, провал значимого проекта может вызвать чрезмерную критику.
Авторитетность. Группа специалистов, участвующих в проекте, должна обладать высоким авторитетом, при этом результаты проекта будут всерьез восприняты остальными сотрудниками организации.
Готовность проектной группы. Проектная группа должна обладать готовностью к нововведениям, технической зрелостью и приемлемым уровнем опыта и знаний в данной ТС ПО и предметной области. С другой стороны, группа должна отражать в миниатюре характеристики организации в целом.
В большинстве случаев существует баланс между желанием реализовать идеальный пилотный проект и реальными ограничениями организации. Организация должна выбрать пилотный проект таким образом, чтобы, во-первых, способ использования ТС ПО в нем совпадал с дальнейшими планами и, во-вторых, перечисленные выше характеристики были сбалансированы с реальными условиями организации.
Кроме того, организация должна учитывать продолжительность пилотного проекта (и в целом процесса внедрения). Слишком продолжительный проект связан с риском потери интереса к нему со стороны руководства.
Планирование пилотного проекта
Планирование пилотного проекта должно по возможности вписываться в обычный процесс планирования проектов в организации. План должен содержать следующую информацию:
цели, задачи и критерии оценки;
персонал;
процедуры и соглашения;
обучение;
график и ресурсы.
Цели, задачи и критерии оценки
Ожидаемые результаты пилотного проекта должны быть четко определены. Степень соответствия этим результатам представляет собой основу для последующей оценки проекта. Для формирования такой основы необходимо выполнить следующие действия:
описать проект в терминах ожидаемых результатов (т.е. конечного продукта). Описание должно включать форму представления и содержание результатов. Должны быть четко определены договорные требования и соответствующие стандарты;
определить общие цели проекта, а именно: насколько хорошо и до какой степени ТС ПО планируется использовать в среде данного проекта. Примером цели может быть определение степени улучшения качества проектной документации в результате применения ТС ПО;
определить конкретные задачи, реализующие поставленные цели. Каждой цели можно поставить в соответствие одну или несколько конкретных задач с количественно оцениваемыми результатами. Примером такой задачи может быть сравнительный анализ качества документации, полученной с помощью ТС ПО и без нее. Документация может включать спецификацию требований к ПО, высокоуровневые и детальные проектные спецификации;
установить критерии оценки результатов. Чтобы определить степень успеха пилотного проекта, необходимо использовать набор критериев, основанных на упомянутых выше задачах. Примером критерия может быть степень непротиворечивости проектной документации и контролируемости выполнения требований к ПО. Значения критериев должны сравниваться с базовыми значениями, полученными до выполнения пилотного проекта.
Персонал
Специалисты, выбранные для участия в пилотном проекте, должны иметь соответствующий авторитет и влияние и быть сторонниками новой ТС ПО. Группа должна включать как технических специалистов, так и менеджеров, заинтересованных в новой ТС ПО и разбирающихся в ее использовании. Группа должна обладать высокими способностями к коммуникации, знанием особенностей организационных процессов и процедур, а также предметной области. Группа не должна, тем не менее, состоять полностью из специалистов высшего звена, она должна представлять средний уровень организации.
После завершения пилотного проекта группа должна быть открыта для обмена информацией с остальными специалистами организации относительно возможностей нового средства и опыта, полученного при его использовании. Может оказаться желательным рассредоточить проектную группу по всей организации в целях распространения их опыта и знаний.
Процедуры и соглашения
Необходимо четко определить процедуры и соглашения, регулирующие использование ТС ПО в пилотном проекте. Эта задача, скорее всего, может оказаться более долгой и сложной, чем ожидается, при этом может оказаться необходимым привлечение сторонних экспертов. Примерами процедур и соглашений, которые могут повлиять на успех пилотного проекта, являются методы, технические соглашения (в частности, соглашения по наименованиям и структуре каталогов, стандарты проектирования и программирования) и организационные соглашения (в частности, правила учета использования ресурсов, авторизации и контроля изменений, а также процедуры экспертизы, проверки качества и подготовки отчетов).
В пилотном проекте по возможности должны использоваться существующие в организации процедуры и соглашения. С другой стороны, в течение пилотного проекта неэффективные или чересчур ограничивающие процедуры и соглашения могут развиваться и совершенствоваться по мере накопления опыта применения средства. При этом те изменения, которые предлагается в них вносить, должны документироваться.
Обучение
Должны быть определены виды и объем обучения, необходимого для пилотного проекта. Планируемое обучение должно обеспечивать три вида потребностей: технические, управленческие и мотивационные. Ресурсы, требуемые для обучения (учебные аудитории и оборудование, преподаватели и учебные материалы), должны соответствовать плану пилотного проекта.
График обучения должен определять как специалистов, подлежащих обучению, так и виды обучения, которое они должны пройти. Обучение, которое проводится в период выполнения проекта, должно начинаться как можно быстрее после начала проекта. Обучение средствам, процессам или методам, которые не будут использоваться в течение нескольких месяцев после начала проекта, должно планироваться в то время, когда в них возникнет реальная потребность.
Поставщики ТС ПО обычно предлагают обучение использованию поставляемых ими средств. Помимо этого для некоторых средств может быть необходимо обучение методологии. Некоторые виды обучения могут быть недоступны со стороны коммерческих организаций, они должны выполняться собственными силами. Такие виды обучения включают использование ТС ПО в контексте процессов, происходящих в организации, а также в совокупности с другими средствами в данной среде. Часть плана пилотного проекта, связанная с обучением, должна использоваться в качестве входа для плана практического внедрения.
При выборе необходимого обучения должны приниматься во внимание следующие факторы:
квалификация преподавателей;
соответствие обучения характеристикам конкретных групп специалистов (например, обзорные курсы для менеджеров, подробные курсы для разработчиков);
возможность проведения курсов непосредственно на рабочих местах;
возможность проведения расширенных курсов;
возможность подготовки самих преподавателей.
График и ресурсы
Должен быть разработан график, включающий ресурсы и сроки (этапы) проведения работ. Ресурсы включают персонал, технические средства, ПО и финансирование. Данные о персонале могут определять конкретных специалистов или требования к квалификации, необходимой для успешного выполнения пилотного проекта. Финансирование должно определяться отдельно по каждому виду работ: приобретение ТС ПО, установка, обучение, отдельные этапы проектирования.
Выполнение пилотного проекта
Пилотный проект должен выполняться в соответствии с планом. Организационная деятельность, связанная с выполнением пилотного проекта и подготовкой отчетов, должна осуществляться в установленном порядке. Пилотная природа проекта требует специального внимания к вопросам приобретения, поддержки, экспертизы и обновления версий.
Приобретение, установка и интеграция
После того как ТС ПО выбрана, она должна быть приобретена, интегрирована в проектную среду и настроена в соответствии с требованиями пилотного проекта. Границы этой деятельности зависят от тех действий, которые имели место в процессе оценки и выбора, а также от степени модификации средства, необходимой для его использования в проекте.
Процесс приобретения может включать подготовку контракта, переговоры, лицензирование и другую деятельность, которая выходит за рамки данных рекомендаций. Эта деятельность требует затрат времени и человеческих ресурсов, которые должны быть учтены при планировании. План должен предусматривать отказ от выбранной ТС ПО на данном этапе из-за договорных разногласий.
После приобретения средства должны быть установлены, оттестированы и приняты в эксплуатацию. Тестирование позволяет убедиться, что поставленный продукт соответствует требованиям контракта, обладает необходимой полнотой и корректностью. Этап приемки может быть предусмотрен контрактом, его реальный срок может отличаться от того, который был предусмотрен первоначально в плане пилотного проекта. Особое внимание необходимо уделить соблюдению всех требований поставщика к параметрам среды функционирования ТС ПО.
После завершения приемки может потребоваться некоторая настройка и интеграция. Настройка может включать модификацию интерфейсов, связанную с требованиями специалистов проектной группы, а также с установкой прав доступа и привилегий. Настройка должна оставаться в рамках тех возможностей, которые предоставляет сама ТС ПО.
Если новые средства должны использоваться в совокупности с некоторыми другими средствами, необходимо определить взаимодействие средств и требуемую интеграцию. Для интеграции новых средств с существующими может понадобиться построение специальных оболочек. Сложная интеграция может потребовать привлечения сторонних экспертов.
Поддержка
Доступная поддержка должна включать (по соглашению) «горячую линию» поставщика и поддержку местного поставщика, поддержку в самой организации, контакты с опытными пользователями в других организациях и участие в работе групп пользователей.
Внутренняя поддержка должна включать доступ к специалистам, знакомым с установкой средств и работой с ними. Существует несколько возможных вариантов получения такой поддержки (например, от специалиста данной организации, имеющего опыт предшествующей работы со средством; участников процесса оценки и выбора или опытного консультанта). Такой тип поддержки должен специальным образом планироваться и администрироваться. Особое внимание должно быть уделено средствам, работающим в сетях или обладающих репозиториями, поддерживающими многопользовательскую работу.
Периодические экспертизы
Обычные процедуры экспертизы проектов, существующие в организации, должны выполняться и для пилотного проекта, при этом особое внимание должно уделяться именно пилотным аспектам проекта. Помимо этого результаты экспертиз должны служить мерой успешного использования ТС ПО.
Обновление версий
Пользователи ТС ПО могут ожидать периодического обновления версий со стороны поставщика в течение выполнения пилотного проекта. При этом необходимо тщательное отношение к интеграции этих версий. Следует заранее оценить влияние этих обновлений на ход проекта. Новые версии могут как обеспечить новые возможности, так и породить новые проблемы. В то же время новая версия может потребовать видоизмененного или дополнительного обучения, а также может оказать отрицательное воздействие на уже выполненную к этому моменту работу.
Оценка пилотного проекта
После завершения пилотного проекта его результаты необходимо оценить и сопоставить с начальными потребностями организации, критериями успешного внедрения ТС ПО, базовыми метриками и критериями успеха пилотного проекта. Такая оценка должна установить возможные проблемы и важнейшие характеристики пилотного проекта, которые могут повлиять на пригодность ТС ПО для организации. Она должна также указать проекты или структурные подразделения внутри организации, для которых данная ТС ПО является подходящей. Помимо этого оценка может дать информацию относительно совершенствования процесса внедрения в дальнейшем.
В процессе оценки пилотного проекта организация должна определить свою позицию по следующим трем вопросам.
Целесообразно ли внедрять ТС ПО?
Какие конкретные особенности пилотного проекта привели к его успеху (или неудаче)?
Какие проекты или подразделения в организации могли бы получить выгоду от использования ТС ПО?
Принятие решения о внедрении
На данном этапе процесса внедрения организация должна сделать существенные инвестиции в ТС ПО. Если ТС ПО удовлетворила или даже превысила ожидания организации, то решение об ее внедрении может быть принято достаточно просто и быстро.
С другой стороны, может оказаться, что в рамках пилотного проекта ТС ПО не оправдала тех ожиданий, которые на нее возлагались, или же в пилотном проекте она использовалась удовлетворительно, однако опыт показал, что дальнейшие вложения в ТС ПО не гарантируют успеха.
Возможны четыре варианта результатов и соответствующих действий.
Пилотный проект потерпел неудачу, и его анализ показал неадекватность ожиданий организации. В этом случае организация может пересмотреть результаты проекта в контексте более реалистичных ожиданий.
Пилотный проект потерпел неудачу, и его анализ показал, что выбранные средства не удовлетворяют потребности организации. В этом случае организация может принять решение не внедрять данные средства, однако при этом также пересмотреть свои потребности и подход к оценке и выбору ТС ПО.
Пилотный проект потерпел неудачу, и его анализ показал наличие таких проблем, как неудачный выбор пилотного проекта, неадекватное обучение и недостаток ресурсов. В этом случае может оказаться достаточно сложным принять , решение о том, следует ли вновь выполнить пилотный проект, продолжить работу по внедрению или отказаться от ТС ПО. Однако независимо от принятого решения процесс внедрения нуждается в пересмотре и повышенном внимании.
Пилотный проект завершился успешно, и признано целесообразным внедрять ТС ПО в некоторых подразделениях или, возможно, во всей организации. В этом случае следующим шагом является определение наиболее подходящего масштаба внедрения.
В ряде случаев анализ пилотного проекта может показать, что причиной неудачи явился более чем один фактор. Последующие попытки внедрения ТС ПО должны четко выявить все причины неудачи. В экстремальных случаях тщательный анализ может показать, что в настоящий момент организация просто не готова к успешному внедрению сложных ТС ПО. В такой ситуации организация может попытаться решить свои проблемы другими средствами.
Особенности пилотного проекта
Очень важно провести анализ пилотного проекта с тем, чтобы определить его элементы, являющиеся критическими для успеха, и степень отражения этими элементами организации в целом. Например, если в пилотном проекте участвуют самые лучшие специалисты организации, он может закончиться успешно даже вопреки использованию ТС ПО, а не благодаря ей. С другой стороны, ТС ПО может быть применена для разработки приложений, для которых она явно не подходит по своим характеристикам. Тем не менее, такое использование могло бы указать на область наиболее рационального применения ТС ПО в данной организации.
Отметим важнейшие характеристики пилотного проекта, не являющиеся представительными для организации в целом:
процессы в пилотном проекте в чем-либо отличаются от процессов во всей организации;
квалификация группы пилотного проекта не отражает квалификацию остальных специалистов организации;
ресурсы, выделенные на выполнение проекта, могут отличаться от тех, которые выделяются для обычных проектов;
предметная область или масштаб проекта могут отличаться от других проектов.
Выгода от использования ТС ПО
Результаты пилотного проекта следует сопоставить с возможностями организации в целом. Например, если наиболее заинтересованные и квалифицированные участники проекта столкнулись с серьезными трудностями в освоении ТС ПО, то менее заинтересованным и квалифицированным программистам из других подразделений потребуется существенно большее обучение.
Пилотный проект может также показать, что ТС ПО целесообразно использовать для некоторых классов проектов и нецелесообразно — для других. Например, средство формальной верификации может подходить для жизненно важных приложений и не подходить для менее критических приложений.
Перед разработкой плана перехода организация должна оценить ожидаемый эффект для различных подразделений или классов проектов. При этом следует учитывать, что некоторые подразделения могут не обладать необходимой квалификацией или ресурсами для использования ТС ПО.
Варианты решения о внедрении
Возможным решением должно быть одно из следующих.
Внедрить ТС ПО. В этом случае рекомендуемый масштаб внедрения должен быть определен в терминах структурных Подразделений и предметной области.
Выполнить дополнительный пилотный проект. Такой вариант должен рассматриваться только в том случае, если остались конкретные неразрешенные вопросы относительно внедрения ТС ПО в организации. Новый пилотный проект должен быть таким, чтобы ответить на эти вопросы.
Отказаться от ТС ПО. В этом случае причины отказа от конкретной ТС ПО должны быть определены в терминах потребностей организации или критериев, которые остались неудовлетворенными. Перед тем как продолжить деятельность по внедрению ТС ПО, потребности организации должны быть пересмотрены на предмет своей обоснованности.
Отказаться от использования ТС ПО вообще. Пилотный проект может показать, что организация либо не готова к внедрению ТС ПО, либо автоматизация данного аспекта процесса создания и сопровождения ПО не дает никакого эффекта для организации. В этом случае причины отказа от ТС ПО должны быть также определены в терминах потребностей организации или критериев, которые остались неудовлетворенными. При этом необходимо понимать отличие этого варианта от предыдущего, связанного с недостатками конкретной ТС ПО.
Результатом данного этапа является документ, в котором обсуждаются результаты пилотного проекта и детализируются решения по внедрению.
5.3.6.
