A szoftverfejlesztés eszközei Fejleszt! eszközök Segédeszközök (szoftverek) programok és fejlesztési dokumentáció írásához elemzéséhez teszteléséhez karbantartásához 2
Történet (hw) Lyukkártya válogató gépek Mechanikus számológépek Els! generációs gépek: elektro- mechanikus számológépek (relék, rádiócsövek) analóg digitális 3 Történet (hw folyt.) Második generációs gépek: tranzisztor Harmadik generációs gépek: integrált áramkörök Negyedik generációs gépek: mikroprocesszor 4
Történet (hw folyt.) Mainframe terminálok Mini terminálok, munkaállomások Personal Computer 5 Történet (sw) 1940-es évek: Közvetlen gépi kódú programozás 1950-es évek: Korai eszközök, gépikódú programozás. 1960-as évek: Magasszint" programozási nyelvek. Mainframek kereskedelmi forgalomban. Operációs r. 1970-es évek Kollaborativ szoftverek, mini számítógépek. 1980-as évek: Személyi számítógépek, végfelhasználói programok 1990-es évek: Objektum orientált programozás. Hálózati technológiák 2000-es évek: Menedzselt kód, interpretált script nyelvek. 6
Történet (felh. felület) Lyukkártyák, konzol, irógép Karakteres terminálok Grafikus megjelenít!k GUI Mobil eszközök 7 Programozási elvárások Kifejez! képesség komplexitás csökkentése Integráltság tudás kiterjeszthet!sége Er!forrás igény Méretezhet!ség Flexibilitás 8
Programozási nyelvek generációi 1GL közvetlen gépi kód 2GL assembly 3GL magas szint" nyelvek compiler 4GL spec. (általában adatbázis alk.) célú magas szint" nyelvek 5GL vizuális, komponens alapú eszközök 9 Programozási paradigmák Programozási stílus Imperatív programozás Procedurális nyelvek Objektum orientált nyelvek Deklaratív programozás Funkcionális nyelvek Logikai nyelvek Kevert nyelvek 10
Eszközök Magas szint" eszközök Rendszer-elemzés üzleti logika Rendszer-tervezés részletes modellek prototípusok Alacsony szint" eszközök Tervezés Implementáció Támogatás 11 Parancssori eszközök 2GL, 3GL nyelvek compiler, linker commandline tools edit-compile-run/debug ciklus projekt menedzsment toolbox, utilities make scripting szöveg feldolgozó eszközök 12
Integrált fejleszt! környezetek edit-compile-run/debug ciklus kényelmesebbé tétele integrált eszközök editorból elérhet! funkciók pretty print forrás szint" debugger project kezelés forrás fájlok, resource-ok plug-in architektúra kollaborációs eszközök 13 Integrált fejleszt! környezetek Apple XCode/Interface Builder eclipse 14
Speciális fejlesztések környezetei IRIS Performer: OpenGL fejlesztés 15 Speciális fejlesztések környezetei LabView: Mérés, adatgy"jtés, hw-tesztelés 16
Speciális fejlesztések környezetei Macromedia Director: Multimédia 17 Speciális fejlesztések környezetei XCode: Cross-platform (iphone) fejlesztés 18
Magasszint" CASE eszközök fejlesztési munka módszertanhoz kapcsolódó támogatása tipikus CASE megoldások felh. felület tervezés adat modellezés configuráció és verzió menedzsment objektum orientált elemzés/tervezés reverse engineering félformális eszközök CASE eszközök integráltsága 19 Magasszint" CASE eszköz (pl.) WinDev 20
Támogató eszközök (pl.) CodeCollaborator: Kódátvizsgálás (review) 21 Konfiguráció management Különböz! szoftver verziók op. rendszer funkcionalitás spec. követelmények Konkurrens fejlesztés csapatmunka párhuzamos tesztelés gyakori építési fázis 22
Verzió management Verzió leszármazási fa kezelése Verzió (release) azonosítás Tárolás management Változás történet kezelés Konkurrens fejlesztés támogatása Projekt támogatás 23 Rendszer visszafejtés (reverse engineering) A program elemzése, hogy megértsük m"ködését Információ kinyerés Hierarchikus mentális modellek létrehozása adat és vezérlési folyam alrendszer struktúra architektúra, tervezési minták 24
Reverse engineering támogatása (pl.) JUDE: UML modellezés 25