Upload
vucong
View
218
Download
0
Embed Size (px)
Citation preview
ZBIGNIEW FILUTOWICZ, JÓZEF PASZKOWSKI, KRZYSZTOF PRZYBYSZEWSKI, GRZEGORZ SOWA
PARADYGMAT PROGRAMOWANIA WIZUALNEGO
W IN�YNIERII OPROGRAMOWANIA
Streszczenie
Istnieje wiele metod tworzenia oprogramowania dla systemów mikroprocesoro-wych z wykorzystaniem wizualnych (graficznych) �rodowisk programistycznych. Ta-kie metody maj� na celu zastosowanie komputerowego wspomagania programowa-nia. Paradygmat programowania wizualnego dotyczy �rodowisk rozwojowych prze-znaczonych dla in�ynierów oprogramowania, czyli zintegrowanych �rodowisk pro-gramistycznych IDE i komputerowego wspomagania in�ynierii oprogramowania CASE. Dla specjalistów innych dziedzin ni� in�ynieria oprogramowania takimi wi-zualnymi �rodowiskami do tworzenia oprogramowania s� j�zyki programowania wi-zualnego VPL oraz generatory wizualne aplikacji. Celem pracy jest przedstawienie metod implementacji paradygmatu programowania wizualnego na przykładzie prak-tycznych rozwi�za�.
Słowa kluczowe: programowanie wizualne, komputerowe wspomaganie programowania, in�ynie-ria oprogramowania, generatory wizualne oprogramowania, VPL, CASE, IDE
1. Wprowadzenie
Jednym z filarów rozwoju gospodarki elektronicznej s� nowe technologie tworzenia aplikacji webowych. Mimo upływu lat problem tworzenia oprogramowania (in�ynieria oprogramowania) pozostaje stale aktualny. Mamy coraz wi�cej oprogramowania systemowego i aplikacyjnego (application software lub application programs), co mogłoby �wiadczy , �e potrzeby w tej dziedzinie zostan� zaspokojone i problem tworzenia nowego oprogramowania przestanie by istotny. Jednak pomysły na nowe zastosowania sprz�tu elektronicznego i stałe doskonalenie mikroprocesorów powoduje ci�gły wzrost zapotrzebowania na coraz doskonalsze oprogramowanie. Oprogramowanie aplikacyjne to z jednej strony uniwersalne programy dedykowane do wybranych dziedzin działalno�ci człowieka, na przykład oprogramowanie dla przedsi�biorstw, gospodarki elektronicznej, pakiety matematyczne, pakiety biurowe, oprogramowanie graficzne, multimedialne, portale edukacyjne, systemy CMS i wiele innych. Drug� cz�� programów aplikacyjnych stanowi� aplikacje specjalnie zaprojektowane dla potrzeb konkretnych u�ytkowników. Pocz�tek lat 90-tych zeszłego stulecia to dynamiczny rozwój aplikacji z graficznym interfejsem u�ytkownika GUI API. Druga połowa lat 90-tych to pojawienie si� aplikacji webowych ze skromnym interfejsem u�ytkownika w przegl�darce internetowej. Aplikacje webowe po roku 2001 zmieniły swój paradygmat interakcji z u�ytkownikiem, pozwalaj�c mu na zmiany tre�ci witryn (społeczno�ciowy charakter Webu, Web 2.0). Dzi�ki technologii DHTML oraz Flash Macromedia (Adobe) ten interfejs stawał si� stopniowo
Zbigniew Filutowicz, Józef Paszkowski, Krzysztof Przybyszewski, Grzegorz Sowa Paradygmat programowania wizualnego w in�ynierii oprogramowania
56
bardzo efektowny (Rich Internet Applications) i po roku 2005 nast�puje zrównanie si� mo�liwo�ci aplikacji webowych i desktopowych. [6] Zacz�to projektowa aplikacje webowe tak, aby w przegl�darce internetowej mo�na wykonywa te same czynno�ci, co w aplikacjach zainstalowanych w komputerze u�ytkownika, czyli docelowo wyeliminowa potrzeb� instalacji programów na komputerze u�ytkownika. [22] Tego typu aplikacje zacz�to nazywa oprogramowaniem opartym na usługach SaaS (Software as a Service). W przegl�darce internetowej
mo�na korzysta z efektownych programów oraz pracowa w razie potrzeby wspólnie z innymi
u�ytkownikami, czyli w chmurze sieciowej (cloud computing).
Poj�cie paradygmatu ró�ni si� od poj�cia aksjomatu czy dogmatu i w informatyce najbli�sze jest
poj�ciu dobrej praktyki in�ynierskiej. Dobra praktyka programistyczna (in�ynierska) oznacza
zastosowanie najlepszych i aktualnych osi�gni� wiedzy z zakresu in�ynierii oprogramowania
(Software Engineering). Przykładem dobrej praktyki in�ynierskiej jest stosowanie dekompozycji
zło�onych układów na prostsze moduły (komponenty). [21] Innym przykładem praktyki in�ynierskiej
jest stosowanie ró�nych form grafiki (np. rysunków, diagramów, piktogramów, tablic
synoptycznych, wizualizacji komputerowej procesów technologicznych). In�ynieria
oprogramowania jest rozumiana, jako dyscyplina informatyki zajmuj�ca si� procesami tworzenia
oprogramowania (analiza potrzeb, projektowanie, implementacja, testowanie, wdro�enie
oraz piel�gnacja oprogramowania). Programowanie mo�na zdefiniowa , jako zbiór komend
wydawanych oprogramowaniu systemowemu lub innym programom aplikacyjnym zapisanych
w formie kodów lub znaków graficznych. J�zyki programowania dzieli si� na deklaratywne
i imperatywne. W j�zykach deklaratywnych programista zamiast algorytmu rozwi�zuj�cego problem
(programowanie imperatywne) definiuje sam problem. Stwierdzenie, �e programowanie polega
tylko na pisaniu kodów (i to tylko w j�zyku ezoterycznym INTERCAL [20]) to pewna przesada.
Programowanie jest to równie� eksperymentowanie w tworzeniu nowych mo�liwo�ci wykorzystania
komputerów za pomoc� ró�nych technologii programistycznych, do których nale�� metody
wizualne. Z paradygmatem programowania wizualnego s� nierozł�cznie zwi�zane paradygmaty
programowania zorientowanego obiektowo, programowanie z wykorzystaniem komponentów
oprogramowania oraz programowania zdarzeniowego.
Celem pracy jest analiza metod implementacji paradygmatu programowania wizualnego
z punktu widzenia programistów (�rodowiska IDE i CASE) oraz u�ytkowników oprogramowania
(j�zyki programowania wizualnego VPL, kreatory aplikacji). Taka aktualna analiza jest niezb�dna
dla potrzeb deweloperów systemów informatycznych, w procesie edukacyjnym, w rozwoju wiedzy
informatycznej oraz w zastosowaniach praktycznych. Rozwój mobilnych i multimodalnych urz�dze�komputerowo-komunikacjnych spowodował zainteresowanie metodami komunikacji człowieka
z komputerem oraz wzrost wymaga� odno�nie u�yteczno�ci interfejsu u�ytkownika (intuicyjny,
wizualny, adaptacyjny, inteligentny itp.). Zastosowanie wizualnego paradygmatu jest bardzo
wa�nym problemem w in�ynierii oprogramowania.
57
2. Komputerowe wspomaganie w zintegrowanych �rodowiskach programistycznych IDE
Podstawowy zestaw programów oraz zasobów niezb�dnych do tworzenia aplikacji nazywamy
SDK (Software Development Kit, Java Development Kit). Dla danego SDK mo�e by wiele
zaimplementowanych zintegrowanych �rodowisk programistycznych IDE (Integrated Develop-
ment Environment), nazywanych tak�e Adaptive Software Development, Rapid Application De-
velopment oraz Very Rapid Applications Development. �rodowiska IDE to programy z graficz-
nym interfejsem u�ytkownika, ułatwiaj�ce i automatyzuj�ce wybrane etapy tworzenia nowych
programów. Głównym paradygmatem w �rodowiskach IDE jest paradygmat programowania wi-
zualnego (Visual Programming). Podstawowym wsparciem wizualnego programowania dla two-
rzenia aplikacji s� w tych �rodowiskach kreatory (wizardy, asystenci ustawie� – setup assistant),
pozwalaj�ce na wybór odpowiedniego szablonu dla tworzonego programu. Paradygmat asystenta
(kreatora) sprawdził si�, jako element interfejsu u�ytkownika we wszystkich aplikacjach dedyko-
wanych do wszystkich rodzajów u�ytkowników, nawet administratorów systemów operacyjnych.
Drug� metod� wizualnego wsparcia tworzenia kodów w IDE jest tworzenie nowych aplikacji, po-
przez przesuwanie obiektów graficznych przedstawiaj�cych elementy aplikacji (np.: tablice baz
danych, graficzne elementy interfejsu u�ytkownika GUI, inne elementy wielowarstwowego mode-
lu aplikacji), co poci�ga za sob� dodawanie odpowiednich fragmentów kodu do kodu wynikowego
programu. Czynno�ci programowania w �rodowiskach IDE mo�na wykonywa umieszczaj�c lub
usuwaj�c fragmenty kodu, co prowadzi jednocze�nie do zmiany wygl�du widoku graficznego two-
rzonej aplikacji. [4]�rodowiska te maj� na celu maksymalizacj� wydajno�ci programisty. Mo�na administrowa
programem w trakcie jego tworzenia za pomoc� dwóch widoków: zakładki kody i zakładki wido-
ku obiektów graficznych. Tworzenie programów z u�yciem zakładki do programowania wizualne-
go z wykorzystaniem grafiki nazywa si� w informatyce tak�e technik� WYSIWYG (ang.
What You See Is What You Get co znaczy To Co Widzisz Jest Tym Co Otrzymasz), a metoda
pisania kodów nazywa si� technik� WYWIWYG (ang. What You Write Is What You Get co zna-
czy To Co Napiszesz Jest Tym Co Otrzymasz). Interaktywno� elementów graficznego interfejsu
u�ytkownika programuje si� na zakładce kodów. Zakładka z kodami wspomaga pisanie kodów
poprzez kolorowanie słów kluczowych, autouzupełnianie wyrazów (IntelliSese, autocomplete),
podpowiedzi kontekstowe (contextual hint, context menu), okienka wła�ciwo�ci, skróty klawiszo-
we (shortcut key), autozamykanie i kolorowanie nawiasów oraz walidacja składniowa online.
W �rodowiskach IDE programuj�c w trybie pisania kodów mamy ogromne wsparcie wizualne,
cz�sto programista umieszcza tworzony kod poprzez dokonywanie odpowiednich decyzji, a słowa
kodu s� wklejane do programu automatycznie. Administrowanie kodem aplikacji mo�e by wspomagane przez �rodowisko IDE, co wida nawet na przykładzie refaktoryzacji kodu. Refakto-
ryzacja ma na celu nie rozwój mo�liwo�ci aplikacji, ale optymalizacj� postaci kodu, czyli d��enie
do wysokiej jako�ci organizacji systemu. [24]
Studies & Proceedings of Polish Association for Knowledge Management Nr 53, 2011
Zbigniew Filutowicz, Józef Paszkowski, Krzysztof Przybyszewski, Grzegorz Sowa Paradygmat programowania wizualnego w in�ynierii oprogramowania
58
Rysunek 1. Programowanie animowanej grafiki wektorowej w trybie wizualnym i kodów Podstaw� programowania wizualnego jest programowanie obiektowe OOP oraz bogate biblioteki
komponentów COP [14], co pozwala automatyzowa prace zwi�zane z tworzeniem aplikacji. In-
�ynieria oprogramowania oparta na komponentach umo�liwia w prosty sposób na wielokrotne
u�ycie kodu (Code Re-use). Za komponenty uwa�a si� biblioteki fragmentów skompilowanych
kodów (modularyzacja systemów), które pozwalaj� kostruktorom-programistom projektowa oprogramowanie z prefabrykowanych elementów, podobnie jak deweloperom z takich dziedzin
jak budownictwo, elektronika czy mechanika. Programowanie zorientowane na komponenty opro-
gramowania to wa�ny paradygmat programowania. Program to pakiet (mashup) poszczególnych
komponentów oprogramowania takich jak: usługi internetowe (Web Service), moduły, biblioteki
i inne, które ł�czy si� z wykorzystaniem j�zyka programowania (glue). Architektura oparta na
usługach (Service-Oriented Architecture, SOA) to wykorzystanie rozproszonych w sieci kompo-
nentów oprogramowania maj�cych interfejsy niezale�ne od sposobu implementacji i platformy, na
której s� umieszczone. [1,2,15]Jako przykłady zintegrowanych �rodowisk o bogatych mo�liwo�ciach programowania wizualnego
mo�na wymieni : NetBeans, MS Visual Studio, MS Microsoft Expression Studio – Blend, Bor-
land Embarcadero Delphi XE, Eclipse i inne.
Paradygmat programowania wizualnego wykorzystuje nie tylko IDE, ale tak�e inne programy
developerskie. Przykładem mo�e by program do tworzenia grafiki wektorowej WebDraw wersja
1.02 firmy Jasc Software. Na zakładkach tego programu mo�na programowa w trybie wizualnym
(rys.1 lewy), w trybie modyfikowania lub pisania kodu (rys.1 prawy) oraz ogl�da animowan�grafik� wektorow� w formie jak� otrzyma u�ytkownik. Jako przykłady innych programów wyko-
rzystuj�cych w podobny sposób paradygmat programowania wizualnego mo�na wymieni MS
Expression Studio – Blend, Adobe Flash Builder, Adobe Flash, MS Expession Studio – Web oraz
wiele innych. �rodowiska IDE wykorzystuj� paradygmat programowania wizualnego, ale nie s� to
typowe j�zyki programowania wizualnego VPL jak np. j�zyk graficzny g w programie LabVIEW.
59
3. Komputerowe wspomaganie w in�ynierii oprogramowania CASE
Wizualny paradygmat dotyczy tak�e rysowania diagramów maj�cych na celu przestawi struktur� i funkcjonalno�ci systemu informatycznego w fazie specyfikacji potrzeb, analizy
i projektowania tego systemu. [9] U�ycie narz�dzi graficznych automatyzuje i systematyzuje metody
projektowania, dokumentacji oraz tworzenia struktury kodu programu. Wszystkie dziedziny techniki
przed przyst�pieniem do fazy budowy systemu wykorzystuj� w fazach konstrukcji i projektowania
narz�dzia graficzne. Wykorzystanie narz�dzi graficznych pozwala ju� we wczesnych fazach
in�ynierii, w wyniku analiz zapewni wysok� jako� produktu, wyeliminowa bł�dy oraz dokładnie
zidentyfikowa potrzeby u�ytkownika. Narz�dzia CASE pozwalaj� zintegrowa wszystkie fazy
in�ynierii oprogramowania, a szczególnie faz� projektowania z implementacj� systemu. [10]Komputerowe wspomaganie in�ynierii to jedno z najwi�kszych osi�gni� zastosowa� komputerów
nie tylko w tworzeniu systemów informatycznych, ale we wszystkich dziedzinach in�ynierskich.
Dzi�ki wspomaganiu komputerowemu wypracowano dobre metodyki, zautomatyzowano wiele
procesów tworzenia oraz standaryzowano sposoby post�powa�. Wypracowane metody zarz�dzania
projektami informatycznymi w postaci metodyki Prince2 s� dzisiaj wykorzystywane do zarz�dzania
w ró�nych dziedzinach działalno�ci człowieka i ró�nej wielko�ci projektów.
Narz�dzia typu CASE pozwalaj� nam na transformacj� oprogramowania w trakcie całego jego
okresu działania. Reengineering ma za zadanie rekonstruowanie systemu do nowej formy
uwzgl�dniaj�cej nowe funkcjonalno�ci, natomiast refaktoryzacja systemu nie zmienia sposobu
działania systemu, a jedynie struktur� systemu. Paradygmat programowania wizualnego
w narz�dziach CASE realizowany jest poprzez administrowanie struktur� systemu oprogramowania
w postaci graficznej na przykład w diagramach UML. Na podstawie graficznej reprezentacji systemu
w sposób automatyczny s� generowane szablony kodów w wybranym j�zyku programowania
obiektowego. Tak wygenerowane kody s� rozwijane dalej. In�ynieria odwrotna (reverse engineering)
pozwala na identyfikacj� struktur wchodz�cych w skład systemu i przedstawienie ich w wy�szym
poziomie abstrakcji. Dokonanie zmiany struktury programu kodu programu powoduje automatyczn�zmian� struktury diagramów zwi�zanych w tym programem, czyli jest przykładem in�ynierii
odwrotnej w programowaniu. Standardem narz�dzi CASE jest dzisiaj generowanie diagramów na
podstawie istniej�cego kodu programów. [11]
Studies & Proceedings of Polish Association for Knowledge Management Nr 53, 2011
Zbigniew Filutowicz, Józef Paszkowski, Krzysztof Przybyszewski, Grzegorz Sowa Paradygmat programowania wizualnego w in�ynierii oprogramowania
60
Rysunek 2. rodowisko IDE NetBeans z wtyczk� CASE Visual Paradigm �ródło: [17, 26].
W�ród oprogramowania wolnodost�powego [3] i komercyjnego s� stosowane rozwi�zania ł�-czenia �rodowisk IDE z CASE poprzez instalowanie wtyczek (plug-in) do narz�dzi IDE (rys. 2)
oraz typowe narz�dzia CASE. Bardzo cennym do�wiadczeniem w in�ynierii oprogramowania jest
poł�czenie mo�liwo�ci �rodowisk IDE i CASE, czyli poł�czenie mo�liwo�ci programowania wi-
zualnego wywodz�cego si� z projektowania interfejsu u�ytkownika z odmienn� filozofi� modelo-
wania struktur danych. Wsparcie graficzne w in�ynierii oprogramowania jest dzisiaj konieczno-
�ci�, ale trzeba sobie zdawa spraw� tak�e z pewnych zagro�e� zwi�zanych z nadmiernym zaan-
ga�owaniem bud�etów projektów w pocz�tkowe fazy tworzonego oprogramowania. Złym rozwi�-zaniem jest tak�e sytuacja, w której zło�ono� diagramów dorówna zło�ono�ci kodów programów
komputerowych. Dobra praktyka in�ynierska poka�e, podobnie jak w innych dziedzinach in�ynie-
rii na ile wa�ny jest etap kodowania i w jakiej cz��ci da si� go automatyzowa . Jedno jest pewne,
mo�liwo�ci twórcze ludzi s� najcenniejsze i nie do przecenienia tak�e w in�ynierii oprogramowa-
nia
4. J�zyki programowania wizualnego VPL
Innym kontekstem paradygmatu programowania wizualnego jest wykorzystanie j�zyków
programowania wizualnego VPL (Visual Programming Language). [16] Na podkre�lenie zasługuje
fakt braku takiego hasła w polskiej edycji Wikipedii. W j�zyku angielskim u�ywaj�c j�zyków
VPL cz�sto u�ywa si� jednocze�nie zwrotu „programowanie graficzne” (ang. graphical program-
ming). Typowymi przedstawicielami j�zyków wizualnych jest LabVIEW, MS Robotic Studio,
Scratch oraz wiele innych. Paradygmat programowania wizualnego w tej grupie �rodowisk pro-
gramistycznych zakłada wyeliminowanie konieczno�ci pisania kodów i ograniczenie si� tylko do
61
graficznej postaci programu. W przypadku grafiki 3D takim �rodowiskiem VPL jest Quest3D.
Pracuj� na nim graficy projektanci, in�ynierowie i ludzie ze �wiata rozrywki. Tworz� oni wirtualne
�wiaty 3D czy gry komputerowe bez pomocy programistów i bez konieczno�ci pisania linijek ko-
dów oraz znajomo�ci bibliotek typu OpenGL czy DirectX.
W j�zykach programowania wizualnego najcz��ciej jest tworzona aplikacja w dwóch wido-
kach wzajemnie powi�zanych. Pierwszy widok nazywamy front-end (w LabVIEW to Front Panel)
i zawiera on elementy (wid�ety, kontrolki) interfejsu u�ytkownika programu. Druga widok aplika-
cji o nazwie back-end (w LabVIEW to Block Diagram) zawiera odwzorowania ikon interfejsu
u�ytkownika, ikony graficzne elementów działa� niezb�dnych do zbudowania scenariuszy logiki
aplikacji i struktur oraz �ródeł danych (rys. 3). W programowaniu graficznym nie jest dost�pny
podgl�d kodu tworzonego programu w postaci tekstowej dla obu widoków aplikacji, czyli dla
front-end jak i back-end. W LabVIEW w j�zyku graficznym g jest dost�pna struktura Formula
Node umo�liwiaj�ca dodawanie do graficznej postaci programu kodów �ródłowych w postaci tek-
stu w j�zyku imperatywnym o składni zbli�onej do j�zyka C. [5] Innym sposobem na wykorzysta-
nie kodów w innych j�zykach programowania jest mo�liwo� wywołania skompilowanych ju�kodów w postaci gotowych bibliotek z j�zyka programowania graficznego.
Rysunek 3. Programowanie w j�zyku programowania wizualnego w �rodowisku LabVIEW �ródło: [23].
Jednym z najmłodszych (2007r.) �rodowisk do programowania wizualnego jest program Scratch
przeznaczony do nauki programowania (rys. 4). Został on opracowany w MIT Media Labs i jest
dost�pny w polskiej wersji j�zykowej. Podobnie jak w innych j�zykach typu VPL ma on dwa wi-
doki do tworzenia programów: widok interfejsu u�ytkownika (front-end) oraz widok logiki aplika-
cji (back-end). Cały proces tworzenia oprogramowania polega na pobieraniu z bibliotek elemen-
tów interfejsu u�ytkownika oraz na dodawaniu interaktywno�ci i dynamiki aplikacji z gotowych
i uniwersalnych skryptów graficznych. Biblioteki elementów graficznych mo�e rozbudowywa
Studies & Proceedings of Polish Association for Knowledge Management Nr 53, 2011
Zbigniew Filutowicz, Józef Paszkowski, Krzysztof Przybyszewski, Grzegorz Sowa Paradygmat programowania wizualnego w in�ynierii oprogramowania
62
sam programista, natomiast mo�liwo�ci j�zyka programowania s� ustalone przez mo�liwo�ci in-
terpretera jak we wszystkich j�zykach programowania.
Rysunek 4. Programowanie wizualne VPL w programie Scratch �ródło: [18].
Zapotrzebowanie na �rodowiska programistyczne typu VPL b�dzie rosło i przygotowanie lu-
dzi ró�nych profesji oraz młodzie�y w tym zakresie programowania jest istotne. [7] Znajomo� technologii informatycznych ro�nie w społecze�stwach. Ułatwienie mo�liwo�ci programowania
w j�zykach VPL wydaje si� dobrym pomysłem na dalszy rozwój oprogramowania komputerów
oraz dostosowania ich do indywidualnych potrzeb u�ytkowników. Idea tworzenia oprogramowa-
nia nie mo�e by jednak uzale�niona tylko od w�skiego grona ludzi znaj�cych biblioteki API
i imperatywne j�zyki programowania.
5. Generatory wizualne aplikacji
Generatory (kreatory) s� wykorzystywane w �rodowiskach IDE do wygenerowania szkieletu
(szablonu) aplikacji. [12] Paradygmat programowania wizualnego w tym rozdziale jest jeszcze ina-
czej rozumiany ni� w przypadkach omówionych poprzednio. W tej kategorii oprogramowania nie
stawia si� wymogu znajomo�ci programowania w j�zykach wizualnych ani w j�zykach tekstowych
programowania. Ta grupa oprogramowania jest przeznaczona dla ludzi z mniejszym przygotowa-
niem informatycznym i dobrej znajomo�ci i z dobrym przygotowaniem do wykorzystania ICT
63
(Information and Communication Technology) w ich konkretnej dziedzinie działalno�ci. Maj� oni
za zadanie adaptacj� pewnego typu systemów do konkretnych potrzeb. Generator generuje pewnej
klasy aplikacj�, na przykład system CMS, i umieszcza aplikacj� na serwerze w hostingu. Aplikacj�nie tworzy programista, ale osoba wykorzystuj�ca takie oprogramowania dla swoich celów. Taki
generator aplikacji mo�e by programem desktopowym lub online. Zaprojektowana w ten sposób
aplikacja mo�e by zdalnie administrowana, rozbudowywana oraz mo�e by uaktualniana jej za-
warto� . Kody programu takiej aplikacji pozostaj� nieznane dla dewelopera aplikacji. Istniej� roz-
wi�zania pozwalaj�ce rozbudowywa kody aplikacji w celu dodania nowych funkcjonalno�ci.
U�ytkownik otrzymuje aplikacj� o okre�lonych funkcjonalno�ciach, ale mo�e zmienia zawarto� aplikacji na zasadzie systemu CMS. Generatory aplikacji, podobnie jak stworzone przez nie apli-
kacje mog� by aplikacjami webowymi i efektownymi RIA (ang. Rich Internet Application – bo-
gata aplikacja internetowa). Jako przykłady takich generatorów mo�na wymieni Wix.com, AMM
wizard.site-builder, Coffecup Visualsite Designer, Incomedia Website, BlueVoda Website Builder
i wiele innych. W przypadku kreatora witryny webowej istnieje mo�liwo� dodania strony spe-
cjalnej, strony HTML, blogu, pobierania plików, sklepu internetowego, dodatków we Flashu, fo-
rum, ksi�gi go�ci, galerii zdj� , rejestracji (rys. 5).
Rysunek 5. Przykład webowego kreatora witryny �ródło: [19].
Inne podej�cie do generatorów aplikacji pozwala samemu u�ytkownikowi okre�la funkcje,
jakie ma realizowa aplikacja poprzez personalizowanie interfejsu webowego u�ytkownika. Jako
przykłady takiego podej�cia mo�na wymieni iGoogle, Netvibes, Pageflakes, My Yahoo! czy
Studies & Proceedings of Polish Association for Knowledge Management Nr 53, 2011
Zbigniew Filutowicz, Józef Paszkowski, Krzysztof Przybyszewski, Grzegorz Sowa Paradygmat programowania wizualnego w in�ynierii oprogramowania
64
Windows Live Personalized Experience. W 2011roku firma VMware [27], która specjalizuje si�w aplikacjach SaaS przej�ła WaveMaker. [25] Zakupiona firma odegrała wa�n� rol� w tworzeniu
wizualnych kreatorów aplikacji. Mo�na si� zatem spodziewa szybkiego rozwoju platformy do
wizualnej budowy aplikacji w chmurze.
Głównym celem takich generatorów aplikacji jest idea dostosowania mo�liwo�ci sytemu
oprogramowania do obecnych i przyszłych potrzeb u�ytkowników, czyli zasada „na pierwszym
miejscu człowiek i jego potrzeby” (human centered). Tymi lud�mi s� u�ytkownicy systemów
oprogramowania, czyli osoby prowadz�ce jak�� działalno� oraz ich partnerzy i beneficjenci oraz
in�ynierowie oprogramowania.
6. Podsumowanie
Wiele �rodowisk programistycznych ma w nazwie słowo „visual”, co �wiadczy o wadze pa-
radygmatu programowania wizualnego w in�ynierii oprogramowania przy tworzeniu oprogramo-
wania systemowego i aplikacyjnego. Ten paradygmat jest istotny w przypadku programowania
obiektowego OOP oraz komponentowego (COP czy SOA). Je�eli chodzi o �rodowiska do gene-
rowania kodów, to IDE i CASE obecnie integruj� si� i z zało�enia daj� programistom (in�ynierom
oprogramowania) coraz wi�ksze wsparcie w postaci programowania wizualnego. Wzrasta tak�e
zapotrzebowanie na oprogramowanie RIA i oprogramowanie dla aplikacji w chmurze webowej
(ang. cloud computing) i to zarówno dla komputerów stacjonarnych, przeno�nych jak i urz�dze�PDA. Jest coraz wi�cej tworzonych �rodowisk aplikacyjnych dla zastosowa� wybranych potrzeb
u�ytkowników dost�pnych sieciowo (pakiety biurowe, oprogramowanie dla grafików, oprogra-
mowanie do projektowania ogrodów, wyposa�enia domów, makija�u, wiza�u, zarz�dzania organi-
zacj� i wiele innych).
Paradygmat programowania wizualnego dotyczy tak�e u�ytkowników oprogramowania, co
wyra�nie wida w j�zykach programowania wizualnego VPL. Tworz�c nowy program zapisuj� go
w postaci plików w celu udost�pnienia innym u�ytkownikom lub u�ywaj� go wielokrotnie dla
ró�nych danych zewn�trznych. U�ytkownicy tej drugiej grupy to dobrzy specjali�ci z ró�nych
dziedzin, dodatkowo z zaawansowanymi umiej�tno�ciami obsługi oprogramowania aplikacyjnego
okre�lonej dziedziny zastosowa� w postaci generatorów oprogramowania oraz j�zyków VPL. Jest
to atrakcyjne rozwi�zanie, poniewa� eliminuje udział zawodowych programistów w tworzeniu
aplikacji dla potrzeb, które wymagaj� poznania wiedzy specjalistycznej z innych dziedzin. Ta gru-
pa u�ytkowników oprogramowania z umiej�tno�ci� programowania w ograniczonym stopniu
u�ywa j�zyków programowania opartych o kody i cz�sto ogranicza si� do wykorzystywania j�zy-
ków skryptowych lub specjalistycznych j�zyków typu deklaratywnego. Stosuj�c j�zyki VPL od-
czuwamy brak podgl�du kodów zarówno w warstwie back-end i front-end, tak jak to wyst�puje
w �rodowiskach IDE. Dlatego zapewne w niedługim czasie nast�pi poł�czenie mo�liwo�ci j�zy-
ków VPL z mo�liwo�ciami �rodowisk IDE i CASE. Czyli generuj�c program w j�zyku wizualnym
b�dzie mo�na równocze�nie ogl�da kod w j�zyku tekstowym lub diagramy (np. UML) wizualizu-
j�ce struktury zwi�zane z wygenerowanym kodem.
Trzecia najwi�ksza grupa wykorzystuj�ca paradygmat programowania wizualnego to wszy-
scy u�ytkownicy oprogramowania aplikacyjnego. Oprogramowanie to posiada coraz wi�ksze mo�-liwo�ci i dlatego musi mie wbudowane ró�ne mechanizmy automatyzuj�ce i ułatwiaj�ce prace
u�ytkowników. Na przykładzie pakietu biurowego wida , �e wiele udogodnie� programowania
wizualnego z pakietów IDE dla programistów jest dzisiaj identycznych dla obu typów pakietów.
65
Jako przykłady wykorzystania technik wizualnych mo�na tu poda kreatory, podpowiedzi kontek-
stowe oraz mo�liwo� pracy w trybie wizualnym i kodów równocze�nie. Ta grupa u�ytkowników
posługuje si� j�zykami programowania skryptowymi nazywanymi j�zykami makroprogramowania
oraz tworzy programy nazywane makrami. Makra mog� tak�e automatyzowa pewne czynno�ci
wykonywane przez u�ytkowników bez potrzeby interakcji z człowiekiem. Wynikiem programo-
wania przez t� grup� u�ytkowników mog� by mi�dzy innymi szablony dokumentów, makra,
wszelkiego rodzaju grafika, diagramy, wykresy oraz tablice. Podobna sytuacja wyst�puje w innych
typach oprogramowania aplikacyjnego.
Kreatywno� , wynalazczo� , pomysłowo� oraz inteligencja to główne cechy ludzi pozwala-
j�ce na rozwój oprogramowania i nie mo�na w fazie tworzenia ograniczy si� tylko do programi-
stów czy ogólniej mówi�c in�ynierów oprogramowania. Dzi�ki narz�dziom wyposa�onym w mo�-liwo� programowania wizualnego oddaje si� w r�ce specjalistów ró�nych dziedzin �rodowiska
pomagaj�ce rozwija dotychczasowe mo�liwo�ci komputerów. Programowanie wizualne uzupeł-
nia paradygmat słabej sztucznej inteligencji, kład�c główny nacisk na maszyn� pomagaj�c� wyko-
rzysta kreatywno� człowieka w rozwoju oprogramowania.
Paradygmat programowania wizualnego ma za zadanie wprowadzi dobre praktyki in�ynierskie
do in�ynierii oprogramowania. Paradygmat ten dotyczy in�ynierów programowania oraz
u�ytkowników oprogramowania ró�nych profesji stosuj�cych wspomaganie komputerowe: np.:
grafików, automatyków i u�ytkowników (klientów). Programowanie wizualne pozwala samym
zainteresowanym adoptowa programy do swoich potrzeb i celów, ich logik�, funkcjonalno�ci,
tre�ci, interfejs u�ytkownika i inne. Coraz wi�cej urz�dze� (np. telefony, szafy sterownicze, konsole)
posiada dzisiaj system oprogramowania wbudowany i musz� je programowa sami u�ytkownicy.
Stosowanie w tych przypadkach programowania wizualnego jest konieczno�ci�, a makra lub pliki
wsadowe s� słabo akceptowalne przez u�ytkowników i mog� by stosowane najwy�ej alternatywnie.
Wzrastaj� wymagania w stosunku do programistów i in�ynierów oprogramowania, którzy musz�implementowa ró�ne mechanizmy programowania wizualnego dla u�ytkowników, bogatego
interfejsu u�ytkownika oraz pracy sieciowej. Stałe zapotrzebowanie na nowe programy aplikacyjne
oraz du�a pracochłonno� tworzenia autorskiego oprogramowania wymusza nowe rozwi�zania jak
na przykład stosowanie gotowych szablonów aplikacji (np. Moodle, Joomla). Pojawienie si� poj�cia
Web 2.0 to tak�e uspołecznienie procesów dotycz�cych tworzenia oprogramowania. Ju� dawno
spotykamy si� z inicjatywami oprogramowania rozwijanego przez ludzi pracuj�cych na zasadach
dobrowolno�ci i rozwijanego społecznie oraz przez fundacje dotowane przez komercyjne firmy
oprogramowania (open source, free software).
W dobie gospodarki elektronicznej prawie wszyscy u�ytkownicy e-systemów b�d�w mniejszym lub wi�kszym zakresie wykonywa czynno�ci programowania, podobnie jak wszyscy
w ograniczony sposób jeste�my technikami lub lekarzami. Wymusza to dzisiaj na in�ynierii
oprogramowania zwrócenie uwagi na interfejs u�ytkownika oraz przy coraz bardziej zło�onych
programach aplikacyjnych na graficzne administrowanie tymi aplikacjami w trybie projektowania
jak i w trybie u�ytkowania. Technologiczne aspekty elektronicznej gospodarki s� bardzo istotne
podobnie jak prowadzenie prac badawczych w tej dziedzinie. Powszechno� wykorzystania
gospodarki elektronicznej i e-gospodarki wymaga tak�e działa� edukacyjnych w zakresie
programowania urz�dze� elektronicznych od najmłodszych lat (np. Scratch) oraz ustawicznego
podnoszenia kwalifikacji, a szczególnie dotyczy to zawodowych programistów. Cz�sto programi�ci
w dziedzinie komunikacji człowiek – komputer bazuj� na wiedzy, jak� zdobyli zanim powstały nowe
Studies & Proceedings of Polish Association for Knowledge Management Nr 53, 2011
Zbigniew Filutowicz, Józef Paszkowski, Krzysztof Przybyszewski, Grzegorz Sowa Paradygmat programowania wizualnego w in�ynierii oprogramowania
66
technologie w tej dziedzinie. Na zako�czenie warto si� zastanowi nad dalszym rozwojem
mo�liwo�ci tworzenia oprogramowania. Wykorzystanie w tej dziedzinie systemów ekspertowych
jest pewnym pomysłem. Na pewno paradygmat wizualny staje si� ostatnimi laty bardzo aktualny
i w najbli�szym czasie odegra coraz wi�ksz� rol� w �rodowiskach do tworzenia oprogramowania
aplikacyjnego. Czy komputery b�dziemy uczy (programowa ) komunikuj�c si� z nimi w j�zyku
naturalnym? Odpowiedzi na to pytanie podobnie jak i na wiele innych pyta� dotycz�cych dalszego
rozwoju metod programowania b�dziemy musieli jeszcze jaki� czas poczeka . Paradygmat
programowania obiektowego rozpocz�ł er� tworzenia oprogramowania zorientowanego na potrzeby
u�ytkownika, a w mniejszym stopniu na implementacj� maszynow� kodu programu.
Bibliografia
[1] Ambroszkiewicz S. i inni, The SOA Paradigm and e-Service Architecture Reconsidered from the e-Business Perspective, F. Daniel and F. M. Facca (Eds.): ICWE 2010 Workshops,
LNCS 6385, Springer-Verlag Berlin Heidelberg 2010: s. 256–265.
[2] Biberstein N. i inni, Service-Oriented Architecture (SOA) Compass: Business Value, Planning, and Enterprise Roadmap, IBM Press, 2006, s. 238–248.
[3] Biffl S. i inni, Evaluation of CASE Tool Methods and Processes, An Analysis of Eight Open-source CASE Tools, ICEIS 2009 Proceedings of the 11th International Conference on
Enterprise Information Systems, Volume ISAS, Milan, 2009: 41–48.
[4] Chak D., Rails. Projektowanie systemów klasy enterprise, Helion, 2010: 19–35, 207–221.
[5] Chru�ciel M., LabVIEW w praktyce, Wydawnictwo BTC, 2008: s. 7–49.
[6] Z. Filutowicz, K. Przybyszewski., Analiza rozwoju programistycznych technologii dost�pu do usług i wymiany danych ze szczególnym uwzgl�dnieniem aplikacji Web’owych,
Wybrane problemy budowy aplikacji dla gospodarki elektronicznej, monografia pod
redakcj� M. Nied�wiedzi�skiego, Łód� 2009: s. 7–13.
[7] Kiałka D., Kiałka K., Informatyka Europejczyka. iPodr�cznik dla szkoły podstawowej, kl. IV – VI, Helion 2010: s. 304–323.
[8] Johns K..Taylor T., Professional Microsoft Robotics Developer Studio, Wrox 2008:
s. 3–28.
[9] Larman C., UML i wzorce projektowe. Analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji, Wydanie III, Helion, 2011: 427–433.
[10] Sacha K., In�ynieria oprogramowania, PWN, 2010: s. 13–50.
[11] Shavor S. i inni, Eclipse podr�cznik programisty, Helion 2005: s. 269–306.
[12] Smaragdakis Y., Batory D., Application Generators, The University of Texas at Austin,
Austin, Texas 78712, http://www.cs.umass.edu/~yannis/generators.pdf
[13] Sowa G., Filutowicz Z., Systemy zarz�dzania relacjami z klientami – geneza i rozwi�zania techniczne, Monografia SWSPiZ pod redakcj� A. Bartoszewicza, Informatyka
w zarz�dzaniu – szanse i zagro�enia, Łód� 2011: s. 39–59.
[14] Szyperski C., Oprogramowanie komponentowe, obiekty to za mało, WNT, Warszawa,
2001: s. 10–14.
[15] Thomas E., Service-Oriented Architecture: Concepts, Technology, and Design, Prentice
Hall 2005: s. 1–760: s. 1–29.
[16] http://en.wikipedia.org/wiki/Visual_programming_language.
67
[17] http://netbeans.org/.
[18] http://scratch.mit.edu/
[19] http://wizard.site-builder.pl/Wizard/.
[20] http://www.catb.org/~esr/intercal/.
[21] http://www.e-informatyka.pl/attach/Komponentowe_podej�cie_do_projektowania
_i_implementacji_aplikacji_internetowych/418.pdf.
[22] http://www.information-management.com/issues/20061201/1069939-1.html.
[23] http://www.ni.com/labview/.
[24] http://www.program-transformation.org/Transform/WebHome.
[25] http://www.wavemaker.com/.
[26] http://www.visual-paradigm.com.
[27] http://www.vmware.com/.
THE VISUAL PROGRAMMING PARADIGM IN SOFTWARE ENGINEERING
Summary
There are many ways to create software for microprocessor systems using visual (graphical) programming environments. Such methods are designed to apply com-puter-aided programming. The visual paradigm concerns systems for software engi-neers, which is an IDE integrated development environments and computer-aided software engineering CASE. For specialists in other fields than software engineering environments such visual software development languages are visual programming VPL, and visual applications generators. The paper presents methods for the imple-mentation of visual programming paradigm example of practical solutions.
Keywords: visual programming paradigm, computer aided programming, software engineering,
visual applications generators, VPL, CASE, IDE
Zbigniew Filutowicz
Józef Paszkowski
Krzysztof Przybyszewski
Grzegorz Sowa
Instytut Technologii Informatycznych
Wydział Studiów Mi�dzynarodowych i Informatyki
Społeczna Wy�sza Szkoła Przedsi�biorczo�ci i Zarz�dzania w Łodzi
ul. Sienkiewicza 9, 90-113 Łód�e-mail: [email protected]
Studies & Proceedings of Polish Association for Knowledge Management Nr 53, 2011