Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Számítási eszközfejlődés XX. század második fele: 1943: Neumann János analóg számítógépe az ENIAC. (Ballisztikus problémák). Manhattan terv. 1950-es, 1960-as,

Hasonló előadás


Az előadások a következő témára: "Számítási eszközfejlődés XX. század második fele: 1943: Neumann János analóg számítógépe az ENIAC. (Ballisztikus problémák). Manhattan terv. 1950-es, 1960-as,"— Előadás másolata:

1 Számítási eszközfejlődés XX. század második fele: 1943: Neumann János analóg számítógépe az ENIAC. (Ballisztikus problémák). Manhattan terv es, 1960-as, 1970-es, Műveleti sebesség; Memória kapacitás; Hálózaton keresztüli problémamegoldás; Magas szintű programnyelvek (Algol, Fortran, Cobol) Egyesítés: PL1; Programnyelvek sokasága: SIMULA; CLU; ADA; Prolog; C;... Monitor; Batch operációs rendszer; Operációs rendszerek;

2 Számítási eszközfejlődés. Hazai viszonyok. 1956: M3-as számítógép MTA, Gépi kód as évek eleje: Ural számítógépek; Gépi kód; 1960-as évek közepe: Gler gép. Monitor; Assembly; Algol; ICT 1905 gép. Monitor; Batch vezérlő; Assembly; Algol, Fortran, Cobol; 1960-as évek vége: Hazai fejlesztések TPA (DEC) gépek; operációs rendszer; 1970-es évek. IBM/360-as gépek; operációs rendszer; PL1; Kisgépek, TPAI; KFKI. (Klacsmányi) VIDEOTON hazai fejlesztések; 1980-as évektől a programnyelvek sokasága: ADA; CLU; Prolog; C;...

3 Objektumelvű programozás és szoftverfejlesztés. Mérföldkő: Simula 67. Előtte: vezérelv gépi kódú utasítások. programozás kicsiben, szekvencializáció, konkurencia hiánya; Interaktivitás hiánya. Utána: nagyméretű programok kifejlesztése, komplex rendszerek létrehozása, osztott rendszerek, aszinkron interaktivitás. Elmúlt 35 év gyakorlata: Egyetemi projektek: pl. CLU (B. Liskov, MIT). Objektum elvű megközelítés flexibilisebbnek bizonyult a gyorsan változó követelményekhez, mint az imperatív, funkcionális, vagy logikai programozási stílus. (Főleg nagy rendszerek esetén). (Java, C, UML)

4 Klasszikus értelemben vett objektum elvű programozás. P. Wegner: Objektum elvű programozás = adatabsztrakció + absztrakt adattípus + típusöröklődés. Az objektum elvű programozást támogató programozási nyelv típusrendszere: típus  egyszerű típus | összetett típus; egyszerű típus  integer | real | boolean |...; összetett típus  vector | array | record |... | absztrakt adattípus | öröklődéssel származtatott adattípus;

5 Objektumelvűség elvei ma. – Osztály (attribútumokkal, metódusokkal) a fő egység a programok struktúráltságának leírása. – Felületekhez való hozzáférés osztály szinten definiált metódusokkal és azok attribútumaival történik. – Objektum létrehozása az osztály példányaként jön létre. – Adatbeburkolás (encapsulation of data); – Adatabsztakció és információ elrejtés; – Objektumok azonosítókkal való megnevezése, elérése; – Öröklődés és polimorfizmus; – (Bizonyos objektum elvű programozási nyelvek mást is támogatnak, pl. portabilitás, code mobilitás internet alkalmazások, stb.).

6 Modellek és formális eszközök. (2+0). Rendszerleírások aspektusai. Leírások, specifikációk és modellek. Probléma, modell, követelmény, specifikáció, program. Objektumelvű programfejlesztés. Nem determinisztikus szekvenciális program, szintaxisa, szemantikája. Specifikációs módszerek. Konkurencia alapfogalmai. Konkurens programok és rendszerek. Objektum elvű konkurens programok. Konkurens és nem determinisztikus program. Konkurens program szintaxisa, szemantikája. Osztott nem determinisztikus programrendszer. Csatorna és csatornautasítások. Csatornautasítások szintaxisa, szemantikája. Csatornautasítások illesztése. Diszjunkt csatornák összekötése. Ágensrendszerek.

