Szoftver

A szoftver (angol: software) alatt a legszűkebb értelemben elektronikus adatfeldolgozó berendezések (például számítógépek) memóriájában elhelyezkedő, azokat működtető programokat értünk. Körülbelül ez volt a John W. Tukey által 1958-ban bevezetett angol software kifejezés eredeti értelme is.

A szoftvert az különbözteti meg a fogalmilag vele szembeállított, és azt kiegészítő hardvertől, hogy egy programvezérelt berendezésnek a hardver az egyedi, fizikai részét, míg a szoftver az általános, szellemi részét jelenti. Egy példával megvilágítva: két egyező típusú, minden szempontból azonosan felszerelt és egyformán működő számítógép esetében a hardver az, ami miatt két különálló gépről beszélünk, és a szoftver az, ami a két gépben egy és ugyanaz. A hardver fizikai jellegénél fogva egyedi és megismételhetetlen, míg a szoftver éppen az önmagával azonosan ismételhetőt, a tökéletesen másolhatót jelenti. A világon emberek milliói használják egymástól függetlenül, nap mint nap, ugyanazt a szoftvert; ám ha több felhasználó ugyanazt a hardvert használja, akkor szükségképpen osztozniuk kell annak véges, fizikai erőforrásain.

A szoftver nemcsak elektronikus memóriatartalomként realizálódik, hanem életciklusának megfelelően többféle formában jelenik meg, fogalma ezekre a megvalósulási formákra is kiterjed, így a szoftver fogalmába tágabb értelemben beletartozik:
 az összes fejlesztési dokumentáció (mint például a forráskód);
 az összes felhasználói dokumentáció (mint például a felhasználói kézikönyv);
 az összes kereskedelmi dokumentáció (mint például a licenc);
 illetve az ezek bármelyikét tartalmazó adathordozók (mint például a telepítő CD vagy a nyomtatott számla).

Az összetett feladatok elvégzésére kifejlesztett, egymással szoros kapcsolatban álló, önállóan is működőképes, de együttesen hatékonyabb és teljesebb támogatást nyújtó, éppen ezért teljes életciklusuk során együtt kezelt szoftverek csoportját programcsomagnak nevezzük.

A szoftverek funkciójuk szerint 

A programvezérelt gépek célszerű működését a szoftverek több rétege biztosítja. Aszerint, hogy egy szoftver specifikusan mennyire inkább a gép puszta működtetését, avagy az ember által igényelt feladatmegoldást segíti elő, a következő funkcionális csoportokat különböztetjük meg:
 indítóprogram vagy alapszoftver – a felhasználó által a legkevésbé manipulálható, a gép üzemszerű működését beállító program(ok), ide tartozik a firmware is;
 rendszerszoftver – a gép és perifériái kommunikációját lebonyolító programok, beleértve a felhasználó oly mértékű kiszolgálását, amely lehetővé teszi a számára más szoftverek elkészítését és üzembe helyezését is;
 alkalmazói szoftver vagy alkalmazások – a felhasználót a számítógép használatán túl mutató céljainak elérésében támogató specifikus programok.
 felhasználó által készített szoftver – valamilyen alkalmazáson belül, annak támogatását kihasználó, programozói ismeretek nélkül elkészíthető programok.

Rendszerszoftverek 

 Operációs rendszerek
 Meghajtóprogramok (driverek)
 Segédprogramok
 Fájlkezelők
 Szövegszerkesztők (editorok)
 Tömörítők
 Fejlesztési környezetek
 Fordítóprogramok (compilerek)
 Értelmezők (interpreterek) és futtatókörnyezetek
 Nyomkövetők és hibakeresők (debuggerek)
 Programszerkesztők (linkerek)

