OOT Objektově orientované technologie

Podobné dokumenty
Programování II. Třídy a objekty (objektová orientovanost) 2018/19

Objektově orientovaný přístup

Základy objektové orientace I. Únor 2010

OOT Objektově orientované technologie

6 Objektově-orientovaný vývoj programového vybavení

Objektově orientované technologie Dynamický náhled Sekvenční diagram (Realizace UC) Daniela Szturcová

Smysl metodiky IS/IT. Koncentrovaná zkušenost Checklist na nic nezapomeneme

PB161 Programování v jazyce C++ Přednáška 7

PB161 Programování v jazyce C++ Přednáška 7

TÉMATICKÝ OKRUH Softwarové inženýrství

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

Softwarové komponenty a Internet

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

TÉMATICKÝ OKRUH Softwarové inženýrství

Objektově orientované databáze. Miroslav Beneš

Matematika v programovacích

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

Objekty, třídy, vazby 2006 UOMO 30

Úvod. Programovací paradigmata

Sada 1 - Základy programování

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

1. Programování proti rozhraní

Objektově orientované programování v jazyce Python

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Modelování informačních systémů s využitím jazyka UML. Jaroslav Šmarda

OOT Objektově orientované technologie

Vyřešené teoretické otázky do OOP ( )

OOT Objektově orientované technologie

Geografické informační systémy p. 1

Objektově orientované technologie Diagram komponent Implementační náhled (Diagram rozmístění) Pavel Děrgel, Daniela Szturcová

Objektové programování

1. Dědičnost a polymorfismus

1 Webový server, instalace PHP a MySQL 13

Algoritmizace prostorových úloh

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

CO OBCE MOHOU UDĚLAT PRO GDPR UŽ NYNÍ?

8.2 Používání a tvorba databází

Principy OOP při tvorbě aplikací v JEE. Michal Čejchan

Objektově orientované technologie Business proces Diagram aktivit. Daniela Szturcová

Obsah. Zpracoval:

Program a životní cyklus programu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Klasické metodiky softwarového inženýrství I N G M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Algoritmizace prostorových úloh

Softwarové inženýrství 01. doc. Ing. František Huňka, CSc.

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

PODPROGRAMY PROCEDURY A FUNKCE

ČÁST 1. Zahřívací kolo. Co je a k čemu je návrhový vzor 33

Objektově orientované programování v jazyce Python

Principy UML. Clear View Training 2005 v2.2 1

Objektově orientované technologie Logická struktura systému Objektový diagram. Pavel Děrgel, Daniela Szturcová

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

2. Systémová analýza SA návrhová část projektu = příručka projektu - systémový přístup k analýze problémů, nejdůležitější etapa projektu - podrobné st

Programování v C++ 3, 3. cvičení

Registr práv a povinností. Metodika pro definici údajů vedených v agendě

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Vizuální programování

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Jiří Mašek BIVŠ V Pra r ha

TÉMATICKÝ OKRUH Softwarové inženýrství

Common Object Request Broker Architecture

Databázové patterny. MI-DSP 2013/14 RNDr. Ondřej Zýka,

Nemocnice. Prvotní analýza a plán projektu

1 Strukturované programování

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Teorie zpracování dat, Databázové a informační systémy a Teorie informačních systémů

Modelování procesů s využitím MS Visio.

Programování II. Modularita 2017/18

Metodika analýzy. Příloha č. 1

Sada 1 - Základy programování

Teorie systémů TES 10. Měkké systémy metodiky

Profilová část maturitní zkoušky 2017/2018

TÉMATICKÝ OKRUH Softwarové inženýrství

PB161 Základy OOP. Tomáš Brukner

24. listopadu 2013, Brno Připravil: David Procházka

11 Návrh programového vybavení

2. přednáška z předmětu GIS1 Data a datové modely

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG )

Implementace systémů HIPS: historie a současnost. Martin Dráb

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP TCP/IP.

01 Teoretické disciplíny systémové vědy

IB111 Programování a algoritmizace. Programovací jazyky

Vývoj IS - strukturované paradigma II

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

1 Nejkratší cesta grafem

Algoritmizace prostorových úloh

Datové modelování II

Programování II. Návrh programu II

OOT Objektově orientované technologie

Třídy. Instance. Pokud tento program spustíme, vypíše následující. car1 má barvu Red. car2 má barvu Red. car1 má barvu Blue.

Třída. Atributy. Operace

Transkript:

OOT Objektově orientované technologie Historické souvislosti Objekt, vlastnosti Daniela Szturcová Institut geoinformatiky, HGF

Objektově orientované technologie Historické souvislosti Vývoj používaných technik Objekt definice Objekt stav, chování, zprávy Zapouzdření Polymorfismus Dědičnost

Historické souvislosti Lenost -> podpůrné prostředky pro ulehčení práce. Dnes počítačová podpora na úrovni přesahující možnost zvládnout jedním člověkem. Tvorba systému vychází z výše uvedených aspektů a zahrnuje prostředky CASE, metodiky, techniky apod. rozklad systému, rozdělení práce mezi tým

