Objektumorientáció, objektumorientált szemlélet

Hasonló dokumentumok
UML (Unified Modelling Language)

2. A rendszerfejlesztés módszertana

Előzmények

Objektumorientált paradigma és programfejlesztés Bevezető

Objektum orientált programozás Bevezetés

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

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

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

OOP. Alapelvek Elek Tibor

Adatstruktúrák, algoritmusok, objektumok

Információs rendszerek Információsrendszer-fejlesztés

Objektumorientált paradigma és a programfejlesztés

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

Programfejlesztési Modellek

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 6. kurzus

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

S01-7 Komponens alapú szoftverfejlesztés 1

Interfészek. PPT 2007/2008 tavasz.

Programozási alapismeretek 4.

Nyugat-magyarországi Egyetem Geoinformatikai Kara. Dr. Szepesné Stiftinger Mária. Rendszertervezés 3. RSZ3 modul. A rendszerfejlesztés tényezői

Fogalmi modellezés. Ontológiák Alkalmazott modellező módszertan (UML)

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

01. gyakorlat - Projektalapítás

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Adatmodell elemei. Adatmodellezés. Adatobjektum. Kutya adatobjektum, mint tábla

Már megismert fogalmak áttekintése

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

Információtartalom vázlata

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

Programozás módszertan p.1/46

Programozási technológia

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

JAVA PROGRAMOZÁS 3.ELŐADÁS

Programozás 1. 2.gyakorlat

Objektumelvű programozás

Programozás III. - NGB_IN001_3

DEBRECENI EGYETEM INFORMATIKAI KAR. Az UML gyakorlati alkalmazásának bemutatása az AutoWorld rendszer tervezésén keresztül

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

Objektumorientált szoftverfejlesztés alapjai

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

Adatbázis rendszerek Definíciók:

Projectvezetők képességei

Software Engineering Szoftver fejlesztés

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

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Szoftvertechnológia ellenőrző kérdések 2005

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Java programozási nyelv 4. rész Osztályok II.

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

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

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Objektumorientált paradigma

Programozási technológia I. Sike Sándor

Programozási technológia 1.

NC program ellenorzo szimulátor fejlesztése objektumorientált módszerrel

Objektum-orientált programozás

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

OOP és UML Áttekintés

Elemi Alkalmazások Fejlesztése II.

Programozási nyelvek Java

10-es Kurzus. OMT modellek és diagramok OMT metodológia. OMT (Object Modelling Technique)

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Objektum Orientált Szoftverfejlesztés (jegyzet)

Témakörök. Structured Analysis (SA) Előnyök (SA) (SA/SD) Jackson Structured Programming (JSP) Szoftvertechnológia

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

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

Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

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

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

A SZOFTVERTECHNOLÓGIA ALAPJAI

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

Java programozási nyelv 5. rész Osztályok III.

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

Programozás alapjai II. (5. ea) C++

Programozás alapjai II. (5. ea) C++

Adatbázis rendszerek. dr. Siki Zoltán

Web-programozó Web-programozó

ANALYSIS PATTERNS MARTIN FOWLER ANALYSIS PATTERNS. Általános ismertető és Accountability Patterns

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

Objektumelvű alkalmazások fejlesztése 6. gyakorlat. Öröklődés, polimorfizmus. Öröklődés Kódismétlődés objektum-orientált szerkezetben

Adatbázisrendszerek. adatbázisokban. Objektumorientált és objektum-relációs adatbázisok április 24.

V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus

Objektumorientált felbontás

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

és az instanceof operátor

2.1.A SZOFTVERFEJLESZTÉS STRUKTÚRÁJA

tudod-e? Az UML nyelv

Adatstruktúrák, algoritmusok, objektumok

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Átírás:

Objektumorientáció, objektumorientált szemlélet Adatbáziskezelés és könyvtári rendszerszervezés 1 2014 Objektumorientált elemzés/tervezés Azt a fejlesztési szemléletet, amelyben a modellezett rendszer statikus és dinamikus elemeit a fejlesztési cél szempontjából egyetlen objektumként kezelik, és amelyben érvényre jutnak a hagyományosból hiányzó, illetve csupán törekvésként megfogalmazott célok úgymint rugalmasság, időszerűség, alacsony fenntartási költség, hordozhatóság, újrafelhasználhatóság stb. objektumorientált filozófiának nevezzük. 1