Alkalmazói szoftverek 

 Irodai szoftverek
 Szervezőprogramok
 Prezentációkészítők
 Kiadványszerkesztők
 Táblázatkezelők
 Üzleti alkalmazások
 Számlázóprogramok
 Könyvelő programok
 Adatbázis-kezelők
 Vállalatirányítási rendszerek
 Tervezőrendszerek
 CAD-rendszerek
 Grafikai szoftverek
 Rajzprogramok
 Képszerkesztők
 Média szoftverek
 Médialejátszók
 Médiaszerkesztők
 Kommunikációs szoftverek
 Levelező programok
 Csevegő programok
 Távbeszélő programok
 Hálózati alkalmazások
 Webböngészők
 Fájlcserélők
 Rosszindulatú alkalmazások
 Vírusok
 Férgek
 Kémprogramok
 Biztonsági programok
 Vírusellenőrzők
 Kémprogram-felderítők
 Titkosító programok
 Tűzfalak
 Játékszoftverek

Felhasználó által létrehozott szoftverek 
 Makrók
 Prezentációk
 Játékkészítő programok programjai
 Adatbáziskezelő-generátorok

A szoftverek kereskedelmi kategóriái 

A szoftverek főbb kereskedelmi kategóriáit voltaképpen a tulajdonjogot és a szoftverhasználatot szabályozó licencek alapján lehet felállítani. Első megközelítésben leszögezhető, hogy (kereskedelmi és jogi értelemben) ahány féle licenc, annyi féle szoftver létezik; a licencelés lényegi kitételeit tekintve azonban kialakult néhány közhasznú kategória is:

 Kereskedelmi szoftverek
 Shareware-ek
 Adware-ek és a Spyware-ek
 Freeware-ek
 Nyílt forráskódú szoftverek
 Szabad szoftverek
 Abandonware-ek
 Ingyenes szoftverek

A szoftver életciklusa 

A szoftver előállítása termelési folyamat, számítógépes programok előállítására irányul. A termék egy számítógépes program, ami egy feladat megoldására szolgál. A gyártási folyamat felosztható az elemzés, fejlesztés, üzembe helyezés fázisaira. A programozás előtti tevékenységet rendszerelemzésnek nevezzük.

1. lépés: rendszerelemzés
A program megrendelője megfogalmazza igényét, hogy mit szeretne a számítógéppel megoldani.

2. lépés: rendszerfejlesztés
Az algoritmus az az eljárás, amivel a bevitt adatok felhasználásával a kívánt eredményt megkapjuk.

3. lépés: specifikáció
A megbízó, a rendszerfejlesztő, és a programozó együtt megalkotja azt a modellt, ami alapján a tényleges program működni fog. A specifikáció a szakmai nyelv mellett tartalmazza a programozói szóhasználatot a felhasználó számára érthető formában. Ebben leírják:
 a tervezett hardverigényt
 a tervezett op.rendszert
 milyen adatokat kell rögzíteni
 hol, milyen formában kell az eredmény
 az alkalmazói programozási nyelvet
 milyen adatvédelemre van szükség.

4. lépés: algoritmus-tervezés
A cél a megoldás szerkezetének géptől és programozási nyelvtől független szerkezeti egységet bemutató leírása (szöveges algoritmus, jel-algoritmus).

5. lépés: megvalósítás
Ez a programozók feladata.

6. lépés: kódolás
A program összekapcsolt utasítások sorozata, ami a programozás terméke. A megtervezett program megvalósítása a programnyelv kiválasztásával történik.

7. lépés: tesztelés
Mielőtt a program alkalmazására sor kerül, ellenőrizni kell annak helyességét. A tesztelés a problémamegoldás biztosítéka (íróasztal-teszt, formai teszt, szintaktikai teszt, szemantikai teszt).

8. lépés: dokumentálás
A programdokumentáció a program felépítésével és megvalósításával kapcsolatos valamennyi dokumentum gyűjteménye (felhasználói kézikönyv, szemléltetési kézikönyv).

9. lépés: rendszerbevezetés
A letesztelt programok üzemeltetésre készek. A rendszerbevezetés az installálással kezdődik. Az üzemeltetőket, a felhasználókat ki kell képezni a program kezelésére, hibák elhárítására. A program üzemeltetése során szükség lehet apró módosításokra.

10. lépés: átadás
A felhasználó ekkor ismeri meg a végleges verziót.

Kapcsolódó szócikkek 
 Matematikai szoftverek listája

További információk 
 programleírás.lap.hu - linkgyűjtemény
 Szoftver.lap.hu - linkgyűjtemény
 Grafikaiszoftver.lap.hu - linkgyűjtemény

Szoftverek