- •Введение
- •Практическая работа №1. Тема: технология программирования. Основные понятия и подходы.
- •1.1. Назначение технологии программирования
- •1.2. История развития технологии программирования
- •1.2.1. Дореволюционный период
- •1.2.2. «Революция в программировании»
- •1.2.3. Послереволюционный период
- •1.3. Типы программных проектов
- •1.5. Проект, продукт, процесс и персонал
- •Вопросы для рассмотрения.
- •1.4. Составные части технологии программирования
- •Рекомендуемая литература по теме.
- •Практическая работа №2. Тема: приемы обеспечения технологичности программных продуктов.
- •2.1. Циклический характер разработки
- •2.2. Основные понятия технологии программирования
- •2.2.1. Процессы и модели
- •2.2.2. Фазы и витки
- •2.2.3. Вехи и артефакты
- •2.2.4. Заинтересованные лица и работники
- •2.3. Выявление и анализ требований
- •2.3.1. Требования к программному обеспечению
- •2.3.2. Схема разработки требований
- •2.3.3. Управление требованиями
- •2.4. Архитектурное и детальное проектирование
- •2.4.1. Архитектурное проектирование
- •2.4.2. Детальное проектирование
- •2.5. Реализация и кодирование
- •2.6. Тестирование и верификация
- •2.6.1. Процесс контроля качества
- •2.6.2. Методы «белого ящика» и «черного ящика»
- •2.6.3. Инспектирование и обзоры
- •2.6.4. Цели тестирования
- •2.6.5. Верификация, валидация и системное тестирование
- •2.7. Сопровождение и продолжающаяся разработка
- •Вопросы для рассмотрения.
- •Рекомендуемая литература по теме.
- •Практическая работа №3. Тема: определение требований к программному обеспечению и исходных данных для его проектирования. Модели процесса разработки.
- •3.1. Водопадные и конвейерные модели
- •3.2. Спиральные и инкрементные модели
- •3.4. Конструирование модели процесса
- •3.4.1. Выявление требований к процессу
- •3.4.2. Используемые фазы, вехи и артефакты
- •3.4.2.1. Фаза «Анализ»
- •3.4.2.2. Фаза «Проектирование»
- •3.4.2.3. Фаза «Реализация»
- •3.4.2.4. Фаза «Стабилизация»
- •3.4.2.5. Фаза «Внедрение»
- •3.4.3. Выбор архитектуры процесса.
- •3.4.3.1. Типы проектов
- •3.4.3.2. Модель процесса сверх легкого проекта
- •3.4.3.3. Модель процесса легкого проекта
- •3.4.3.4. Модель процесса тяжелого проекта
- •3.4.3.5. Модель процесса сверх тяжелого проекта
- •3.4.3.6. Занятость исполнителей
- •3.4.4. Порядок проведения типового проекта
- •3.4.4.1. Этап 1. Подготовка к проекту
- •3.4.4.2. Сбор и анализ предварительной информации
- •3.4.4.3. Формирование бригады проекта
- •3.4.4.4. Подготовка исходных документов
- •3.4.4.5. Этап 2. Работа над проектом
- •3.4.4.6. Процедура выполнения фазы проекта
- •3.4.4.7. Подготовка результирующих материалов вех
- •3.4.4.8. Этап 3. Завершение проекта
- •3.4.4.9. Архивирование результатов работы
- •3.4.4.10. Подведение итогов проекта
- •3.4.5. Документированные процедуры
- •3.4.5.3. Проверка качества материалов
- •3.4.6. Выводы
- •Вопросы для рассмотрения.
- •Рекомендуемая литература по теме
- •Практическая работа №4. Тема: анализ требований и определение спецификаций программного обеспечения при структурном подходе.
- •4.1. Спецификации программного обеспечения при структурном подходе
- •4.2. Определение понятий и видов требований
- •Виды требований
- •4.1.2. Анализ и сбор требований
- •4.1.3. Инженерия требований по
- •4.2. Трассирование требований
- •Вопросы для рассмотрения.
- •Рекомендуемая литература по теме
3.4.4.5. Этап 2. Работа над проектом
При работе над проектом используется управляемая вехами, ориентированная на заказчика, итеративная, параллельная, модель процесса, описанная в разделе 3.4.3.
Для типичного случая работы над легким проектом разработки вертикального приложения процедура работы над проектом представлена на рис. 24. На этой диаграмме состояния - это фазы работы над проектом, а переходы - это главные вехи проекта.
Замечание по конструированию. Диаграмма на рис. 25 является примером схемы организации процесса работы над проектом, отвечающей принципам организации процесса по модели. Вариации процедуры работы над проектом для случая неполного, сверх легкого, тяжелого и сверх тяжелого проекта описаны в разделе 3.4.3. Другие примеры различных схем организации процесса могут быть приведены в других нормативных документах организации. В зависимости от типа проекта и других конкретных обстоятельств, типовая схема может быть изменена таким образом, чтобы соответствовать нуждам конкретного проекта. При этом схема должна соответствовать основным принципам, изложенным в разделе 3.4.3, а отклонения от типовых схем должны быть документированы и обоснованы.
Замечание по конструированию. Диаграмма на рис. 24 отражает логическую взаимосвязь фаз и главных вех. Фактически, фазы даже одного витка могут перекрываться во времени. Например, фаза стабилизации может быть начата до того, как код полностью готов. Это зависит от типа проекта, используемых инструментальных средств и принятой дисциплины программирования.
3.4.4.6. Процедура выполнения фазы проекта
Состав промежуточных вех (получаемых результатов) для каждой фазы проекта не является фиксированным и зависит от многих субъективных и объективных факторов: типа проекта; индивидуальных пожеланий заказчика; используемых инструментальных средств; личных предпочтений руководителя проекта.
Возможные промежуточные вехи для различных фаз проекта указаны в разделе 3.4.3. Абсолютно обязательным для любой фазы является наличие плана в начале и отчуждаемого материала главной вехи в конце.
Назначение ролей для выполнения функций, связанных с достижением промежуточных вех на данной фазе проекта, называется командой фазы проекта. Состав команды также не является фиксированным и зависит от различных факторов: утвержденного состава бригады проекта; индивидуальных возможностей и способностей членов бригады; общего состояния хода работы над проектом; состояния других проектов, в которых задействованы сотрудники, входящие в бригаду проекта; внешних обстоятельств (например, возникновения незапланированных работ вне проекта).
Таким образом, процедура выполнения конкретной фазы проекта является предметом динамического (оперативного) планирования, которое выполняется руководителем проекта. Диаграмма процедуры выполнения фазы приведена на рис. 25.
На этой диаграмме подразумевается, что "Достижение внутренних вех" - это множество однотипных составных активностей, которые могут выполняться параллельно для всех вех фазы (в том числе для главной вехи).

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

План выполнения фазы
План выполнения фазы должен содержать следующую информацию:
список вех фазы с указанием для каждой вехи формы отчуждаемых материалов вехи и календарного срока достижения вехи;
список ролей команды фазы с указанием для каждой роли сотрудника из состава бригады проекта, назначенного на роль, и процента использования рабочего времени сотрудника, которое отводится на выполнение функций роли;
оценка (переоценка, если риск был оценен для проекта в целом) рисков фазы; список связей между вехами фазы и ролями команды с указанием для каждой связи оценки ресурсов, необходимых для выполнения функций, обеспечивающих достижение данной вехи.
План выполнения фазы, как правило, составляется с помощью программы Microsoft Project. Для небольших проектов план фазы может быть частью общего плана проекта, для более крупных рекомендуется составлять планы фаз отдельно, чтобы они были обозримы. На рис. 26 приведен пример: фрагмент плана фазы проектирования для некоторого условного проекта. На рис. 27 тот же пример плана представлен в форме таблицы.

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