IGÉNYEK Elemzési dokumentáció OO Felhasználó Fejlesztő ELVEK, MÓDSZEREK ELEMZÉS TERVEZÉS IMPLEMENTÁCIÓ OBJEKTUM-MODELL DINAMIKUS FUNKCIONÁLIS Software termék Újrafelhasználható objektum-tárház Az objektumorientált fejlesztés életciklusa Az objektumorientáció sajátosságai I. modellszemléletre épít valósághűség, mint a modellezés kulcstényezője hatékonyan valósítja meg a szervezet alrendszereinek és folyamatainak modellezését, absztrakcióját jobban teljesíti a minőségi követelményeket 2

Az objektumorientáció sajátosságai II. a modell leírása UML szimbolikával alacsonyabb megvalósítási költségek rövidebb átfutási idők alacsony fenntartási és karbantartási költségek egyszerű, gyors módosíthatóság újrafelhasználhatóság Objektumorientált szemlélet legfontosabb paradigmái az absztrakció: a bonyolultság kezelésének hatékony mechanizmusa lehetővé válik komplex rendszerek megértése modellezés modell: a valóság leegyszerűsített változata, egy terv. A valós rendszer absztrakciója, amely tartalmazza a fejlesztési cél szempontjából lényeges, tartós és általános jegyeket, és figyelmen kívül hagyja a cél szempontjából kevésbé meghatározó komponenseket. 3

A modellezés szerepe A valós rendszert különböző aspektusokból közelítve ismerjük meg, amelynek eredménye a rendszert leíró önálló, majdnem független modellek modellnézetek. Modellek kialakítása A modellezés egy általános eszköz. Már elkezdődik a problémaértékelés, a megoldások keresése során a leendő rendszer specifikációja és terve segít az adatok, az adatfolyamok, a funkcionalitás és a viselkedés, valamint az információtartalom megértésében. A kialakított modellek alapját képezik a szoftvertervezési munkának és a megvalósításnak. Elvárások a modellspecifikációval szemben A modellezési tevékenység eredményének pontos leírását, a modell elemeinek, a jellemzőknek, a kapcsolatoknak, az elemek mozgásának, időbeli változásának leírását a modellspecifikáció tartalmazza. Elvárások: legyen könnyen érthető egységes, hatékony terminológiát alkalmazzon (fogalmak, értelmezések) legyen könnyen változtatható a megváltozott feltételekhez való illeszthetőség számolni kell a modellezési tevékenység korlátaival elkészítéséhez számtalan technikát alkalmazhatunk 4

Objektumorientált szemlélet legfontosabb paradigmái Egységbezárás: olyan mechanizmus, amely egy objektumban egységesen értelmezi a statikus adat-jellemzőket és a dinamikus elemeket, és elrejti a többi objektum és a külvilág elől az adott objektum implementációját, belső struktúráját, vagyis a megvalósítás részleteit. Öröklődés: olyan, osztályok közötti viszony, amely lehetővé teszi, hogy egy osztály sajátjaként kezelje a nála általánosabb osztályban definiált attribútumokat és műveleteket. Az általános osztályt szuper vagy szülő-osztálynak, a speciális tulajdonságokkal rendelkezőt pedig szub vagy gyerek osztálynak nevezzük. szülő osztály {root} szemely szemelyid : String nev : String lakcim : String szuldatum : Date nemzetiseg : String olimpelerhetoseg : String anyjaneve : String nem : String <<Actor>> egyebresztvevo <<business worker>> ocogmunkatars <<Actor>> bira (from resztvevok) <<Actor>> versenyzo (from resztvevok) kepviseltorsz : String sportegyesulet : String indulkod : Code csapatid : String rajtszam : Integer <<create>> rbekerul() <<destroy>> inaktivval() adatmod() <<class>> find() 1..* +felkeszito +felkeszítzettjátékos 1 <<business actor>> partner <<Actor>> trener (from resztvevok) kizaras() <<control>> kiszurdoppingvra() benevez() gyerek osztályok 5

Többszörös öröklődés szemely {root} <<powertype>> alkalmazott beosztas : String vegzettseg : code $ munkaido : Integer fizetes : Integer a gráf köztes szintén helyezkedik el dolgozik() szabagsag() <<Actor>> bira (from alkalmazottak) ocogmunkatars (from alkalmazottak) {leaf} Objektumorientált szemlélet legfontosabb paradigmái Polimorfizmus többalakúság: az objektumok azon képessége, amely lehetővé teszi adatainak, illetve műveleteinek egymástól eltérő formában való megjelenését, vagyis egy objektum több különböző formát is képes ölteni attól függően, hogy milyen hatás éri. Újrafelhasználhatóság: a fejlesztés során a különböző szinteken kidolgozott modell-elemeknek többszörös, ismételt felhasználási lehetősége, akár más fejlesztésekben, vagy más alkalmazásokban. 6

