Тип ПО | Размер, 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