Adatstruktúrák, algoritmusok, objektumok



Hasonló dokumentumok
Objektumorientált paradigma

Adatstruktúrák, algoritmusok, objektumok

AAO 1. félév EA - PDF 01

OOP. Alapelvek Elek Tibor

Programozási alapismeretek 4.

Objektumorientált programozás C# nyelven

Már megismert fogalmak áttekintése

Adatstruktúrák, algoritmusok, objektumok

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

Objektum orientált programozás Bevezetés

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

Információtartalom vázlata

Programozás III. - NGB_IN001_3

Objektumorientált paradigma és programfejlesztés Bevezető

Interfészek. PPT 2007/2008 tavasz.

Objektumorientált paradigma és a programfejlesztés

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Mobil Peer-to-peer rendszerek

Operációs rendszerek

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

Elosztott rendszerek. Az elıadás. Az elosztott rendszer definíciója. Köztesrétegként felépülı elosztott rendszer

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

Informatikai projektmenedzsment

Az objektumorientált megközelítés elınye: Hátránya:

LABMASTER anyagvizsgáló program

Szoftver újrafelhasználás

Informatika tanítási módszerek

Könyvtári kölcsönzések kezelése

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

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

KISKÖRE VÁROS ÖNKORMÁNYZATA POLGÁRMESTERI HIVATAL. Szervezetfejlesztés Kisköre Város Polgármesteri Hivatalában ÁROP-1.A.2.

Informatikai ellenırzések, az informatika szerepe az ellenırzések támogatásában

Adatstruktúrák Algoritmusok Objektumok

Programozás módszertan p.1/46

Információbiztonsági Szabályzat elkészítése és javasolt tartalma. Debrıdy István Németh Ákos

Adatstruktúrák, algoritmusok, objektumok

Objektum orientált programozás (Object Oriented Programming = OOP)

Interfészek. Programozás II. előadás. Szénási Sándor.

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

Szoftverminőségbiztosítás

Beszédfelismerés alapú megoldások. AITIA International Zrt. Fegyó Tibor

Európa e-gazdaságának fejlıdése. Bakonyi Péter c. docens

Funkcionális menedzsment Általános (naturális) filozófiai értelmezés

április 24. INFO Savaria április 24. INFO Savaria április 24. INFO Savaria

S01-7 Komponens alapú szoftverfejlesztés 1

Együttmőködési rendszerek, csoporttevékenység támogatása 2. rész

Definiciók. Definiciók. Európa e-gazdaságának fejlıdése. Szélessávú hozzáférés-ezer. Web felhasználók- Európa-fejlett része

A környezetbarát (zöld) közbeszerzés helyzete és lehetıségei az Európai Unióban

MÉRNÖK-SZÓTÁR. számítógépes program rendszer. magyar-angol-német-orosz és más nyelvek. Mérnökök által összeállított szakmai szótárak, szakembereknek!

A Magyar Aktuárius Társaság szakmai ajánlása Nem-élet termékterv díjkalkulációjával szembeni aktuáriusi elvárások

A programkód átvizsgálásának hatékonyságát két ok magyarázza:

A prototípus gyors, iteratív fejlesztése azért nagyon fontos, mert a költségek így ellenırizhetık.

PDF DOKUMENTUMOK LÉTREHOZÁSA

Object Orgy PROJEKTTERV 1 (9) Adattípusok menedzselése Palatinus Endre

1. elıadás. Információelmélet Információ technológia Információ menedzsment

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Programozás. Objektum Orientált Programozás (OOP) Alapfogalmak. Fodor Attila

Szigma Integrisk integrált kockázatmenedzsment rendszer

extreme Programming programozástechnika

Ez idézte elı az olyan fejlesztési folyamatokat, amelyek a gyors szoftverfejlesztésre és átadásra összpontosítanak.

30 MB INFORMATIKAI PROJEKTELLENŐR

Módszerek, munkaformák. Magyarázat. Frontális munka. Csoportalkotás kooperatív módszerekkel. Csoportos. munka. Magyarázat. Bemutatás. Frontális munka.

Osztály öröklődés. Öröklődés és polimorfizmus. Programozás II. előadás. Szénási Sándor.

Internet of Things 2

