A szoftverfejlesztési módszertan a szoftver életciklusának különböző szakaszaiban alkalmazott, közös filozófiai megközelítésű módszerek összessége [1] .
Mindegyik módszertant a következő [2] jellemzi :
Egy adott esetben, amikor a módszertant a programozási (tervezési) szakaszban alkalmazzák, általában programozási paradigmának nevezik [2] .
A módszertanok háromféleképpen követhetők nyomon. Először is, gyakorlati tapasztalatok kifejezői lehetnek. Másodszor, a módszerek a négy algoritmusmodell egyikéből származhatnak: absztrakt Turing-gép (imperatív programozás), Hilbert és Ackerman rekurzív függvények (strukturált programozás), Church lambda-kalkulus (funkcionális programozás), normál Markov-algoritmusok (logikai programozás) [3] [4 ] ] . Harmadszor, a módszertanok a modellező nyelv három struktúrájának egyikének a programozási nyelv szerkezetére való leképezésével magyarázhatók [5] . Az alkotórészek lehetnek adatstruktúra , vezérlőstruktúra és logika . A kilenc leképezés mindegyike meghatároz egy módszertant vagy egy meglehetősen komoly programozási módszert. Például a logikai-logikai leképezés a logikai programozás alapja [4] .
Ha a módszertant úgy közelítjük meg, hogy az algoritmus leírási módszerének megfelelő magja ( eng. core ) és további jellemzői is vannak , a következő öt fő módszertani mag különböztethető meg [6] :
Látható, hogy ezek a módszertanok a navigációs (lépésről lépésre történő végrehajtás vezérlésétől) a specifikációig (az eredmény követelményeinek meghatározása) terjedő skálán mozognak [6] .
A specifitás (topológiai specifitás) a módszerek kiválasztásának módja a módszertan magjának finomítására. Egy adott topológia minőségi kritériuma lehet a szoftverfejlesztés összköltsége. A fejlesztési költségek pedig egyebek mellett a kulcsfontosságú nyelvi absztrakcióktól függenek: adatabsztrakciótól, vezérlőabsztrakciótól és modularitástól. Például egy imperatív módszertanban ragaszkodhatunk a strukturált programozás módszereihez , ami a nyelvi absztrakciók szempontjából előnyösebb topológiát ad. Az eredmény egy strukturált programozási módszertan [7] .
A hardver architektúra szerint a megvalósítás lehet központosított vagy párhuzamos. Például az (imperatív) párhuzamos programozás módszertana, a logikai párhuzamos programozás módszertana [8] .
Ezenkívül a módszertan lehet hibrid is. Például a funkcionális és logikai programozás leggyakoribb keveréke [8] .
Kutatások folynak a programozási módszertanok egységesítéséről is.
A programozási nyelvek ugyan támogathatnak bizonyos módszertanokat, de ez nem jelenti azt, hogy egy adott nyelvet egyáltalán ne lehetne használni olyan módszertannal, amely nem őshonos, hanem csak azt, hogy több erőfeszítésre és erőforrásra lesz szükség [2] .
A programozási módszerek különböznek a különböző jellemzőkkel rendelkező problémák megoldásának teljes költségében (tudományos számítások, pénzügyi problémák, valós idejű rendszerek stb.). A feladatok nagysága és a készülő szoftver hatékonysága is fontos tényező a programozási módszertan megválasztásában [9] .
Szoftverfejlesztés | |
---|---|
Folyamat | |
Magas szintű koncepciók | |
Útvonalak |
|
Fejlesztési módszertanok | |
Modellek |
|
Figyelemre méltó alakok |
|