Mi a COSMIC funkciópont, és miben más, mint az óraszám-becslés?

A Mesterséges Intelligencia Központ Kft. budapesti szoftverfejlesztő cég COSMIC funkciópontban méri a szoftver méretét: a méret így a szoftver tulajdonsága, nem a becslő érzése, ezért ellenőrizhető, újramérhető, és két ajánlat összevethető vele.

Lényeg: A COSMIC (ISO/IEC 19761) a szoftver funkcionális méretét méri: minden adatmozgás (bevitel, kivitel, olvasás, írás) 1 COSMIC funkciópontot (CFP) ér. Az óraszám-becslés azt mondja meg, mennyi munkát vár a becslő; a mért méret azt, mekkora a feladat. Ezért ellenőrizhető, újramérhető, és két ajánlat összevethető vele; a ráfordítás pedig a méretből és a tapasztalati termelékenységből vezethető le.

Mi a funkcionális méretmérés?

A szoftver méretét sokféleképpen lehet kifejezni: programsorokban, órákban, pontokban. A funkcionális méretmérés (angolul functional size measurement, FSM) azt méri, mit kell tudnia a szoftvernek a felhasználói szemszögéből, nem azt, hogyan valósítják meg. Az alapfogalmait az ISO/IEC 14143-1:2007 szabvány rögzíti; a szabvány leírása szerint a cél éppen az, hogy a mérés a megvalósítás módja helyett a felhasználó által igényelt funkciókra figyeljen.

A mérés alapja a funkcionális felhasználói követelmények (functional user requirements, FUR) köre: a felhasználói követelményeknek az a része, amely leírja, milyen feladatokat és szolgáltatásokat kell a szoftvernek elvégeznie. A teljesítmény, a biztonság vagy a választott technológia nem ide tartozik. Ezekről lent, a korlátoknál írunk.

Több szabványosított funkcionálisméret-mérési módszer létezik. A legismertebbek a COSMIC (ISO/IEC 19761:2011) és az IFPUG-módszer (ISO/IEC 20926:2009); az ISO további módszereket is szabványosított (NESMA, FiSMA, Mk II). Mindegyik a követelményekből dolgozik, de más szabályokkal és más mértékegységgel, ezért a különböző módszerekkel mért számok közvetlenül nem vethetők össze.

Mi a COSMIC?

A COSMIC a Common Software Measurement International Consortium rövidítése: nonprofit szervezet, amely a módszert gondozza és a mérők tanúsítását szervezi. A módszer a kilencvenes évek végén alakult ki a korábbi funkciópontos módszerek továbbfejlesztéseként, 2003-ban lett ISO-szabvány, a jelenleg érvényes kiadás az ISO/IEC 19761:2011. A módszer részletes leírása, a COSMIC Measurement Manual 5.0-s változata ingyenesen letölthető; az első része 2021-es, a második 2024-es kiadású.

A szabvány szerint a módszer alkalmazásszoftverek (például üzleti rendszerek), valós idejű szoftverek és ezek keverékei mérésére alkalmas, vagyis egy ERP-, CRM- vagy webshoprendszer és egy vezérlőszoftver is mérhető vele.

A COSMIC-modell fogalmai

A COSMIC a szoftvert egy egyszerű modellel írja le: a szoftver a határán keresztül cserél adatot a funkcionális felhasználóival, és a határon belül olvas a tartós tárból, illetve ír bele.

FogalomMit jelentPélda
Funkcionális felhasználóaki vagy ami adatot küld a szoftvernek vagy adatot vár tőle: ember, másik szoftver vagy eszközaz ügyintéző, a számlázó rendszer
Határképzeletbeli felület a mért szoftver és a funkcionális felhasználói közötta webes felület és a többi rendszer felé nyitott interfész
Kiváltó eseményolyan esemény, amelyre a funkcionális felhasználó elindít egy folyamatotúj ügyfél jelentkezik
Funkcionális folyamata követelmények elemi, önállóan végrehajtható egysége, adatmozgások összefüggő sora„új ügyfél rögzítése”
Adatcsoportadatelemek csoportja, amely egyetlen dologról szól, amiről a szoftvernek adatot kell kezelnieaz Ügyfél: név, cím, adószám, e-mail
Adatmozgásegyetlen adatcsoport mozgatása; négy fajtája vanlásd lent

