Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Управление программными проектами. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
860 Кб
Скачать

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Оренбургский государственный университет»

И. П. Болодурина, П. А. Болдырев, Р. Р. Рахматуллин

УПРАВЛЕНИЕ ПРОГРАММНЫМИ ПРОЕКТАМИ

Учебное пособие

Рекомендовано ученым советом федерального государственного бюджетного образовательного учреждения высшего образования «Оренбургский государственный университет» для обучающихся по образовательным программам высшего образования по направлению подготовки 02.04.02 Фундаментальная информатика и информационные технологии

Оренбург

2024

УДК 004.413(075.8)

ББК 32.973.4я73 Б79

Рецензент – доцент, кандидат педагогических наук А. Е. Шухман

Болодурина, И. П.

Б79 Управление программными проектами: учебное пособие / И. П. Болодурина, П. А. Болдырев, Р. Р. Рахматуллин; Оренбургский гос. ун-т. – Оренбург:

ОГУ, 2024. – 136 с.

ISBN

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

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

УДК 004.413(075.8)

ББК 32.973.4я73

ISBN

© Болодурина И. П.,

Болдырев П. А.,

 

 

Рахматуллин Р. Р.,2024

 

© ОГУ,2024

2

 

Содержание

 

Введение ...............................................................................................................................

5

1 Теоретические аспекты программной инженерии......................................................

10

1.1

Определение менеджмента программных проектов............................................

10

1.2

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

12

1.3

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

13

1.4

Компетенции продукта (ПО) ..................................................................................

15

1.5

Навыки менеджмента проектов .............................................................................

20

1.6

Навыки менеджмента персонала............................................................................

24

Контрольные вопросы ...................................................................................................

30

Практическое занятие....................................................................................................

30

2 Краткий обзор процессов ..............................................................................................

31

2.1

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

33

2.2

Организационный процесс .....................................................................................

35

2.3

Менеджмент процесса.............................................................................................

36

2.4

Стандарт IEEE 1074.................................................................................................

40

Контрольные вопросы ...................................................................................................

50

Практическое занятие....................................................................................................

50

3 Выбор жизненного цикла разработки ПО ...................................................................

51

3.1

Определение жизненного цикла разработки ПО..................................................

51

3.2

Ключевое значение жизненных циклов разработки ПО .....................................

53

3.3

Модели жизненного цикла разработки ПО...........................................................

54

3.3.1 Каскадная модель жизненного цикла разработки ПО ......................................

55

3.3.2 V-образная модель жизненного цикла разработки ПО ....................................

58

3.3.3 Модель прототипирования жизненного цикла разработки ПО .......................

61

3.3.4 Модель быстрой разработки приложений жизненного цикла разработки

 

ПО

....................................................................................................................................

64

3.4

Адаптированные модели жизненного цикла разработки ПО .............................

67

3.5

Подгонка модели жизненного цикла разработки ПО ..........................................

70

 

 

3

Контрольные вопросы ...................................................................................................

71

Практическое занятие....................................................................................................

72

4 Оценка размера и возможности повторного использования ПО ..............................

73

4.1

Модель СММ SEI и процесс оценивания .............................................................

73

4.2

Определение размеров программного продукта ..................................................

75

4.3

Влияние эффектов повторного использования на размер ПО ............................

83

Контрольные вопросы ...................................................................................................

85

Практическое занятие....................................................................................................

86

5 Оценка длительности и стоимости разработки ПО ....................................................

87

5.1

Модель СММ института SEI и процесс оценивания ...........................................

87

5.2

Оценивание трудозатрат .........................................................................................

90

5.3

Регрессионная модель COCOMO...........................................................................

95

5.4

Математическая модель SLIM .............................................................................

104

Контрольные вопросы .................................................................................................

106

6 Введение в программный инжиниринг......................................................................

107

6.1

Определение программного инжиниринга в модели СММ SEI.......................

107

6.2

ПО, инжиниринг и программный инжиниринг..................................................

110

6.3

Документы SWEBOK и модель SEICMM...........................................................

114

7 Обеспечение надежности ПО ..................................................................................

116

7.1

Термины, используемые при определении надежности ПО.............................

118

7.2

Прогнозирование ошибок, предотвращение сбоев, устранение

ошибок,

отказоустойчивость .....................................................................................................

119

7.3

Инструменты и план обеспечения надежности ПО ...........................................

130

Список использованныхисточников…………………………………………………136

4

Введение

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

В 1970 году У.У. Ройс (W.W.Royce), выполнив идентификацию всех стадий жизненного цикла SLC, совместно с Барри Боэм (BarryBoehm) предложил осуществлять контроль каждой стадии процесса разработки ПО. Контроль разработки программ, по их мнению, должен был привести к улучшению качества ПО, а также к увеличению производительности команды разработчиков. Например,

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