Objektumorientált szemlélet legfontosabb paradigmái Komponenselv érvényesítése a komponens alapú fejlesztés olyan alkalmazásfejlesztési technológia, amely lehetővé teszi, hogy a rendszer a fejlesztés teljes életciklusában előre definiált elemekből komponensek építkezzen. Egyéb sajátosságok: láthatóság, osztott használat Az OO technológia előnyei a valós folyamatok reális tükrözése statikus és dinamikus elemek egységben történő kezelése: objektum szigorúbb minőségi elvárások komponens-szemlélet újrafelhasználhatóság egyszerű kezelhetőség 7

OO módszertanok Unified Software Development Process 98 UM Unified Method Rational Objectory Process 97 Yourdon féle OOA/D 90, 94 Jacobson OOSE 94, Objectory Booch OOADA 93 Martin-Odell OOIE 92 Rumbaugh OMT 91 Lorensen 86 RUP Rational Unified Process SSADM B.S.P. demarco, ISAC, SADT, DSSD IEM Gane-Sarson Yourdon SDM Pandata, SDM Hoskyns, DOMINO, Warnier-Orr, DAFNE, SADT, MERISE,Vorgesehensmodell Fejlesztési módszertanok összehasonlítása 2. helyzetfelmérés és -elemzés 3. tervezés logikai fizikai 4. kivitelezés 5. rendszerfelügyelet A fejlesztés életciklusa DOMINO, Martin-Odell, OMT, OOADA, Lorensen, HOOD, OOA/OOD, OOSE, Objectory, RUP 8

RUP Rational Unified Process A RUP két dimenziós modellje OO versus strukturált Strukturált adat-szemlélet egyed komponens adatfolyam analízis modularitás tiszta, világos lépéssor, szerkezet háttérben a dinamizmus új szemlélet Objektumorientált adatok és műveletek egysége: objektum mélyebb absztrakció állapotok, funkciók, attribútumok egysége öröklődés, polimorfizmus újrafelhasználhatóság 9

Az objektum- modell Az objektum-modell az objektumok jól szervezett, hierarchikus rendszere, amelyben a hierarchia különböző szintjein levő, meghatározott tulajdonságokkal és műveletekkel rendelkező elemek egy meghatározott viszonyrendszerben egymással kommunikálnak, üzeneteket küldenek egymásnak, és öröklik mások tulajdonságait Az objektum-modell Kialakítása: objektumok attribútumok műveletek a többi objektumhoz való kapcsolódás jellege és módja asszociáció egyéb speciális sajátosságok: aggregáció, öröklődési viszonyok, származtatás stb. 10

Objektumok Attribútumok Asszociáció név cím életkor személy autó gyártó modell ID number alvázszám szín karosszéria típus tulajdonos Az objektum-modell elemei és szintjei Absztrakt szint Fogalmi kategória Osztály Attribútum Konkrét előfordulás Megvalósulás kategória Objektum, példány, instancia Érték, állapot Művelet Metódus 11

Az objektum Az objektum egy olyan dolog, amely egy objektumtípus példányaként tekinthető. Minden objektumnak saját azonossága van, amely megkülönbözteti és függetleníti a hasonló sajátosságokkal rendelkező többi objektumtól. [OMG Konzorcium] Objektum: a rendszer működési képességének probléma-domén absztrakciója, amelynek célja az informálás és az együttműködés megvalósítása. [COAD-YOURDON] Az objektum egy sor valós világbeli dolog absztrakciója, amelyek azonos sajátosságokkal rendelkeznek, ugyanolyan szabályok szerint működnek és azonos politikát követnek. [SHLAER-MELLOR] Az objektum Az objektum a valós világ valamely elemének, vagy az elem egy absztrakciójának egy konkrét megnyilvánulása, amely lehet érzékelhető, de lehet az ember számára érzékelhetetlen is. 12

Az objektumok sajátosságai Az objektum egy alkalmazásban levő dolgot, entitást modellez (emberek, fizikai megnyilvánulások csoportja, állhat tevékenységekből, célokból is) Az objektum magába foglalja a rá vonatkozó sajátosságokat, jellemzőket (attribútum) és a vele végzendő műveleteket Az objektum sajátosságai, jellemzői meghatározzák az objektum állapotát Az objektumok egymásra üzenetek formájában fejtik ki hatásukat, viselkedésük egyik kifejezési módja a kommunikáció Az objektumok sajátosságai minden objektum rendelkezik azonosítóval, ami az egyes objektumokat megkülönbözteti a többi objektumtól az azonos viselkedésű és sajátosságú, közös jellemzőkkel rendelkező objektumok osztályokba sorolhatók az objektumok a valós szituációknak megfelelően meghatározott kapcsolatban, egyfajta logikai függőségben vannak egymással Az objektumok az objektum-modell (az objektumok jól szervezett, hierarchikus rendszere) kialakításának építőkövei 13