Historické souvislosti (2) Specializace v oblasti práce analytik, designér, programátor (od lovců přes zemědělce a průmyslníky k IT profesím). Je to výsledek postupného narůstání úloh v oblasti IT, jak z hlediska velikosti řešených úloh, tak jejich složitosti a pokrývaných oblastí. Určité úlohy se opakují princip znovupoužitelnosti již ověřeného řešení. Neustále se objevují nové demo verze novinek, nestabilita, vývojové trendy.

Pomůcky: Historické souvislosti (3) Prsty, kamínky, kresby do písku,... Stabilnější záznamy papyrus, kamenné bloky opakovatelnost postupů. Kuličková počitadla, mechanické strojky technická podpora. Užití počítačů výpočet síly atomové bomby za II. světové války kancelářské strojky IBM. Internet celosvětová provázanost: úloh, řešení, prostředků, dat, výsledků.

Používané techniky Vytváření programu v programovacím jazyce - vyšší programovací jazyky menší úkoly syntéza do větších systémů. Vytvořené programy jsou pomocí překladače přeloženy do strojového kódu. Problémy: přenositelnost rychlost použitých algoritmů znovupoužitelnost údržba chyby, vylepšování

Používané techniky (2) Programovací jazyky neustále nové Hierarchický rozklad větších úloh na menší: opakované úlohy součást technologií - zabudováno do OS (File System), programovací jazyky (SORT, random), správa paměti (zásobník) specializace podpůrných nástrojů tabulkový kalkulátor, SŘBD podprogramy strukturované programování, modulární programování, techniky programování, metodiky

Metodiky Metodika říká proč to dělat, programovací technika říká jak to udělat rozdělení rolí analytik + programátor. Velikost úloh vedla k většímu kladení váhy na zvládnutí metodik - těžko se udržovaly slepované systémy. Rozklad při řešení složitých úloh dva základní pohledy: data + procesy. Datové a funkční modely souvztažnost.

