A szoftvertervezés alapelvei
Mi is az a szoftver?
A szoftver többnyire egy számítógépes program, amely valamilyen feladatot végez. A szoftverek nagyon sokfélék lehetnek. Pl. szoftver működteti a mikrohullámú sütőt vagy a telefonunkat de akár a Curiosity marsjáró rendszerei is mind - mind szoftvereknek köszönhetően működnek. A szoftverek tulajdonságaikból és feladataikból adódóan csoportokba sorolhatók. Mivel nagyon sokrétű felhasználási területen képviseltetik magukat, ezért minden szoftver specializálódott valamilyen területre. A területek kisebb területekre bomlanak és így tovább egészen addig, míg egy célszoftvert definiálhatunk.
Miért kell megtervezni a szoftvereket?
Napjainkban egyre több területet kötnek össze a számítógép alapú rendszerek. A szoftverek ebben a környezetbe a rendszerek (hardverek, hálózat, szoftverek) egyre nagyobb és növekvő hányadát teszik ki.
Ezért egyáltalán nem mindegy, hogy egy szoftver beváltja -e a hozzá fűzött reményeket vagy sem. Magyarul kifizetsz érte egy rakás pénzt, és a végén senki nem sértődik meg, ha működik. Legfőképpen fontos, hogy az un. *kritikus rendszereknél, hogy jól és megbízhatóan működő szoftverek kerüljenek átadásra.
* Kritikus rendszer: olyan rendszerek, ahol létfontosságú pl. életek függhetnek tőle, hogy a szoftver megfelelően működjön. Ilyen lehet egy kórházi berendezés, egy repülésirányító rendszer, de egy egyszerűbb inzulin adagoló pumpa szoftvere is.
Mivel vállakozó vagy, ezért neked nem az inzulinadagoló pumpa szoftvere lesz a mérvadó, hanem az, hogy a 129 megrendelés pontosan mennyi alapanyagot vitt el, és megérte -e neked azt legyártani vagy sem.
A szoftverek tudatos tervezése valahol az 1960-as évek végén kezdődött. Ugyanis akkor jelentek meg olyan hardverek (szoftvereket futtatni képes számítógépek) amelyek már képesek voltak komplexebb és bonyolultabb szoftverek futtatására is. A bonyolult szoftverek azonban egyre nagyobb kihívás elé állították a programozókat. Időszerű volt tehát elgondolkodni azon, hogy a jövőben megjelenő szoftvereket tudatosan megtervezzék mielőtt nekiállnak a megvalósításuknak. A tervezéssel rengeteg programozásra fordított idő volt megtakarítható.
Milyen életciklusai vannak egy szoftvernek?
Ideális esetben ez a következőképpen néz ki:
- megjelenő igény
- tervezés
- kivitelezés + tesztelés
- leszállítás
- evolúció azaz továbbfejlesztés
Egy üzleti szoftver tervezésénél és kialakításánál kritikus lehet, hogy minél előbb működjön néhány fontos funkció. A kisebb vagy nem annyira fontos feladatok megvalósítása menet közben is létrejöhet. A nagyobb és fontosabb funkciók megléte és működése azért is fontos, mert a legtöbb esetben az egyedileg fejlesztett rendszerek egyes életciklusai (verziók között eltelt időszak) nagyon rövidek is lehetnek. Akár néhány hét alatt is megváltozhatnak a kívánalmak. Erre mindenképpen fel kell készülni és úgy kell tervezni az egyes fő funkciókat, hogy azok könnyen módosíthatóak, cserélhetőek legyenek.
Sok esetben akkor derül ki egy-egy programrészről, hogy beváltja-e a hozzá fűzött reményeket, ha elkezdik használni. Nem biztos, hogy amit a cégvezetés vagy a management a működéssel kapcsolatban megálmodott, az a valóságban is jól teljesít majd. Egy tapasztalt szoftvertervező vagy projektmanager rengeteg fölösleges munkától és költségtől tudja megkímélni mindkét felet. Az ügyfelet azért, mert olyan javaslatokat tesz vagy tehet, amire a megbízók nem is gondolnak, a fejlesztő cégnek pedig az előrelátásával biztosítja, hogy az átadott rendszer az elvárásokhoz a lehető legjobban közelít.
Azért kiemelkedően fontos ez, mert az informatikai fejlesztések 90%-a sikertelen!
Balogh Béla