Osztály? Objektum valamilyen szempontból összetartozó elemek reprezentációja az osztály egy konkrét eleme, megnyilvánulása, előfordulása gyár Siemens IBM Az osztály Az azonos viselkedésű és sajátosságú, közös jellemzőkkel rendelkező objektumok osztályokba rendezhetők. Az osztály az azonos sajátosságokkal rendelkező, a rendszer célja szempontjából összetartozó objektumok összessége, amelyek attribútumokkal és műveletekkel jellemezhetők. Az osztály olyan fogalmi kategória, amely a valós világ konkrét dolgainak (személyek, cégek, termékek stb.), az objektumoknak valamilyen szempontból egységes, absztrahált halmazát reprezentálja. 14

Osztály? Objektum valamilyen szempontból összetartozó információk reprezentációja az osztály egy konkrét eleme, megnyilvánulása, előfordulása pl. autó: gyártó modell ID number szín kar. típus pl. a HF123 ID numberrel rendelkező, fekete színű, kombi VW Passat Az osztály meghatározottsága Az osztály meghatározott, ha névvel rendelkezik, névvel egyértelműen hivatkozhatunk rá röviden, verbálisan értelmezünk véges számú attribútummal jellemezhető, ahol az attribútumokra egyértelműen tudunk hivatkozni azonosítója van, amely alkalmas az osztály előfordulásainak (instanciáinak) meghatározására ismert az előfordulások (instanciák) halmaza 15

Az UML osztályszimbólum láthatóság szemely szemelyid : String nev : String lakcim : String szuldatum : Date nemzetiseg : String olimpelerhetoseg : String anyjaneve : String nem : String név attribútumok <<create>> rbekerul() <<destroy>> inaktivval() adatmod() <<class>> find() műveletek Az alkalmazott osztály és objektumai alkalmazot t beosztas fizetes : alkalm azott vezeto: alkalmazott Horvath 16

Láthatóság A láthatóság kifejezi, hogy mennyire fedhetők fel a külvilág számára az objektum különböző sajátosságai, metódusai. Az UML az osztályjellemzőkhöz három láthatósági szintet javasol: a + public: minden külső objektum számára láthatóvá és hozzáférhetővé teszi az adott osztályhoz tartozó objektumok attribútumait és műveleteit, a - private: csak az adott objektum számára elérhetők, a # protected: a gyermek és a barát osztályok műveletei számára elérhetők. Absztrakt, root és leaf osztályok absztrakt osztály: nincsenek példányai, az osztály-nevet dőlt betűkkel kell írni root osztályok: a hierarchia viszonyban nem örökölnek másoktól sajátosságokat, vagyis nincsenek szüleik, az osztály neve alá vagy megjegyzésbe a {root} szócska kerül leaf osztályok: nincsenek gyerekeik, vagyis nem örökítenek tovább sajátosságokat, az osztály neve alá vagy megjegyzésbe a {leaf} szócska kerül 17

Többszörös öröklődés szemely {root} <<powertype>> alkalmazott beosztas : String vegzettseg : code $ munkaido : Integer fizetes : Integer a gráf köztes szintén helyezkedik el dolgozik() szabagsag() <<Actor>> bira (from alkalmazottak) ocogmunkatars (from alkalmazottak) {leaf} Attribútumok az objektumok meghatározott tulajdonságokkal rendelkeznek attribútumok az attribútum-érék az attribútum egy konkrét előfordulása, egy adott pillanatban felvett állapot, az objektumpéldányban tárolt elemi adat az attribútumokat egyértelmű név azonosítja Szerepe: az osztály egy adott objektumának azonosítása azonosító attribútum: az osztály egy adott instanciájának megkeresésére szolgál az objektum leírása, jellemzése leíró attribútum (descriptive) biztosítja a kapcsolatot az osztály egy adott objektumának egy másik osztály objektumával kapcsoló attribútum (referential) 18

Az attribútumok specifikációjának általános formája [láthatóság] név [multiplicitás] [: típus] [= kezdeti érték] [{jelleg}] orszag orszagid : String nev : String <<voice>> himnuszhang aranydb : integer = 0 ezustdb : integer = 0 bronzdb : integer = 0 / osszesendb : integer = 0 <<class>> find() kizarjak() Források Kuki Attila: Rendszerszervezés, http://irh.inf.unideb.hu/user/kuki/rsz.html Rendszerfejlesztési módszertanok, http://turul.kgk.uniobuda.hu/oldalak/rszervezes/rendszerfejl_ pk.ppt 19