230 likes | 339 Views
Aplikační programové vybavení. Aplikace. Inženýrství. Hlavní zásady inženýrství reprodukovatelnost měřitelnost a parametrizovatelnost přenositelnost typizace a standardizace dokumentace práce organizace práce. Aplikace. Aplikace je program určený pro uživatele.
E N D
Aplikační programové vybavení Aplikace
Inženýrství • Hlavní zásady inženýrství • reprodukovatelnost • měřitelnost a parametrizovatelnost • přenositelnost • typizace a standardizace • dokumentace práce • organizace práce
Aplikace • Aplikace je program určený pro uživatele. • Aplikaci je možné rozdělit na části: • prezentační vrstva • vstup dat, zobrazení výsledků, uživatelské rozhraní, logika uživatelského rozhraní • aplikační vrstva • zpracování dat, výpočty, logika práce s daty, business logic • datová vrstva • ukládání a čtení dat, logika skladování dat
Vznik aplikace • Postup vytvoření aplikace zahrnuje: • rozbor zadání • návrh architektury • volba technologie • programování • testování • Volba technologie a návrh architektury probíhají souběžně a prolínají se • Počítač je nutný pouze na závěr programování a testování
Krok 1 - rozbor zadání • záleží na okolnostech • nejzásadnější proces celého vývoje aplikace • vyžaduje analýzu prostředí zákazníka • nejosvědčenější metody: • kvalifikovaný odhad • nekvalifikovaný odhad • psychologie • věštění z křišťálové koule • věštění z čajových lístků • http://www.projectcartoon.com/ProjectCartoon.pdf
Krok 2 - architektura aplikace • struktura a způsob rozložení služeb aplikace • prezentační služby (zobrazování) • prezentační logika (rozložení UI) • logika aplikace (aplikační algoritmy) • logika dat (algoritmy pro práci s daty) • ovládání dat (řízení přístupu k úložišti) • Obecně je nejvýhodnější třívrstvá (3-tier) architektura. • Přesto se používá i dvojvrstvá (2-tier) architektura • několik variant prezentační vrstva aplikační vrstva datová vrstva
Dvojvrstvá architektura 1 • klient-server se vzdálenými daty (file server) • velká zátěž klienta • velká zátěž přenosového kanálu • malá zátěž serveru • subversion, DFS, NFS
Dvojvrstvá architektura 2 • klient-server se vzdálenou prezentací • malé zatížení klienta a přenosového kanálu • velká zátěž serveru • z pohledu klienta není rozlišitelné od třívrstvé architektury • případ mnoha webových aplikací
Dvojvrstvá architektura 3 • klient-server s rozdělenou logikou (hybridní) • dobré rozložení zátěže • horší rozšiřitelnost a přenositelnost • z pohledu klienta není rozlišitelné od třívrstvé architektury • případ některých webových aplikací
Dvojvrstvý model • Data jsou uložena ve formátu daném potřebami aplikace – jsou nepřenositelná. • Změna datového skladu vyžaduje změnu všech klientů. • Důvody používání byly: • snadnější první implementace a návrh • nerozvinuté nebo nedostupné univerzální technologie • databázové servery • aplikační servery • komponenty
Třívrstvá architektura • dobré rozložení zátěže • malá zátěž komunikačních kanálů • dobrá rozšiřitelnost (s využitím standardizovaných rozhraní) • flexibilní architektura • webové aplikace
Výhody třívrstvé architektury • Prezentační a datová vrstva jsou oddělené aplikační vrstvou. • prezentační klienta nemůže ovlivnit datový sklad • zvýšení bezpečnosti, spolehlivosti a flexibility • při použití vhodných rozhraní je možné měnit prezentační klienty • při použití vhodných rozhraní je možné měnit datový sklad • Rozhraní (interface) je něco, co je mezi něčím a něčím jiným.
Příklad • Webový prohlížeč je zcela nezávislý na databázovém serveru. • Webovému prohlížeči je lhostejné, jaký databázový server poskytl data. • Můžeme změnit datový sklad a prohlížeč „si toho nevšimne“. • Můžeme změnit prohlížeč a databázový server „si toho nevšimne“. • Aplikační úroveň tvoří rozhraní mezi datovou a prezentační vrstvou.
Třívrstvá architektura • podpora distribuovaných systémů
Krok 3 – technologie • výběr technologie podle požadovaných vlastností aplikace: • síťová / lokální • klient-server / samostatná (standalone) • kompilovaná / interpretovaná • nativní (native) / runtime • databázová aplikace • webová aplikace • výběr jazyka a vývojového prostředí • IDE – integrated development environment
Různé přístupy Roste: náklady na vývoj výkon možnosti interakce s uživatelem množství dostupných funkcí OS • interpretovaný kód • skriptovací jazyky (PHP, VBS (ASP), JSP), … • runtime prostředí (managed) • jazyky Java (JRE), C# (.NET), … • nativní aplikace • C, C++, Delphi, … Roste: rychlost vývoje přenositelnost HW požadavky footprint
Webová aplikace • WA je aplikace přístupná přes webový server. • Webová stránka slouží jen k poskytování obsahu (jen čtení dat). • Webová aplikace umožňuje interakci s uživatelem (čtení i vkládání dat). • Webová aplikace je soubor více či méně propojených programů. • každý skript je téměř samostatný • Výhody: rychlý vývoj (RAD), vysoká přenositelnost, nízké náklady na provoz
Výhody a nevýhody webových aplikací • O některé věci se programátor nemusí starat • O některé věci se programátor nemůže starat • 1.Vložit mezeru mezi slovy „Přenosová rychlost:“ a veličinou přenosové rychlosti: • 2.Opravit chybu ve větě: „Před otevřením souboru thoto typu vždy zobrazit tento dotaz“.