- •Оглавление
- •Глава 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.3) — достижение понимания потребностей организации в ТС ПО. Он должен привести к выделению тех областей деятельности организации, в которых применение ТС ПО может принести реальную пользу. Результатом данного этапа является документ, определяющий стратегию внедрения ТС ПО.
Анализ возможностей организации
Первым действием данного этапа является анализ возможностей организации в отношении ее технологической базы, персонала и используемого ПО. Такой анализ может быть формальным или неформальным.
Формальные подходы определяются моделью СММ, а также стандартами ISO 9001: 1994, ISO 9003-3: 1991 и ISO 9004-2:1991. Главное в этих подходах — анализ различных аспектов происходящих в организации процессов.
Для получения информации относительно положения и потребностей организации могут использоваться неформальные оценки и анкетирование. Список вопросов, которые могут помочь в неформальной оценке текущей практики использования ПО, ТС ПО и персонала, приведен ниже.
Рис. 5.3. Определение потребностей в ТС ПО
Общие вопросы (ответы на данные вопросы в целом характеризуют подход организации к разработке ПО):
используемая модель ЖЦ ПО (каскадная или итерационная);
используемые методы (структурные, объектно-ориентированные). Опыт, накопленный при использовании того или иного метода, полученное обучение. Степень адаптации метода к потребностям организации;
наличие документированных стандартов (формальных или неформальных) по анализу требований, спецификациям и проектированию, кодированию и тестированию;
количественные метрики, используемые в процессе разработки ПО, их использование;
виды документации, выпускаемой в процессе создания ПО;
наличие группы поддержки ТС ПО.
Вопросы, касающиеся проектов, ведущихся в организации:
средняя продолжительность проекта в человеко-месяцах;
среднее количество специалистов, участвующих в проектах различных категорий (небольших, средних и крупных);
средний размер проектов различных категорий в терминах кодовых метрик (например, в функциональных точках или строках исходного кода), способ измерения.
Вопросы, касающиеся технологической базы:
доступные вычислительные ресурсы, платформа разработки;
уровень доступности ресурсов, «узкие места», среднее время ожидания ресурсов;
ПО, используемое в организации, и его характер (готовые программные продукты, собственные разработки);
степень интеграции применяемых программных продуктов, механизмы интеграции (существующие и планируемые);
тип и уровень сетевых возможностей, доступных группе разработчиков;
используемые языки программирования;
средний процент вновь разрабатываемых, повторно используемых и реально эксплуатируемых приложений.
Целью оценки персонала является определение его отношения к возможным изменениям (позитивного, нейтрального или негативного).
Вопросы, касающиеся оценки персонала:
реакция сотрудников организации (как отдельных людей, так и коллективов) на внедрение новой ТС ПО, наличие опыта успешных или безуспешных внедрений;
наличие лидеров, способных серьезно повлиять на отношение к новым средствам;
наличие стремления «снизу» к совершенствованию средств и ТС ПО;
объем обучения, необходимого для ориентации пользователей в новой ТС ПО;
стабильность и уровень текучести кадров.
Целью оценки готовности организации является определение того, насколько она способна воспринять как немедленные, так и долгосрочные последствия внедрения ТС ПО.
Вопросы, касающиеся оценки готовности:
поддержка проекта со стороны высшего руководства;
готовность организации к долгосрочному финансированию проекта;
готовность организации к выделению необходимых специалистов для участия в процессе внедрения и их обучению;
готовность персонала к изменению технологии своей работы и трудовых навыков в такой степени, в какой это потребуют новые средства;
степень понимания персоналом масштаба изменений;
готовность технических специалистов и менеджеров пойти на возможное кратковременное снижение продуктивности своей работы;
готовность руководства к долговременному ожиданию отдачи от вложенных средств.
Оценка готовности организации к внедрению ТС ПО должна быть объективной и тщательно выверенной, поскольку в случае отсутствия такой готовности все усилия по внедрению потерпят крах.
Определение организационных потребностей
Организационные потребности следуют непосредственно из проблем организации и целей, которые она стремится достичь. Проблемы и цели могут быть связаны с управлением, процессами, производством продукции, экономикой, персоналом или технологией. Вопросы, касающиеся определения целей, потребностей и ожидаемых результатов, приведены ниже. Определение потребностей должно выполняться в сочетании с обзором рынка технологий, поскольку информация о технологиях, доступных на рынке в данный момент, может оказать влияние на потребности.
Цели организации играют главную роль в определении ее конкретных потребностей и ожидаемых результатов. Для их понимания необходимо ответить на следующие вопросы:
намерение организации использовать технологию для помощи в достижении определенных целей или ожиданий (например, определенного уровня СММ или сертификации в соответствии с ISO 9001);
восприятие ТС ПО как фактора, способствующего достижению стратегических целей организации;
наличие у организации собственной программы совершенствования процесса разработки ПО;
восприятие инициативы внедрения ТС ПО как части более широкомасштабного проекта по созданию среды разработки ПО.
Определение потребностей организации, связанных с использованием ТС ПО, включает анализ целей и существующих возможностей. После того как все потребности организации определены, каждой из них должен быть присвоен определенный приоритет, отражающий ее значимость для успешной деятельности организации. Если потребности, связанные с технологией, не обладают высшим приоритетом, имеет смысл отказаться от ее внедрения и сосредоточиться на потребностях с наивысшим приоритетом.
Определению потребностей организации могут помочь ответы на следующие вопросы.
Каким образом продуктивность и качество деятельности организации сравниваются с аналогичными показателями подобных организаций (к сожалению, многие организации не располагают данными для такого сравнения)?
Какие процессы ЖЦ ПО дают наилучшую (наихудшую) отдачу, существуют ли конкретные процессы, которые могут быть усовершенствованы путем использования новых методов и средств?
С внедрением ТС ПО обычно связывают большие ожидания. В ряде случаев эти ожидания оказываются нереалистичными и приводят к неудаче при внедрении.
Составление реалистичного перечня ожидаемых результатов является трудной задачей, поскольку он может зависеть от таких факторов, как тип внедряемых средств и характеристики внедряющей организации. Кроме того, достижение некоторых результатов может противоречить другим результатам.
Ряд потенциально реалистичных и нереалистичных ожидаемых результатов, связанных с организацией в целом, пользователями, планированием, анализом, проектированием, разработкой и затратами, приведен ниже. Практически невозможно, чтобы в процессе одного внедрения ТС ПО были достигнуты все положительные результаты. Тем не менее, любая организация может выработать собственные идеи относительно ожидаемых результатов, имея в виду, что данный перечень является всего лишь примером.
Реалистичные ожидания:
повышение внимания к планированию деятельности, связанной с информационной технологией;
долговременное повышение продуктивности и качества деятельности организации;
ускорение и повышение согласованности разработки приложений;
снижение доли ручного труда в процессе разработки и (или) эксплуатации;
более точное соответствие приложений требованиям пользователей;
отсутствие необходимости большой переделки приложений для повышения их эффективности;
улучшение реакции службы эксплуатации на требования внесения изменений и усовершенствований;
лучшее документирование;
улучшение коммуникации между пользователями и разработчиками;
последовательное и постоянное повышение качества проектирования;
более высокие возможности повторного использования разработок;
кратковременное возрастание затрат, связанное с деятельностью по внедрению ТС ПО;
последовательное снижение общих затрат;
лучшая прогнозируемость затрат.
Нереалистичные ожидания:
отсутствие воздействия на общую культуру и распределение ролей в организации;
понимание проектных спецификаций неподготовленными пользователями;
сокращение персонала, связанного с информационной технологией;
уменьшение степени участия в проектах высшего руководства и менеджеров, а также экспертов предметной области, уменьшение степени участия пользователей в процессе разработки приложений;
немедленное повышение продуктивности деятельности организации;
достижение абсолютной полноты и непротиворечивости спецификаций;
автоматическая генерация прикладных систем из проектных спецификаций;
немедленное снижение затрат, связанных с информационной технологией;
снижение затрат на обучение.
Реализм в оценке ожидаемых затрат имеет особенно важное значение, поскольку он позволяет правильно оценить отдачу от инвестиций. Затраты на внедрение ТС ПО обычно недооцениваются. Среди конкретных статей затрат на внедрение можно выделить следующие:
специалисты по планированию внедрения ТС ПО;
выбор и установка инструментальных средств;
учет специфических требований персонала;
приобретение ТС ПО и обучение;
настройка инструментальных средств;
подготовка документации, стандартов и процедур использования ТС ПО;
интеграция с другими технологиями и существующими данными;
освоение ТС ПО разработчиками;
технические средства;
обновление версий.
Важно также осознавать, что улучшение деятельности организации, являющееся следствием использования ТС ПО, может быть неочевидным в течение самого первого проекта, использующего новую технологию. Продуктивность и другие характеристики деятельности организации могут первоначально даже ухудшиться, поскольку на освоение новых средств и внесение необходимых изменений в процесс разработки требуется некоторое время. Таким образом, ожидаемые результаты должны рассматриваться с учетом вероятной отсрочки в улучшении проектных характеристик.
Каждая потребность должна иметь определенный приоритет, зависящий от того, насколько критической она является для достижения успеха в организации. В конечном счете должно четко прослеживаться воздействие каждой функции или возможности приобретаемых средств на удовлетворение каких-либо потребностей.
Результатом данного действия является формулировка потребностей с их приоритетами, которая используется на этапе оценки и выбора в качестве «пользовательских потребностей».
Определение критериев успешного внедрения
Определяемые критерии должны позволять количественно оценивать степень удовлетворения каждой из потребностей, связанных с внедрением. Кроме того, по каждому критерию должно быть установлено его конкретное оптимальное значение. На отдельных этапах внедрения эти критерии должны анализироваться для того, чтобы оценить текущую степень удовлетворения потребностей.
Как правило, большинство организаций осуществляет внедрение ТС ПО для повышения продуктивности процессов разработки и сопровождения ПО, а также качества результатов разработки. Однако ряд организаций не занимается и не занимался ранее сбором количественных данных по указанным параметрам. Отсутствие таких данных затрудняет количественную оценку воздействия, оказываемого внедрением ТС ПО. Для таких организаций рекомендуется разработка соответствующих метрик.
Если базовые метрические данные отсутствуют, организация зачастую может извлечь полезную информацию из своих проектных архивов.
Помимо продуктивности и качества, полезную информацию о состоянии внедрения ТС ПО также могут дать и другие характеристики организационных процессов и персонала. Например, оценка степени успешности внедрения может включать процент проектов, использующих технологию, рейтинговые оценки уровня квалификации специалистов, связанные с использованием ТС ПО, и результаты опросов персонала по поводу отношения к использованию ТС ПО. Приведем другие проектные характеристики, которые могут быть оценены количественно:
согласованность проектных результатов;
точность стоимостных и плановых оценок;
изменчивость внешних требований;
соблюдение стандартов организации;
степень повторного использования существующих компонентов ПО;
объем и виды необходимого обучения;
типы и моменты обнаружения проектных ошибок.
Разработка стратегии внедрения ТС ПО
Стратегия должна обеспечивать удовлетворение определенных ранее потребностей и критериев. Данная стратегия определяет:
организационные потребности;
базовые метрики, необходимые для последующего сравнения результатов;
критерии успешного внедрения, связанные с удовлетворением организационных потребностей, включая ожидаемые результаты последовательных этапов процесса внедрения;
подразделения организации, в которых должно выполняться внедрение ТС ПО;
влияние, оказываемое на другие подразделения организации;
стратегии и планы оценки и выбора, пилотного проектирования и перехода к полномасштабному внедрению;
основные факторы риска;
ориентировочный уровень и источники финансирования процесса внедрения ТС ПО;
ключевой персонал и другие ресурсы.
Необходимо отметить, что внедрение новой ТС ПО может включать важные и трудные изменения в культуре организации. Большое внимание должно уделяться ролям различных групп, вовлеченных в процесс таких изменений. Наиболее существенными являются следующие роли:
спонсор (обычно из числа менеджеров высшего уровня). Данная роль является критической для поддержки проекта и обеспечения необходимого финансирования. Спонсор должен обладать четким пониманием необходимости серьезных усилий, связанных с внедрением ТС ПО, и быть готов к длительному периоду ожидания осязаемых результатов;
исполнитель — обычно лицо (или группа лиц), осознающее потенциальные возможности новой ТС ПО, пользующееся авторитетом среди технического персонала и способное возглавить процесс внедрения новой ТС ПО;
целевая группа — обычно включает менеджеров и технический персонал, которые будут привлечены к непосредственному использованию ТС ПО, а также специалистов, которые будут привлечены косвенно, таких, как специалисты по документированию, персонал поддержки сети и заказчики.
Должны быть определены потребности каждой такой группы и план их эффективного удовлетворения.
В общем случае внедрение ТС ПО должно управляться и финансироваться таким же образом, как и любой проект разработки ПО. Стратегия внедрения может быть пересмотрена в случае появления дополнительной информации.
5.3.3.
