(Prog.Inf. Szakon) (Prog.Mat. Szakon) Szendrei Rudolf

Hasonló dokumentumok
Osztott rendszer. Osztott rendszer informális definíciója

Objektumorientált paradigma és programfejlesztés Bevezető

Objektumorientált paradigma és a programfejlesztés

Programozás s 2. Alapok

S0-02 Típusmodellek (Programozás elmélet)

Adatbázis rendszerek. dr. Siki Zoltán

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Programfejlesztési Modellek

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

Programozás alapjai (ANSI C)

Programozás III. - NGB_IN001_3

Szoftver-technológia I.

Ismeretanyag Záróvizsgára való felkészüléshez

ködös határ (félreértés, hiba)

Programozási technológia 1.

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

PROGRAMTERVEZŐ INFORMATIKUS

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

A Szekszárdi I. Béla Gimnázium Helyi Tanterve

Összeállította Horváth László egyetemi tanár

III. Alapfogalmak és tervezési módszertan SystemC-ben

Miről l lesz szó. Az SQI tevékenységének áttekintése CMMI alapú folyamatfejlesztés a szoftvergyártó cégek életében 2.

Adatstruktúrák Algoritmusok Objektumok

Bevezetés az informatikába

Objektum Orientált Tervezés

Objektum orientált programozás Bevezetés

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Bevezetés. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Szendrei Rudolf. Bevezetés. Szoftvertechnológia

Bevezetés. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr. Szendrei Rudolf. Információk.

A TANTÁRGY ADATLAPJA

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

S01-7 Komponens alapú szoftverfejlesztés 1

Informatika tanítási módszerek

Objektum orientált software fejlesztés (Bevezetés)

OOP #1 (Bevezetés) v :39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

ció Innováci ció kontra renováci Dr Litter Adrienn

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata

AZ INFORMATIKA OKTATÁSÁNAK MÚLTJA ÉS JELENE A KOLOZSVÁRI EGYETEMEN

PROGRAMOZÁSI NYELVEK ÖSSZEHASONLÍTÓ ELEMZÉSE *

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Számítógépek architektúrák. Architektúrák

Programtervező informatikus BSc 2018, Szoftverfejlesztő specializáció ajánlott tantervi háló. Törzsanyag. Konzultáció Kredit

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

OOP. Alapelvek Elek Tibor

Komplex munkaerőpiaci integráci. ciós s programok magyarországi gi tapasztalatai. Kellermann Éva csadó január r 31.

rendszer bevezetésének

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

A TANTÁRGY ADATLAPJA

Irányítástechnika Elıadás. PLC-k programozása

Történeti áttekintés

A számítástechnika fejlődése

Programozható logikai vezérlő

1. Fejezet: Számítógép rendszerek

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

A Forrás s rendszer sa. GriffSoft Zrt

Szoftverminőségbiztosítás

8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus.

mint forrás Hálózati munka Pataki Éva

Alapismeretek. Tanmenet

Debreceni Egyetem Matematikai és Informatikai Intézet. 13. Védelem

INFORMATIKA. 6 évfolyamos osztály

Számítógép architektúra

KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA

Adatmodellezés. 1. Fogalmi modell

Adatok ábrázolása, adattípusok

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére

4. Programozási nyelvek osztályozása. Amatőr és professzionális

Programozási Technológia előadás bevezetés. Előadó: Lengyel Zsolt

Helyi tanterv. Informatika évfolyam. Helyi tervezésű +órakeret Évi órakeret

Nyékyné Gaizler Judit 2.1. A jelkészlet ffl 29 Az ASCII kód ffl 31 Az EBCDIC kód ffl 31 Az ISO 8859 család ffl 32 A Unicode szabvány ffl 32

Bevezetés a Programozásba II 1. előadás. Szoftverfejlesztés, programozási paradigmák

Informatikai projektellenőr szerepe/feladatai Informatika / Az informatika térhódítása Függőség az információtól / informatikától Információs

Feladataink, kötelességeink, önkéntes és szabadidős tevékenységeink elvégzése, a közösségi életformák gyakorlása döntések sorozatából tevődik össze.

Szoftver-technológia II. Modulok és OOP. Irodalom

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Szakterületi modell A fogalmak megjelenítése. 9. fejezet Applying UML and Patterns Craig Larman

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

Kaposi Ambrus. University of Nottingham Functional Programming Lab. Hackerspace Budapest január 6.

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata

A TANTÁRGY ADATLAPJA

