<?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>Flextech - let&#039;s Flex &#187; Metodyki</title>
	<atom:link href="http://blog.flextech.pl/category/metodyki/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.flextech.pl</link>
	<description>wszystko o RIA Flex Flash AIR LiveCycle Media Server Catalyst Paweł Cichoń</description>
	<lastBuildDate>Thu, 24 Jun 2010 12:10:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>COCOMO II, rozkład Rayleigh’a a RIA</title>
		<link>http://blog.flextech.pl/2008/12/10/cocomo-ii-rozklad-rayleigh%e2%80%99a-a-ria/</link>
		<comments>http://blog.flextech.pl/2008/12/10/cocomo-ii-rozklad-rayleigh%e2%80%99a-a-ria/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 12:36:31 +0000</pubDate>
		<dc:creator>Paweł Cichoń</dc:creator>
				<category><![CDATA[Metodyki]]></category>
		<category><![CDATA[RIA]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/?p=973</guid>
		<description><![CDATA[Trochę z innej beczki napiszę tj. bardziej od strony zarządzania, jako, że kiedyś wspominałem o prototypowaniu, a właśnie skończyłem pewne „doświadczenia” i mam spostrzeżenia (przepraszam, jak będę trochę przynudzał) ;) Ostatnio dosyć mocno zajmowałem się metodami oszacowywania punktów funkcyjnych oraz statystycznymi metodami estymacji kosztów projektów (przez koszt rozumiem głownie zasoby ludzkie, abstrahując od infrastruktury, sprzętu itd…) [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Trochę z innej beczki napiszę</strong> tj. bardziej od strony zarządzania, jako, że <a href="http://blog.flextech.pl/2008/06/19/adobe-thermo-a-szybkie-prototypowanie/" target="_blank">kiedyś wspominałem o prototypowaniu</a>, a właśnie skończyłem pewne „doświadczenia” i mam spostrzeżenia (przepraszam, jak będę trochę przynudzał) ;) Ostatnio dosyć mocno zajmowałem się metodami oszacowywania punktów funkcyjnych oraz statystycznymi metodami estymacji kosztów projektów (przez koszt rozumiem głownie zasoby ludzkie, abstrahując od infrastruktury, sprzętu itd…) oraz kosztami usunięcia błędów w kontekście wytwarzania RIA (Flex, Eclipse + rozszerzenia GMF + transformery – średnia skomplikowaność RIA – między 50-150 <a href="http://pl.wikipedia.org/wiki/KLOC" target="_blank">KLOC</a>) ukierunkowanego na prototypowanie (niskiego poziomu).</p>
<p>Chodziło o to, aby na podstawie badań empirycznych sprawdzić, czy prototypowanie z zastosowaniem UML (z profilem RT) + metod formalnych (do formalnego wsparcia semantyki UML) w RIA (swoiste <a href="http://en.wikipedia.org/wiki/Model_Driven_Engineering" target="_blank">MDE</a>, z ukierunkowaniem na <a href="http://en.wikipedia.org/wiki/Rapid_application_development" target="_blank">RAD</a>) może przynieść wymierne korzyści. Do tego celu posłużyłem się modelem <a href="http://pl.wikipedia.org/wiki/COCOMO" target="_blank">COCOMO II.2000</a> (Constructive Cost Model) + Nelsen dla estymacji przewidywanych kosztów, oraz <a href="http://pl.wikipedia.org/wiki/Rozk%C5%82ad_Rayleigha" target="_blank">rozkładem Rayleigh’a</a> (plus „wagi” Pressman’a) dla oszacowania gęstości występowania defektów w poszczególnych fazach projektu, a w konsekwencji kosztu usunięcia defektów w danej fazie produkcyjnej. Nie będę tu prezentował lekko rozbudowanych wzorów, które były podstawą do przeprowadzenia badań, a następnie odniesienia rezultatów do świata rzeczywistego (zresztą niedługo pojawi się pewna publikacja w tym względzie, to może pochwale się linkiem ;)).</p>
<p>Jakby nie było biorąc pod uwagę osiągnięte rezultaty mogę stwierdzić, że <strong>stosowanie formalnych metod prototypowania RIA średniej wielkości może zmniejszyć o około 43% koszt usunięcia błędów</strong> – jest to niebagatelna wartość, biorąc pod uwagę, że szacuje się, że koszt usunięcia błędów w fazie implementacji, jest średnio około 10 razy większy niż usunięcie danego błędu w fazie projektowania (w tym w procesie modelowania). Biorąc pod uwagę fakt, że<strong> stosowanie takich metod wydłuża fazy projektowania, skompensowany zysk to około 23% mniej kosztów</strong>, co też nie jest małą wartością. Zatem zainteresowanie się prototypowaniem RIA oraz stosowaniem metod formalnych w ich procesie wytwórczym wydaje się niegłupie … polecam.</p>
<p>Inna sprawa jak widać COCOMO może mieć wiele postaci, niesamowita zbieżność nazw z <a href="http://labs.adobe.com/technologies/cocomo/" target="_blank">Adobe Cocomo</a> ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/12/10/cocomo-ii-rozklad-rayleigh%e2%80%99a-a-ria/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tadeusz Chełkowski &#8211; RIA w biznesie &#8211; LiveCycle Process Management</title>
		<link>http://blog.flextech.pl/2008/12/04/tadeusz-chelkowski-ria-w-biznesie-livecycle-process-management/</link>
		<comments>http://blog.flextech.pl/2008/12/04/tadeusz-chelkowski-ria-w-biznesie-livecycle-process-management/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 10:03:30 +0000</pubDate>
		<dc:creator>Paweł Cichoń</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[LiveCycle]]></category>
		<category><![CDATA[Metodyki]]></category>
		<category><![CDATA[Przykłady]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[TV]]></category>
		<category><![CDATA[biznes]]></category>
		<category><![CDATA[process management]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/?p=888</guid>
		<description><![CDATA[ 

Tadeusz Chełkowski &#8211; RIA w biznesie &#8211; LiveCycle Process Management
RIA Day 2008 &#8211; 27.11.2008 Wrocław
]]></description>
			<content:encoded><![CDATA[<p><script language="javascript"> <!--
	if (AC_FL_RunContent == 0) {
		alert("This page requires AC_RunActiveContent.js.");
	} else {
		AC_FL_RunContent(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
			'width', '429',
			'height', '350',
			'src', 'flvplayer',
			'quality', 'best',
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
			'align', 'middle',
			'play', 'true',
			'loop', 'true',
			'scale', 'noscale',
			'devicefont', 'false',
			'id', 'flvplayer',
			'bgcolor', '#ffffff',
			'name', 'flvplayer',
			'menu', 'false',
			'allowFullScreen', 'false',
			'allowScriptAccess','always',
			'movie', 'http://blog.flextech.pl/wp-content/uploads/flvplayer',
			'FlashVars', 'path=http://blog.flextech.pl/video/ria08/ria08_05_chelkowski.flv',
			'salign', ''
			); }
//-->
</script><noscript><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="429" height="350" id="flvplayer" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="FlashVars" value="path=http://blog.flextech.pl/video/ria08/ria08_05_chelkowski.flv" /><param name="movie" value="http://blog.flextech.pl/wp-content/uploads/flvplayer.swf" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><embed src="http://blog.flextech.pl/wp-content/uploads/flvplayer.swf" quality="best" bgcolor="#ffffff" FlashVars="path=http://blog.flextech.pl/video/ria08/ria08_05_chelkowski.flv" width="400" height="330" name="flvplayer" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object></noscript><br/></p>
<p><b>Tadeusz Chełkowski</b> &#8211; RIA w biznesie &#8211; LiveCycle Process Management<br />
<a href="http://www.riaday.com" target="_blank">RIA Day 2008</a> &#8211; 27.11.2008 Wrocław</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/12/04/tadeusz-chelkowski-ria-w-biznesie-livecycle-process-management/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Adobe Thermo, a szybkie prototypowanie</title>
		<link>http://blog.flextech.pl/2008/06/19/adobe-thermo-a-szybkie-prototypowanie/</link>
		<comments>http://blog.flextech.pl/2008/06/19/adobe-thermo-a-szybkie-prototypowanie/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 21:29:48 +0000</pubDate>
		<dc:creator>Paweł Cichoń</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Metodyki]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/2008/06/19/adobe-thermo-a-szybkie-prototypowanie/</guid>
		<description><![CDATA[Szybkie prototypowanie (ang. rapid prototyping) aplikacji Flex nie jest sprawą oczywistą. Szybkie prototypowanie to w skrócie automatyczna generacja prototypu, czyli działającej aplikacji w wersji beta (wersję beta aplikacji rozumiem tu w kontekście terminologii USDP – gdzie oznacza ona wersję mniej zaawansowaną (wcześniejszą) od wersji alfa, która w powszechnej terminologii oznacza wersją prerelease). Słowo AUTOMATYCZNA generacja, [...]]]></description>
			<content:encoded><![CDATA[<p>Szybkie prototypowanie (ang. <a target="_blank" href="http://en.wikipedia.org/wiki/Rapid_prototyping">rapid prototyping</a>) aplikacji Flex nie jest sprawą oczywistą. Szybkie prototypowanie to w skrócie automatyczna generacja prototypu, czyli działającej aplikacji w wersji beta (wersję beta aplikacji rozumiem tu w kontekście terminologii <a target="_blank" href="http://en.wikipedia.org/wiki/Unified_Software_Development_Process">USDP</a> – gdzie oznacza ona wersję mniej zaawansowaną (wcześniejszą) od wersji alfa, która w powszechnej terminologii oznacza wersją prerelease). Słowo AUTOMATYCZNA generacja, samo AUTOMATYCZNA to kwestia decydująca o nietrywialności procesu zorientowanego na szybkie prototypowanie. Właśnie tu pojawia się pytanie, jak znaleźć sposób na automatyczną generację aplikacji Flex z jej modelu (aplikację Flex/multimedialną w tym kontekście należy rozumieć/definiować jako <a target="_blank" href="http://pl.wikipedia.org/wiki/System_czasu_rzeczywistego">system czasu rzeczywistego</a>)? Tak, tu jest pole do popisu – jak przykładowo z diagramów <a target="_blank" href="http://pl.wikipedia.org/wiki/UML">UML</a> przejść w sposób automatyczny do kompilowanego kodu źródłowego? (w sumie na to pytanie starałem się odpowiedzieć w swoich pracach naukowych, gdzie zaprezentowałem pewien sposób transformacji model – kod, ale mniejsza z tym). No, nie jest to takie proste … a z pewnością jest niezmiernie istotne dla skrócenia procesu wytwórczego RIA oraz możliwie najefektywniejszego ich wytwarzania.</p>
<p>Proces produkcyjny RIA (i wszelkich innych aplikacji) standardowo zawiera m.in. fazę analizy, która powinna kończyć się m.in. modelem aplikacji, który powinien możliwie najdokładniej odzwierciedlać wymagania/aspekty statyczne i behawioralne (charakterystykę) projektowanego systemu.</p>
<p>Aplikację Flex można zaprojektować używając do tego celu m.in. języka UML. Aby możliwie najdokładniej opisać aspekty behawioralne aplikacji dodatkowo należy użyć rozszerzenia <a target="_blank" href="http://www.omg.org/technology/documents/formal/schedulability.htm">RT UML</a> (w tej chwili trwają też prace nad MARTE (UML Profile for Modeling and Analysis of Real-time and Embedded Systems ), który jest rozwinięciem kwestii poruszonych w profilu RT UML i ma za zadanie w przyszłości go zastąpić). W sumie jestem współautorem rozszerzenia języka UML o diagramy i mechanizmy, które pozwalają opisać dokładniej aplikację multimedialną/RIA (jest to m.in. wprowadzenie nowego typu diagramu do UML tj. diagramu prezentacji, czy rozszerzenie meta modelu języka RT UML o zbiór zdarzeń synchronizujących się, który pozwala na wyrażanie ograniczeń czasowych na diagramach sekwencji oraz aktywności, w celu ich późniejszej weryfikacji (niesprzeczność ograniczeń itd.) przy automatycznym przejściu z modelu do kodu) i muszę przyznać, że UML dosyć dobrze (po zaaplikowaniu pewnych <a target="_blank" href="http://en.wikipedia.org/wiki/Profile_(UML)">profili</a>) radzi sobie z modelowaniem RIA.</p>
<p>Piszę o tym wszystkim, ponieważ na wyżej przedstawionym tle (problematyce) widać jak ważne w kontekście automatyzacji pewnej części procesu produkcyjnego oraz po części prototypowania RIA jest <a target="_blank" href="http://labs.adobe.com/wiki/index.php/Thermo">Adobe Thermo</a>, który powinien pojawić się w niedługim czasie. Otóż Thermo będzie pozwalał na możliwie wczesnym stadium projektu zaprezentować klientowi nie tylko wygląd, ale i planowany behawioryzm tworzonej aplikacji Flex. Ma to szczególnie duże znaczenie w przypadku <a href="http://blog.flextech.pl/2008/04/06/projekty-adaptowalne-a-flex/">adaptowalnej realizacji projektów RIA</a>, gdzie zakłada się jak najwcześniejszą i możliwie najczęstszą prezentację prototypu klientowi.</p>
<p>Poniżej wklejam zrzuty ekranu Adobe Thermo, którego wczesna wersja beta ma zostać zaprezentowana na <a target="_blank" href="http://max.adobe.com/">Adobe MAX 2008</a>. Obrazy te zostały opublikowane w ostatnim czasie przez Adobe, jak mniemam celem przypomnienia nam wszystkim, że Thermo i prace nad nim nie umarły.</p>
<p><a target="_blank" href="http://onflex.org/images/max.adobe.com/Adobe_MAX_2008_Thermo_1.png"><img src="http://blog.flextech.pl/wp-content/uploads/2008/06/s1.jpg" alt="s4.jpg" /></a></p>
<p><a target="_blank" href="http://onflex.org/images/max.adobe.com/Adobe_MAX_2008_Thermo_2.png"><img src="http://blog.flextech.pl/wp-content/uploads/2008/06/s2.jpg" alt="s3.jpg" /></a></p>
<p><a target="_blank" href="http://onflex.org/images/max.adobe.com/Adobe_MAX_2008_Thermo_3.png"><img src="http://blog.flextech.pl/wp-content/uploads/2008/06/s3.jpg" alt="s2.jpg" /></a></p>
<p><a target="_blank" href="http://onflex.org/images/max.adobe.com/Adobe_MAX_2008_Thermo_4.png"><img src="http://blog.flextech.pl/wp-content/uploads/2008/06/s4.jpg" alt="s1.jpg" /></a></p>
<p>Na Adobe Thermo czekają nie tylko analitycy/projektanci RIA w oparciu o technologię Flex, ale i specjaliści użyteczności RIA, ponieważ Thermo pozwoli im przebadać &#8220;na użytkownikach&#8221; nie tylko statyczny projekt aplikacji RIA, ale i jej behawioryzm w możliwie najwcześniejszej fazie projektu. No nic, to czekamy na Thermo …</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/06/19/adobe-thermo-a-szybkie-prototypowanie/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Projekty adaptowalne, a Flex</title>
		<link>http://blog.flextech.pl/2008/04/06/projekty-adaptowalne-a-flex/</link>
		<comments>http://blog.flextech.pl/2008/04/06/projekty-adaptowalne-a-flex/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 19:22:26 +0000</pubDate>
		<dc:creator>Paweł Cichoń</dc:creator>
				<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Metodyki]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Wzorce]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/2008/04/06/projekty-adoptowalne-a-flex/</guid>
		<description><![CDATA[Muszę przyznać, że osobiście jestem wielkim propagatorem stosowania procesów adaptowalnych (ang. adaptive processes) w kontekście wytwarzania aplikacji RIA opartych m.in. o technologię Flex. Co to jest proces adaptowalny? Aby mówić o jakimkolwiek procesie wytwórczym na pewno należy upewnić się, że rozróżniamy pojęcia „proces” i „projekt”. Czyli na początku odpowiedzmy na pytanie, co to jest projekt adaptowalny (ang. [...]]]></description>
			<content:encoded><![CDATA[<p>Muszę przyznać, że osobiście jestem wielkim propagatorem stosowania procesów adaptowalnych (ang. adaptive processes) w kontekście wytwarzania aplikacji RIA opartych m.in. o technologię Flex. Co to jest proces adaptowalny? Aby mówić o jakimkolwiek procesie wytwórczym na pewno należy upewnić się, że rozróżniamy pojęcia „proces” i „projekt”. Czyli na początku odpowiedzmy na pytanie, co to jest projekt adaptowalny (ang. adaptive project)? Otóż, protoplastą projektów adaptowalnych są projekty fixe-price (stała cena – bardzo popularne na rynku polskim), których nazwa bierze się stąd, że ich artefaktem wstępnym jest kontrakt fixe-price, czyli taki, w którym jasno i niezmiennie w kontekście procesu produkcyjnego są zdefiniowane wymagania odnośnie projektu (przedsięwzięcia), którym mamy się zająć. Jeżeli mówimy o wymaganiach, to musimy odróżniać wymagania funkcjonalne od niefunkcjonalnych. Wymagania niefunkcjonalne, to np. budżet, harmonogram, itd… wymagania funkcjonalne, to wszystko to co opisuje nam to co mamy pokryć od strony wdrożeniowej (punkty funkcyjne, funkcjonalności itd…). Projekt adaptowalny, to projekt przed którego realizacją podpisujemy kontrakt adaptowalny (którego protoplastą jest kontrakt z otwartymi godzinami ang. open-hours contracts), czyli taki, który zezwala na rozbudowę zakresu projektu od strony wymagań funkcjonalnych w trakcie jego życia na ściśle określonych zasadach. Natomiast proces adaptowalny to sposób realizacji projektu adaptowalnego, w którym w ciągu kolejnych iteracji wymagania funkcjonalne są rozbudowywane oraz adaptowane do wymagań niefunkcjonalnych.</p>
<p>Każdy proces jest uporządkowanym zbiorem faz oraz artefaktów. Fazy mogą być realizowane w sposób kaskadowy (ang. waterfall model), bądź równoległy. W jednym z poprzednich postów <a href="http://blog.flextech.pl/2008/02/22/tdd-we-flex-a-moze-bdd/" target="_blank">wspominałem o metodykach lekkich jak XP </a>(eXtreame Programming). Bardzo dobrą metodyką lekką, która sprawdza się w kontekście adaptowalnego prowadzenia przedsięwzięć RIA, jest <a href="http://pl.wikipedia.org/wiki/Scrum" target="_blank">SCRUM</a>, jako, że jej stosowanie wymusza m.in. spotkania zespołu pomiędzy kolejnymi fazami/iteracjami procesu, które pozwalają na kontrolowane rozbudowywanie/korygowanie zakresu projektu od strony funkcjonalnej razem z klientem. Porównując chociażby Flex’a z Flash’em, należy stwierdzić, że Flex to takie małe błogosławieństwo dla stosowania procesu adaptowalnego w kontekście wytwarzania RIA (czy nawet w kontekście stosowania programowania parami (ang. <a href="http://en.wikipedia.org/wiki/Pair_programming" target="_blank">pair programming</a>) w RIA). Flex, jako technologia oraz środowisko wytwórcze, pozwala chociażby na zrównoleglenie poszczególnych faz, na dostarczanie szybkich prototypów oraz artefaktów funkcjonalnych do klienta, nie zaburzając przy tym architektury aplikacji oraz płynności samego procesu produkcyjnego. Jego zorientowanie na warstwę prezentacji wymaga chociażby zainteresowania się tematyką <a href="http://en.wikipedia.org/wiki/User-centered_design" target="_blank">UCD</a> (ang. User-Centered Design, usabilty, itd…) oraz włączenia ideii UCD choćby w szczątkowej postaci do procesu produkcyjnego.</p>
<p>Jak stosowanie procesu adaptowalnego, UCD oraz SCRUM, jako „jedność” wygląda w praktyce? No, na pewno wszystkiego tutaj nie opiszę (po szczegóły ad. procesów adaptowalnych zapraszam m.in. do sięgnięcia do publikacji m.in. mojego autorstwa – <a href="http://www.springer.com/computer/database+management+&amp;+information+retrieval/book/978-1-4020-5633-8" target="_blank">link tu</a>, i <a href="http://www.springerlink.com/content/mg47000g72091007/" target="_blank">tu</a> ), jako że temat jest dosyć obszerny. Niemniej jednak chcąc wszystko przedstawić w sposób bardzo zwięzły na potrzeby tego wpisu w skrócie wygląda to tak. Zamiast <a href="http://en.wikipedia.org/wiki/Work_breakdown_structure" target="_blank">WBS</a> stosuje się FBS (ang.  Functional (czasami mówi się Features) Breakdown Structure), który jest drzewiastą reprezentacją modułów, obszarów funkcjonalnych oraz funkcjonalności projektów wraz z wagami realizacyjnymi (priorytety) określonymi przez klienta (czasami, choć rzadko przed stworzeniem FBS’a stosuje się badania fokusowe, aby „wybadać”, czego przyszli użytkownicy (z grupy docelowej) mogą pożądać w aplikacji, od strony funkcjonalności). Na bazie FBS’a tworzone są scenariusze odpowiadające realizacji danych funkcjonalności (np. w postaci diagramów aktywności <a href="http://pl.wikipedia.org/wiki/UML" target="_blank">UML’a</a>) – opisy stanów oraz tranzycji (przejść) między nimi, które następnie są upraszczane (redukowane) w kontekście możliwości Flex’a. Następnym krokiem jest szukanie możliwych kolaboracji danych stanów pochodzących ze scenariuszy odrębnych funkcjonalności, tak, aby zbudować model interakcji pomiędzy odpowiednimi obszarami funkcjonalnymi projektu. Na bazie wszystkiego co powyżej, tworzy się makiety oraz prototypy, które są poddawane testom z użytkownikami (ang. user-tests). Ważne jest to, że przed kreacją makiet jasno określa się interfejsy pomiędzy warstwą prezentacji, a logiką biznesową, tak, aby faza implementacji (logiki biznesowej) mogła zacząć się równolegle z wytwarzaniem <a href="http://pl.wikipedia.org/wiki/Interfejs_graficzny" target="_blank">GUI</a>. Faza wdrożenia, to iteracyjna i równoległa realizacja połączonych faz projektowania oraz implementacji, – czyli po prostu stosowanie podejścia adaptowalnego w kontekście SCRUM, które skutkuje dostarczaniem kolejnych funkcjonalności systemu przy współpracy z klientem oraz w kolejności, które określają wcześniej zdefiniowane priorytety realizacyjne. Tak to w DUŻYM skrócie wygląda.</p>
<p>Jakby nie było metodologie ad. projektów adaptowalnych to jak dla mnie przyszłość w realizacji złożonych projektów RIA, dodatkowo bardzo dobrze „radzą sobie” z pracą zdalną (ang. telecommuting), dlatego jestem dosyć mocno zaangażowany w ich promocję oraz precyzowanie (Adam pracujący w <a href="http://www.sap.com/poland/index.epx" target="_blank">SAP’ie</a> testował je od strony wdrażania aplikacji programowych, natomiast ja od strony aplikacji multimedialnych (systemów czasu rzeczywistego) – i razem stwierdzamy, że proces adaptowalny daje radę oraz przynosi wymierne rezultaty w stosunku do podejścia konwencjonalnego). Jako, że temat jest z pogranicza zarządzania projektami i technologii Flex, nie chcę już Was więcej zanudzać ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/04/06/projekty-adaptowalne-a-flex/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Co to jest Maven i jak go użyć z Flex&#8217;em</title>
		<link>http://blog.flextech.pl/2008/03/01/co-to-jest-maven-i-jak-go-uzyc-z-flexem/</link>
		<comments>http://blog.flextech.pl/2008/03/01/co-to-jest-maven-i-jak-go-uzyc-z-flexem/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 23:35:15 +0000</pubDate>
		<dc:creator>Paweł Cichoń</dc:creator>
				<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Metodyki]]></category>
		<category><![CDATA[Wzorce]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/2008/03/01/co-to-jest-maven-i-jak-go-uzyc-z-flexem/</guid>
		<description><![CDATA[Muszę przyznać, że jeżeli chodzi o rekompilację ad-hoc przez długi czas &#8220;ograniczałem się&#8221; do Ant&#8217;a, który działał sobie razem z Eclipsem. Jednak z czasem, kiedy to pojawiały się większe projekty, które same z siebie wymuszały przestrzeganie faz produkcyjnych wpadło mi w ręce niesamowite narzędzie tj. Maven. Nie będę ukrywał, że zarówno Ant&#8217;a, jak i Maven&#8217;a poznałem [...]]]></description>
			<content:encoded><![CDATA[<p>Muszę przyznać, że jeżeli chodzi o rekompilację ad-hoc przez długi czas &#8220;ograniczałem się&#8221; do <a href="http://ant.apache.org/" target="_blank">Ant&#8217;a</a>, który działał sobie razem z Eclipsem. Jednak z czasem, kiedy to pojawiały się większe projekty, które same z siebie wymuszały przestrzeganie faz produkcyjnych wpadło mi w ręce niesamowite narzędzie tj. <a href="http://maven.apache.org/" target="_blank">Maven</a>. Nie będę ukrywał, że zarówno Ant&#8217;a, jak i Maven&#8217;a poznałem &#8220;przez Jave&#8221;, i to właśnie swoje doświadczenia z Javy w tym względzie zacząłem przenosić na grunt Flex&#8217;a. Co to jest Maven? Mówiąc krótko jest to narzędzie, które ma za zadanie automatyzować zarówno proces kompilacji, buildowania i migracji wraz z procesem zarządzania projektem. Choć użycie sformułowania &#8220;zarządzania projektem&#8221; to być może za duże słowo, powiedzmy zarządzania fazami procesu wytwórczego alplikacji programowych. Jak to jest możliwe? Otóż każdy projekt składa się z modułów realizacyjnych, których podział wynika za zwyczaj pośrednio z tzw. WBS&#8217;a (<a href="http://en.wikipedia.org/wiki/Work_breakdown_structure" target="_blank">Work Breakdown Structure</a>), za który odpowiedzialny jest Project Manager. Modłuły funkcjonalne w całości, bądź po podziale na czynności są przekazywane do wdrożenia zespołom projektowym w danej metodologii, która zakłada dostarczanie pewnych artefaktów, zarówno papierowych, jak i programowych na końcu poszczególnych faz. W kontekście procesu produkcyjnego (tym bardziej jeżeli mamy do czynienia z tzw. procesem iteracyjnym)  przydałoby się narzędzie, które dbałoby o to, aby poszczególni członkowie zespołów mieli tożsame pliki konfiguracyjne środowisk wytwórczych,  pracowali wedle tych samych faz produkcyjnych oraz przestrzegali ich kolejności, w zorganizowany sposób dostarczali artefakty (zarówno papierowe tj. dokumentację, która za zwyczaj jest w formie elektronicznej, jak i programowe tj. zwersjonowane kody źródłowe), które składałyby się na kompletne modłuły, natomiast poszczególne moduły na gotowy produkt (w kontekście Flex&#8217;a lepiej chyba zamiast modułów, używać terminu &#8211; komponent, jakby nie było, przyjmijmy, że w kontekscie tego posta terminy te są dla mnie równoważne).</p>
<p>Na zdrowy rozsądek, narzędzie mające zautomatyzować i nadzorować powyższe kwestie powinno dysponować jakimś standardem opisu zależności pomiędzy poszczególnymi modułami, który krótko mówiąc opisywałby budowę aplikacji, a także szereg innych informacji dotyczących m.in. konfiguracji środowisk wytwórczych, generowania raportów, czy opisu zespołu projektowego wraz z referencją do zdefiniowanych wcześniej artefaktów, za które odpowiedzialni są poszczególni członkowie zespołu.</p>
<p>Narzędziem, które pozwala to zrobić jest Apache Maven, natomiast standardem dokumentu zawierającym definicje między innymi wymienionych wyżej aspektów jest POM &#8211; <a href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html" target="_blank">Project Object Model </a>(który jasna sprawa bazuje na języku XML). Niestety ciężko by było w tym poście opisać poszczególne tagi niezbędne do tego, aby stworzyć POM &#8211; dlatego odsyłam <a href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html" target="_blank">do tego linku</a> po specyfikację wraz z przykładami.</p>
<p>Jednak przed tym jak zaczniemy definiować POM&#8217;y musimy zainstalować <a href="http://www.israfil.net/projects/mojo/maven-flex2-plugin/" target="_blank">plugin Maven&#8217;a</a> do Flex SDK 2.0 (przyznam się, ze plugina z SDK 3 jeszcze nie używałem, nie wiem, czy da radę). Jakby nie było, plugin ten, nie jest może zbyt rozbudowany, niemniej jednak oferuje cztery bardzo przydatne dyrektywy (czynności) [ flex2:asdoc, flex2:compile-swc, flex2:copy-flex-applications, flex2:compile-swf], których nazwy mówią same za siebie i o których można sobie więcej <a href="http://www.israfil.net/projects/mojo/maven-flex2-plugin/plugin-info.html" target="_blank">poczytać tu</a>. <a href="http://www.israfil.net/projects/mojo/maven-flex2-plugin/examples/simple_war_project.html" target="_blank">Przykłady użycia są tu</a>. Jeżeli natomiast w swoich projektach używasz webserviceów WSDL&#8217;a polecam <a href="http://maven.badgers-in-foil.co.uk/sites/wsdl2as/" target="_blank">wsdl2as</a> plugin, jest tam też plugin pod Maven&#8217;a &#8211; niezmiernie ułatwiająca życie sprawa.</p>
<p>Maven rządzi i jak dla mnie to teraźniejszość i przyszłość, z pewnością więc warto zapoznać się z nim w kontekście tworzenia rozbudowanych aplikacji Flex&#8217;owych.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/03/01/co-to-jest-maven-i-jak-go-uzyc-z-flexem/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8220;Porządne&#8221; testowanie funkcjonalne z Mercury</title>
		<link>http://blog.flextech.pl/2008/02/24/porzadne-testowanie-funkcjonalne-z-mercury/</link>
		<comments>http://blog.flextech.pl/2008/02/24/porzadne-testowanie-funkcjonalne-z-mercury/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 12:47:54 +0000</pubDate>
		<dc:creator>Paweł Cichoń</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Metodyki]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/2008/02/10/porzadne-testowanie-funkcjonalne-z-mercury/</guid>
		<description><![CDATA[Z dostępnością do Mercury było niezle dopóki nie kupiło go HP. Niemniej jednak, jeżeli pytanie jest o to, jak przetestować funkcjonalnie złożoną aplikację Flex, odpowiedź według mnie na ten czas jest jedna &#8211; stosując Mercury QuickTest Professional, choc w obecnej sytuacji powinienem był napsiać HP QuickTest Professional. Flex Builder 2 z wersją 9.1 QuickTest działa [...]]]></description>
			<content:encoded><![CDATA[<p>Z dostępnością do Mercury było niezle dopóki nie kupiło go HP. Niemniej jednak, jeżeli pytanie jest o to, jak przetestować funkcjonalnie złożoną aplikację Flex, odpowiedź według mnie na ten czas jest jedna &#8211; stosując Mercury QuickTest Professional, choc w obecnej sytuacji powinienem był napsiać <a target="_blank" href="https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&amp;cp=1-11-15-24%5e1322_4000_100__">HP QuickTest Professional</a>. Flex Builder 2 z wersją 9.1 QuickTest działa bardzo sprawnie, problem pojawia się przy testowaniu we Flex Builder 3 wersji beta,&#8230; nie wykrywa obiektów Flex&#8217;a, niemniej jednak problemy sa z wersja beta, to za bardzo nie ma co się martwić. Jednak stosując patch&#8217;a 1701 do QuickTest, otrzymujemy wersje 9.2, która działa, aż miło!</p>
<p>Więcej o używaniu Mercury do testów:</p>
<p><a target="_blank" href="http://download.macromedia.com/pub/documentation/en/flex/2/flex2_testing_with_mercury_qtp.pdf">http://download.macromedia.com/pub/documentation/en/flex/2/flex2_testing_with_mercury_qtp.pdf</a></p>
<p><a target="_blank" href="http://flex.org/ACDS/AutomatedTestingInFlex.pdf">http://flex.org/ACDS/AutomatedTestingInFlex.pdf</a></p>
<p>Jak wystartować z Flex Builder 3:</p>
<p><a target="_blank" href="http://labs.adobe.com/wiki/index.php/Flex_3:Release_Notes#Requirements_for_Using_the_QTP_Plug-in">http://labs.adobe.com/wiki/index.php/Flex_3:Release_Notes#Requirements_for_Using_the_QTP_Plug-in</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/02/24/porzadne-testowanie-funkcjonalne-z-mercury/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>TDD we Flex, a może BDD?</title>
		<link>http://blog.flextech.pl/2008/02/22/tdd-we-flex-a-moze-bdd/</link>
		<comments>http://blog.flextech.pl/2008/02/22/tdd-we-flex-a-moze-bdd/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 22:01:37 +0000</pubDate>
		<dc:creator>Paweł Cichoń</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Artykuły]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Metodyki]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/2008/02/22/tdd-we-flex-a-moze-bdd/</guid>
		<description><![CDATA[Cieszę się, że technologia Flex i sam jezyk ActionScript wdziera się do rozwiązan korporacyjnych na tyle szybko, że coraz częsciej zespoły wytwarzające oprogramowanie w oparciu o Flexa, stosują znane metodyki programowania używane w innych srodowiskach/technologiach wytwarzania od dosyć dawna. Same przez siebie niejako nobilitują one Flex&#8217;a, pokazując, ze jest on w stanie podołać skompilkowanym wdrożeniom RIA, absorbującym duże [...]]]></description>
			<content:encoded><![CDATA[<p>Cieszę się, że technologia <a href="http://www.adobe.com/products/flex/" target="_blank">Flex</a> i sam jezyk <a href="http://pl.wikipedia.org/wiki/ActionScript" target="_blank">ActionScript</a> wdziera się do rozwiązan korporacyjnych na tyle szybko, że coraz częsciej zespoły wytwarzające oprogramowanie w oparciu o Flexa, stosują znane metodyki programowania używane w innych srodowiskach/technologiach wytwarzania od dosyć dawna. Same przez siebie niejako nobilitują one Flex&#8217;a, pokazując, ze jest on w stanie podołać skompilkowanym wdrożeniom <a href="http://pl.wikipedia.org/wiki/Rich_Internet_Application" target="_blank">RIA</a>, absorbującym duże zespoły projektowe i produkcyjne (mam tu na mysli 30-40 osób). Automatyzacja jest teraz na czasie, w tym zagadnienia dot. automatyzacji refaktoringu, czy testowania &#8211; dla kogos z pozoru być może są to sprawy trywialne, niestety tak nie jest. Co to jest TDD (ang. <a href="http://en.wikipedia.org/wiki/Test-driven_development" target="_blank">Test Driven Devlopment</a>)? &#8211; po krótce jest to wytwarzanie oprogramowania zorientowane na testy.</p>
<p>Pomysł na TDD, pojawił się niedługo po ukłuciu i rozpowszechnieniu się terminu XP (ang. <a href="http://www.extremeprogramming.org/" target="_blank">eXtreme Programing</a>), jednej z bardziej popularnych metodyk lekkich (inaczej zwanych zwinnymi ang. agile) wytwarzania oprogramowania, które kładą nacisk na dostarczanie klientowi artefaktów programowych, zamiast papierowych tj. dokumentacji &#8211; która w XP ma formę szczątkową w porównaniu m.in. do RUP (ang. <a href="http://pl.wikipedia.org/wiki/Rational_Unified_Process" target="_blank">Rational Unified Process</a>), który czerpie korzenie z USDP (ang. <a href="http://en.wikipedia.org/wiki/Unified_Process" target="_blank">Unified Software Development Process</a>)) i jest reprezentantem metodyk ciężkich. XP jako uznana metodyka zwinna, zaczeła permanentnie dążyc do skracania faz produkcyjnych i tak m.in. powstał pomysł na to, aby zautomatyzowac testowanie poprzez wprowadzenie testów jednostkowych (nazwa bierze się z testowania danej jednostki, jaka jest metoda (funkcja) lub klasa) oraz przeniesienie fazy testowania na poczatek fazy implementacji, a docelowo zmusić programistę, aby pisał przypadki testowe przed napisaniem właściwego kodu aplikacji programowej, pisać na początku, co kod ma zrobić, a nie jak coś ma być zrobione. W porównaniu do tradycyjnego procesu wytwarzania oprogramowania, w którym testy (czy to weryfikacyjne, walidacyjne, wydajnościowe, czy to ilościowe) sa przeprowadzane za zwyczaj w koncowych fazach procesu wytwarzania oprogramowania, była to koncepcja nadzwyczaj rewolucyjna (nawet jak na poczatki XXI wieku ). Z &#8221;marketingowego&#8221; punktu widzenia, wydawalo sie od razu, ze programisci będą mieć wiekszy zapał aby pisać testy na początku fazy wdrożenia, niż w kolejnych fazach (przecież na zdrowy rozsądek każdy z nas jak podchodzi do projektu ma najwięcej zaangażowania na początku prac, najmniej na żmudnym końcu, kiedy należy poprawiac i poprawiac, i nie zawsze wiadomo, gdzie się popełniło błąd ), a kod tworzony wedle ścisłych reguł umożliwiajacych automatyzację testowania oraz przypadków testowych będzie łatwiejszy w pielęgnacji i rozbudowie.</p>
<p>Nie ma co się oszukiwać, TDD sprawdza się dobrze przede wszystkim w duzych projektach, dotyczy to takze Flex&#8217;a, w małych m.in. programiści nie rozumieją po co mają pisać &#8220;nadmiarowy kod&#8221; testujący coś, co po prostu &#8220;musi działać&#8221;  - jednym slowem stosowanie TDD w malych projektach bardziej prowadzi do frustracji niż jest pomocne. Ale przecież to m.in. za sprawa Flex&#8217;a &#8211; technologia Flash wchodzi pod strzechy rozwiazań korporacyjnych, gdzie takowe metodyki się sprawdzają. Kod testuje siebie, o to własnie chodzi, i dlatego też powstał <a title="FlexUnit" href="http://code.google.com/p/as3flexunitlib/" target="_blank">FlexUnit</a> , czy <a title="ASUnit" href="http://www.asunit.org/" target="_blank">ASUnit</a>. Obecna wersja np. FlexUnit, czyli 0.85 jeżeli chodzi o stosowanie metodyki TDD sprawdza się bardzo dobrze, tym bardziej jezlei ktos stosowal JUnita (Java) w Eclipsie, nie bedzie mial za duzo problemow z przesiadka ;)</p>
<p>Chcąc zabrać się za TDD we Flex, musisz wpierw zrozumiec co to jest test jednostkowy, asercja i przypadek testowy i troche zmienic swoj tradycyjny punkt wytwarzania oprogramowania ;) &#8211; sam wiem, po sobie, ze potrzebowalem troche czasu, aby przywyknąć. Polecam artykuł <a title="Neil Webb" href="http://www.nwebb.co.uk/" target="_blank">Neil&#8217;a</a> - <a title="Artykuł FlexUnit" href="http://www.adobe.com/devnet/flex/articles/unit_testing.html">Unit testing and Test Driven Development (TDD) for Flex and ActionScript 3.0</a> - zrobil na prawde dobra robote przedstawiajać to zagadnienie w dosyc zwiezly sposob, czego ja bym nie potrafił ;) Warto też zapisać się na listę dyskusyjną FlexUnit - <a href="http://groups.google.com/group/as3flexunitlib">http://groups.google.com/group/as3flexunitlib</a>.</p>
<p>Przepraszam, za ten przydługi wpis, ale jedno jest pewne, mówie to z własnego doswiadczenia, jeżeli macie duży projekt RIA, spróbujcie stosować TDD, a zobaczycie, że jego siła tkwi przede wszystkim w tym, że stosujac go, o wiele łatwiej jest zlokalizować &#8220;gdzie jest problem w kodzie&#8221;.</p>
<p>P.S. Miałem poruszyc w tym poscie BDD (ang. <a href="http://behaviour-driven.org/" target="_blank">Behaviour Driven Development</a>), czyli wytwarzanie oprogramowania zorientowane na behavioryzm, które jest niejako ewolucją TDD, i osobiście uważam, że jest przyszłością. W trakcie pisania tego postu zdecydowalem, ze bym Was juz całkiem zanudził z tym BDD, stad napisze o nim w innym poscie ;) &#8211; kiedys indziej, być może pokusze się o jakis tutorial, jako, że o stosowniu BDD we Flexie na razie w sieci dosyc mało informacji.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/02/22/tdd-we-flex-a-moze-bdd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven i Flex &#8211; wytwarzanie aplikacji enterprise na przykładach</title>
		<link>http://blog.flextech.pl/2008/02/19/maven-i-flex/</link>
		<comments>http://blog.flextech.pl/2008/02/19/maven-i-flex/#comments</comments>
		<pubDate>Tue, 19 Feb 2008 12:13:36 +0000</pubDate>
		<dc:creator>Paweł Cichoń</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Metodyki]]></category>

		<guid isPermaLink="false">http://blog.flextech.pl/2008/02/19/maven-i-flex/</guid>
		<description><![CDATA[Wydawnictwo O&#8217;Relly wzięło się za prezentację wszystkiego tego, co niezbędne, aby wpleść Flex&#8217;a w proces produkcyjny aplikacji enterprise. Muszę przyznać, że jest to skompensowana forma wiedzy, do której jeszcze pół roku temu trzeba było dochodzić metodą prób i błędów. Maven rządzi! Na prawde polecam gorąco następujące linki:
http://www.insideria.com/2008/01/anatomy-of-an-enterprise-flex.html
http://www.insideria.com/2008/01/running-the-sample-code-last.html
http://www.insideria.com/2008/02/the-project-structure.html
http://www.insideria.com/2008/02/the-three-child-projects.html
 Jest tam wszystko co trzeba, więc szkoda tracić czasu na [...]]]></description>
			<content:encoded><![CDATA[<p>Wydawnictwo O&#8217;Relly wzięło się za prezentację wszystkiego tego, co niezbędne, aby wpleść Flex&#8217;a w proces produkcyjny aplikacji enterprise. Muszę przyznać, że jest to skompensowana forma wiedzy, do której jeszcze pół roku temu trzeba było dochodzić metodą prób i błędów. <a target="_blank" href="http://maven.apache.org/download.html">Maven</a> rządzi! Na prawde polecam gorąco następujące linki:</p>
<p><a href="http://www.insideria.com/2008/01/anatomy-of-an-enterprise-flex.html">http://www.insideria.com/2008/01/anatomy-of-an-enterprise-flex.html</a></p>
<p><a href="http://www.insideria.com/2008/01/running-the-sample-code-last.html">http://www.insideria.com/2008/01/running-the-sample-code-last.html</a></p>
<p><a href="http://www.insideria.com/2008/02/the-project-structure.html">http://www.insideria.com/2008/02/the-project-structure.html</a></p>
<p><a href="http://www.insideria.com/2008/02/the-three-child-projects.html">http://www.insideria.com/2008/02/the-three-child-projects.html</a></p>
<p> Jest tam wszystko co trzeba, więc szkoda tracić czasu na gadanie.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.flextech.pl/2008/02/19/maven-i-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
