A szoftverfejlesztés eszközei
Szoftver-technológia I.
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
Történet (hw folyt.)
• Mainframe • terminálok • Mini • terminálok, munkaállomások • Personal Computer
5
Szoftver-technológia I.
• • • • • • •
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
13
Integrált fejleszt! környezetek
Apple XCode/Interface Builder
eclipse
14
Szoftver-technológia I.
Speciális fejlesztések környezetei
IRIS Performer: OpenGL fejlesztés 15
Szoftver-technológia I.
Speciális fejlesztések környezetei
LabView: Mérés, adatgy"jtés, hw-tesztelés
16
Szoftver-technológia I.
Speciális fejlesztések környezetei
Macromedia Director: Multimédia
Szoftver-technológia I.
17
Speciális fejlesztések környezetei
XCode: Cross-platform (iPhone) fejlesztés
18
Szoftver-technológia I.
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
Szoftver-technológia I.
Magasszint" CASE eszköz (pl.)
WinDev
20
Szoftver-technológia I.
Támogató eszközök (pl.)
CodeCollaborator: Kódátvizsgálás (review) 21
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
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
Szoftver-technológia I.
Reverse engineering támogatása (pl.)
JUDE: UML modellezés 25