- •Оглавление
- •Глава 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 особенности современных проектов
- •Категории «безнадежных» проектов
- •Причины, порождающие «безнадежные» проекты
- •Причины разногласий между участниками проекта
- •Переговоры в «безнадежном» проекте
- •Человеческий фактор в «безнадежных» проектах
- •Процессы в «безнадежных» проектах
- •Динамика процессов
- •Контроль над продвижением проекта
- •Технология и инструментальные средства «безнадежных» проектов
- •Дополнительная литература
- •Краткий словарь терминов
- •Список основных сокращений
Статистические (регрессионные) модели
Статистические модели используют накопленные хронологические данные, чтобы получить значения для коэффициентов модели. Для определения соотношений между параметрами модели и трудоемкостью разработки ПО используется регрессионный анализ. Существуют две формы статистических моделей: линейные и нелинейные.
Линейные статистические модели имеют следующий вид:
где
— факторы, влияющие на трудоемкость,
— коэффициенты модели. Линейные
модели работают не слишком хорошо,
поскольку практика показывает, что
соотношения между трудоемкостью и
размером ПО нелинейно. По мере роста
размера ПО возникает экспоненциальный
отрицательный эффект масштаба.
Нелинейные, статистические модели имеют следующий вид:
где А — комбинация факторов, влияющих на трудоемкость; b — экспоненциальный коэффициент масштаба.
Статистические модели просты для понимания, но имеют следующий недостаток: результаты справедливы в основном только для конкретной ситуации. Другой недостаток — при увеличении количества входных параметров количество данных, необходимых для калибровки модели, также возрастает.
Статистическая модель СОСОМО II
Модель СОСОМО34 (Constructive COst Model — конструктивная модель стоимости), разработанная Барри Боэмом, является одной из самых известных и хорошо документированных моделей оценки трудоемкости разработки ПО. Исходная модель СОСОМО основывалась на базе данных по 56 выполненным проектам, а ее различные варианты отражали различия между процессами в различных областях ПО.
В модели СОСОМО используется ряд допущений.
Исходный код конечного продукта включает в себя все (кроме комментариев) строки кода.
Начало цикла разработки совпадает с началом разработки продукта, окончание совпадает с окончанием приемочного тестирования, завершающим стадию интеграции и тестирования (работа и время, затрачиваемые на анализ требований, оцениваются отдельно как дополнительный процент от оценки разработки в целом).
Виды деятельности включают в себя только непосредственно направленные на выполнение проекта работы, в них не входят обычные вспомогательные виды деятельности, такие, как административная поддержка, техническое обеспечение и капитальное оборудование.
Человеко-месяц состоит из 152 ч.
Проект управляется надлежащим образом, в нем используются стабильные требования.
Проект СОСОМО II (современный вариант модели СОСО-МО) был выполнен в Центре по разработке ПО Южно-Калифорнийского университета (USC Centre for Software Engineering). Этот проект преследовал следующие цели.
Разработать модель для оценки трудоемкости и сроков создания ПО для итерационной модели жизненного цикла ПО, которая будет применяться в. 1990-х и 2000-х годах.
Создать базу данных по трудоемкости ПО.
Разработать инструментальную поддержку для усовершенствования модели.
Создать количественную аналитическую схему для оценки технологий создания ПО и их экономического эффекта.
Уравнения СОСОМО II для оценки номинальных значений трудоемкости и времени имеют следующий вид. Трудоемкость (в человеко-месяцах):
,
где
,
Календарное время:
,
где
,
— мультипликативные
коэффициенты трудоемкости;
— экспоненциальные
коэффициенты масштаба;
— размер
ПО, выраженный в тысячах строк исходного
кода или количестве функциональных
точек без учета поправочных
коэффициентов (UFP), определенном по
методике IFPUG, с последующим преобразованием
в количество строк кода.
Калибровочные переменные А, В, С и D в модели СОСОМО II версии 2000 г. принимают следующие значения: А = 2.94, В — 0.91, С =3.67, D = 0.28.
Коэффициенты EMt отражают совместное влияние многих параметров. Они позволяют характеризовать и нормировать среду разработки по параметрам, содержащимся в базе данных проектов модели СОСОМО II (в настоящее время более 160 проектов). Каждый коэффициент в зависимости от установленного значения (очень низкое, низкое, номинальное, высокое, очень высокое) вносит свой вклад в виде множителя с определенным диапазоном значений. Результат учета этих 17 коэффициентов используется при вычислении в уравнении трудоемкости. Состав коэффициентов приведен в табл. 6.8.
Таблица 6.8
Мультипликативные коэффициенты трудоемкости
Идентификатор |
Описание коэффициента |
Диапазон значений |
RELY |
Требуемая надежность |
0.82-1.26 |
DATA |
Размер базы данных |
0.90-1.28 |
CPLX |
Сложность продукта |
0.73 - 1.74 |
RUSE |
Требуемый уровень повторного использования |
0.95- 1.24 |
DOCU |
Соответствие документации требованиям ЖЦ |
0.81- 1.23 |
TIME |
Ограничение времени выполнения |
1.00- 1.63 |
STOR |
Ограничение по объему основной памяти |
1.00-1.46 |
PVOL |
Изменчивость платформы |
0.87- 1.30 |
ACAP |
Способности аналитика |
1.42-0.71 |
PCAP |
Способности программиста |
1.34-0.76 |
APEX |
Знание приложений |
1.22-0.81 |
PLEX |
Знание платформы |
1.19-0.85 |
PCON |
Преемственность персонала |
1.29-0.81 |
LTEX |
Знание языка/инструментальных средств |
1.20-0.84 |
TOOL |
Использование инструментальных средств |
1.17 - 0.78 |
SCED |
Требуемые сроки разработки |
1.43-1.00 |
SITE |
Рассредоточенность команды разработчиков |
1.22-0.80 |
Показатель экспоненты процесса Е может изменяться в диапазоне от 0.91 до 1.23 и определяется как сочетание следующих параметров.
Наличие прецедентов у приложения: степень опытности организации-разработчика в данной области.
Гибкость процесса: степень строгости контракта, порядок его выполнения, присущая контракту свобода внесения изменений, виды деятельности в течение всего жизненного цикла и взаимодействие между заинтересованными сторонами.
Разрешение рисков, присущих архитектуре: степень технической осуществимости, продемонстрированной до перехода к полномасштабному внедрению.
Сплоченность команды: степень сотрудничества и того, насколько все заинтересованные стороны (заказчики, разработчики, пользователи, ответственные за сопровождение и другие) разделяют общую концепцию.
Зрелость процесса: уровень зрелости организации-разработчика, определяемый в соответствий с моделью СММ.
В табл. 6.9 приведены возможные значения экспоненциальных коэффициентов масштаба, составляющих в сумме показатель Е. Суммарное влияние этих коэффициентов может оказаться весьма существенным.
Таблица 6.9
Экспоненциальные коэффициенты масштаба модели СОСОМО II
Параметр |
Характеристика |
Значение |
PREC - наличие прецедентов |
Полное отсутствие прецедентов, полностью непредсказуемый проект |
6.20 |
Почти полное отсутствие прецедентов, в значительной степени непредсказуемый проект |
4.96 |
|
Наличие некоторого количества прецедентов |
3.72 |
|
Общее знакомство с проектом |
2.48 |
|
Значительное знакомство с проектом |
1.24 |
|
Полное знакомство с проектом |
0.00 |
|
FLEX - гибкость процесса разработки
|
Точный, строгий процесс разработки |
5.07 |
Случайные послабления в процессе |
4.05 |
|
Некоторые послабления в процессе |
3.04 |
|
Большей частью согласованный процесс |
2.03 |
|
Некоторое согласование процесса |
1.01 |
|
Заказчик определил только общие цели |
0.00 |
|
RESL - разрешение рисков в архитектуре |
Малое (20%) |
7.07 |
Некоторое (40%) |
5.65 |
|
Частое (60%) |
4.24 |
|
В целом (75%) |
2.83 |
|
Почти полное (90%) |
1.41 |
|
Полное (100%) |
0.00 |
|
TEAM -сплоченность команды |
Сильно затрудненное взаимодействие |
5.48 |
Несколько затрудненное взаимодействие |
4.38 |
|
Некоторая согласованность |
3.29 |
|
Повышенная согласованность |
2.19 |
|
Высокая согласованность |
1.10 |
|
Взаимодействия как в едином целом |
0.00 |
|
РМАТ - зрелость процессов |
Уровень 1 СММ |
7.80 |
Уровень 1+ СММ |
6.24 |
|
Уровень 2 СММ |
4.68 |
|
Уровень 3 СММ |
3.12 |
|
Уровень 4 СММ |
1.56 |
|
Уровень 5 СММ |
0.00 |
Пример экспоненциального коэффициента масштаба — коэффициент зрелости процессов (РМАТ— Process Maturity).
Значение коэффициента РМАТ зависит в основном от уровня зрелости процессов в соответствии с моделью СММ. Процедура определения значения РМАТ основана на определении процента соответствия для каждой из 18 основных групп процессов (key process areas — КРА), определенных в СММ. Процент соответствия вычисляется на основе групп процессов (подробно описано 8 групп из 18).
