Функционалдық өлшем бірлігі: Бағдарламалық қамтамасыз етуді бағалау әдістері
Function point
Функционалдық нүктелер – бағдарламалық қамтамасыз етудің функционалдық көлемін өлшеу бірлігі. IBM-де 1979 ж. анықталды, құны мен өндіріс еңбегін бағалауға көмектеседі.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Өлшем бірлігі. Функционалдық нүкте – ақпараттық жүйе (өнім ретінде) пайдаланушыға ұсынатын бизнес-функционалдықтың көлемін көрсететін "өлшем бірлігі". Функционалдық нүктелер бағдарламалық құралдың функционалдық өлшемін (ФӨ) есептеу үшін пайдаланылады. Бір бірліктің бағасы (доллармен немесе сағатпен) бұрынғы жобалардың нәтижелері бойынша анықталады.
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 жылы IBM-де Аллан Дж. Альбрехттің «Application Development Productivity Measuring» еңбегінде анықталды. Бағдарламалық құралдың функционалдық пайдаланушы талаптары анықталады және олардың әрқайсысы бес түрдің біріне жіктеледі: нәтижелер, сұраулар, кірістер, ішкі файлдар және сыртқы интерфейстер. Функция анықталып, түріне жіктелгеннен кейін, оның күрделілігі бағаланып, функционалдық нүктелер саны беріледі. Осы функционалдық пайдаланушы талаптарының әрқайсысы соңғы пайдаланушының бизнес-функциясына сәйкес келеді, мысалы, кіріс үшін деректерді енгізу немесе сұрау үшін пайдаланушы сұранысы. Бұл ерекшелік маңызды, себебі ол функционалдық нүктелерде өлшенетін функцияларды пайдаланушыға бағытталған талаптармен оңай сәйкестендіреді, бірақ сонымен қатар ішкі функцияларды (мысалы, алгоритмдерді) жасыруға бейім, олардың іске асырылуына да ресурстар қажет. Қазіргі уақытта өлшем нәтижелерінде алгоритмдік күрделілікті қамтитын ISO-мен мойындалған FSM әдісі жоқ. Жақында осы кемшілікпен күресу үшін бірнеше коммерциялық бағдарламалық өнімдерде жүзеге асырылған әртүрлі тәсілдер ұсынылды. Альбрехтке негізделген 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:
Ерте және оңай функционалдық нүктелер – мәселе мен деректердің күрделілігін екі сұрақ арқылы реттейді, бұл күрделілікті өлшеуді біршама субъективті етеді; дерек элементтерін санау қажеттілігін жою арқылы өлшеуді жеңілдетеді. Инженерлік функционалдық нүктелер – элементтер (айнымалы атаулар) және операторлар (мысалы, арифметика, теңдік/теңсіздік, логикалық) есептеледі. Бұл нұсқа есептеу функциясын көрсетеді. Бұл мақсат оператор/операнд негізіндегі Халстед күрделілік өлшемдерімен ұқсас. Банг өлшемі – Бангке әсер ететін немесе көрсететін он екі қарапайым (негізгі) санаққа негізделген функция метрикасын анықтайды, ол «пайдаланушы қабылдағандай берілуі тиіс нағыз функцияның өлшемі» деп анықталады. Банг өлшемі бағдарламалық құралдың құндылығын қаншалықты пайдалы функция беретінін бағалауда көмектесе алады, бірақ мұндай қолданысқа қатысты әдебиетте аз дәлелдер бар. Банг өлшемін қайта инжиниринг (толық немесе бөліктеп) қарастырылатын кезде қолдануға болады, бұл туралы «Операциялық жүйелерді күтіп ұстау» бөлімінде айтылған. Ерекшелік нүктелері – маңызды ішкі өңдеуге арналған жүйелерге (мысалы, операциялық жүйелер, байланыс жүйелері) қолдануды жақсарту үшін өзгерістер қосады. Бұл пайдаланушымен оңай байқалмайтын, бірақ дұрыс жұмыс істеу үшін маңызды функцияларды есепке алуға мүмкіндік береді. Салмақты микрофункционалдық нүктелер – жаңа модельдердің бірі (2009), ол бағдарлама ағынының күрделілігінен, операндар мен операторлар сөздігінен, объектіні пайдаланудан және алгоритмнен алынған салмақтарды пайдалана отырып, функционалдық нүктелерді реттейді. Fuzzy Function Points – төмен x орташа және орташа x жоғары күрделілік арасындағы бұрыштап және сатылы ауысуды ұсынады.
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.