Gyakorlati alapok III.

Kitérő: a szoftverkrízis avagy az OO szükségessége

 

Ebben a fejezetben kis kitérőt teszünk az osztálynak, tágabb értelemben az objektumorientált szemléletmódnak (gyakran nevezik OO-paradigmának) további magyarázatára. Ezt megpróbáljuk újfent egyszerű, a laikusok számára is felfogható gondolatokkal megfogalmazni, amelynek persze lesznek korlátai.

 

Talán nem túlzás azt állítani, hogy szinte minden fejlődés hajtómotorja valamilyen kényszer. A számítógép hardverelemeinek valójában rendkívül gyors változása, az új technológiák villámgyors elterjedése, sőt a programok egyre növekvő bonyolultsága folyamatos fejlesztési kényszert helyez a programozók vállára. Aki ebbe a versenybe nem száll be, az hosszabb távon csakis veszíthet, mert lemarad a technológiai fejlődésről. Az összes informatikai cég tisztában van ezzel, ezért is működik mindegyiknél egy külön R & D (research and developement - kutatás és fejlesztés) részleg, ha nem egy egész kutatási centrum.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Ha az elavult szoftver többé nem képes a hardvert kiszolgálni vagy azt csak nagy áldozatok, például jelentős erőforrás-elvonás vagy hibák árán, illetve a szoftver valamilyen okból funkcionálisan már nem képes teljesíteni feladatát, akkor szoftverkrízisről beszélünk.

 

A szoftverkrízist azonban sokszor értelmezhetjük mélyebb technológiai válságnak, hiszen nem csupán arról van szó, hogy adott célszoftver nem kezeli le a célhardvert, hanem a probléma megoldásához már gyökeresen új programozási szemléletre van szükség. A világ jónéhány ilyen szoftverkrízist átélt már, jóllehet a laikus felhasználó ebből semmit sem tapasztalt meg.

 

Ahhoz, hogy tovább pontosítsuk a szoftverkrízis fogalmát, el kell mélyednünk a szoftverek felé támasztott elméleti követelményekben. Angster Erzsébet Az objektumorientált tervezés és programozás alapjai című könyvében...

 

www.informatika-programozas.hu - Angster Erzsébet Az objektumorientált tervezés és programozás alapjai

 

...következő követelményeket fogalmazza meg. A szoftver legyen:

A fenti szempontokhoz én a következő érveléseket fűzném:

 

Bővíthető, karbantartható, újrafelhasználható

Ezek a szempontok lényegében összefüggnek. Ellentétben Leonardo da Vinci Mona Lisa című festményével...

 

www.informatika-programozas.hu

 

...a szoftvernek enyhén szólva nem előnyös, ha egyszeri és megismételhetetlen, sőt: fejlesztője számára létkérdés gyors karbantarthatósága, illetve ha a megírt kódok más helyen, más projektben, más szoftverben szintén felhasználhatók. Nyilvánvalóan a szoftver minél modulárisabb, annál könnyebb rajta bármit lecserélni, kijavítani, kiegészíteni, hasonlóan az autókhoz: az elemek döntő többsége ott is cserélhető, javítható, bővíthető. Jól néznénk ki, ha az autó egyetlen masszív, összehegesztett tárgyként üzemelne!

 

Szabványos, kompatibilis

A szabványosság és kompatibilitás kissé problematikus kérdés, hiszen a legelső, úttörő szoftverek és programozási paradigmák esetében még nem beszélhetünk szabványokról és bármerre is törekvő kompatibilitásról. A kompatibilitás alapjában véve, főleg a felhasználó szempontjából jogos elvárás (például új MS Word nyissa meg a régi .doc verziókat is), ám ennek létezik egy határozott, de mégis nehezen megfogalmazható határa, amelynek alapja mégis a szoftvercégek nyűggel teli, együttműködési kényszere (mert hiszen mindegyik egyeduralomra törne, ha ezt megtehetné és akkor már nem volna értelme kompatibilitásról beszélni).

 

A szoftver-szabványosság manapság még szintoly ködös fogalom, mint a kompatibilitás, bár nélküle hamar káoszba fulladna a szoftvertervezés, éppen ezért a szabványosságra való törekvés jól felfogott, önös érdekből tetten érhető a legtöbb szoftvercégnél. Gondoljunk csak a Windows szabványosnak mondható kezelőfelületeire.

 

Felhasználóbarát

Ha a szoftver használata során nem válik a felhasználó barátjává, akkor előbb-utóbb nem lesz ki használja, a fejlesztő tehát hosszabb távon magát a megrendelőt veszíti el. Ebből következően a célszoftver mindig a megrendelő igényeihez igazított. Felhasználóbarát és szabványos szoftver fogalmak lényegében összetartoznak, mert az a legelőnyösebb, ha a felhasználó minden funkciót mindig ugyanott talál meg és ez nem teljesíthető, ha nincsenek a szoftver-szabványok legalább "házon belül", azaz fejlesztő cégben lefektetve. A probléma az, hogy minél tágabb közönséget céloz meg a szoftverfejlesztő, cserébe annál több reklamációt várhat, következésképpen nincs olyan szoftver, amely mindenkinek egyformán tetszene.

 

Hatékony, helyes, hibatűrő

Ezen a tulajdonságok a szoftver alapfunkcionalitásához tartoznak. A legalapvetőbb elvárás a szoftver felé, hogy szolgáltasson helyes eredményeket, ha pedig erre nem képes (például elfogyott a műveleti memória), tájékoztassa erről a felhasználót és tegye meg a szükséges lépéseket a biztonságos leállásra. Persze az is igaz, hogy mégsem lehet lekódolni minden szoftverben minden lehetséges hibareakciót, az optimális szoftvertervezés tehát szorosan összefügg a hatékonysággal is.

 

Hordozható

A szoftver hordozható, ha különböző hardver-, és szoftverkörnyezetben is megőrzi funkcionalitását. Ám a meghatározások megint elmosódottak, hiszen linuxos program nem fog működni windows-os gépen, a hordozhatóság fogalma tehát további pontosításokat igényelne, amit most nem teszünk meg.

 

www.informatika-programozas.hu - Ezt most meg kell tanulni!

 

Amint érezhető, a fenti kritériumok fontos és jogos elvárások, mégis pusztán elméleti megközelítések, mert a tudomány jelenlegi állása szerint nincs olyan szoftver, amely a fenti elvárások mindegyikének maradéktalanul megfelelne.

 

A felsorolást mégis hasznosnak értékelhetjük, mert általa érzékelhetjük a szoftverfejlesztés szempontjainak egyre növekvő bonyolultságát, amely szakmai kihívást manapság már csak az objektumorientált szemlélet bevezetése és aktív alkalmazása képes megoldani.

 

Összefoglalásképpen nézzük meg a jelen pillanatban legmodernebb, objektumorientált  szemlélet legfőbb jellemzőit: