Ugrás a tartalomhoz

Szoftverfejlesztés

Ficsor Lajos, Krizsán Zoltán, Mileff Péter

Bevezetés. A szoftverfejlesztés életciklus modelljei. A szoftver fejlesztés mint modellezési tevékenység. Fejlesztési módszertanok. Követelmény analízis. A szoftvertervezés folyamata. A Unified Modeling Language (UML). A használati eset modell. Strukturális diagramok. Viselkedés diagramok. Az analízis modell. A tervezési modell. Az implementációs modell. Tervezési minták. További fejlesztési tevékenységek áttekintése. Esettanulmány.

Történelem: a szoftver technológia kialakulása és fejlődése

Történelem: a szoftver technológia kialakulása és fejlődése

A szoftver fejlesztés történetében az 1960-as évekig nyúlunk vissza. Ebben az időszakban már léteztek olyan számítógépek, amelyekkel nem csak tudományos kutatások és katonai alkalmazások igényeit lehetett kielégíteni, hanem a gyakorlatban felmerülő problémákat is meg lehetett segítségükkel oldani. A programokat speciális tudású kutatók készítették, akik eredeti szakmájuk (tipikusan villamosmérnök vagy matematikus) mellett képezték át magukat. A programok készítése lényegében a processzor instrukciókészletét leképező assembly nyelven történt. Minden program egyedi darab volt, és erősen kötődött ahhoz a számítógép modellhez, amire készült.

A 60-as évek végén következett be a későbbiekben „szoftver-krízis”-nek nevezett probléma. A hardver fejlesztések eredményeként megjelentek az úgynevezett harmadik generációs számítógépek, az előző modellekhez képest lényegesen hatékonyabban erőforrásokat nyújtva. Ezzel olyan problémák megoldására is alkalmassá váltak, amelyek egy nagyobb és bonyolultabb programok írását tették szükségessé. A korábban használt eszközök azonban erre egyre alkalmatlanabbnak bizonyultak. A növekvő fejlesztési igényeket nem lehetett időben kielégíteni, így a csökkenő hardver árakkal szemben egyre növekvő szoftver költségek jelentkeztek, az elkészült programok pedig nem megfelelő minőségűek lettek.

1968-ban ennek a problémának az elemzésére tartottak az érintett szakemberek egy konferenciát. Ekkor jelent meg először a „szoftvertervezés” fogalma. A konferencia legfontosabb megállapításai a következők voltak:

  1. hatékonyabb programozási eszközök szükségesek,

  2. a szoftverek fejlesztésére valamilyen módszeres megközelítést kell kifejleszteni az eddigi ad-hoc munkamódszerek mellett.

A szoftver technológia kialakulását ettől az időszaktól számíthatjuk, és fejlődését azóta is az határozza meg, hogy ez előbbi két kérdésre milyen választ tudunk adni.

Az 1970-es évek eredményei nagy vonalakban:

  1. az első úgynevezett magas szintű programozási nyelvek (Algol, Fortran, Cobol) kialakulása,

  2. a programozói munka szakmává válása, a csoportmunka igényének megjelenése,

  3. az algoritmusok és adatszerkezetek terén folyó kutatások,

  4. a legelső rendszeres programozási módszerek (strukturált, majd moduláris programozás) kidolgozása.

Az 1980-as évek legfontosabb eseményei:

  1. a számítógépek teljesítményének növekedése és sorozatgyártásuk megindulása egyre több szervezet számára tette lehetővé alkalmazásukat a mindennapi működésük során.

  2. Megjelentek az interaktivitást lehetővé tevő perifériák (terminálok)

  3. Kialakultak az első számítógépes hálózatok

  4. Nagy mennyiségű adatok változatos módon történő felhasználása vált szükségessé – megjelent az adatbázis fogalma

  5. Strukturált programozás nyelvek használata (C, PASCAL)

  6. és egy újdonság, ami később nagy jelentőségű lesz: 1981-ben jelent meg az első PC.

Ezek az események nyilvánvalóvá tették, hogy a szoftver előállítása mérnöki tevékenység, és méretei, bonyolultsága miatt csak csoportmunkában végezhető. Kialakultak a kezdeti (funkcionális szemléletű) módszertanok, a hatékonyabb munkát lehetővé tevő integrált fejlesztő környezetek és a kora CASE (Computer Aided Software Engineering) rendszerek.

Az 1990-es évektől a fejlődés minden területen felgyorsult. A hálózati technológiák rohamos terjedése (az Internet kialakulása) és a PC kategória tömegessé válása fokozatosan a vállalatok mellett a magánemberek számára is lehetővé tette a számítógépek használatát. Tovább bonyolítja a helyzetet a számítógépes, telekommunikációs és műsorszolgáltató hálózatok folyamatos közeledés és összefonódása. Erre a robbanásszerű fejlődésre az objektum orientált technológiák, a komponens szemlélet, a szabványok kialakulása és alkalmazása, egyre összetettebb fejlesztő környezetek és a szoftver technológia mérnöki szemléletű módszerei próbálnak választ adni.