7 Típusmodellek. (2+0). Objektumelvű programozás és programfejlesztés. Absztrakt adattípus. Absztrakt adattípus algebrai elmélete. Típusspecifikációs módszerek. Típusspecifikációk elemzése. Adattípus adekvátsága. Konkrét adattípus. Adattípus kettős specifikációja, adattípus osztály. Adattípus osztály morfizmus diagramja. Információ elrejtés. Újrafelhasználás, öröklődés és aggregáció. Adattípusok szinkronizációs felülete. Szinkronizációs felületek specifikációs módszerei.

8 Könyvek: [KOZ03] Kozma László, Varga László: Szoftvertechnológia elméleti problémái. Pázmány Eötvös Kiadó, 2007, ISBN [EHR90] Ehring H., Mahl B.: Fundamentals of Algebraic Specification 1, 2. Module specifications and constraints. Springer-Verlag, 1990, ISBN [JAC96] Jacques Loeckx, Hans-Dieter Ehrich, Markus Wolf: Specification of Abstract Data Types. John Wiley and Sons, 1996, ISBN

9 [KRZ97] Krzysztof R. Apt, Ernst-Rüdiger Olderog: Verification of Sequential and Concurrent Program, Springer-Verlag, 1997, ISBN [WIL01] Willem-Paul de Roever et al.: Concurrency Verification; Introduction to Compositional and Noncompositional methods; Cambridge University Press, 2001, ISBN [MCL03] Mclver A., Morgan C. Programming Methodology, Springer-Verlag, 2003, ISBN

10 Programfejlesztés - matematika. A programfejlesztés a matematika része? (A gyakorlatban felmerülő problémák számítógéppel történő megoldására készülőnek sok matematikát kell tanulnia?) Megalapozott ez az állítás? 1. A számítógép a megoldás során szimbólum-manipulációt végez. 2. A számítógéppel megoldandó problémák jelentős része matematikai tartományokban formálisan megfogalmazhatók. 3. A programfejlesztési módszerek rendszerint formálisak. 4. Alkalmazásukban intuitivitásra van szükség. 5. A probléma pontos leírásának szükségessége. 6. A megoldásnak a leírás szerinti helyessége. (Formális eszközök). 7. Számos probléma számítógéppel történő helyes megoldása a szimbólum manipulációt erősíti. (Pl. adatok rendezése, adatok keresése, gráf bejárások, programszövegek fordítása stb.)

11 Ezeknek a problémáknak közös jellemzője: a jól megfogalmazható algoritmikusság; tárgyuk absztrakt; Tehát matematika. Hermann Weyl (1940). "Amikor a matematikus eljut az absztrakcióhoz, elfelejti azt, hogy a szimbólumai miket is helyettesítenek. Rendelkezésére áll egy sor operáció, amelyeket a szimbólumokkal elvégezhet, függetlenül attól, hogy ezek mit helyettesítenek". "Az informatikusnak ez kevés, mivel ő a valóságos problémát akarja megoldani. Neki azt a valóságos objektumot is figyelembe kell venni, amit a szimbólum reprezentál".

12 Mérnöki munka jellemzői: Technológia kell: módszerek + szabványok + eszközök + szervezés; Módszer: elvek halmaza, amelyek alapján kiválasztjuk, alkalmazzuk a technikát és eszközöket. (Pl. elv. struktúrált programozás; absztarkció + modularizáció; szintekre bontás: absztraktkonkrét) Módszertan: a módszerrel kapcsolatos vizsgálatok és ismeretek. Programfejlesztés: leírások készítése.

