Szoftverkrízis
A szoftverkrízist különböző források más-más nézőpontból határozzák meg. A közösnek tekinthető lényeg, az a felismerés, hogy a kialakult szoftverfejlesztés (inkább karbantartás) válsága, amely szerint az addig alkalmazott módszer már nem képes az igényeknek megfelelő, szoftver előállítására és/vagy karbantartására.
A „szoftverkrízis” szót F.L. Bauer alkotta meg az első NATO-Szoftverfejlesztés Konferencián 1968-ban a Garmischban, Németországban.[1] A kifejezést már Edsger Wybe Dijkstra is használta 1972-ben a ACM Turing Award előadáson.[2]
A felhasználók igényei egyre bonyolultabb, de gyorsabb előállíthatóságú programok. A felhasználóbarát felület, a kényelmes és biztonságos hozzáférés, ezek mind a program szerkezetet bonyolítják. Egy adott technika a fejlődés során elérkezik az igények kiszolgálásakor arra a szintre, amikor már nehezen kezelhető segítségével a program bonyolultsága. így az elkészülő programok egyre megbízhatatlanabbak. (Határidőcsúszás, hibás részek, stb.) egyre lassúbbak lesznek és egyre lassabban készülnek el. Az ember képessége a bonyolultság áttekintésére korlátozott, mindig új és új módszereket kell kitalálni az egyre összetettebb feladatok biztonságos és hatékony megoldásához.
Tünetei
[szerkesztés]- a programok megbízhatatlanok (pl. nem tudja a specifikációt)
- a programok képtelenek az alkalmazkodásra (operációs rendszer változásra érzékeny, konfiguráció változásakor körülményes az átparaméterezés)
- nehézkesek (nem állíthatók össze részprogramokból, a bővítés aránytalanul nagy munkával jár)
- udvariatlanok (helytelen beavatkozás nem javítható, a program lefagy, csak azt írja ki, hogy gond van, de hogy mi azt nem)
A krízis okai
[szerkesztés]- az előállított szoftverek méretének növekedése maga után vonta a komplexitás növekedését is
- minőségi követelmények változása
- a fejlesztési módszerek nem tartottak lépést a változással
- felhasználói környezetek változása
Megoldás
[szerkesztés]- a szoftverkészítés technologizálása
- új elvek, módszerek kidolgozása
- szoftver szabványok bevezetése
- új programozási paradigmák alkalmazása