A négy adatmozgás:

A mérési szabályok közül néhány, amely a számolást meghatározza:

Az eredmény arányskálán mozog, vagyis a méretek összeadhatók és összevethetők: két 40 CFP-s rész együtt 80 CFP, és a részösszeg funkciócsoportonként is kimutatható.

Kidolgozott példa: „új ügyfél rögzítése”

Vegyünk egy egyszerű követelményt: „Az ügyintéző rögzíti az új ügyfél adatait (név, cím, adószám, e-mail). A rendszer ellenőrzi, hogy az ügyfél nincs-e már nyilvántartva, elmenti, és visszajelez a sikerről vagy a hibáról.” A mérés lépései:

  1. A funkcionális felhasználó az ügyintéző, a kiváltó esemény az, hogy új ügyfél jelentkezik.
  2. Az adatcsoport az Ügyfél; a négy adatelem ugyanarról a dologról szól, ezért egy csoport.
  3. Az adatmozgásokat a követelmény mondataiból azonosítjuk, és mindegyiket megszámoljuk.
LépésAdatmozgásAdatcsoportMéret
Az ügyintéző elküldi az űrlapotEntry (bevitel)Ügyfél1 CFP
A rendszer megnézi, létezik-e már az ügyfélRead (olvasás)Ügyfél1 CFP
A rendszer elmenti az új ügyfeletWrite (írás)Ügyfél1 CFP
Visszajelzés a sikerről vagy bármely hibárólExit (kivitel)hiba- és visszaigazoló üzenet1 CFP
Összesennégy adatmozgásegy adatcsoport4 CFP

Ugyanígy épül fel a COSMIC honlapján közzétett útmutató „új munkavállaló rögzítése” példája is. A követelmény változásai így látszanak a méretben:

A példából az is látszik, miért ellenőrizhető a mérés: minden CFP mögött egy megnevezett követelmény, egy adatcsoport és egy szabály áll. Ha valaki vitatja, pontosan meg lehet mondani, melyik sorról van szó.

Mérés korán, finomítás később

A COSMIC-mérés a mérés céljának és terjedelmének rögzítésével indul: mit mérünk, mi tartozik bele, és mire használjuk az eredményt. A pontos méréshez olyan részletes követelmény kell, amelyből a funkcionális folyamatok és adatmozgásaik azonosíthatók. Egy projekt elején ez gyakran még nincs meg; erre az esetre a COSMIC közzétett közelítő módszereket ajánl a korai méretbecsléshez, a követelmények kidolgozása után pedig következhet a pontos mérés.

A módszer útmutatója arra is figyelmeztet, hogy sok, eredetileg nem funkcionálisnak tűnő igény (például a válaszidő vagy a kezelhetőség) a projekt során szoftverfunkcióvá alakul, és ettől a méret látszólag nő. Ez nem a mérés hibája, hanem azt mutatja meg, hogy a követelmény pontosabb lett. A gyakorlatban ezért érdemes a specifikációt tételesen megírni, a változásokat ugyanazzal a módszerrel újramérni, és a változás méretét külön kimutatni. Így a terjedelem növekedése nem csendben történik, hanem számszerűen látszik.

Összehasonlítás: óraszám, story point, IFPUG, COSMIC

SzempontÓraszám-becslésStory pointIFPUG funkciópontCOSMIC funkciópont
Mit fejez kia becslő által várt munkáta csapat relatív becslését; nem mindig világos, hogy méretet, ráfordítást vagy időtfunkcionális méretetfunkcionális méretet
Szabványos-enemnemigen, ISO/IEC 20926:2009igen, ISO/IEC 19761:2011
Mitől függa becslő tapasztalatától, óvatosságától és csapatátólaz adott csapattól; csapatonként mást jelenta követelményektőla követelményektől
Ellenőrizhető-e kívülrőlcsak a becslő magyarázata alapjáncsapaton kívül aligigen, nyilvános szabályok szerintigen, nyilvános és ingyenesen elérhető szabályok szerint
Mértékegységóraa csapat saját pontjaIFPUG funkciópontCFP, 1 CFP = 1 adatmozgás
Mire jó leginkábbrövid, jól ismert feladatok tervezésérea csapat saját sprinttervezéséreméretmérésre, összehasonlításraméretmérésre, összehasonlításra, ajánlat és ütemterv alapjául

