|
A
számítógépek kézzel közvetlenül meg nem fogható részeinek
gyűjtőneve.
A szoftver önmagában nem képes létezni, hanem
mindig valamilyen hardvereszközön kerül tárolásra a számítógép
által történő feldolgozásig.
Csoportosítás:
Rendszerszoftverek:
A számítógép egyes részeinek zavartalan együttműködését
biztosítják:
BIOS
(alapvető bemeneti/kimeneti rendszer): olyan szoftver, amely a
számítógépgép ROM típusú memóriájában található.
Feladata:
az egyes hardver elemek működésének irányítása, az alapvető gépi
folyamatok vezérlése
Operációs rendszerek:
olyan szoftverek, amelyek a számítógép működtetéséhez szükséges
parancsokat értelmezni tudják és azokat végre is hajtják.
Feladatai:
a hardver kezelése, a programok betöltése az operatív tárba és
azok futtatása, kapcsolattartás a futó programokkal és a
felhasználóval, a háttértárak tartalmának kezelése, adatok
kezelése és átvitele, megszakítás- és hibakezelés.
Rendszerközeli szoftverek:
Megkönnyítik az operációs rendszerek használatát (pl: Total
Commander), segítik a programkészítést (pl.: Turbo Pascal
programozási nyelv)
Alkalmazói és felhasználói szoftverek:
Valamilyen konkrét feladat megoldására kifejlesztett szoftver.
A fontosabb területek:
Szövegszerkesztés, adatbázis-kezelés,
táblázatkezelés, az információ grafikus megjelenítése,
számítógéppel támogatott tervezés, szimuláció, játék,
szórakozás.
A szoftverfejlesztés struktúrája:
A szoftverfejlesztés területe magában foglalja mindazon elveket,
módszereket és eszközöket, amelyek célja a programok megbízható
és hatékony elkészítésének támogatása. A szoftverfejlesztés
átfogó lépéseinek leírására több megközelítési mód létezik. A
szoftver életciklusa a szoftver teljes élettartamát fogja át, a
kezdeti elképzelésektől egészen a végső elavulásig.
A szoftverfejlesztés egyes lépései több szempontból is
különböznek egymástól.
Az egyes fázisok viszonyait szemlélteti a szoftverfejlesztés
piramisa:

A piramis az egyes lépések eredményeinek terjedelmét is tükrözi.
Induláskor az ötlet, az igény leírható néhány oldalon, azonban a
specifikációnál már egy könyv is megtelne az elkészült
leírásból. A programozásnál több ezer programsor keletkezik,
amelyet még nagyobb helyigényű gépi kódra alakítanak a
végrehajtáshoz.
A szoftverfejlesztést csak hatékony
segédeszközökkel lehet a mai igényeknek megfelelően
elvégezni. Az eszközök lehetnek számítógépi segédprogramok, mint
pl. a
fordítók, de magukban foglalják a módszertani
segédeszközöket is. A szoftverfejlesztés technikájának korai
fejlődési szakaszára az volt a jellemző, hogy a munka jelentős
része az emberre volt bízva, és egyéni döntései
alapján, teljesen szabadon dolgozott.
Ez azonban jelentős időráfordítással és az
eredmény ad-hoc jellegével járt.
Napjainkban egyre nagyobb szerep jut a
szoftverfejlesztést segítő programoknak, és
a mind szélesebb területet lefedő fejlesztési
módszereknek. Csak segítségükkel biztosítható
a felgyorsult fejlesztési tempó mellett is a megbízhatóság,
szemantikai helyesség,
karbantarthatóság, rugalmasság, hordozhatóság
követelményeinek betartása.
Az általános rendszerfejlesztési metodikák
mellett minden területnek, így a szoftverfejlesztésnek
is megvan a saját egyedi vonása jellege. A sajátos követelmények
megnehezítik a tervezés folyamatát. Brooks összefoglalja a
szoftverfejlesztési
módszerek sajátos szoftvervonásait:
- komplexitás: a szoftver
egymáshoz kapcsolódó komplex tevékenységek, megkötöttségek
és struktúrák leírására, leképzésére szolgál. A szoftver tükrözi
a valós világ
komplexitását, a tervező a valóságot különböző összetettségi
szintekre képezheti le.
- illeszthetőség: a
szoftver nem önmagában működik, hanem meglévő hardver és
szoftverkörnyezetben. Így problémamentesen kell illeszkednie
azokhoz.
- rugalmasság: a valós
világnak az alkalmazási területet érintő változásait követni
kell, ami a módosítások gyorsaságát és áttekinthetőségét
igényli.
- elvontság: a leírt
programkód alapján az ember nem tudja érzékelni a működést, a
megvalósulást (legalábbis bizonyos szoftverméret felett). Így
nem lehet közvetlenül ellenőrizni a szoftver
helyességét, csak próbálkozással, ami viszont nem ad abszolút
megbízhatóságot.
A szoftvertervezés folyamata a szoftver fejlesztésének
élettörténetébe tartozik. A tervezőnek számos és különböző
forrásból származó információ alapján kell elkészítenie a
szoftver tervét, specifikációját.
A rendszertervezőnek átfogó ismeretekkel kell
rendelkeznie több szakterületről is. Vitakérdés, hogy mi
könnyebb: átképezni egy programfejlesztőt az adott terület
szakemberévé, vagy egy szakembert megtanítani a
programfejlesztés technikájára. Egyik sem könnyű feladat, ezért
az egymáshoz közelítéssel, azaz két vagy több ember
együttműködésével oldják meg a feladatot. A szoftverfejlesztés
csoportmunkán alapul, mely a feladatok célszerű szétosztását, a
munka koordinálását és ellenőrzését igényli.
|