Szoftver technológia I. Oktatók Sziray József B602 Heckenast Tamás B603 2
Tananyag Elektronikus segédletek www.sze.hu/~sziray/ www.sze.hu/~heckenas/okt/ (www.sze.hu/~orbang/) Nyomtatott könyv Ian Sommerville: Szoftverrendszerek fejlesztése, Panem Kiadó, 2007 Sziray József: Bevezetés a szoftvertechnológiába, Novadat, 2009 3 Követelmények Írásbeli vizsga Beugró(?): 20 perc, 7/12 Vizsga: 100 perc, 9-12 feladat Sommerville könyv megadott fejezetei + Sziray jegyzet 4
Szoftver technológia Software engineering A szoftver fejlesztés, üzemeltetés, karbantartás szisztematikus, fegyelmezett, mérhet! megközelítése Mérnöki eljárások alkalmazása 1968 NATO Software Engineering Conference 5 Szoftver technológia (folyt.) Tudás, módszerek, eszközök Érintett tevékenységek, területek követelmények meghatározása szoftvertervezés és implementáció szoftver tesztelés szoftver karbantartás konfiguráció menedzsment szoftver folyamat kialakítása szoftver fejleszt! eszközök 6
Szoftver technológia (folyt.) Kapcsolódó tudományterületek computer engineering számítástudomány menedzsment tudomány projekt menedzsment matematika rendszerelmélet 7 Problémák a szoftverfejlesztés területén Kezelhetetlen komplexitás Túl nagy kód Túl sok programozó Projektek kis hányada sikeres csak Be nem fejez!d! projektek Túllépett határid!k Túllépett költségvetések 8
Célok Szoftver termékek min!ségének javítása Felhasználói elégedettség növelése Termelékenység fokozása Jobb munkafeltételek kialakítása 9 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 10
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 11 Történet (hw folyt.) Mainframe terminálok Mini terminálok, munkaállomások Personal Computer 12
Moore-törvény 13 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. 14
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 15 Szoftver alkalmazási területek (Pressman) Rendszer szoftverek Valós idej" szoftverek Üzleti szoftverek Mérnöki és tudományos szoftverek Beágyazott szoftverek Személyi számítógépes szoftverek Mesterséges intelligencia szoftverek 16
Szoftver-jellemz!k A szoftvert fejlesztik, nem gyártják lényegében szellemi termék A szoftver nem használódik el A legtöbb szoftver egyedi fejlesztés" 17 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 18
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 19 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 20
Fejlesztési módszertanok Szoftver fejlesztési folyamat irányítása, struktúrálása Struktúrált rendszer elemzés OOP RAD Agilis fejlesztés XP RUP 21 Szoftver fejlesztés Új szoftver kifejlesztése Kibocsátás utáni sw-karbantartás Költségek 1976-81 1992-98 22
Életciklus fázisok, tevékenységek Követemény meghatározás Elemzés,tervezés Implementáció Tesztelés Karbantartás 23 Hibák javításának költsége 24