<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kubánek.org &#187; UML</title>
	<atom:link href="http://kubanek.org/blog/stitky/uml/feed/" rel="self" type="application/rss+xml" />
	<link>http://kubanek.org</link>
	<description>Blog o programování, volejbale a zážitcích ze života</description>
	<lastBuildDate>Mon, 10 May 2010 20:50:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>S objekty do světa</title>
		<link>http://kubanek.org/blog/s-objekty-do-sveta/</link>
		<comments>http://kubanek.org/blog/s-objekty-do-sveta/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 19:39:18 +0000</pubDate>
		<dc:creator>Lukáš Kubánek</dc:creator>
				<category><![CDATA[Informační technologie]]></category>
		<category><![CDATA[Doctrine]]></category>
		<category><![CDATA[Enterprise Architect]]></category>
		<category><![CDATA[Nette Framework]]></category>
		<category><![CDATA[Objektově.cz]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[UML]]></category>
		<category><![CDATA[USDP]]></category>
		<category><![CDATA[WebExpo]]></category>

		<guid isPermaLink="false">http://localhost/kubanek.org/?p=123</guid>
		<description><![CDATA[Musím se přiznat, že jsem na prvním ročníku konference WebExpo postrádal přednášku o pravém objektovém programování webové aplikace. Smutnil jsem, že se žádná významná osoba touto problematikou nezajímala. Postupem času jsem si začal uvědomovat zatemnění především začínajících vývojářů při neúplném pochopení architektury MVC a především zanedbávání modelu, který byl často nahrazován databázovými dotazy přímo v [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Musím se přiznat, že jsem na prvním ročníku konference WebExpo postrádal přednášku o pravém objektovém programování webové aplikace. Smutnil jsem, že se žádná významná osoba touto problematikou nezajímala. Postupem času jsem si začal uvědomovat zatemnění především začínajících vývojářů při neúplném pochopení architektury MVC a především zanedbávání modelu, který byl často nahrazován databázovými dotazy přímo v controllerech. Pořekadla jako <em><em>„</em></em><em>Model je funkční základ aplikace.<em>“</em></em> nebo <em><em>„</em><em>N</em></em><em>a model lze napasovat několik různých UI<em>.“</em></em> se řadili pouze mezi teoretické poučky.</p>
<p style="text-align: justify;">Podobný problém zaznamenal i Tomáš Jukin a tak jsme se rozhodli vyrazit s objekty mezi lidi.  Na letošním WebExpu si v rámci našeho workshopu <a href="http://webexpo.cz/workshop/vyvoj-objektovych-webovych-aplikaci-v-php-metodikou-usdp-pomoci-uml/">Vývoj objektových webových aplikací v PHP metodikou USDP pomocí UML</a> povíme, že vývoj webových aplikací na základě bezhlavého psaní kódu už dnes neletí. Vysvětlíme si, jak efektivně modelovat webové aplikace pomocí objektové metodiky Unified Software Development Process a jako jednotný dorozumívací jazyk v rámci vývojového týmu (popř. přímo s klienty) používat UML. Nad obyčejný podřadný kód posadíme abstraktní rovinu, která nám pomůže udělat si obrázek o systému mnohem rychleji než marné orientování v kódu. Značnou výhodou hotové aplikace bude její velmi dobrá upravitelnost a rozšiřitelnost.</p>
<p style="text-align: justify;">Náš 3,5 hodinový workshop se koná v sobotu 17.10.2009 časně zrána. Workshop bude rozdělen do dvou částí. Nejprve si povíme něco málo nezábavného o teorii modelování informačních systémů, metodice Unified Software Development Process a notačním jazyku UML. V druhé části vás provedeme řízením reálného projektu na základě metodiky USDP. Budeme si hrát na vývojový tým a společnými silami vyvineme použitelnou objektovou webovou aplikaci. Účastníci si v rámci workshopu vyzkouší CASE nástroj Enterprise Architect, získají teoretické základy metodiky USDP a jazyka UML a pochopí jak správně nakládat s modelem z architektury MVC na reálném příkladu založeném na technologiích <em>Nette Framework </em>a <em>Doctrine</em>. Pište správné objektové webové aplikace a bude se vám lépe usínat!</p>
]]></content:encoded>
			<wfw:commentRss>http://kubanek.org/blog/s-objekty-do-sveta/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Abstrakce použití webové aplikace</title>
		<link>http://kubanek.org/blog/abstrakce-pouziti-webove-aplikace/</link>
		<comments>http://kubanek.org/blog/abstrakce-pouziti-webove-aplikace/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 22:16:56 +0000</pubDate>
		<dc:creator>Lukáš Kubánek</dc:creator>
				<category><![CDATA[Informační technologie]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[UML]]></category>
		<category><![CDATA[use case]]></category>

		<guid isPermaLink="false">http://localhost/kubanek.org/?p=117</guid>
		<description><![CDATA[Jak se používají dnešní webové aplikace? Mnozí uživatelé asi odpoví, že se do aplikace nejprve registrují, přihlásí se a pak v aplikaci naleznou příslušnou stránku, na které vyplní formulář a odešlou ho na webový server. Tuto činnost provádějí tak dlouho, dokud neukojí svých potřeb. Samozřejmě, každý vývojář se s podobnou výpovědí setkal a zná ji [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Jak se používají dnešní webové aplikace? Mnozí uživatelé asi odpoví, že se do aplikace nejprve registrují, přihlásí se a pak v aplikaci naleznou příslušnou stránku, na které vyplní formulář a odešlou ho na webový server. Tuto činnost provádějí tak dlouho, dokud neukojí svých potřeb. Samozřejmě, každý vývojář se s podobnou výpovědí setkal a zná ji ze své praxe. Představí si ji asi tak, že aplikace bude disponovat</p>
<ul style="text-align: justify;">
<li>registračním formulářem na stránce s registrací,</li>
<li>přihlašovacím formulářem na hlavní stránce,</li>
<li>a stránkami s <em>jinými </em>formuláři na <em>jiných </em>stránkách.</li>
</ul>
<p style="text-align: justify;">Taková představa je ovšem trochu urychlená, protože se váže na implementační detaily a především na návrh uživatelského rozhraní. V takovém znění by měla zajímat spíše koncového uživatele. V základních fázích vývoje webové aplikace nás vývojáře nebude zajímat rozvržení jednotlivých stránek ani jaké zvolit prvky do formulářů. Takové rozhodovaní odložíme na později. Zkusme se na to podívat z jiného úhlu a pojďme se nyní zamyslet nad vhodnou <em>abstrakcí použití naší aplikace</em> koncovým uživatelem.</p>
<p style="text-align: justify;">Uživatel přistupuje k aplikaci vždy s nějakým záměrem, tzn. že chce, aby vykonala něco v jeho zájmu. Interakci uživatele s webovou aplikací za určitým cílem budeme označovat jako <em>případ užití</em> (anglicky use case).  Případy užití můžou být podmíněny rolí uživatele (např. jen administrátor může měnit zásadní nastavení) nebo jinou výchozí podmínkou (např. zákazník musí mít v košíku nějaké zboží, aby mohl potvrdit objednávku) a často jsou variabilní (např. aby mohl uživatel změnit počet konkrétního zboží v košíku, musí být zboží dostupné na skladě). Důležitým faktem je, že webová aplikace disponuje konečným počtem případů užití.</p>
<blockquote>
<p style="text-align: justify;"><em>„Referenční příručka jazyka UML definuje případ užití jako specifikaci posloupností činností, včetně proměnných posloupností a chybových posloupností, které systém, podsystém nebo třída může vykonat prostřednictvím interakce s vnějšími aktéry.“</em> [USDP, strana 95]</p>
</blockquote>
<p style="text-align: justify;">Metodika Unified Software Development Process zaznamenává případy užití pomocí diagramů případu užití notačního jazyka UML. Ačkoli jazyk UML nepředepisuje konkrétní způsob textové specifikace, je ustálen zápis pomocí šablony [USDP, strana 99]. Na úrovni lidské řeči (pseudokódu, chcete-li) jsou zaznamenány veškeré možné použití aplikace koncovým uživatelem. Ptáte se k čemu to je dobré? Stačí prý naházet do šablon několik formulářů, provázat je controllery a nějak to napojit na databázi? Ten pravý důvod na nás stále čeká!</p>
<p style="text-align: justify;">Webovou aplikaci lze zjednodušeně definovat jako <a href="http://www.phpguru.cz/clanky/model-neni-pouze-databaze">model</a> a uživatelské rozhraní postavené nad modelem, které koncovému uživateli umožňuje s modelem komunikovat a manipulovat a tím realizovat případy užití. Velmi často je ve webových aplikacích externí uživatel v rámci modelu reprezentován a jako interní entita komunikuje se zbylou částí modelu.</p>
<p style="text-align: justify;">Návrh případů užití spočívá v transformaci modelu na úrovni lidské řeči (požadavků na webovou aplikaci) do modelu na úrovni komunikace objektů našeho modelu z MVC. V UML lze tuto komunikaci zachytit pomocí sekvenčních diagramů (je možné využít i další diagramy). Tím docílíme popsání úplné funkčnosti modelu.</p>
<p style="text-align: justify;">V rámci otázky implementace nás bude držet při zemi databáze jakožto úložiště dat. Naštěstí je možné postavit model na nějakém ORM a částečně se s nástrahami vypořádat. Teď, když už máme <em>čistě objektový perzistentní funkční základ</em> webové aplikace, který je schopný obstarat všechny případy užití externích uživatelů, je  teprve čas na natlačení uživatelského rozhraní do controllerů, šablon a formulářů!</p>
<p>[USDP]Jim Arlow, Ila Neustat: <em>UML 2 a unifikovaný proces vývoje aplikací</em>, Computer Press, 2007</p>
]]></content:encoded>
			<wfw:commentRss>http://kubanek.org/blog/abstrakce-pouziti-webove-aplikace/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