13 Leírások: 1. Domain (problémakör) leírása. Annak leírása, amelyre a követelmények vonatkozni fognak. 2. Követelmények; Annak a leírása, amit a felhasználó elvár a program által nyújtott szolgáltatásoktól. 3. Specifikáció; A szolgáltatások input-output (bemeneti és kimeneti) kapcsolatának a leírása. (Kívülről megfigyelhető viselkedés) 4. Modell, rendszerterv; Annak a leírása, hogy milyen egységek együttműködésén keresztül valósulnak meg a szolgáltatások. 5. Program. A szolgáltatások végrehajtásának, a szolgáltatásokat eredményező kiszámítások leírása.

14 1.) Specifikációs interfész. számítógép felhasználó specint specifikációs interface (kiszámítás input-output relációja: keyboard, screen) A programnak szüksége van bizonyos bemenetre. A program eredménye a külvilágnak szól. Követelmény: interfész. Ez közös része a gépnek és a felhasználónak ebben a rendszerben. A keyboard olyan közös rész, amelyet a felhasználó vezérel és a gép érzékel, felhasznál. Az ernyő olyan közös rész, amelyet a gép vezérel és a felhasználó érzékel, felhasznál.

15 Az interfész egy specifikációs tűzfal: Hard: formális rész (fejlesztő) Soft: informális rész (elemző) A tűzfal elválasztja egymástól - a rendszer-analistát, aki a számítógépen kívüli világ informális problémáival foglalkozik, - a szoftver fejlesztőtől, aki a számítógépes megoldással foglalkozik. Dijkstra: A funkcionális specifikáció megválasztása, annak jelölésrendszere, amellyel azt leírjuk, nem feltétlen kell, hogy világos legyen. De a szerepe világos: egy tűzfal létesítése két különböző dolog között. 1.) A annak kérdése, hogy az a gép, amely megkapja a specifikációt, az a gép-e, amelyet mi elképzelünk. 2.) A helyesség kérdése, azaz hogyan tervezzünk egy gépet, amely a specifikációt fogadja.

16 Példa. Az ügyfél igénye: a gyakorlatban felmerülő problémáját oldják meg neki. (user, customer). 2.) A számítógép, a külvilág és az ügyfél: számítógépforgalmi lámpa Specifikációs interface {pjel, zjel} követelmények interface {stop, go} Probléma: a lámpa 45 sec-ig tilost, majd 15 sec-ig szabad.

17 2.) A számítógép, a külvilág és az ügyfél: számítógépforgalmi lámpa Specifikációs interface {pjel, zjel} követelmények interface {stop, go} Az ügyfelet inkább a követelmény interfész, inkább a szimbólum- manipulációs probléma érdekli: 1. Milyen feltételek mellett garantálja a program, a rendszer a szolgáltatás nyújtását. 2. Milyen külső, megfigyelhető hatásai legyenek a rendszer szolgáltatásainak. (user-customer kérdése).

18 A mi esetünkben a követelmény a következő: forever { show only stop for 45 seconds; show only go for 15 seconds; } Követelmény interfész: A követelmény interfész egy külvilág felé nyitott kapu, amit az ügyfél a gépen kívüli világban érzékelhet. Az ügyfél (customer) távol áll a szimbólum manipulációs kérdésektől. Őt nem az elektromos jelek érdeklik. Őt ez még annyira sem érdekli, mint a felhasználót hanem - mint a mi példánkban - a lámpa zöld vagy piros.

19 2.) A számítógép, a külvilág és a felhasználó: számítógépforgalmi lámpa Specifikációs interface {pjel, zjel} követelmények interface {stop, go} A specifikáció-interfész a gépi tér és a problématér közös része. Problématér: a lámpa egység. A közösen használt fenomén: {pjel, zjel}. A gépi rész specifikációja: {Pjel; forever { wait 45 seconds; Pjel; Zjel; wait 15 seconds; Zjel; Pjel; }


Letölteni ppt "Számítási eszközfejlődés XX. század második fele: 1943: Neumann János analóg számítógépe az ENIAC. (Ballisztikus problémák). Manhattan terv. 1950-es, 1960-as,"

Hasonló előadás


Google Hirdetések