Az óraszám-becslés nem rossz eszköz, csak mást mér: a várható munkát, amely a feladat méretén kívül a csapat tudásán, eszközein és óvatosságán is múlik. A story point a csapaton belüli tervezésre hasznos, de a COSMIC honlapján közzétett útmutató szerint szubjektív, és a jelentése csapatonként más. Az IFPUG és a COSMIC egyaránt szabványos funkcionális méret, de eltérő szabályokkal, ezért a két módszer számai nem cserélhetők fel egymással.

Miért megbízhatóbb alap a mért méret?

A címben feltett kérdésre pontosan felelve: a COSMIC nem az órákat becsüli pontosabban, hanem a feladat nagyságát méri meg, és ebből lesz megbízhatóbb a ráfordítás becslése. Az okok:

A COSMIC útmutatója több vizsgálatra hivatkozik, amelyekben a CFP-ben mért méret szorosabban együtt mozgott a tényleges ráfordítással, mint a story pointban kifejezett becslés. Ugyanez az útmutató arra is figyelmeztet, hogy a méretből becsült ráfordítás akkor megbízható, ha a fejlesztési folyamat kellően megismételhető, és a ráfordítást elsősorban a méret határozza meg. A mért méret tehát jobb kiindulópont, de a jó becsléshez a termelékenységet is ismerni kell.

Mit nem mér a COSMIC?

A COSMIC-méret a funkciókat méri, és ezt a módszer leírása nyíltan ki is mondja. Amit nem fejez ki:

Ezért egy jó ajánlat a mért méret mellett külön kimutatja, amit a méret nem fejez ki: az integrációkat, a nem funkcionális követelményeket, az egyedi felületet és grafikát, a több platformot, az adatátköltöztetést, az összetett számítást és a valós idejű működést. A mi ajánlatainkban ezek a tételek így szerepelnek; erről az Árazás oldalon írunk.

Hogyan használjuk a saját munkánkban?

A fejlesztés funkcionális méretét COSMIC funkciópontban mérjük. A méréshez saját, mesterséges intelligenciával támogatott munkafolyamatot építettünk, és az eredményt egy felülvizsgálati körben ember ellenőrzi. A lépések:

  1. Tételes specifikáció: a fejlesztést funkciócsoportokra bontjuk, és mindegyiket ugyanazzal a sablonnal írjuk le: cél, szereplők, adatok, funkciók, AI-funkciók, és ami nem része (lásd: Hogyan dolgozunk).
  2. Több, független számlálás: minden funkciócsoportot több nyelvi modell, többször számol meg; a számlálások szórása a bizonytalanságot mutatja.
  3. Egyeztető kör: gondoskodik arról, hogy minden funkcionális folyamat pontosan egyszer számítson, akkor is, ha több leírásban szerepel.
  4. Felülvizsgálat: a mérést átnézzük, a bizonytalan pontokat tisztázzuk, a gépi összevonásokat szükség esetén kézzel felülbíráljuk.
  5. Rögzítés: a kész mérés változtathatatlan változatként rögzíthető, és ez lesz a szerződés alapja.

Meglévő rendszer továbbfejlesztésénél a meglévő részt külön írjuk le, így a méretbe csak az új rész számít bele. A mérés azt is jelzi, amit a funkcionális méret nem fejez ki.

Hogyan lesz a méretből ajánlat és ütemterv?

Az ajánlat ára a mért méretből adódik, kiegészítve a méret által nem kifejezett tételekkel. Mivel a méretet funkciócsoportonként is látjuk, az ütemtervet is erre építjük: a szakaszok sorrendjét, a bemutatók tartalmát és a határidőket. Ha menet közben új igény születik, azt ugyanígy megmérjük, és látszik, mennyivel változik a terjedelem, és mit jelent ez az árra és az ütemezésre. Konkrét árat és határidőt ezért csak a mérés után adunk, nem egy első beszélgetés alapján.

