Paradygmat programowania wizualnego w inżynierii oprogramowania

13
ZBIGNIEW FILUTOWICZ, JÓZEF PASZKOWSKI, KRZYSZTOF PRZYBYSZEWSKI, GRZEGORZ SOWA PARADYGMAT PROGRAMOWANIA WIZUALNEGO W INYNIERII 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 inynierów oprogramowania, czyli zintegrowanych rodowisk pro- gramistycznych IDE i komputerowego wspomagania inynierii oprogramowania CASE. Dla specjalistów innych dziedzin ni inynieria oprogramowania takimi wi- zualnymi rodowiskami do tworzenia oprogramowania s jzyki programowania wi- zualnego VPL oraz generatory wizualne aplikacji. Celem pracy jest przedstawienie metod implementacji paradygmatu programowania wizualnego na przykładzie prak- tycznych rozwiza. Slowa kluczowe: programowanie wizualne, komputerowe wspomaganie programowania, inynie- ria oprogramowania, generatory wizualne oprogramowania, VPL, CASE, IDE 1. Wprowadzenie Jednym z filarów rozwoju gospodarki elektronicznej s nowe technologie tworzenia aplikacji webowych. Mimo uplywu lat problem tworzenia oprogramowania (inynieria oprogramowania) pozostaje stale aktualny. Mamy coraz wicej oprogramowania systemowego i aplikacyjnego (application software lub application programs), co mogloby wiadczy, e potrzeby w tej dziedzinie zostan zaspokojone i problem tworzenia nowego oprogramowania przestanie by istotny. Jednak pomysly na nowe zastosowania sprztu elektronicznego i stale doskonalenie mikroprocesorów powoduje cigly wzrost zapotrzebowania na coraz doskonalsze oprogramowanie. Oprogramowanie aplikacyjne to z jednej strony uniwersalne programy dedykowane do wybranych dziedzin dzialalnoci czlowieka, na przyklad oprogramowanie dla przedsibiorstw, 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 uytkowników. Pocztek lat 90-tych zeszlego stulecia to dynamiczny rozwój aplikacji z graficznym interfejsem uytkownika GUI API. Druga polowa lat 90-tych to pojawienie si aplikacji webowych ze skromnym interfejsem uytkownika w przegldarce internetowej. Aplikacje webowe po roku 2001 zmienily swój paradygmat interakcji z uytkownikiem, pozwalajc mu na zmiany treci witryn (spolecznociowy charakter Webu, Web 2.0). Dziki technologii DHTML oraz Flash Macromedia (Adobe) ten interfejs stawal si stopniowo

Transcript of Paradygmat programowania wizualnego w inżynierii oprogramowania

Page 1: Paradygmat programowania wizualnego w inżynierii oprogramowania

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

Page 2: Paradygmat programowania wizualnego w inżynierii oprogramowania

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.

Page 3: Paradygmat programowania wizualnego 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

Page 4: Paradygmat programowania wizualnego w inżynierii oprogramowania

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.

Page 5: Paradygmat programowania wizualnego w inżynierii oprogramowania

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

Page 6: Paradygmat programowania wizualnego w inżynierii oprogramowania

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

Page 7: Paradygmat programowania wizualnego w inżynierii oprogramowania

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

Page 8: Paradygmat programowania wizualnego w inżynierii oprogramowania

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

Page 9: Paradygmat programowania wizualnego w inżynierii oprogramowania

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

Page 10: Paradygmat programowania wizualnego w inżynierii oprogramowania

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.

Page 11: Paradygmat programowania wizualnego w inżynierii oprogramowania

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

Page 12: Paradygmat programowania wizualnego w inżynierii oprogramowania

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.

Page 13: Paradygmat programowania wizualnego w inżynierii oprogramowania

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