Gyakorlati alapok II.
A szoftverfejlesztés
Igényfelmérés (követelménytervezés) és specifikáció
Az alábbi fejezet részben Sallay András informatikatanár oktatási anyagára támaszkodik (www.szit.hu)
A megrendelő és a szoftverfejlesztő közötti együttműködés az igények, elképzelések felmérésével kezdődik. Ennek során általában a megrendelő fantáziája vagy szárnyal, vagy csak rendkívül elnagyolt körvonalakban akar valamit. (Harmadik eset, hogy a megrendelőnek kész, szakmailag is pontos elképzelései vannak, csak olyasvalakit keres, aki mindezt lekódolja. Gondoljunk csak bármelyik multicég hivatalos reklámarculatára, amely pontosan szabványosított elemekből áll, akár több 100 oldalon keresztül).
Érdekesség: van olyan multicég, amelynek teljes arculati követelményrendszere megtölt egy több mint 100 oldalas könyvet. Magyar viszonylatban gondolhatunk például a Telekomra, amely cég minden kommunikációs platformon (TV, Internet, levelezés, stb.) mindig azonos arculattal jelentkezik, nem véletlenül.
A szoftverfejlesztő feladata, hogy a szárnyaló fantazmagóriákból, a nagy semmiből, vagy éppen kész ötletekből a megrendelőnek prezentáljon egy általa is érthető, előzetes tervet, tervcsomagot. Ebből következően a követelmények kétfélék lehetnek:
felhasználói követelmények,
rendszerkövetelmények.
Minél nagyobb a projekt, annál hosszabb ideig tart ez az igényfeltárás, a követelmények összegyűjtése. Ugyanakkor a szoftverfejlesztőnek meg kell határoznia a projekt szakmai irányait is (legalábbis ami érthető a megrendelő számára):
-
a feladat jellege és nagysága,
-
a szoftver fő funkciói, működési jellegzetességei,
-
humán, hardver és szoftver erőforrásigényei,
-
várható költségei.
Mindezt folyamatosan a megrendelővel egyeztetve kell felépíteni, hogy ne legyenek rossz irányvételek.
Nézzük meg mindezen rendkívül komplex "cselekvési tervcsomagot" hivatalosnak mondható folyamatábrákon keresztül. Az 1. ábra voltaképpen majdhogynem teljes egészében összefoglalja a szoftveralkotással kapcsolatos szakmai teendőket:
Forrás - Source: www.szit.hu
A 2. ábra a követelménytervezés folyamatát mutatja meg, amely fogalmat eddig sokszor az érthetőbb igényfelméréssel helyettesítettünk.
Forrás - Source: www.szit.hu
Az igényfelmérés (követelménytervezés) rendkívül bonyolult és költséges munkafolyamat:
Forrás - Source: www.szit.hu
A fenti ábrában van 2 további, tisztázandó fogalom:
funkcionális - minden olyan követelmény, amely logikusan következik a szoftver működéséből, így szükségszerű része a szoftver megalkotásának,
nem funkcionális - minden olyan követelmény, amely NEM következik logikusan a szoftver működéséből, ám a szoftver megalkotásakor figyelembe kell venni.
Nézzük meg például, hogy milyen nem funkcionális rendszerkövetelményekkel szembesülhetünk:
-
termék követelmények
-
hatékonyság
-
megbízhatóság
-
hordozhatóság
-
-
szervezeti követelmények
-
szállítási
-
megvalósítási
-
szabvánnyal kapcsolatos
-
-
külső követelmények
-
jogi
-
etikai
-
együttműködési
-
Forrás - Source: www.szit.hu
Gondoljunk bele, hogy milyen nehéz dolga van a szoftverfejlesztőnek! Több helyen megállapítottuk már, hogy a programozás a való világ modellezése. A szoftverfejlesztés eme kezdeti fázisában tehát a szoftverfejlesztő addig nem is nyilatkozhat, amíg legalább középszinten meg nem értette a modellezett téma, szakma lényegét. Például tételezzük fel, hogy egy orvosi műszereket gyártó cég keresi fel a programozót azon célból, hogy műszereihez szoftvert fejlesszen.
Teljesen világos, hogy addig nem jöhet létre semmilyen előzetes terv, amíg a programozó nem értette meg a műszerek mögötti orvosi alapelveket, az ebből következő adatokat és a kapcsolódó matematikát. E nélkül tervei és árajánlata elnagyoltak lesznek, amely súlyos hibalehetőségeket hordoznak magukban.
Az igényfelmérést (a követelmények feltárását) több módszer és segédeszköz is támogatja:
interjú,
kérdőív,
nyílt kérdőív - nincs előre megadott válasz,
zárt kérdőív - a válaszok előre adottak,
vegyes kérdőív,
dokumentumok gyűjtése, elemzése,
ötletbörzék szervezése,
etnográfia - ebben a vonatkozásban a felhasználók tevékenységeinek figyelését jelenti,
hasonlóságok kutatása más rendszerekkel,
gyakorlat az adott területen,
diagram készítése - ok-okozati összefüggések rajzolása.
Forrás - Source: www.szit.hu
A követelménytervezés 1. félhivatalos lépése a gyönyörű magyar szóval megvalósíthatósági tanulmánynak nevezett dokumentum, amely az alábbi kérdésekre keresi a választ:
A szoftver támogatja-e az ügyfél célkitűzéseit?
Megvalósítható-e az adott technológia, költségvetés és ütemezés mellett?
Integrálható-e a már meglévő rendszerekkel?
Forrás - Source: www.szit.hu
Az igényfelmérés, a követelmények teljes feltárása, a megvalósíthatósági tanulmány egy hivatalos dokumentumban, a specifikációban ölt végső testet. Olyannyira hivatalos ez, hogy külön szabvány foglalkozik vele (ANSI/IEEE 830-1993 - IEEE Recommended Practice for Software Requirements Specifications). Egyúttal ez a dokumentum az alapja az ügyfél és a szoftverfejlesztő között létrejövő üzleti szerződésnek.
A specifikáció tehát egy olyan előzetes, komplex formátumú szöveg, valamint tervrajz, amely egyaránt tartalmazza a megrendelőnek a programmal kapcsolatos ötleteit, szándékait, hivatalos elvárásait, az általa támasztott formai-tartalmi követelményeket és a kivitelező programozó (cég) szakmai elképzelései közti kompromisszumok eredményét.
Mivel a specifikáció összesített dokumentum, a szoftverprojekt minden résztvevőjének szakmai véleményét tartalmazza:
Forrás - Source: www.szit.hu
Nézzük meg a specifikáció általános felépítését:
Bevezetés
célok
felhasználási terület
szakkifejezések
rövidítések
hivatkozások más dokumentumokra
áttekintés a dokumentum hátralévő részéről
Általános leírás
miért van szükség a termékre
funkciók
használati jellemzők
megszorítások
feltételezések és függőségek
Speciális követelmények
más rendszerekhez való kapcsolódás lehetőségei
Függelék
hardver leírás
adatbázis leírás
Tárgymutató
hagyományos betűrendes
funkciók
diagramok indexe
A specifikáció elkészítése költséges és hosszadalmas eljárás, ezért kisebb projektek esetében sokszor nem is éri meg elkészítése (vagy közös megállapodás szerint azt is leszámlázzák).
Utolsó gondolatként nézzünk meg a követelményfeltárás és elemzés általános menetét, amely lényegi összefoglalója a fenti folyamatoknak:
Forrás - Source: www.szit.hu