Metodiky [http://objekty.vse.cz/programovani/historie-metodiky]

Metodiky (2) Nedostatečnost hierarchického rozkladu vedla k rozčlenění tvorby systému na etapy. Strukturované metodiky DFD, E-R model Rozdělení do etap zadání analýza design implementace testování, předání do provozu a údržba Možnost nápravy návrat do předešlých etap.

Podpůrné prostředky Metodiky (3) CASE nástroje - malovátko modelů, generování kódu. Tvorba prototypů. Strategické postupy vodopádový model, iterační model.

Vodopádový model http://www.wittmannclan.de/ptr/cs/slcycles.html

Spirálový model http://newton.cs.concordia.ca/~paquet/wiki/images/e/ea/spiral_model.gif

RUP model http://www.wittmannclan.de/ptr/cs/slcycles.html

Objektově orientovaný přístup Simulace reálných systémů - první vlastnosti objektů a princip řízení událostmi. SIMULA 67 (Simple universal language) byl oficiálně uveden Ole Johanem Dahlem a Kristenem Nygaardem poblíž Osla. 1973 používán na 250 místech. Vývoj byl pozastaven, ale na základě definovaných vlastností navázal vývoj jazyka Smalltalk, později také C++ a další.

Data x objekty Data součást programů. Data uložena v souborech. Data v databázových systémech. Objekty umožňují tvořit adaptivní systémy.

Objekt v OOT Objekt entita s jasně definovanou hranicí a identitou zahrnující její chování a stavy [Vondrák 2004]. Objektově orientovaná architektura systému - struktura propojených objektů, které prostřednictvím vzájemné komunikace (interakce) definují výsledné chování celého systému [Vondrák 2004].

Definice objektu Objekt je identifikovatelná samostatná entita, která je daná: identitou jedinečnost, která ji umožňuje odlišit od ostatních objektů stavem chováním službami poskytovanými v interakci s ostatními objekty

Definice objektu U objektu definujeme atributy: datové hodnoty popisující objekt, mohou se měnit v čase dobu existence: časový interval daný okamžikem vzniku a zániku objektu, stavy: odrážejí různé fáze doby existence objektu, charakterizujeme je hodnotami atributů objektu.

Identita objektu Každý objekt má svou vlastní identitu, která ho umožňuje odlišit od ostatních objektů. Většinou je reprezentována nějakou jedinečnou informací (ISBN, rodné číslo, sériové číslo,...). Objekty, které nejsou popsány žádnou takovou jedinečnou informací mají přesto svou jedinečnou identitu.

Struktura objektu Objekt by měl být schopen popsat sám sebe. (kniha má název, autora, ISBN, cenu, počet stran atd.). Rozumíme tím popis objektu de facto seznam sledovaných vlastností. Vnější pohled na objekt množina zodpovědností(služeb), které objekt poskytuje. Formálně popsány pomocí protokolu zpráv, které můžeme objektu zaslat. Vnitřní pohled na objekt umožňuje nahlédnout na všechny atributy, které jsou před vnějškem objektu ukryty a na způsob, jak jsou jednotlivé služby implementovány.

Stav objektu Objekt Faktura má atributy DatumVytvoreni, DatumZaplacení, Castka, Poznámka. Hodnoty atributů jednoho objektu Faktura v určitém čase: DatumVytvoreni = 10.6.2010 DatumZaplaceni = 30.6.2010 Castka = 2000 Kč Poznamka = Větší částce se nebráníme Pro jednoduchost budeme nyní stavem objektu rozumět momentální kombinaci hodnot všech jeho atributů.

Stav objektu :Faktura DatumVytvoreni = 10.6.2005 DatumZaplaceni = 30.6.2005 Castka = 2000 Kč Poznamka = Větší částce se nebráníme stav můžeme nazvat ZAPLACENA

Chování objektu Objekty jsou vytvořeny tak, aby mohly provádět požadované akce. Objekt Faktura může být například stornován (třída má operaci-metodu Storno) a může vyvolávat událost informující o změně jeho stavu například událost informující o zaplacení faktury.

Příklady Fyzické objekty Kniha Vlastnosti: ISBN, název, autor, Činnosti: lze ji koupit, prodat, přečíst, roztrhat. Abstraktní objekty Útvar Vlastnosti: počet vrcholů, barva, tloušťka čáry Činnosti: lze jej nakreslit, vybarvit, vypočítat obsah.

Základní vlastnosti Zapouzdření (Encapsulation) Dědičnost (Inheritance) Polymorfismus

Zpráva Objekt

Startuj! Objekt

Objekt Startuj! Jeď! Brzdi! Zastav!

Atributy Rychlost Otáčky Teplota...

Zapouzdření Účet vložit() vybrat() number = "1243" owner = "Jim Arlow" balance = 300.00 getowner() setowner() Objekt se navenek projevuje pouze svými operacemi (realizovanými metodami) a komunikačním protokolem. operace hodnoty atributů

Zapouzdření Ochrana dat lze měnit pouze přes metodu. Ochrana uživatele dostane požadovaný údaj nemusí znát realizaci. Příklad: Pošlu dotaz na věk osoby. je uložen přímo? propočítá se až v okamžiku požadavku z data narození?

Zprávy Komunikace mezi objekty. Žádost o provedení operace (metody). Jak bude operace provedena, záleží na příjemci zprávy. Reakce na zprávu ovlivnění odesílatelem.

Struktura zprávy Aby dokázal objekt1 odeslat smysluplnou zprávu objektu objektu2, musí objekt1 vědět: Identifikátor objektu2 (objekt1 musí vědět komu zprávu posílá). Obvykle je identifikátor objektu2 uložen jako jeden z atributů objektu1. Název operace objektu2, kterou si objekt1 přeje vykonat. Argumenty (parametry) - Další dodatečné informace, které bude objekt2 potřebovat k provedení požadované operace.

Posílání zpráv http://mpawus.wz.cz

Struktura zprávy Adresát.metoda(parametr1,parametr2,...) Příklad: Hynku, půjč mi na pivo. Viléme, řekni, kolik máš let. Jarmilo, podívej se na oblaka.

Typy zpráv Informační zpráva - slouží k poskytování informací cílovému objektu. Dotazovací zpráva slouží k získání nějakých informací od cílového objektu. Přikazovací zpráva vyžaduje po cílovém objektu provedení nějaké akce na sobě samém nebo na svém okolí.

Polymorfismus Dva různé objekty mají ve svém protokolu stejnou zprávu, ale každý z nich na ni reaguje jinou metodou. Jedním způsobem, jak použít polymorfismus je dědičnost. Druhým způsobem je definice rozhraní, které definuje názvy operací. Implementační detaily jsou věcí objektu, který dané rozhraní implementuje.

Polymorfismus příklad Přednáškový materiál Pavla Děrgela

Polymorfismus příklad 2 Přednáškový materiál Pavla Děrgela (upraveno)

Polymorfismus příklad 2 Kruh -barva -tloustkacary -r +spoctiobsah() +vykresli() -sestavtecnu() Přednáškový materiál Pavla Děrgela (upraveno)

Dědičnost Vztah mezi dvěma třídami (A je potomkem B). A přejímá atributy operace (metody) z rodičovské třídy B.

Dědičnost - příklad Přednáškový materiál Pavla Děrgela

Dědičnost - příklad OsobniAutomobil #maxrychlost -spz -objemmotoru -pocetsedadel -typ -model -objemzavazadlovehoprostoru -pocetdveri +zrychli() +zpomal() +nastartuj() +rozsvitsvetla() +zaradrychlost() Přednáškový materiál Pavla Děrgela

Význam dědičnosti Zjednodušení a srozumitelnost modelu Znovupoužitelnost Úspora kódu

Zdroje http://mpavus.wz.cz/oo/ http://objekty.vse.cz/objekty http://www.wittmannclan.de/ptr/cs/slcycles.html http://newton.cs.concordia.ca/~paquet/wiki/ima ges/e/ea/spiral_model.gif Přednáškové materiály Pavla Děrgela