Szoftverfejlesztési folyamat

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.

forrás: wikipédia

Legyen ez a vitaindító. Nekem ez a fajta fejleszési modell jön be, ha szoros a határidő, és pénzre megy a dolog. Ha nem annyira vagyok időszűkében, vagy éppen hobbiprojekt, akkor extreme programming. Az extreme programmingnál gyakran változik a specifikáció, és emiatt rengetegszer újra kell tervezni részeket, ami óriási overhead tud lenni.
Vannak itt nálam sokkal tapasztaltabb programozók. Nektek mi a véleményetek erről? Melyik modell vált be nektek és miért?

Hozzászólások

ez a fejlesztesi modell altalaban nem mukodik, inkabb az agilis modellek. az XP se rossz, en is inkabb a szerint szoktam.

a masik meg, ami szobajohet, az a test-driven development. egy fejleszto irja a tesztet (nem feltetlen unit), amivel "specifikalja" a megoldando problemat, Te pedig ugy irod meg a kodod, hogy atmenjen a teszten.

persze ehez a tesztnek 100% use-case coveraget kell tudnia.

Én még kicsit zöldfülű vagyok, de engem nagyon tud zavarni, ha kapok egy félkész specifikációt, aztán a fejlesztési ciklus 1/3-ada körül (tehát amikor megterveztem a rendszert, megírtam a keretet, kész az adatbázis, és a modulokat csinálgatom éppen) jönnek olyan igények, ami miatt a fél addigi munkámat dobhatom ki. Ezért lenne szimpatikus a fenti modell, mert mire eljut hozzám a cucc, már specifikálva van, és jól meg tudom tervezni, hogy mit akarok csinálni és hogyan.

Andi, really. Take it from me. If I tell you something, I'm usually right.

Alaptetel, hogy a megrendelo nem teljesen tudja, hogy mit akar, es arrol vegkepp fogalma sincs, hogy ami valtoztatast ker, az mivel jar. Meg informatikaban jartas ember sem mindig gondolja at.
Szoval mindenkepp minel konnyebben modosithatora kell tervezni. A fix modelleket meg felejtsd el!

----
I have a solaris box that does nothing.. its pretty good at it aswell. - besok, deviantart
honlapkészítés

Ez szerintem nagyon meretfuggo.
1-2 fo eseten az elejen kell valami terv, fel kell osztani a feladatot ertelmes modon, megbeszelni a kozos interface-eket, es neki lehet allni kodolni.
Max 10 foig extreme programming. Mondjuk itt fugg attol is, hogy abbol miket tartasz be, mert legutobb amikor neztem, meg csak iranyelvek voltak. (Mondjuk az sok helyen luxus lenne, hogy 2 ember ugy kodoljon, hogy kozben az egyik csak nezi.)
Afelett mar johetnek a komolyabbnak hivott folyamatok, ami szerintem foleg projektvezetoi maszturbacio. Bar teny, hogy tulsagosan nagy projectre en sem tudnek sokkal jobbat. Azert a feladat jellege itt is nagyon meghatarozo: ha fel lehet bontani ertelmesen kezelheto reszekre, akkor 1-2 zseni kell csak, aki felbontja, kitalalja az interface-eket, dokumentalja, aztan a reszeknek neki lehet esni XP szerint.

----
I have a solaris box that does nothing.. its pretty good at it aswell. - besok, deviantart
honlapkészítés

1. A megrendelonek halvany sejtese van arrol, hogy mire van szuksege.
2,3. A programozo elmondja mikepp lehetne megvalositani, amire a megrendelo elenken bologat es kozli, hogy jo lesz. A megrendelonek a legnagyobb problemaja, hogy az alkalmazas a jelenlegi vason is fusson.
4,5. A proramozo korabbi munkai alapjan ossze copy-pastezi a kod nyers valtozatat.
6. Az igy elkeszult programot a megrendelo megszemlezi, es jo esetben kiegesziti az addigi igenyeit, olyanokkal ami a kod teljes ujrairasat vonja magautan. Rossz esetben surun bologat, majd elkeri a futtathato allomanyt "nezegetesre" es fizetes nelkul eltunik, mint szurke szamar a kodben.
7. A programozo kodol mint az allat, hogy beleferjen a hataridobe, egyes reszeket az alapoktol kezdve ujrair.
8. A programozo atadja a beta valtozatot, betanitja a titkarnot a hasznalatra.
9. A programozo honapokon keresztul anyazik, hogy a megrendelo fizessen.

Ez elegge sarkitott valtozata a kisvallalkoyoi szintu "alkalmazasfejlesztesnek".
Ha fusiprojectrol van szo, altalaban osszeirom az elkepzeleseket, es az alapjan kodolok.
--
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "

A szoftver életciklusa

[...]

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

A szoftver életciklusa itt még egyáltalán nem ér véget, lásd: támogatás, karbantartás, továbbfejlesztés, egyebek.