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.
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.