7. rész: A specifikációtól az implementációig az EJB rétegben

Objektumorientált programozás C# nyelven

A WINETTOU Távközlési Szolgáltató Korlátolt Felelısségő Társaság. Internet szolgáltatásra vonatkozó Általános Szerzıdéses Feltételek

Ezeket a kiemelkedı sebességő számítógépeket nevezzük szuperszámítógépeknek.

c. Fıiskolai tanár IT fogalma, kialakulása 1

Adatbáziskezelés alapjai. jegyzet

Certifikátok a Budapesti Értéktızsdén

A SEPA fizetésekre történı felkészülés

Projekttervezés alapjai

A szoftverfejlesztés eszközei

Az ÁFSZ 1 ügyviteli folyamatainak támogatása. Az alprojekt bemutatása

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

Szoftvertechnológia 2008/2009. tanév 2. félév 8. óra. Szoftvertechnológia

Objektumorientált programozás C# nyelven II.

A jel melléklet Szolgáltatással kapcsolatos távközlési alapfogalmak Árprés: Egyéni el fizet Elektronikus hírközlési építmény

Irányítástechnika Elıadás. PLC rendszerek konfigurálása

Informatikai kommunikációs technikák a beszállító iparban

01. gyakorlat - Projektalapítás

Sárospatak Város Polgármesterétıl

MÉRŐ AUTOMATA RENDSZEREK

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

Objektumorientáció, objektumorientált szemlélet

Objektumorientált szoftverfejlesztés alapjai

Szoftver-technológia I.

Szoftverspecifikáció fázis: Követelmény specifikáció. 2. fázis: Követelmények feltárása és elemzése

Projektzáró dokumentum

Integráci. ciós s tesztek. ciós s tesztek (folyt.) Integration Level Testing (ILT) Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Tisztán kivehetı tendencia: kommunikációs hálózatok egyre bonyolultabbakká válnak Hálózat bonyolultsága

Emberi Erõforrás Menedzsment Bevezetés. Dr Gısi Zsuzsanna

IBM Rational AppScan. IBM Software Group. Preisinger Balázs Rational termékmenedzser

Új generációs hálózatok. Bakonyi Péter c.docens

A gyártástervezés feladata. CAM tankönyv. Technológiai terv elemei. Alapfogalmak, definíciók. A gyártástervezés területei. Alapfogalmak, definíciók

S01-8 Komponens alapú szoftverfejlesztés 2

Székely Klára: Üzleti etika Power Point segítségével

A programkomponensek között különbözı típusú interfészek léteznek. következésképpen különbözı típusú interfészhibák fordulhatnak elı.

Az informatika kulcsfogalmai

Átírás:

Adatstruktúrák, algoritmusok, objektumok 2. Az objektumorientált programozási paradigma 1

A szoftverkrízis Kihívások a szoftverfejlesztés módszereivel szemben 1. A szoftveres megoldások szerepe folyamatosan erısödik A szoftverek felhasználási aránya (még mindig) igen gyorsan nı Internet Komponensalapú rendszerek RAD programozás Online terjesztés Asztali rendszerek Szakértıi rendszerek Párhuzamos programozás Neurális hálózatok Kötegelt rendszerek Egyedi szoftver Nincs terjesztés Többfelhasználós rendszerek Valós idejő megoldások Adatbáziskezelés Szoftvertermékek Elosztott rendszerek Beágyazott rendszerek Olcsóbb hardver Hagyományos terjesztés 1950 1960 1970 1980 1990 2000 2006. október 10. 2 2

A szoftverkrízis Kihívások a szoftverfejlesztés módszereivel szemben 2. A szoftverekkel szembeni elvárások egyre magasabbak Az élet mind több területén alkalmazunk szoftveres megoldásokat Tudomány, oktatás, ipar, ügyvitel, bankszektor, államigazgatás, otthonok... Az olcsóbbodó hardver egyre szélesebb rétegek számára elérhetı Az átlagos felhasználó számítástechnikai ismereteinek szintje rohamosan csökken A hardver teljesítménye rendkívül gyorsan növekszik A fentiekbıl következıen az ár/teljesítmény arány még gyorsabban javul Ezzel párhuzamosan a szoftver funkciógazdagságával, sebességével, kényelmével, használhatóságával kapcsolatos követelmények folyamatosan emelkednek A szoftver fejlıdési üteme egyre jobban lemarad a hardver fejlıdési üteme mögött 2006. október 10. 3 3

