Objektově Orientované Programování (OOP)

 

Při vývoji programového vybavení pro aplikace nejrůznějších směrů je v dnešní době charakteristický výrazný nárůst složitosti a vzrůstající požadavky na kvalitu programů. U dnešních programových produktů se vyžaduje především:

Správná funkce – Fungování podle jejich specifikace

Robustnost – Schopnost fungovat i v lehce abnormálních podmínkách

Rozšiřitelnost – Snadnost přizpůsobení programu nové specifikaci

Opakovatelnost použití – Míra možnosti využít program pro novou aplikaci

Slučitelnost – Snadnost používání programu v kombinaci s jinými produkty

Dalšími jsou Přenositelnost na jiný systém, Bezpečnost, Snadnost použití

 

Abychom mohli efektivně překonat problémy z dané koncepce programu, museli bychom opustit architekturu počítače von Neumanova typu, nebo na jiný typ programování.

Možnosti jsou zhruba tyto: Logické programování, Funkcionální programování, Výpočet řízený daty, OOP.

První tři uvedené přístupy budou plně využitelné až z nástupem nových architektur počítačů, podporujících tento styl již na úrovni HW. Naproti OOP nevyžaduje příliš velké změny kvalifikace programátorů a je možné jej efektivně používat i na našich architekturách počítačů.

 OOP umožňuje splnit výše uvedené požadavky na kvalitu programů důslednou modulární dekompozicí problému a odpovídajícím modulárním přístupem k problému.

 

Při vývoji programu používáme tyto dvě metody postupu.

Metoda Funkční dekompozice – to znamená dekompozice programu na dílčí funkce. Při FD Hrají datové struktury podřízenou roli

 

Metoda OONávrhu spočívá v konstrukci univerzálně využitelných prvků různého typu a v zajištění požadované funkce programu skládáním služeb poskytovaných těmito prvky. Objektově orientovaný návrh je metoda, která vede k programovým architekturám založených na objektech, s kterými se manipuluje, spíše než na funkcích, které má zajistit.

 

Model objektu

Objekt definujeme jako dvojici O={D, F} kde D je neuspořádaná množina datových prvků (terminologicky atributů) a libovolným typem a F je neuspořádaná množina operací (terminologicky metody, služby) realizovaných nad prvky z množinu D.

 

Chování objektu

 -objekt nereprezentuje žádnou činnost. Ale na požádání poskytuje pro okolí služby.

- Činnost je vnucována zvnějšku, může to být libovolná posloupnost volání služeb objektu.

- Existují dva druhy operací, které objekt poskytuje pro okolí. Operace měnící data uvnitř objektu a operace poskytující informace o stavu dat v objektu.

-Rozhraní je všechno co zákazník objektu může využít, obvykle jsou to prototypy operací.

-Ukrytí implementace znamená, že zákazník nevidí interní detaily objektu, zejména strukturu dat D. To zajišťuje měnit vnitřní detaily objektu bez ovlivnění činnost zákazníků. Zákazník přistupuje k datům nepřímo voláním operací objektu.