Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Функциональная точка – это "единица измерения", используемая для оценки объема бизнес-функциональности, предоставляемой пользователю информационной системой (как продуктом). Функциональные точки применяются для вычисления функционального размера программного обеспечения (FSM). Стоимость одной единицы (в долларах или человеко-часах) рассчитывается на основе данных о предыдущих проектах.
Unit of measurement
The function point is a "unit of measurement" to express the amount of business functionality an information system (as a product) provides to a user. Function points are used to compute a functional size measurement (FSM) of software. The cost (in dollars or hours) of a single unit is calculated from past projects.
Введение
Функциональные точки были определены в 1979 году в книге «Measuring Application Development Productivity» Алланом Дж. Альбрехтом в IBM. Функциональные пользовательские требования к программному обеспечению идентифицируются, и каждое из них классифицируется в один из пяти типов: выходные данные, запросы, входные данные, внутренние файлы и внешние интерфейсы. После того, как функция идентифицирована и классифицирована, она оценивается по сложности и ей присваивается количество функциональных точек. Каждое из этих функциональных пользовательских требований соответствует бизнес-функции конечного пользователя, например, вводу данных для входных данных или запросу пользователя для запроса. Это различие важно, поскольку оно позволяет легко сопоставить функции, измеряемые в функциональных точках, с ориентированными на пользователя требованиями, но также может скрывать внутренние функции (например, алгоритмы), для реализации которых также требуются ресурсы. В настоящее время не существует признанного ISO метода FSM, который учитывал бы алгоритмическую сложность в результате оценки размера. В последнее время были предложены различные подходы к решению этой perceived weakness (воспринимаемой слабости), реализованные в нескольких коммерческих программных продуктах. Вариации метода IFPUG, основанного на методе Альбрехта, разработанные для компенсации этого (и других недостатков), включают:
Function points were defined in 1979 in Measuring Application Development Productivity by Allan J. Albrecht at IBM. The functional user requirements of the software are identified and each one is categorized into one of five types: outputs, inquiries, inputs, internal files, and external interfaces. Once the function is identified and categorized into a type, it is then assessed for complexity and assigned a number of function points. Each of these functional user requirements maps to an end user business function, such as a data entry for an Input or a user query for an Inquiry. This distinction is important because it tends to make the functions measured in function points map easily into user oriented requirements, but it also tends to hide internal functions (e. g. algorithms), which also require resources to implement. There is currently no ISO recognized FSM Method that includes algorithmic complexity in the sizing result. Recently there have been different approaches proposed to deal with this perceived weakness, implemented in several commercial software products. The variations of the Albrecht based IFPUG method designed to make up for this (and other weaknesses) include:
Функциональные точки, простые и быстрые в применении – Корректируют сложность проблемы и данных с помощью двух вопросов, дающих несколько субъективную оценку сложности; упрощают измерение, устраняя необходимость подсчета элементов данных. Инженерные функциональные точки – Подсчитываются элементы (имена переменных) и операторы (например, арифметические, равенство/неравенство, логические). Эта вариация подчеркивает вычислительную функцию. Цель аналогична целям мер сложности, основанных на операторах и операндах, разработанных Хэлстедом. Мера Bang – Определяет метрику функции, основанную на двенадцати примитивных (простых) подсчетах, которые влияют на или отражают Bang, определяемый как «мера истинной функции, предоставляемой пользователю». Мера Bang может быть полезна для оценки ценности программного модуля с точки зрения предоставляемой им полезной функциональности, хотя в литературе мало свидетельств такого применения. Использование меры Bang может быть полезно при реинжиниринге (полном или частичном), как обсуждается в обзоре «Обслуживание операционных систем». Feature points (Точки функций, основанные на характеристиках) – Добавляют изменения для повышения применимости к системам со значительной внутренней обработкой (например, операционным системам, системам связи). Это позволяет учитывать функции, которые не сразу очевидны пользователю, но необходимы для правильной работы. Взвешенные микрофункциональные точки – Одна из новых моделей (2009 г.), которая корректирует функциональные точки, используя веса, полученные из сложности потока управления программой, словаря операндов и операторов, использования объектов и алгоритмов. Нечеткие функциональные точки – Предлагают нечеткий и градуальный переход между низкой/средней и средней/высокой сложностью.
Early and easy function points – Adjusts for problem and data complexity with two questions that yield a somewhat subjective complexity measurement; simplifies measurement by eliminating the need to count data elements. Engineering function points – Elements (variable names) and operators (e. g., arithmetic, equality/inequality, Boolean) are counted. This variation highlights computational function. The intent is similar to that of the operator/operand based Halstead complexity measures. Bang measure – Defines a function metric based on twelve primitive (simple) counts that affect or show Bang, defined as "the measure of true function to be delivered as perceived by the user." Bang measure may be helpful in evaluating a software unit's value in terms of how much useful function it provides, although there is little evidence in the literature of such application. The use of Bang measure could apply when re engineering (either complete or piecewise) is being considered, as discussed in Maintenance of Operational Systems—An Overview. Feature points – Adds changes to improve applicability to systems with significant internal processing (e. g., operating systems, communications systems). This allows accounting for functions not readily perceivable by the user, but essential for proper operation. Weighted Micro Function Points – One of the newer models (2009) which adjusts function points using weights derived from program flow complexity, operand and operator vocabulary, object usage, and algorithm. Fuzzy Function Points Proposes a fuzzy and gradative transition between low x medium and medium x high complexities
Критика
Альбрехт в своих исследованиях заметил высокую корреляцию между функциональными точками и количеством строк кода, что поставило под сомнение ценность такой метрики, если доступна более объективная – подсчет строк кода. Кроме того, было предпринято множество попыток устранить недостатки этой метрики путем усовершенствования процедуры подсчета. Другие предложили решения для обхода этих проблем, разработав альтернативные методы, создающие косвенную оценку объема предоставляемой функциональности.
Albrecht observed in his research that Function Points were highly correlated to lines of code, which has resulted in a questioning of the value of such a measure if a more objective measure, namely counting lines of code, is available. In addition, there have been multiple attempts to address perceived shortcomings with the measure by augmenting the counting regimen. Others have offered solutions to circumvent the challenges by developing alternative methods which create a proxy for the amount of functionality delivered.