Két ajánlat összehasonlítása méret alapján

Ha több fejlesztőtől kér ajánlatot, a méret segít eldönteni, hogy ugyanarra a feladatra érkeztek-e. Érdemes így eljárni:

  1. Ugyanaz a specifikáció: minden ajánlattevő ugyanazt a tételes leírást kapja.
  2. A méret és a folyamatlista: kérje el, mekkora méretre és mely funkcionális folyamatokra adták az árat.
  3. A különbségek okai: ha két ajánlat eltér, nézze meg, a méretben, a méret által nem kifejezett tételekben vagy a fajlagos árban térnek-e el.
  4. A külön tételek: kérdezze meg, mi szerepel külön sorban (integráció, adatátköltöztetés, üzemeltetés), és mi nincs benne az árban.
  5. A változások kezelése: kérdezze meg, hogyan mérik és árazzák a menet közbeni változásokat.

Ha egy ajánlattevő nem mér funkcionális méretet, attól még összevethető az ajánlata, ha ugyanarra a tételes folyamatlistára árazott. A fejlesztőválasztás többi szempontjáról a Hogyan válasszunk szoftverfejlesztő céget? cikkben írunk; azt pedig, hogy egyáltalán egyedi fejlesztés kell-e, az Egyedi szoftver vagy kész megoldás? cikk segít eldönteni.

Gyakori kérdések

Mi az a COSMIC funkciópont?

A COSMIC funkciópont (CFP) a szoftver funkcionális méretének mértékegysége az ISO/IEC 19761 szabvány szerint. Egy CFP egy adatmozgás: egy adatcsoport bevitele, kivitele, olvasása vagy írása egy funkcionális folyamatban. A szoftver mérete a folyamatai adatmozgásainak összege.

Miben más, mint az óraszám-becslés?

Az óraszám-becslés a várt munkát mondja meg, és a becslőn és a csapaton múlik. A COSMIC a feladat méretét méri a követelményekből, nyilvános szabályokkal, ezért ugyanabból a specifikációból más is ugyanarra az eredményre juthat. Az órák ezután a méretből és a tapasztalati termelékenységből vezethetők le.

Mit nem mér a COSMIC?

A szabvány szerint nem összetett matematikai algoritmusok és folytonos jelek (hang, kép) feldolgozásának mérésére készült, és a valódi nem funkcionális követelményeket, például a teljesítmény- vagy technológiai korlátokat sem CFP-ben fejezi ki. Ezeket egy jó ajánlat külön tételként mutatja ki.

Ki méri, és ellenőrizhető-e a mérés?

A mérést a módszert ismerő mérő végzi; nálunk egy AI-támogatott munkafolyamat számol, és az eredményt ember vizsgálja felül. A szabályok nyilvánosak, a mérés folyamatonként dokumentált, ezért egy másik, a módszert ismerő szakember ugyanabból a specifikációból ellenőrizheti.

Hogyan lesz a méretből ajánlat?

A mért méretből adódik az ár, kiegészítve azzal, amit a méret nem fejez ki: integrációk, nem funkcionális követelmények, egyedi grafika, több platform, adatátköltöztetés. Az ütemterv a funkciócsoportonkénti méretre épül, a változásokat pedig ugyanígy mérjük. A részletek az Árazás oldalon olvashatók.

Hogyan segítünk?

Ha egyedi szoftvert tervez, közösen megírjuk a tételes specifikációt, megmérjük a méretét COSMIC funkciópontban, és ebből adunk ajánlatot és ütemtervet. Kérésre titoktartási szerződést (NDA) kötünk, és az átadás után üzemeltetést és karbantartást is vállalunk. A forráskódról és a felhasználási jogokról a szerződés rendelkezik. Az első egyeztetés díjmentes: írjon nekünk a Kapcsolat oldalon megadott elérhetőségeken.

Források