Content extract
					
					Software engineering (Software techológia) Bevezetés, alapfogalmak  Ficsor Lajos  SWENGBEV / 1     Történelem 1. 60-as évek Megoldandó problémák: egyedi problémákra kis programok  Fejlesztÿ: Speciális tudású személy (kutató)  Eszköz: assemler, memória térkép  Módszer: nincs Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 2     Történelem 2. a software krízis (1960. évek vége) zuhanó hardware árak növekvÿ hardware teljesítmény növekvÿ igény a software-ekre software költségeinek ugrásszer növekedése a software minÿsége nem megfelelÿ.  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 3     Történelem 3. 70-es évek Megoldandó problémák: Visszatérÿ problémák Nagy, monolitikus programok Nincs (vagy korlátozott) interaktivitás  Fejlesztÿ: speciális szaktudású szakember esetleg informális csoportok  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 4     Történelem 4. 70-es évek (folyt) Eszköz:
editor – compiler – linker, kezdetleges debugger elsÿ generációs. majd strukturált programnyelvek célnyelvek (pl. report generator) egyedi adatkezelés  Módszer: algoritmusok, adatszerkezetek kutatása strukturált, majd moduláris programozás Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 5     Történelem 5. 80-es évek Megoldandó problémák: nagyméret , folyamatosan m ködÿ, nagy megbízhatóságot követelÿ programok Egyre bonyolultabbá váló felhasználói felületek Nagy mennyiség adatok, tranzakció szemlélet feldolgozás Adatok tárolási és feldolgozási struktúrája elválik Hálózat megjelenése  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 6     Történelem 6. Fejlesztÿ: csoportmunka igénye szakmán belüli specializálódás Management problémák megjelenése  Eszköz: fejlesztÿi környezetek korai CASE rendszerek adatbázis kezelÿ rendszerek  Módszer: kezdeti módszertanok - dekompozíció Ficsor Lajos  Software
engineering (Bevezetés)  SWENGBEV / 7     Történelem 7. 90-es évek Megoldandó problémák: hálózat és internet széles kör vé válása elosztott rendszerek igénye információk változatos megjelenési formája fejlesztési cilus idejének rövidülése (üzleti nyomás a folyamatos továbbfejlesztésre) nyílt, hozdozható sÿt plattform független megoldások igénye minÿségbiztosítás igénye Fejlesztÿ: csoportmunka, sokszor térben elosztva Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 8     Történelem 8. Eszköz: integrált, csoportmunkát támogató fejlesztÿ környezetek szélessávú CASE rendszerek keretrendszerek software management támogatása  Módszer: Objektum orientált technológia Szabványok (X, Corba, DCOM, Java RMI) Komponens alapú programozás kutatások további technológiai fejlesztésekre  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 9     Mi a software?  TERMÉK!!!! De .  Ficsor Lajos  Software engineering
(Bevezetés)  SWENGBEV / 10     A software speciális tulajdonságai nem anyagi jelleg másolat = eredeti használat miatt nem igényel karbantartást nincs sorozatgyártás tükröznie kell a valóságot  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 11     A software speciális tulajdonságai (folytatás) komplexitása nagyobb bármely m szaki terméknél viselkedése nem folytonos hibák elÿzetes jelek nélkül alkalmazkodás a külsÿ környezethez  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 12     A software engineering definíciói 1. Az egyszer : Eszközök és módszerek a szoftver termékszer elÿállítására  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 13     A software engineering definíciói 2. A klasszikus (Boehm, 1976): The practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate and maintain them.  Ficsor Lajos 
Software engineering (Bevezetés)  SWENGBEV / 14     A software engineering definíciói 2. Magyarul: Tudományos ismeretek gyakorlati alkalmazása számítógépes programok és a fejlesztésükhöz, használatukhoz és karbantartásukhoz szükséges dokumentációk tervezésében és elÿállításában.  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 15     A software engineering definíciói 3. A hivatalos (IEEE, 1983): The technological and managerial discipline concerned with systematic production and maintenance of software products that are develop and modified on time and within cost estimated.  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 16     A software engineering definíciói 4. Magyarul: Technológiai és vezetési alapelvek, amelyek lehetÿvé teszik programok termékszer gyártását és karbantartását a költség- és határidÿ korlátok betartásával.  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 17     A szoftver
fejlesztés fázisai 1. 1.Követelmény analízis Mit is kellene csinálni? Mikorra, és mennyiért? Kikkel? 2.Specifikáció Mit kell csinálni?  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 18     A szoftver fejlesztés fázisai 2. 3.Tervezés Hogyan kell megcsinálni? 4.Implementáció Na, akkor csináljuk!! 5.Installáció és tesztelés Mit m veltünk? Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 19     A szoftver fejlesztés fázisai 3. 6. Karbantartás  Ha elszúrtad, javítsd is ki! Aki elszúrta, azóta már fÿnök - TE javítsd ki! Ha pedig a rendszer hibátlan(nak látszik) - Az Úr (a felhasználó) szava : igazából nem is ez kellene, hanem . azt pedig nem úgy értettem, hanem. ha már ezt tudja, tudhatná azt is, hogy. újabban ezt már nem is így kell csinálni, hanem.  Azaz: esmétlés onnan, hogy . Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 20     Software életciklus modellek Az egyes fejlesztési fázisok viszonya
egymáshoz  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 21     Klasszikus ("waterfall") 1. Boehm, 1976 Analízis Specifikáció Tervezés Implem. Tesztelés Használat  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 22     Klasszikus ("waterfall") 2. Jellemzÿi: technikai problémának tekinti a fejlesztést nem foglalkozik a kommunikációs problémákkal visszacsatolás túl késÿn lehetséges hol a helye a karbantartásnak?  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 23     Gyors prototípus (rapid prototyping) 1. Analízis Specifikáció  ^  Tervezés Implem.  V  Tesztelés  Prototípus  Ficsor Lajos  >  Software engineering (Bevezetés)  Használat  SWENGBEV / 24     Gyors prototípus (rapid prototyping) 2. Jellemzÿi: segíti a fejlesztÿ és a felhasználó kummunikációját fÿleg kisebb csoportoknál vált be  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 25     Inkrementális 1. Analízis
Specifikáció  Tervezés  Specifikáció  Implem.  Tervezés Specifikáció  Tesztelés  Implem. Tervezés Tesztelés Implem.  Tesztelés Használat  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 26     Inkrementális 2. Jellemzÿi: az eredeti célhoz egyre közelebb álló rendszerek sorozata minden rendszer átmegy legalább a tervezés implementálás - tesztelés fázisokon  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 27     Újrafelhasználás 1. Analízis Specifikáció Tervezés Implem.  Kész elemek Kész elemek  Tesztelés Kész elemek Használat  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 28     Újrafelhasználás 2. Jellemzÿi: ez alulról felfelé építkezÿ modell (bottom - up) gyors módszer, ha van elég "építÿanyag" a hatékonyság a szükséges helyeken utólag javítható pl. komponens-alapú programozás  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 29     Very High Level Languages 1.
Analízis Specifikáció  Fejlesztõeszköz Tervezés és implementáció  Tesztelés Használat  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 30     Very High Level Languages 2. (nem-procedurális nyelvek, alkalmazásgenerátorok) Jellemzÿi: a fejlesztÿeszköz számára le kell írni, hogy MIT csináljon - a többi az eszköz dolga általában jól körülhatárolt területekre (pl. FOCUS, Oracle, Magic - AB alk.) esetleg hatékonysági problémák Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 31     Spirál-modell (Boehm, 1988) 1. Célok, alternatívák  Alternatívák keértékelése, kockázat elemzés  (Prototípus) gyártás, Új ciklus  Ficsor Lajos  tesztelés  Software engineering (Bevezetés)  SWENGBEV / 32     Spirál-modell (Boehm, 1988) 2. Jellemzÿi: valamennyi fázis ciklikusan ismétlÿdik minden (rész)megoldást ki kell értékelni elemezni kell az adott megoldás kockázatát ha a kockázat kisebb, mint a várható haszon, újabb ciklus
kezdÿdhet  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 33     Eszközkészlet Módszer (Methodology) Technika (Technique) Eszköz (Tool)  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 34     Módszer Technika Technika  Eszköz  Eszközkészlet  Módszer  Technika  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 35     Módszerek és a software engineering Módszer (methodology): tudás (tapasztalat) + ajánlott technikák A jó módszer jellemzÿi: hatékony racionális: tudományos alapok, amelyeket a gyakorlat igazol konzisztens az egyes fázisokban Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 36     A jó módszer jellemzÿi: (folytatás)  teljes: minden fázisra ajánl megoldást ismételhetÿ: személytÿl független, jól definiált, megtanulható automatizálható (és automatizált)  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 37     Techikák Az egyes részfolyamatok segítésére. Célja: információk
rögzítése (egyértelm ség!) kapcsolatok rögzítése ellentmondások kisz rése Leggyakrabban grafikus.  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 38     Eszközök Programok, amelyek támogatnak módszer(eke)t technikákat dokumentáció készítést.  Jellemzÿje az integráltság szintje és a támogatott fázisok száma.  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 39     A dekompozíció Alapprobléma: a software komplexitása Megoldás reménye: részek összege < az egész  Dekompozíció: a teljes software módszeres részekre bontása. Egy módszer meghatározza a dekompozíció elveit.  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 40     Dekompozíció funkcionális szemléletben Program = adatszerkezetek + algoritmusok Dekompozíció alapja: adat vagy process Dekompozíció módja: felülrÿl lefelé (top - down) alulról felfelé (bottom - up) Modulok között kommunikáció szükséges => belsÿ interface Ficsor
Lajos  Software engineering (Bevezetés)  SWENGBEV / 41     Dekompozíció funkcionális szemléletben (folytatás) Dualitás elve: Modul Processz alapú (Algoritmus) Adat alapú (adatszerkezet)  Interface Adatszerkezet Algoritmus  Több lépés szükséges => absztrakciós szintek! Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 42     Dekompozíció objektum orientált szemléletben Program = együttm ködÿ objektumok halmaza Struktúra: osztályok/objektumok közötti kapcsolatok M ködés: üzenetváltás A modulok egysége az osztály.  Ficsor Lajos  Software engineering (Bevezetés)  SWENGBEV / 43