INFORMATIKA ÉRETTSÉGI VIZSGAKÖVETELMÉNYEK AZ ÉRETTSÉGI VIZSGA RÉSZLETES TEMATIKÁJA

Programok értelmezése

Óbudai Egyetem Neumann János Informatikai Kar. Intelligens Mérnöki Rendszerek Intézet

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Az informatika alkalmazása a logopédiai gyakorlatban

Intelligens irányítások

3. Az elektronikus számítógépek fejlődése napjainkig 1

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Programozás II. 2. Dr. Iványi Péter

Földmérési és Távérzékelési Intézet

Adatbiztonság és adatvédelem

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

Alapszintű formalizmusok

A számítógépes nyelvészet elmélete és gyakorlata. Automaták

Adat: té. Informá. hírek jelentő. - Valami tö. - Statisztikai adatok eloszlá Helyhez kö. kötött informá A hely legtö. tudomány, ami ezzel az informá

Információtartalom vázlata

Átírás:

Modellek és s formális eszközök (Prog.Inf. Szakon) Programozási Módszertan M elmélete lete 1. EA (Prog.Mat. Szakon) Szendrei Rudolf swap@inf.elte.hu http://people.inf.elte.hu/swap/ people.inf.elte.hu/swap/

Tematika 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

Tematika 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

Irodalom Kozma László, Varga László: Szoftvertechnológia elméleti problémái. Pázmány Eötvös Kiadó, 2007, Ehring H., Mahl B.: Fundamentals of Algebraic Specification 1, 2. Module specifications and constraints. Springer-Verlag, 1990, Jacques Loeckx, Hans-Dieter Ehrich, Markus Wolf: Specification of Abstract Data Types. John Wiley and Sons, 1996, Krzysztof R. Apt, Ernst-Rüdiger Olderog: Verification of Sequential and Concurrent Program, Springer-Verlag, 1997 Willem-Paul de Roever et al.: Concurrency Verification; Introduction to Compositional and Noncompositional methods; Cambridge University Press, 2001 Mclver A., Morgan C.: Programming Methodology, Springer-Verlag, 2003

Szoftverfejlesztés, s, mérnm rnöki tevékenys kenységként

Számítástechnikai eszközök k fejlődése 1943. Neumann János J ENIAC számítógépe (Ballisztikus röppr ppályák k számítására) 1942-46. 46. Manhattan projekt (atombomba kifejlesztése) se) Műveleti sebesség és s kapacitás s növekedn vekedése Hálózatok létrejl trejötte, tte, hálózatin h keresztüli problémamegold mamegoldás Magas szintű programnyelvek (Algol, Fortran, Cobol) Sok programnyelv jött j létre, l pl. SIMULA, CLU, ADA, Prolog, LISP, C, Monitor a kényelmesebb k grafikus kommunikáci cióhoz Batch operáci ciós s rendszerek kötegelt k feldolgozáshoz Mai értelemben vett operáci ciós s rendszerek megjelenése

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

Az objektumelvű programozás megjelenése és s a szoftverfejlesztés 1. mérfm rföldköve a SIMULA 67, mely a 60-as években jelent meg Korábban Vezérl rlés s központk zpontú gépi kódúk utasítások sok Egyszerűbb, kisebb terjedelmű programok Szekvenciális végrehajtv grehajtás, párhuzamossp rhuzamosság g hiánya, interaktivitás s hiánya Utána Nagy méretm retű programok és s komplex rendszerek fejlesztése se Osztott rendszerek, párhuzamossp rhuzamosság, aszinkron interaktivitás Az utóbbi három h évtizedben az egyetemi projektekben szerzett tapasztalatok alapján n az objektum elvű megközel zelítés flexibilisebb a gyorsan változv ltozó követelmények mellett, mint az imperatív, funkcionális vagy logikai programozási stílus.

Objektum elvű programozás P. Wegner: Objektum elvű programozás Adatabsztrakció Absztrakt adattípus Típusöröklődés Objektum elvű programozási nyelvek típusrendszeret Típus: : Egyszerű vagy összetett Egyszerű típus: : char, int, float, bool, Összetett típus: : string, vector, list, set, map, array, record, absztrakt adattípus, öröklődéssel származtatatott adattípus (lásd: programozási nyelvek tárgy) t