Действия по разработке ПО были отражены в каскадной модели цикла SLC

(рисунок 1.1) протекающие последовательно, от блока к блоку. Большинство действий в процессе разработки проекта не происходят по линейному закону,

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

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

5

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

Исследование

концепции

Исследование системы

Требования

Разработка проекта

Внедрение

Установка

Эксплуатация и поддержка

Сопровождение

Вывод из эксплуатации

Рисунок 1.1 – Каскадная модель жизненного цикла разработки ПО (SLC)

Независимо от масштабов и характеристик программного проекта,

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

6

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

BodyofKnowledge (SQIBOK) и включает следующие методики и навыки:

Методики разработки продукта включают:

1Процессы оценивания – определение критериев для обзора.

2Знание стандартов процесса – понимание стандартов процесса.

3Определение продукта – идентификация клиентской среды и требований,

предъявляемых к продукту.

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

5Управление требованиями – мониторинг изменений требований.

6Управление субподрядчиками – планирование, управление и осуществление контроля.

7Выполнение начальной оценки – оценка степени трудности, рисков, затрат

исоздание графика.

8Отбор методов и инструментов – определение процессов отбора.

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

10Отслеживание качества продукта – контроль качества в процессе разработки продукта.

11Понимание действий по разработке продукта – изучение цикла разработки

ПО.

В состав навыков менеджмента проекта входит:

1Создание структуры пооперационного перечня работ – создание структуры

проекта.

2Документирование планов – идентификация ключевых компонентов.

7

3Оценка стоимости – оценка стоимости завершения проекта.

4Оценка трудозатрат – оценка трудозатрат, необходимых для завершения

проекта.

5Менеджмент рисков – идентификация, определение воздействия и обработка рисков.

6Отслеживание процесса разработки – контроль процесса разработки ПО.

7Составление графика – разработка графика и ключевых стадий проекта.

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

9Отбор инструментов менеджмента проектов – методики, используемые при выборе инструментов менеджмента проектов.

10Отслеживание процессов – мониторинг совместимости среди членов команды разработчиков.

11Отслеживание хода разработки проекта – мониторинг хода разработки

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

В навыки менеджмента персонала входит:

1Оценка производительности – оценка действий команды, направленных на улучшение её производительности.

2Вопросы интеллектуальной собственности – понимание степени влияния критических проблем.

3Организация эффективных встреч – планирование и проведение эффективных встреч.

4Взаимодействие и общение – взаимодействие с разработчиками, высшим руководством и другими командами.

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

6Управление изменениями – обеспечение эффективного управления изменениями.

7Успешное ведение переговоров – разрешение конфликтов и успешное

ведение переговоров.

8

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

9Эффективное представление – эффективное использование письменных и устных навыков.

10Набор персонала – успешная вербовка и собеседование с членами

команды.

11Отбор команды – отбор высококомпетентных специалистов.

12Создание команды – формирование, руководство и поддержка эффективной команды.

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

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

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

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

9

1 Теоретические аспекты программной инженерии

1.1 Определение менеджмента программных проектов

Программное обеспечение (ПО) – это программа (программы), которая является конечным продуктом проекта (программного инжиниринга). ПО – программы, процедуры и символические языки, которые управляют функционированием аппаратных средств. Термин введен Институтом программного инжиниринга (SoftwareEngineeringInstitute, SEI)и Институтом инженеров по электротехнике и электронике (InstituteofElectricalandElectronicsEngineers, IEEE).

Согласно Барри Боэму (BarryBoehm), инжиниринг ПО – это практическое применение научных знаний при разработке и создании компьютерных программ и связанной с ними документации, необходимой для их разработки, использования и поддержки [1]. Институт IEEEопределяет этот термин как систематический подход к развитию, поддержке и прекращению эксплуатации ПО [2]. Также используются сведения, имеющие отношения к вопросам обеспечения качества, эта информация предоставляется Национальным институтом стандартов и технологий

(NationalInstituteofStandardsandTechnology, NIST), Международной организацией стандартов (InternationalOrganizationforStandards, ISO), Американским национальным институтом стандартов (AmericanNationalStandardsInstitute, ANSI). А

Стефен Шах (StephenSchach) описывает программный инжиниринг как дисциплину,

целью которой является создание качественного ПО, которое завершается вовремя,

не ведет к превышению выделенных бюджетных средств, а также удовлетворяет выдвигаемым требованиям [3].

Для определения проектаиспользуется определение, данное Институтом управления проектами (ProjectManagementInstitute,PMI). Проект – это большое и важное действие (или последовательность действий) которое было запланировано заранее. Гарольд Керцнер (HaroldKerzner)определяет проект как произвольный ряд действий или задач, имеющий определенную цель, которая будет достигнута в

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]