Размер программного обеспечения в FP и LOC
Тип ПО | Размер, FP | Размер, LOC | Количество LOC на одну FP |
Текстовые процессоры Электронные таблицы Клиент-серверные приложения ПО баз данных Производственные приложения Крупные бизнес-приложения Крупные корпоративные приложения Крупные приложения в госучреждениях Операционные системы Системы масштаба предприятий Крупные оборонные системы | 3500 3500 7500 150000 250000 | 437500 437500 675000 937500 18750000 25000000 | 125 125 90 125 |
На реализацию проектов размером в одну функциональную точку требуется один день, и они практически всегда заканчиваются успешно. Таковы, как правило, небольшие утилиты для временных нужд.
Объем в 10 функциональных точек — это типичный объем небольших приложений и дополнений, вносимых в готовые системы. Такие проекты требуют до 1 месяца работ и тоже всегда успешны.
Объем в 100 функциональных точек близок к пределам возможностей программиста-одиночки. Проект доводится до конца за 6 месяцев в 85% случаев. Эти цифры верны для современных средств разработки: 15 лет назад 15 тысяч строк занимал профессиональный интерпретатор Бейсика для MS-DOS, создать который одному человеку (среднему программисту) было не под силу.
Объем проекта в 1000 функциональных точек характерен для большинства сегодняшних коммерческих настольных и небольших клиент-серверных приложений. Заметную долю общего объема работы начинает занимать документация. Для разработки проекта необходима группа примерно из 10 программистов, проектировщиков, специалистов по управлению качеством и около года работы. Проваливается 15% подобных групповых проектов и 65% попыток программистов-одиночек. В 20% случаев не удается уложиться в срок. Перерасход средств отмечается в 25% проектов.
Для проекта объемом в 10000 функциональных точек требуется около 100 разработчиков. Остро встают вопросы организации совместной работы нескольких групп сотрудников. Работы длятся от 1,5 до 5 лет, при этом запланированные сроки чаще всего не выдерживаются. Хорошее качество системы невозможно обеспечить без использования формальной технологии тестирования. До 50% проектов заканчивается неудачей, а реализация таких проектов в одиночку вообще невозможна.
Объем в 100000 функциональных точек — пока что предел для большинства сегодняшних проектов. Это объем современных операционных систем, таких как MS Windows или IBM MVS, и крупнейших военных систем. На их создание уходит 5-8 лет. Над проектом трудятся сотни разработчиков иногда из разных стран, и эффективно координировать их работу не удается. В законченных системах много ошибок. До 65% проектов завершается провалом. Во всех успешных проектах используются системы управления конфигурацией.
Табл. 6.6 иллюстрирует различия в распределении временных затрат по стадиям жизненного цикла в случае большого и маленького проекта. Маленький проект (например, приложение Windows объемом 50000 строк исходного кода на Visual Basic, создаваемое командой из 5 человек) может потребовать 1 месяц на начальную стадию, 2 месяца на проектирование, 5 месяцев на разработку и 2 месяца на ввод в действие. Большой, сложный проект (например, бортовая программа для летательного аппарата объемом 300000 строк исходного кода, создаваемая командой из 40 человек) может потребовать 8 месяцев на начальную стадию, 14 месяцев на проектирование, 20 месяцев на разработку и 8 месяцев на ввод в действие. Сравнение долей жизненного цикла, приходящихся на каждую стадию, позволяет обнаружить очевидные различия.
Таблица 6.6
Распределение временных затрат по стадиям для маленьких и
Больших проектов
Масштаб проекта | Начальная стадия, % | Проектирование, % | Разработка, % | Ввод в действие, % |
Маленький коммерческий проект | ||||
Большой, сложный проект |
Самым значительным отличием является относительное время, за которое достигается контрольная точка жизненного цикла, связанная с созданием архитектуры (завершение проектирования). Для маленьких проектов это отношение составляет 30/70; для большого проекта оно ближе к 45/55.
Время разработки может быть изменено с учетом статистических данных, накопленных в реальных проектах и отраженных в табл. 6.7, где сопоставлены планируемый и реальный сроки выполнения проекта в зависимости от его размера, выраженного в количестве функциональных точек. Частично это отставание объясняется неточной оценкой, частично — ростом количества требований к системе после того, как выполнена начальная оценка.
Таблица 6.7
Статистические данные
Размер проекта | < 100 FP | 100 - 1000 FP | 1000 - 10000 FP | > 10000 FP |
Планируемый срок (мес.) | ||||
Реальный срок (мес.) | ||||
Отставание |
6.3.