Dr. Uwe Doetzkies created: 2013/04/21 last change: 2014/09/26
This
translation of my original paper was created by the Google translator
and subsequently revised by me. Please tell me about possible mistakes
and improvements. - Thank you. U.D.
Result (Abstract)
For each use case,a value iscalculated,indicating thecost of a single execution of the use case,expressedin"ActionPoints".The sumof costsof all use casesexecutedinan observedtime dividedby the length ofthis time isthe (average)performanceduring thistime,measuredin"ActionPointsper Second"(aps).SI-unitprefixes(kaps, Maps)arepossible as well asadefinition relatedto othertime units(perminute,perhour,perday).
Introduction
Yet anotherperformancemeasureforsoftware?Aren't therealreadyenoughmethods: instructions percycle,instructions persecond,FLOPS,throughput,response time,processing speed,latency, etc. (see wikipedia)? All theseindicatorsareeasy to measure,therearemethodsand toolsto measure, to monitor, to reportandto evaluate them.But still theysay littleabout whatthe systemactually does. Why is that?These metricsaregenerallydefinedtobe determinedin all consideredsystems.Otherwise thevalueswould not becomparable.Onlythecomparabilitymakes it possible toevaluate differentsystemsat different times.On the other handthe comparability restrictesus to useonlythoseparametersthatwe can measurein each system. Butthe userdoesn't carehowmany floating-pointoperations will performinasecond,he is interested inhow many tasks are dissolved in asecond.
User-orientedperformance
Theuser is interested inhow manyproductiondata arestored,how manyorders are processedby the system,how manystatusinquiries are answered.In short,the powerof his system depends onwhich and how manyuse cases are carried outunder what conditions. Use Casesperminute?Shoulditbe?Certainly not,because eventheuser whohas no bearing onsoftwareshouldknow that there aremore and less complexapplications. In physics, power is thequotient from the energyand the timerequiredfor a process.Similarly, in computer sciences theperformance can be considered as aquotient ofthe "energy" ause case,an operation,asequence of instructionsneeds, andthetime it would take. Theonly problem isthatno one hasseen this"energy", and that termslike "complexity","abstraction","scope"...may havea bitto do with it.But it replaces onlyone(arbitrary)definition with aother, even arbitrary one.
Function Points
This hasnever been done,really?Hasreallyno onetriesto determine anenergyamountto aninformationprocess?No, there isoneapproach: TheFunction Point Analysis attempts to assigna metric value to an implementationprocess usingvarious rulesandexperiences.This value represents therequiredeffort. Andeffortis a formofenergy.This measurement is expressedin"Function Points". Aprocesshas moreorlessfunction pointsthan another one-andsothe cost ofitsimplementation isgreater or lessthan that for theimplementationof the other. It is difficultto think ofsomething special as afunction point.The developeris working on afunctionand one dayit is done,butitjustrequired an effortof 10Function Points.Another function,where hehad workedmuchlonger,but that requirednotmoreLinesOf Codeasthefirst,maybehas25Function Points.Andexactlythis effectis described by thefunction points.But ifyou lookin the codefor thesepoints, you willnot find it. Even if themethodis not widelyappliedin practice,where itwasapplied,almost alwaysgave goodestimatesfortheproject. For moreinformation aboutthefunction pointsrefer to theusual sources.
ActionPoints
To determine the"energyof a use case"I havejusttakenan inspiration fromthedetermination of thefunction points.Therefore Ilike to callthese values"ActionPoints".Like function points these action points shouldprimarilydepend on the complexityof the input data, the type ofprocessing andthe complexity of theoutput data.Initially we don't need the correctionfactors of the Function Point Analysisfor special requirements(real-time,security,etc.). We don't have to do morethan theprocessingofinputsandthe generationof outputs.Nevertheless, theActionPointconceptdoes not excludethe possibilityofcorrectionfactors. It would be conceivable, for example,for specialrequirements totheuse case like traceabilityorinterruptibility. However,theactionpointsshould be basedsolely on theuser-related(!) analysis ofinput, outputandprocess.Thereforeactionpointscanbedetermined early,very earlyinthesystemdevelopment: once anuse casehas been defined its actionpoints can be calculated.Soameasurable performancedefinitionalreadybecomes partof therequirements analysis. Assume thesaving of thestate of aworkpiecerequires 12 action points,thentherequirementto be able tostore 500workpiecestates perminute needs a system performance of6,000 appm (actionpointsperminute). If
this is the only function of a system we get only small information -
it would be easier to create a lot of requests and count the successful
ones. But real systems are complex - and have a lot of functions. The action point method allows to rate different testscenarios. We will be able to quantify the currentperformance of aproductivesystem. All this fromthe user's perspectiveandnotfrom thedeveloper's point of view.
Determination ofActionPoints
How to determinethenumber ofactionpoints of a given use case?Theuse caseitself isusually giveneitheras ause casediagramor as averbaldescription orahybrid ofboth.It is particularly importantthat theuse casesweredescribedfromthe user's perspective,notfromthe modeler's or theprogrammer's point of view.At this level,the most commonuse casesshould be described as completely as possible. Now we decribe the nature ofagiven use case,and what information ishandled. Typesof use casesare:
Input-informationgetsinto the system by the use case,e.g. readingofsensors,inputbydepartmentsorweb sites.
Output-outputinformation calculated by the use case,e.g.Control of motors,transmittingsummaries,conversioninto externalformats.
Query- output internal informationbytheuse case(no need of calculation),e.g.display of tables,outputof predefinedtexts.Queriesaresimplified outputs.
Processing-internalinformation is processed andstored,e.g.evaluationofstatus information,conversionsininternal formats,updatingover time.Theprocessingis a combinationofinternalinput and output.
In addition, thecomplexityis assessed,asit appears fromthe user's viewpointfor each use case.Hereonlythreelevels are distinguished:trivial (easy)when informationcan be transferredessentiallysight unseen,normalwhen simplecommontestsandmanipulationsmustbe performedwith the information(usuallywith twoinformation),andcomplexif the testsand/ormanipulationmustconsidermore thantwo pieces of information.
Action Points for...
...trivial...
...normal...
...complex...
...Inputs
3
4
6
...Outputs
4
5
7
...Queries
3
4
6
...Processing
7
10
15
Normallywe can clearly specify theinformation with whicha given use case(e.g. "Enter Order")operates(here: "Order")andits nature ("enter"=input).Particularly intheprocessing use cases it is conceivablethat use cases operatewith more than oneinformation."Dispose Order" works withthecurrent joblistand the current storage status.These use cases areoftencharacterized in thatthe useralreadyhasan idea ofhow thisshould behandled by the system.(Note:One does notargue about whethersuchuse casesmustbe broken intoelementaryuse cases,you can dothis or not -it shouldn'thave a significant impact onthe overall results).Forthese use cases, of course,allinformation has to be considered.
Result
For each use case,a value iscalculated,indicating thecost of a single execution of the use case,expressedin"ActionPoints".The sumof costsof all use casesexecutedinan observedtime dividedby the length ofthis time isthe (average)performanceduring thistime,measuredin"ActionPointsper Second"(aps).SI-unitprefixes(kaps, Maps)arepossible as well asadefinition relatedto othertime units(perminute,perhour,perday).
Preview
In anotherpaper, I'll showhowthese measurementscan be defined in practiseand how to measure the metric valuesofsoftware systems on the fly.
References
B. Poensgen, B. Bock: Function-Point-Analyse. dpunkt.verlag Heidelberg 2005