A szoftverkrízis Kihívások a szoftverfejlesztés módszereivel szemben 3. A szoftver rendkívül jól formálható nyersanyag Szinte nincsenek fizikai korlátok A szoftver nem fizikai (anyagi) jellegő A szoftver elıállítása alapvetıen nem jár közvetlen fizikai nyersanyagigénnyel A szoftver, mint erıforrás mennyisége nem korlátos (végtelenül többszörözhetı) A szoftvernek alapvetıen nem kell alkalmazkodnia külsı körülményekhez Viszonylag kevés a jogi korlát Ezen a téren igen gyors (és sokszor önkényes) a változás Bármilyen algoritmus és bármilyen adatstruktúra elképzelhetı, felépíthetı, módosítható 2006. október 10. 4 4

A szoftverkrízis Kihívások a szoftverfejlesztés módszereivel szemben 4. A programok minıségi bonyolultsága folyamatosan növekszik A szoftver eredendıen összetett szellemi alkotás Nincsenek, illetve nehezen önthetık formába jelentısebb ismétlıdı elemek Tervezési minták Tudásinverzió A mőködési állapotok száma rendkívül magas Összetettebb programok elvi helyességének bizonyítása egyelıre nem lehetséges A teljes körő tesztelés ezért szinte lehetetlen Rendszeresek és gyakoriak a változtatási igények A fejlesztık részérıl (hibajavítás, platformváltás, fejlesztırendszer-váltás...) A felhasználók részérıl (hibajavítás, új funkciók, funkcionális módosítások...) 2006. október 10. 5 5

A szoftverkrízis Kihívások a szoftverfejlesztés módszereivel szemben 5. Az ember áttekintıképessége korlátos Teljesen automatizált szoftverelıállításra egyelıre nincs mód A bonyolultság újra és újra kezelhetetlenül magas szintet ér el A szoftverhibák következményei egyre súlyosabbak lehetnek Folyamatosan új megoldásokra van szükség az egyre növekvı absztrakciós szint és bonyolultság eredményes, hatékony és biztonságos kezeléséhez 2006. október 10. 6 6

Procedurális/strukturált program Definíció és jellemzık A problémát az algoritmus (a kód) oldaláról közelíti meg A szükséges funkciók meghatározása (funkcionális dekompozíció) A programvégrehajtás (vezérlés) pontos menetének leírása A funkciók számára szükséges adatstruktúrák meghatározása A probléma megoldását a funkciók egymás után, a megfelelı sorrendben történı végrehajtása adja meg Jellemzık: A függvények definíciója határozza meg a program szerkezetét Globális adatstruktúrák Egy ún. fıprogram fogja össze, amely függvényeket hív meg A fıprogram komoly szerepet játszik és gyakran igen bonyolult A végrehajtás menetét szigorúan megszabja a megírt programkód 2006. október 10. 7 7

Procedurális/strukturált program Tipikus felépítés Fıprogram Almodul Almodul Almodul Almodul Almodul Almodul Almodul 2006. október 10. 8 8

ektumorientált program Definíció és jellemzık A problémát az adatok oldaláról közelíti meg A szükséges absztrakt rendszerelemek meghatározása A fenti rendszerelemek adatainak és (az adatokkal végezhetı) absztrakt mőveleteinek meghatározása, majd ezek összerendelése Ezzel csoportokba ( típusokba ) soroljuk az egyes elemeket A probléma megoldását az egyes objektumok közötti kommunikáció, az egyes mőveletek állapotváltozásoktól függı végrehajtása adja meg Az objektumok kapcsolódási felülettel rendelkeznek, melynek segítségével üzeneteket váltanak egymással Jellemzık: Az egyes objektumok magukban foglalják az algoritmusokat Minden objektum a probléma egy részét írja le és magában foglalja a részfeladat megoldásához tartozó algoritmikus elemeket A fıprogram jelentısége igen csekély Gyakorlatilag csak indítási pontként szolgál, lényegi funkciót általában nem lát el 2006. október 10. 9 9

