376
Глава 8. МЕТОДЫ ОЦЕНКИ РАЗМЕРА ПРОГРАММНОЙ
СИСТЕМЫ
8.1. Методология анализа показателей функциональности
8.1.1. Истоки методологии FPA
Организации-разработчики программных систем в течение многих лет иска-
ли приемлемые количественные методы для измерения производительности труда,
оценивания эффективности процессов и управления затратами на разработку ПС.
Камнем преткновения было отсутствие надежной единицы измерения размера про-
граммного обеспечения. Такая, на первый взгляд очевидная метрика, как число
строк исходного кода SLOC (Source Lines of Code), не могла давать достоверные
результаты, поскольку не учитывала следующее:
• число строк исходного кода зависит от уровня мастерства программиста.
Фактически, чем выше мастерство программиста, тем меньшим количеством строк
кода ему удастся обойтись для реализации определенной функциональной возмож-
ности (или функциональности) ПС;
• высокоуровневые языки или языки визуального программирования тре-
буют гораздо меньшего числа строк кода, чем, например, язык Ассемблера или C
для отражения одной и той же функциональности. Достаточно представить себе два
приложения, имеющих одни и те же функциональные возможности (те же экраны,
отчеты, таблицы базы данных), но реализованные на разных языках, например, C и
Clarion. Очевидно, что существует обратная взаимосвязь между уровнем языка и
производственной выработкой программиста;
• фактическое число SLOC остается неизвестным до тех пор, пока проект
не будет почти завершен. Поэтому SLOC нельзя использовать для предварительной
оценки усилий на разработку и построения план-графика проекта;
• в программистском сообществе не достигнуто соглашения о методе под-
счета строк кода. Языковые конструкции, используемые, например, в Visual C++,
Ассемблере, Коболе или SQL, абсолютно различны. Метод же остается общим для
любых приложений, в том числе использующих комбинацию различных языков;
• заказчику сложно понять, каково соотношение указанных им функцио-
нальных и технических требований к ПС и объемов программистской работы.
Нужна была новая мера размера, применяемая унифицировано по всему ЖЦ
ПС, понятная заказчику и легко интерпретируемая в терминах прикладной области
его деятельности. И такая мера появилась в конце 70-х годов.
Однако нужно сразу отметить, что несмотря на проблемы, SLOC по-
прежнему остается той единицей измерения размера, к которой «приводятся» (в
которую конвертируются) результаты вычисления размера, выполненные другими
методами, для последующего использования в «старых» моделях трудоемкости,
надежности, тестирования, стоимости и др. Ее вполне можно также применять и
для определения размера ПС на завершающих стадиях разработки и при сопровож-
дении (разумеется, учитывая вышеуказанные замечания) [1].
Первой и наиболее удачной альтернативой методу подсчета исходных строк
кода стала разработанная в 1979 году Алланом Альбрехтом из IBM методология,
названная «Анализ показателей функциональности» (FPA, от Function Points Analy-
sis). В ее основе лежит взгляд на ПС извне, с позиций пользователя системы, а не