Objektumelvűség g elvei napjainkban Osztály: : (attribútumok, tumok, metódusok), mely a program struktúrálts ltságát írja le Felületek hozzáférésének szabályozása: láthatóság, metódusok és s azok attribútumainak tumainak segíts tségével Az objektumok az osztály példp ldányaiként nt jönnek j létrel Adatbeburkolás (encapsulation) Adatabsztrakció, információ elrejtés Objektumok azonosítókkal való elérése,, megnevezése Öröklődés, polimorfizmus Egyes objektum elvű programozási nyelvek megengednek többet t is: Portabilitás, kód k d hordozhatóságának biztosítása sa (pl. Java)

Programfejlesztés, s, mint matematika A programfejlesztés a matematika része? Sok matematikát kell tanulni ahhoz, hogy egy problémát számítógép segítségével oldjunk meg? Igaz 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 megfogalmazható formális matematikai leírással. 3. A programfejlesztési módszerek többnyire formálisak. 4. Intuitivitásra van szükség a módszerek használatakor. 5. Szükséges a problémák pontos leírása. 6. A megoldásnak a leírás szerint kell helyesnek lennie (formális eszközök). 7. Számos probléma számítógéppel való helyes megoldása a szimbólum-manipulációt erősíti (rendezés, keresés, gráf bejárások, programfordítás stb.)

A problémák k közös k s jellemzője: je: a jól j l megfogalmazható algoritmikusság; g; tárgyuk absztrakt; Tehát 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".

Mérnöki munka jellemzői Technológia: módszerek, szabványok, eszközök, szervezés Módszer: Olyan elvek halmaza, amelyek alapján kiválasztjuk és alkalmazzuk a technikát és az eszközöket. Struktúrált programozás Absztarkció + modularizáció; Szintekre bontás: absztrakt (leírás) konkrét (megvalósítás) Módszertan: a módszerrel kapcsolatos vizsgálatok és ismeretek Programfejlesztés: leírások készítése.

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

Specifikáci ciós s interfész számítógép specint Specifikációs interfész (kiszámítás input-output relációja: billentyűzet, képernyő) Követelmény: interfész, mely egy közös felület a gép és a felhasználó között a rendszerben. felhasználó Alapvető közös felületek: Billentyűzet: a felhasználó vezérli, a gép pedig érzékeli az adatait. Képernyő: a gép vezérli, a felhasználó pedig érzékeli a láttottakat, felhasználja.

Az interfész, mint specifikáci ciós tűzfal Hard: formális rész (fejlesztő) Soft: informális rész (elemző) A tűzfal elválasztja lasztja egymást stól a rendszer-elemzőt,, aki a számítógépen kívüli k világ g informális problémáival foglalkozik, Dijkstra a szoftver fejlesztőtől,, aki a számítógépes megoldással foglalkozik. A funkcionális specifikáció megválasztása, annak jelölésrendszere, amellyel azt leírjuk, nem feltétlen kell, hogy világos legyen. Szerepe egy tűzfal létesítése két különböző dolog között.

Példa forgalomirány nyító lámpára Ügyfél igénye: A gyakorlatban felmerülő problémáját oldják meg. Probléma: A lámpa 45 mp-ig tilost, majd 15 mp-ig szabad jelzést adjon. számítógép forgalmi lámpa Specifikációs interfész { pjel, zjel } követelmény interfész { stop, go }

Példa forgalomirány nyító lámpára számítógép forgalmi lámpa Specifikációs interfész { pjel, zjel } követelmény interfész { stop, go } Az ügyfelet inkább a követelmk vetelmény interfész, a szimbólum lum-manipuláció probléma érdekli: 1. Milyen feltételek telek mellett garantálja a program / rendszer a szolgáltat ltatás s nyújt jtását? t? 2. Milyen megfigyelhető hatásai legyenek a szolgáltat ltatásoknak? (felhasználó / ügyfél l kérdk rdése)

A forgalomirány nyító lámpa követelmk vetelménye forever { show only stop for 45 seconds; show only go for 15 seconds; } 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 ügyfelet nem érdeklik a szimbólum manipuláci ciós s kérdk rdések vagy az elektromos jelek, csak az, hogy a lámpa l zöld vagy piros.

A számítógép, a külvilk lvilág és s a felhasználó számítógép forgalmi lámpa Specifikációs interfész { pjel, zjel } követelmény interfész { stop, go } A gépi g rész r specifikáci ciója: A specifikáci ció-interfész a gépig pi-,, valamint a problémat matér r közös k s része. r Problématér: : lámpal Közösen használt fenomén: : { pjel, zjel } { Pjel; forever { wait 45 seconds; Pjel; Zjel; wait 15 seconds; Zjel; Pjel; } }