ektumorientált program Tipikus felépítés 2006. október 10. 10 10

Az OO paradigma alapelvei 1. alapelv: Absztrakció Meghatározzuk a szoftverrendszer absztrakt elemeit Meghatározzuk az elemek állapotterét Adatelemek Meghatározzuk az elemek viselkedésmódját Funkciók végrehajtása Állapotváltoztatások Meghatározzuk az elemek közötti kapcsolattartás felületeit és protokollját Üzenetváltások típusa Pontosan definiált, megbízható kapcsolódási felületek...mindezt a megvalósítás konkrét részleteinek ismerete nélkül. 2006. október 10. 11 11

Az OO paradigma alapelvei 2. alapelv: Egységbezárás Az objektumok adatait és a rajtuk végezhetı mőveleteket szoros egységbe zárjuk Az adatok csak a definiált mőveletek segítségével érhetık el Más mőveletek nem végezhetık az objektumokon Az egységbezárás védi az adatokat a téves módosításoktól 2006. október 10. 12 12

Az OO paradigma alapelvei 3. alapelv: Adatrejtés Az absztrakciók megvalósításának részleteit elrejtjük a külvilág elıl Az objektumokon belül elkülönítjük a belsı (privát) és a külsı (nyilvános) adatokat és mőveleteket A privát adatok és mőveletek a konkrét megvalósításhoz szükségesek A nyilvános adatok és mőveletek a szoftverrendszer többi objektuma számára (is) elérhetık Tájékozódás az objektum állapotáról Az objektum állapotának módosítása Üzenetváltás 2006. október 10. 13 13

Az OO paradigma alapelvei 4. alapelv: Öröklés A már meglévı objektumtípusok alapján készíthetünk új típusokat, melyek rendelkeznek az ıstípus tulajdonságaival Ez egy specializációs mővelet ( származtatás ) A leszármazottak öröklik az ıstípus tulajdonságait A leszármazottak bıvíthetik, esetenként akár szőkíthetik az ıstípus állapotterét, illetve mőveleteit Teljes leszármazási hierarchiákat is létrehozhatunk Kiváló lehetıség a közös tulajdonságok, mőveletek összevonására és újrahasznosítására Az alapelv következetes alkalmazásával elérhetı, hogy a már megvalósított funkcionalitás késıbb a megvalósítás részleteinek ismerete nélkül is felhasználható legyen Jól átgondolt elızetes tervezést igényel 2006. október 10. 14 14

Az OO paradigma alapelvei 5. alapelv: Többalakúság A különbözı, egymásból származó objektumtípusok hasonló mőveletei a konkrét objektumtól függıen más-más konkrét megvalósítással rendelkezhetnek Ugyanaz a mővelet némileg eltérı lehet az ıstípus és a leszármazott típus esetében Az alapelv lehetıséget teremt rá, hogy azonos névvel hivatkozzunk az azonos célú, de a leszármazási hierarchia különbözı szintjein más-más megvalósítást kívánó mőveletekre Az egyes ıstípusok leszármazottai mindenre alkalmasak, amire az adott ıstípus alkalmas volt Minden olyan helyzetben és funkcióban, ahol az ıstípus szerepelhet, annak bármely leszármazottja is szerepelhet 2006. október 10. 15 15

Az OO paradigma alapelvei 6. alapelv: Kódújrafelhasználás A már megvalósított objektumtípusokat kész (bináris) formában más programokban is felhasználhatjuk Jó tervezés és dokumentálás esetén az objektumok nyilvános adatai és mőveletei elegendıek a késıbbi felhasználáshoz Szintaktikai bıvítésekkel (pl. tulajdonságok, események ) kényelmesebbé tehetı a külsı felhasználás Az egyes objektumtípusokat egymásba ágyazva összetettebb típusokat hozhatunk létre A kész, újrafelhasználható objektumtípusokat csoportokba fogva akár nagyobb szoftver-építıelemeket (komponenseket és komponensgyőjteményeket) is létrehozhatunk A korábban említett alapelvekre építve a kódújrafelhasználás lehetısége jelenti az igazi áttörést a szoftvertechnológiában 2006. október 10. 16 16