Проблемы при оценке размера
Существуют различные показатели размера программных проектов, в том числе: функции; требования; сценарии использования; функциональные пункты; веб-страницы; компоненты GUI (окна, диалоговые окна, отчеты и т.
д.); таблицы баз данных; определения интерфейсов; классы; строки программного кода.На практике для оценки чаще всего используются строки программного кода (LOC), поэтому я начну именно с них.
Роль строк кода в оценке размеров
Оценка программных проектов в строках кода имеет как положительные, так и отрицательные стороны. С одной стороны, у них есть ряд преимуществ. Данные по количеству строк кода в прошлых проектах легко собираются при помощи служебных программ. Во многих организациях уже наработан большой объем исторических данных, выраженных в строках кода. Объем работы на строку кода остается более или менее постоянным для разных языков программирования или, во всяком случае, достаточно близким для практических целей. (Как объясняется в главе 5, объем работы на строку кода в большей степени зависит от размера проекта и типа программы, нежели от языка программирования. А вот функциональность одной строки кода радикально изменяется в зависимости от языка.) Измерения в строках кода позволяют выполнять межпроектные сравнения и оценивать будущие проекты по данным прошлых проектов. В большинстве коммерческих оценочных программ оценки объема работ и сроков в конечном счете основываются на строках кода.
С другой стороны, строки кода также создают определенные трудности при оценке размера. Упрощенные модели вида «количество строк кода на человеко-месяц» подвержены ошибкам из-за издержек масштаба и заметных различий в скорости кодирования для разных типов программного обеспечения. Строки кода не могут использоваться в качестве основы для оценки задач, порученных отдельным программистам, из-за огромных различий в производительности.
Если проект требует более сложного кода по сравнению с проектом, использовавшимся для калибровки предположений о производительности, это может нарушить точность оценки. Применение метрики LOC при оценке работы по постановке требований, проектированию и других действий, предшествующих созданию кода, выглядит противоестественно. Строки кода трудно оценивать напрямую и их обычно приходится оценивать опосредованно. Вы должны заранее тщательно определить, что именно следует считать строкой кода (это необходимо для предотвращения проблем, описанных в разделе 8.2).Некоторые эксперты возражают против использования строк кода в качестве метрики размера из-за проблем, возникающих при попытке анализа производительности в проектах с разными типами, размерами, языками программирования и программистами (Jones 1997). Другие эксперты указывают, что аналогичные проблемы встречаются и при использовании других метрик размеров, включая функциональные пункты (Putnam and Myers 2003).
Общая проблема оценки в строках кода, функциональных пунктах и других простых метриках заключается в том, что измерение чего-либо столь многогранного, как размер программного проекта, в одномерных метриках неизбежно порождает аномалии, по крайней мере в отдельных ситуациях (Gilb 1988, Gilb 2005).
Одномерные метрики не применяются для описания экономических моделей или других сложных сущностей. Они даже не применяются для определения лучшего подающего в бейсбольной команде — мы учитываем среднее количество попаданий, пробежек и других факторов, но даже после этого продолжаем спорить о смысле этих чисел. Если даже уровень подающего нельзя оценить по одному простому показателю, почему можно полагать, что простая метрика подойдет для оценки чего-то настолько сложного, как размер программного проекта?
Мое личное отношение относительно оценки проектов по строкам кода напоминает высказывание Уинстона Черчилля по поводу демократии. Метрика LOC — очень плохой способ оценки размера программного проекта, но все остальные способы еще хуже.
В большинстве организаций, несмотря на все свои недостатки, метрика LOC остается основным рабочим инструментом для измерения размера прошлых проектов и создания ранних оценок новых проектов.
Метрика LOC — это lingua franca оценки программных проектов и обычно хорошая отправная точка (при условии, что вы не забываете о ее ограничениях).
Возможно, ваша среда достаточно сильно отличается от типичной среды программирования, и количество строк кода в ней слабо коррелируется с размером проекта. В этом случае найдите другой показатель, в большей степени связанный с размером проекта, подсчитайте его и заложите в основу своих оценок размера, как обсуждалось в главе 8. Ищите метрику, легко подсчитываемую, коррелированную с объемом работ и достаточно универсальную для использования в нескольких проектах.
СОВЕТ № 80
Используйте строки программного кода для оценки размеров, но помните об общих ограничениях простых метрик, а также специфических опасностях метрики LOC.
Еще по теме Проблемы при оценке размера:
- Специфические проблемы при оценке размера
- Специфические проблемы при оценке сроков
- Специфические проблемы при оценке объема работ
- 18.4. Сводка методов оценки размера
- 32.. Каким образом рассчитывается размер страхового платежа при экологическом страховании?
- Пример оценки общественной сравнительной эффективности лучшего проектного варианта, отобранного при оценке отраслевой эффективности.
- Проблемы, возникающие при совершении торговых операций
- 8.1. При вовлечении в сделку публичных объектов оценки
- 31.8. Проблема стоимостной оценки природных богатств
- Глава VII. Экономический расчет при социализме (I): характер и история проблемы
- Оценка кредитоспособности заемщика при страховании банковских кредитов
- 1. Учёт фактора времени при оценке инвестиционных проектов
- РАЗРАБОТКА ПРОБЛЕМ ПОЛИТИЧЕСКОЙ ЭКОНОМИИ КАПИТАЛИЗМА КАФЕДРАМИ ВПШ И АОН ПРИ ЦК КПСС
- 41. Методы учета рисков при оценке эффективности инвестиций.
- Проблемы и противоречия по вопросам оценки налогового потенциала региона