ZASTOSOWANIE MODELU OBIEKTOWEGO JAKO PODSTAWY OPISU PREZENTACJI MULTIMEDIALNEJ W SYSTEMIE AUTORSKIM

Wielkość: px
Rozpocząć pokaz od strony:

Download "ZASTOSOWANIE MODELU OBIEKTOWEGO JAKO PODSTAWY OPISU PREZENTACJI MULTIMEDIALNEJ W SYSTEMIE AUTORSKIM"

Transkrypt

1 POLITECHNIKA WROCŁAWSKA WYDZIAŁOWY ZAKŁAD INFORMATYKI WYDZIAŁ INFORMATYKI I ZARZĄDZANIA Wybrzeże Wyspiańskiego 27, Wrocław Praca Magisterska ZASTOSOWANIE MODELU OBIEKTOWEGO JAKO PODSTAWY OPISU PREZENTACJI MULTIMEDIALNEJ W SYSTEMIE AUTORSKIM Piotr Kamiński Promotor: dr inż. Maciej Piasecki Wrocław 2004

2 Streszczenie Praca opisuje koncepcję definiowania prezentacji multimedialnej przy pomocy języka UML. Diagramy UML pozwalają na modelowanie statycznych oraz dynamicznych aspektów prezentacji. Aspekty statyczne definiują typy medialne oraz powiązania pomiędzy nimi. Aspekty dynamiczne opisują synchronizację oraz interakcję z użytkownikiem. Język UML nie zawiera diagramów pozwalających na definiowanie kompozycji prezentacji. Aby uzupełnić tą lukę, zostanie zdefiniowany diagram prezentacji. Tak opisana prezentacja zostanie skonwertowana do aplikacji XML pozwalającej na uruchomienie jej w systemie autorskim Tomato. Abstract This document describes a conception of defining a multimedia presentation using UML language. UML diagrams allow modeling of static and dynamic aspects of the presentation. Static aspects define media/medial types and connections between them. Dynamic aspects describe a synchronization and an interaction with user. UML language does not contain diagrams allowing definition of presentation s composition. To fill that gap, a presentation diagram is defined. Presentation described this way will be converted to a XML application which allows launching it in authoring tool Tomato. 2

3 Spis treści 1 WSTĘP WPROWADZENIE DO MULTIMEDIÓW CO TO SĄ MULTIMEDIA? ZASTOSOWANIA MULTIMEDIÓW CO TO JEST SYSTEM AUTORSKI? ISTNIEJĄCE SPOSOBY OPISU PREZENTACJI MULTIMEDIALNYCH WYKORZYSTANE TECHNOLOGIE UML XML XMI SYSTEM AUTORSKI TOMATO WIZJA SYSTEMU STRUKTURA PREZENTACJI ORAZ MODEL DANYCH W SYSTEMIE TOMATO KONCEPCJA OPISU PREZENTACJI WYMAGANIA STAWIANE PRZED OPISEM PREZENTACJI OPRACOWANE ROZWIĄZANIE DLACZEGO UML? DLACZEGO XML? DEFINIOWANIE PREZENTACJI DEFINIOWANIE STRUMIENI DRZEWO PREZENTACJI DYNAMICZNE POWIĄZANIA POMIĘDZY OBIEKTAMI MODELOWANIE KOMPOZYCJI PREZENTACJI ZAPIS PREZENTACJI - KONWERSJA Z UML DO TOMATOML STRUKTURA DOKUMENTU TOMATOML SEKCJA DEFINICJI SEKCJA AKCJI SEKCJA INSTANCJI NAZWY OBIEKTÓW PODSUMOWANIE LITERATURA I INNE ŹRÓDŁA WIEDZY LITERATURA PISANA ADRESY INTERNETOWE ZAŁĄCZNIKI ZAŁĄCZNIK A TYPY WBUDOWANE ZAŁĄCZNIK B TYPY WYMIARÓW ZAŁĄCZNIK C KLASY SYNCHRONIZACJI ZAŁĄCZNIK D SCHEMA TOMATOML

4 1 Wstęp Od zarania dziejów człowiek pragnie kształtować rzeczywistość, która go otacza. Wraz z postępem cywilizacyjnym zmieniały się narzędzia, które mu do tego służyły. O ile początkowo zmiany te nie miały dużego oddźwięku w otaczającym świecie, o tyle w chwili obecnej jeden człowiek może zmienić los całej ludzkości. Wynalezienie komputera sprawiło, że w naszym dążeniu do zmian uzyskaliśmy bardzo potężne narzędzie. Narzędzie to umożliwia przekuwanie pomysłów na impulsy elektryczne, które odpowiednio interpretowane mogą zaważyć na losach całego świata. Tworzymy najbardziej skomplikowane mechanizmy w dziejach ludzkości. Możliwości, które się przed nami otworzyły są nieograniczone. Jednak bez skutecznych metod uporządkowania, nawet te codzienne pomysły mogą pozostać niezrealizowane. W dziedzinie informatyki z pomocą przychodzi nam paradygmat obiektowości, Podejście obiektowe zamyka skrawki rzeczywistości w samodzielne obiekty tworzone na podstawie definicji zwanej klasą. Jedna klasa może posłużyć to wytworzenia wielu obiektów różniących się właściwościami, ale nie funkcjonalnością. Dodatkowo, obiektowość pozwala na przejmowanie cech przy pomocy mechanizmów dziedziczenia. Trafność tego podejścia okazała się tak duża, że praktycznie wyparła inne sposoby modelowania rzeczywistości. Celem postawionym przed niniejszą pracą jest opracowanie koncepcji opisu prezentacji multimedialnej opartej na modelowaniu obiektowym oraz zastosowaniu jej w systemie autorskim. Praca ta, razem z pracą pana Krzysztofa Głowackiego [9.1], tworzy całość i podejmuje próbę stworzenia kompletnego obiektowego systemu autorskiego pozwalającego tworzyć prezentacje multimedialne. Zakres pracy obejmuje dwa główne zadania. Pierwsze zadanie to opracowanie zasad modelowania prezentacji multimedialnej, które pozwoli na swobodne przekształcanie wizji twórcy w program komputerowy. Modelowania powinno być precyzyjne oraz jednoznaczne. Drugim zadaniem jest wyspecyfikowanie języka umożliwiającego zapis zamodelowanej prezentacji. Jednym z założeń pracy jest wykorzystanie języka UML [9.1] [9.1] [9.1] jako sposobu opisu prezentacji. Należy rozważyć, które diagramy oferowane przez UML będą przydatne. W przypadku braku odpowiednich diagramów może zajść konieczność zdefiniowania własnych, lepiej oddających modelowany aspekt. System zapisu powinien pozwalać na definiowanie własnych typów danych oraz w ramach tychże definicji zezwalać na wykorzystanie podstawowych właściwości paradygmatu obiektowego. Szczególnie istotne jest umożliwienie tworzenia złożonych typów danych medialnych przy wykorzystaniu mechanizmów dziedziczenia. Język zapisu powinien być na tyle elastyczny, by pozwalać na zapisanie podstawowej synchronizacji na poziomie definicji typu danych oraz wyspecyfikowanie synchronizacji pomiędzy obiektami utworzonymi na podstawie zdefiniowanych wcześniej typów. Praca ma również wykazać przydatność języka UML w dziedzinie multimediów. Zastosowanie tego języka nie ograniczy się jedynie do fazy projektowania aplikacji odtwarzającej prezentację opisaną w opracowanym języku. UML zostanie wykorzystany jako narzędzie służące do definiowania prezentacji. Prezentacja zdefiniowana za pomocą diagramów UML zostanie zapisana przy pomocy języka XML [9.1] [9.2]. W czasie realizacji pracy zostanie wykorzystana wiedza z zakresu multimediów, projektowania systemów informatycznych oraz technik kompilacji. Bardzo przydatne będzie zdobyte w czasie studiów oraz pracy zawodowej doświadczenie implementacyjne. 4

5 Realizacja autorskiego systemu obiektowego związana jest z brakiem takiego systemu na rynku. Istnieją systemy mające pewnie elementy obiektowości (np. Quest), lecz zwykle ograniczają się one jedynie do określenia elementów prezentacji jako obiektów nie uwzględniając złożonych związków, jakie mogą zachodzić pomiędzy tymi obiektami. Największym brakiem jest zaniechanie wykorzystania mechanizmów dziedziczenia do definiowania obiektów prezentacji. Kolejną przyczyną wybrania tego tematu jest nowatorstwo systemu oraz skala problemu. Realizacja tego zamierzenia z całą pewnością przyniesie dużo zadowolenia oraz doskonale wpłynie na moje przygotowanie do życia zawodowego. Uważam, że doświadczenia zdobyte w czasie pisania pracy magisterskiej oraz implementacji systemu będą ciekawe i przydatne w późniejszych projektach, nawet tych niezwiązanych bezpośrednio z multimediami. 5

6 2 Wprowadzenie do multimediów. 2.1 Co to są multimedia? Pierwsze systemy informatyczne obsługiwane były przez osoby, które je stworzyły. Konsekwencją takiego działania był skomplikowany system komunikacji zrozumiały jedynie dla jego twórców. Wraz z rozpowszechnianiem się systemów informatycznych pojawiła się potrzeba prezentacji wyników ich pracy w sposób zrozumiały i przyjazny dla osób niezwiązanych ze światem informatyki. Pojawienie się interfejsów graficznych było pierwszym krokiem do prostej formy komunikacji z komputerem. Od tej chwil komputer przemawiał nie tylko tekstem, ale również obrazem. Pojawienie się urządzeń wskazujących (np. mysz lub joystick) ułatwiło interakcję. Cyfrowe urządzenia przetwarzające dźwięk pozwoliły na utworzenie trzeciego kanału komunikacyjnego. Stało się możliwe przekazywanie informacji przy pomocy dźwięku. Nieinformatycznych źródeł multimediów należy szukać w sposobie postrzegania rzeczywistości przez człowieka. Ludzie zapamiętają 20% tego co widzą i 30% tego co słyszą. Jednak pamiętają 50% z tego co widzą i słyszą i nawet 80% tego co widzą i słyszą czyniąc to w tym samym czasie [Computer Technology Research, 1993]. Wniosek płynący z powyższego stwierdzenia jest następujący. Komunikacja odbywająca się przy pomocy różnych form przekazu jest dla nas bardziej zrozumiała. Ludzki umysł działa na zasadzie skojarzeń. Przekazanie wiedzy w różnorodny sposób dostarcza wielu skojarzeń ułatwiających zapamiętanie przekazywanych treści. Ponadto mutimedia umożliwiają odkrywcze poznawanie systemu. Dzięki mechanizmom interakcji dają szansę na poznanie zagadnienia w sposób indywidualny, interesujący oraz pociągający. Symbole, przez które multimedia do nas przemawiają są naturalnym sposobem komunikacji. Pomimo długiego czasu obecności multimediów w codziennym życiu, samo pojęcie nie doczekało się jeszcze powszechnie akceptowanej definicji czy też formalnego ujęcia. Oto najciekawsze z propozycji. MULTIMEDIA, połączenie różnych sposobów przekazywania informacji (w postaci tekstu, dźwięku, grafiki, obrazów ruchomych i nieruchomych) za pośrednictwem komputera lub skomputeryzowanego sprzętu audiowizualnego (odtwarzacza płyt kompaktowych, magnetowidu, elektronicznych instrumentów muzycznych); np. wydawnictwa elektroniczne, gry, wideoklipy. Nowa encyklopedia powszechna PWN, Wydawnictwo Naukowe PWN S.A. Mutimedia to połączenie dźwięku i materiału wizualnego w celu rozszerzenia komunikacji i wzbogacenia prezentacji. Gibbs & Tsichritzis Multimedia to ogólne określenie środków komunikacji wykorzystujących wiele form przekazu. Jeśli ktoś mówi o multimediach to zazwyczaj ma na myśli połączenie kilku z następujących elementów: tekst, obraz statyczny, obraz ruchomy (film, animacja), dźwięk, muzyka, mowa. Dodatkowo, jeśli multimedia pojawiają się w kontekście komputerów, dochodzi wykorzystanie hiperłączy. Wikipedia Wolna Encyklopedia [9.2] 6

7 W ostatnim czasie termin multimedia stał się terminem marketingowym. Producenci oprogramowania starając się zachęcić do kupna swoich produktów nadmiernie nim szafują. W wyniku tego większość użytkowników komputera nie wie, co się pod tym terminem kryje. 2.2 Zastosowania multimediów. Mutimedia znalazły wiele zastosowań. Oto najciekawsze z nich: Edukacja Jest to dziedzina najczęściej kojarzona z multimediami za sprawą producentów oprogramowania wpierającego naukę. Połączenie różnych form prezentacji wiedzy pozwala na szybsze jej przyswojenie. Mutimedia bardzo dobrze nadaję się do prezentacji podstawowych zagadnień z różnych dziedzin nauk. Zaawansowana wiedza efektywniej przekazywana jest przy pomocy innych technik. Główne dziedziny edukacji przy pomocy multimediów to nauka języków obcych. Przykładem jest system SuperMemo. Dostępne są również multimedialne pomoce naukowe. W Polsce do najpopularniejszych z nich należy seria edurom wyprodukowana przez firmę Young Digital Poland. Seria ta składa się materiałów pomocniczych adresowanych do uczniów szkół podstawowych oraz gimnazjalnych. Każdy element serii to elektroniczny podręcznik przedmiotu nauczanego w szkole. Rozrywka Mutimedia znajdują szerokie zastosowanie w rozrywce. Gry wideo stanowią połączenie przekazu obrazu i dźwięku oraz interakcji. Gry video nastawione są na nieustanną interakcje z użytkownikiem. Bez wątpienia jest to przyczyna tak wielkiej ich popularności. Zastosowania komercyjne Mutimedia znalazły zastosowania w biznesie. Najczęściej przyjmują postać prezentacji biznesowej obrazującej omawiane zagadnienie. Innym przykładem są interaktywne systemy sprzedaży. Badania wykazały, że prezentacją produktu przy pomocy kombinacji obrazu oraz dźwięku podnosi jego atrakcyjność w oczach klienta. Prezentacja produktu z wykorzystaniem wielu środków przekazu pozwala szybciej trafić do potencjalnego klienta niż poprzez każde medium osobno. Sztuka Warto spojrzeć na multimedia nie tylko przez pryzmat zastosowań technicznoedukacyjnych, ale również jako na dziedzinę sztuki. Mutimedia mogą być traktowane jako środek wyrazu artystycznego. Przykładem tego są instalacje multimedialne. Instalacje te mają charakter prezentacji nastawionych na oddziaływanie na zmysły odbiorcy. Zwykle instalacja medialna ma postać filmu wideo wyświetlanego na ekranie wraz z podkładem dźwiękowym 7

8 dobranym przez twórcę. Dodatkowymi elementami instalacji mogą być światła laserowe lub wykorzystanie możliwości dźwięku przestrzennego w celu zaskoczenia widza. 2.3 Co to jest system autorski? System autorski jest to oprogramowanie umożliwiające tworzenie prezentacji hipermedialnych bez znajomości typowego języka programowania. Adresowany jest do osób niemających kwalifikacji informatycznych. Praktyczne wykorzystanie systemu autorskiego sprowadza się do nauki niekonwencjonalnego programowania w otoczeniu systemu autorskiego (opracowano na podstawie [9.1]). Systemy autorskie umożliwiają wytworzenie oprogramowanie w czasie krótszym niż implementacja kodu w którymkolwiek z istniejących języków programowania. Multimedialne systemy autorskie pozwalają na tworzenie prezentacji bez potrzeby programowania. Systemy autorskie dostępne na rynku można podzielić na kilka grup. Systemy oparte na kartach wykorzystują metaforę karty lub slajdu. Prezentacja w systemie tego typu składa się z kart (slajdów) połączonych linkami. Z racji małej elastyczności tego rozwiązanie, systemu tego typu zwykle zawierają język skryptowy pozwalający na zaimplementowanie złożonych interakcji. Najpopularniejszymi rozwiązaniami są Hypercard, PowerPoint czy ToolBook. Systemy oparte na językach skryptowych udostępniają język pozwalający na manipulowanie składnikami prezentacji. Manipulacja polega na obsłudze typów medialnych, interakcji z użytkownikiem czy zapewnieniu synchronizacji pomiędzy obiektami. W większości systemów język skryptowy jest dodatkowym sposobem definiowania prezentacji. Najpopularniejszym przykładem języka skryptowego jest Lingo znany z systemu Macromedia Director. Cechą systemów oparty na metaforze linii czasu jest duża intuicyjność. Użytkownik umieszcza obiekty na wyspecyfikowanej linii czasu i w ten sposób określa zależności czasowe pomiędzy obiektami. Wadą tego rozwiązania są trudności z definicją złożonych przypadków synchronizacji oraz problemy ze wstawianiem nowych obiektów pomiędzy istniejące już relacje czasowe. Systemy tego typu bardzo często uzupełniane są o języki skryptowe. Przykładem systemu opartego na linii czasu jest Macromedia Director. Kolejnym rodzajem systemu autorskiego jest system opary na ikonach. Definiowanie prezentacji polega na wykorzystaniu zestawu ikon reprezentujących poszczególne składowe prezentacji. Ikony obrazują przepływ sterowania czy połączenia pomiędzy obiektami. Systemy tego typu wykazują bardzo dużą intuicyjność. Przykładowym systemem jest Authorware Professional i Icon Author. Z punkt widzenia niniejszej pracy, najbardziej interesujące są systemy bazujące na obiektach. Traktują one prezentację jako zbiór obiektów oraz relacji zachodzących pomiędzy nimi. Wśród twórców systemów tego typu, pojęcie obiektu rozumiane jest dosyć swobodnie. W zależności od systemu, definicja obiektu zbliża się lub oddala od definicji znanej z paradygmatu programowania obiektowego. Przykładem systemu tego typu jest Quest lub OMMMA [9.1]. Opisywany w dalszej części pracy system jest systemem należącym to grupy system obiektowych. 8

9 2.4 Istniejące sposoby opisu prezentacji multimedialnych Spośród wyszczególnionych w poprzednim rozdziale obiektowych systemów autorskich, opisana zostanie jedynie OMMMA. Koncepcja tego systemu jest najbardziej zbliżona do systemu prezentowanego w niniejszej pracy. OMMMA OMMMA (Object-Oriented Modeling of MultiMedia Applications) była próbą stworzenia narzędzia autorskiego pozwalającego na modelowanie prezentacji multimedialnych przy pomocy języka UML. Projekt był prowadzony przez Stefana Sauera oraz Gregora Engelsa. Użyto tu czasu przeszłego, gdyż z informacji dostępnych w sieci Internet wynika, że prace nad projektem zostały wstrzymane. Autorzy postanowili oprzeć się na języku UML, który stanowi silne narzędzie dla projektowania aplikacji oraz systemów informatycznych. Niestety nie wspiera on wszystkich aspektów aplikacji multimedialnych, w szczególności chodzi o projektowanie interfejsu użytkownika. Pewne elementy wydają się też zbędne i mogą niepotrzebnie komplikować zagadnienie. Założenia projektu OMMMA OMMMA wydziela pięć aspektów aplikacji multimedialnej: 1. Struktura logiczna. Struktura logiczna aplikacji multimedialnej jest jej ważną częścią i musi zostać jawnie wyspecyfikowana przez projektanta aplikacji. Podobnie jak przy tradycyjnym podejściu do projektowania aplikacji czy systemów, jest ona punktem początkowym dla modelowania. Struktura logiczna odzwierciedla dziedzinę, którą aplikacja multimedialna ma obrazować. Stworzony model musi zawierać nie tylko strukturę obiektów i relację między nimi, ale również odniesienie do poszczególnych typów medialnych. Oznacza to, że dane w zależności od swojej natury, muszą być przyporządkowane do poszczególnych typów medialnych. 2. Prezentacja czasowa. Aplikacja multimedialna ma charakter czasowo-przestrzenny. Autorzy systemu OMMMA podzielili modelowanie aplikacji multimedialnej na dwie części: część zależną oraz niezależną od czasu. Obie te części są wzajemnie połączone. Do części zależnej od czasu należą obiekty temporalne. 3. Prezentacja przestrzenna Do części przestrzennej prezentacji należy interfejs użytkownika. Obiekty tej części są pozycjonowanie względem siebie lub względem wirtualnego ekranu, na którym są wyświetlane. Model tych obiektów musi być specyfikowany jawie, tak by użytkownik miał pełna kontrolę nad wyglądem aplikacji. Jako przestrzenną część prezentacji można również 9

10 potraktować wielokanałowość plików dźwiękowych, gdzie każdy kanał stanowi osobny obiekt przestrzeni. 4. Predefiniowane zachowania Zachowanie aplikacji multimedialnej zależne jest od predefiniowanych sekwencji akcji oraz interakcji z użytkownikiem (chodzi o nawigację w obrębie aplikacji oraz kontrolę nad stanem wykonania obiektów temporalnych np. plików dźwiękowych). Zdefiniowany model aplikacji musi uwzględniać elementy synchronizacji pomiędzy obiektami w czasie definiowana na etapie modelowania aplikacji. W tym miejscu należy uwzględnić synchronizację inter oraz intra. Synchronizacja inter jest synchronizacją zachodzącą pomiędzy obiektami i definiowana jest przez relacje pomiędzy obiektami użytymi w prezentacji. Synchronizacja intra zachodzi wewnątrz obiektu i dotyczy podstawowych jednostek, z których zbudowany jest obiekt (np. synchronizacja poszczególnych klatek filmu). 5. Interakcja z użytkownikiem Aplikacja musi również pozwalać użytkownikowi na kontrolę stanu jej wykonania oraz decydowanie o rozwoju akcji. Zdarzeniom generowanym przez użytkownika musi towarzyszyć reakcja aplikacji. Model MVC OMMMA w swej architekturze opiera się na modelu Model-View-Controler. Część Model została zdefiniowany jako dwie części: model statyczny zawierający logikę aplikacji i hierarchię typów medialnych oraz model dynamiczny odzwierciedlający zachowanie aplikacji. Komponent View odpowiada za prezentację, a komponent Control za kontrolę samej prezentacji, jaki i całej aplikacji. Rysunek 1. Model MVC zaadaptowany do projektu OMMMA. Opis prezentacji OMMMA-L Podstawą opisu aplikacji jest język UML. Jednak ze względu na to, że nie jest on stworzony bezpośrednio do modelowania aplikacji multimedialnych, nie jest w stanie w pełni 10

11 opisać wszystkich jej aspektów. W związku z tym, został rozszerzony o brakujące elementy a elementy nadmiarowe zostały pominięte. Rozszerzenie języka UML dotyczy aspektów modelowania przestrzennego, a więc konstruowania warstwy aplikacji widocznej dla użytkownika. Rezultatem jest język OMMMA-L (OMMMA-Languge). Diagram klas Diagramy klasy zostały włączone do OMMMA-L bez zmian. Zgodnie ze swoim przeznaczeniem służą do opisu statycznego aspektu modelu aplikacji. Opisują strukturę obiektów oraz ich możliwe wzajemne powiązania. By dokładniej opisać specyfikę aplikacji (jej logikę oraz strukturę typów medialnych) każdy diagram klas OMMMA-L składa się z dwóch części powiązanych ze sobą części: hierarchii typów medialnych oraz modelu logicznego aplikacji. Rysunek 2. Diagram klas systemu OMMMA. Wyraźne wyróżnienie obiektów należących do logiki aplikacji oraz obiektów medialnych pozwala na przedstawienie encji przez różne media. Dlatego obiekty medialne nie są specjalizacjami obiektów aplikacji i na odwrót. Struktura obiektów medialnych jest podobna do struktury znanej ze standardu MHEG[9.2]. Diagram prezentacji Diagram prezentacji pozwala na intuicyjny opis warstw widocznych dla użytkownika, a więc na przestrzenne zagospodarowanie obiektów wizualnych składających się na interfejs użytkownika. Diagram ten podąża za ideą strukturalizacji interfejsu poprzez pudełka otaczające. Pudełka te mają swój rozmiar, który determinuje rozmiar komponentów w nich zawartych oraz są pozycjonowane na wirtualnym ekranie. Obiekty te są podzielone na dwie grupy: obiekty wizualne oraz obiekty interakcji. Obiekty wizualne są pasywne, prezentują tekst, obraz, grafikę, animację czy wideo. Obiekty interakcji zezwalają na interakcję z użytkownikiem i mogą zgłaszać zdarzenia. 11

12 Rysunek 3. Przykładowy diagram prezentacji. Aplikacja może być opisana przez kilka diagramów prezentacji, które stanowią warstwy widoku. Na widok główny użytkownika może składać się kilka warstw widoku. Rozszerzony diagram interakcji Aby zapewnić modelowanie specyficznej charakterystyki aplikacji multimedialnej i uczynić ją bardziej bezpośrednią i intuicyjną znany z języka UML diagram interakcji rozszerzono o następujące elementy: 1. Znaczniki czasu - pozwalają na określenie interwałów czasowych, w których dany obiekt ma być aktywny. 2. Parametryzowanie diagramu interakcji parametryzowanie może następować, np. poprzez znaczniki czasu na początku i końcu diagramu interakcji w celu wielokrotnego wykonania. 3. Aktywacja i dezaktywacja opóźnień modelowanie mechanizmów QoS, przydatne przy mechanizmach synchronizacji 4. Złożenie aktywacji obiektów w czasie jednej akcji liczba aktywowanych obiektów nie jest ograniczona. 5. Automatyczne wyzwalanie sekwencji aktywacji również przydatne przy synchronizacji. Za pomocą tego mechanizmu można uzyskać efekt sekwencyjnego wykonania pewnych akcji, np. odtwarzanie kilku filmów czy plików dźwiękowych po sobie. Mechanizm ten nazwany jest synchronizacją szeregową. 6. Filtrowanie aktywacji obiektów aktywowane obiekty mogą podlegać pewnym warunkom, przez co zostaną aktywowane jedynie te obiekty, które spełniają nałożone warunki. 12

13 Rysunek 4. Przykładowy diagram interakcji systemu OMMMA. Diagram interakcji modeluje prezentację na scenie. Wszystkie obiekty diagramu zależą od tej samej osie czasu (synchronizacja inter). Zależności pojedynczych obiektów temporalnych od linii czasu specyfikuje synchronizacja intra. Akcje wykonywane równolegle wymagają osobnych diagramów nawiązujących do stanów równoległych na diagramie stanów. Oznaczenie znaczników czasu może być względne lub bezwzględne. Diagram stanów Diagramy interakcji służą do wyróżnienia deterministycznego zachowania. Diagramy stanów pozwalają na reakcję na zdarzenia inicjowane przez użytkownika. Zostały one włączone do OMMMA-L z jednym rozszerzeniem. Wewnętrzne akcje podstawowych stanów mogą być etykietowane nazwami diagramów interakcji, co powoduje rozpoczęcie wykonywania diagramu o takiej nazwie w chwili osiągnięcia tego stanu. 13

14 Rysunek 5. Przykładowy diagram stanów. Złożenia diagramów Definicja aplikacji może być złożoną kolekcją jednostkowych aplikacji nazywanych scenami. Każda scena nawiązuje do stanu w diagramie opisującym całą aplikację. Idąc dalej, każda scena jest powiązana z prezentacją zapisaną za pomocą diagramów prezentacji złożonych z kilku warstw oraz diagramów stanów i diagramów interakcji. W każdym stanie diagramu stanów istnieje możliwość być umieszczenia kolejnej sceny. Pozwala to na tworzenie aplikacji o dowolnej złożoności. Rysunek 6. Złożenie diagramów. 14

15 SMIL SMIL [9.1][9.2] jest językiem znacznikowym przystosowanym do zapisu prezentacji multimedialnych złożonych z rozmaitych plików. SMIL jest skrótem od Synchronized Multimedia Integration Language, a wymawia się go smajl, czyli uśmiech. Prezentacja opisana przy pomocy SMIL jest dokumentem tekstowym zgodnym ze składnią tego języka o rozszerzeniu smi. Zawartość jest interpretowana przez specjalny program, w szczególności może to być przeglądarka internetowa. Potrzebne zasoby są pobierane spoza dokumentu. Aby stworzyć dokument SMIL można użyć dowolnego edytora tekstu lub specjalizowanych narzędzi pozwalający przyśpieszyć pracę. Przykładem takiego narzędzia jest SMIL Presentation Wizard firmy Real Networks. Tworząc dokument SMIL należy określić odwołania do plików multimedialnych poprzez określenie ich położenia, współwystępowanie (a więc czy elementy mają występować sekwencyjnie czy równolegle), czas trwania oraz reakcje na zaistniałe zdarzenia. W związku z tym prezentacja multimedialna opisana w dokumencie ma cztery wymiary: położenie na ekranie (pierwsze dwa wymiary), nakładanie się elementów na siebie (trzeci wymiar) oraz ścieżka czasowa (wymiar czwarty). Stworzony dokument może zostać umieszczony w Internecie i uruchamiany z poziomu przeglądarki internetowej. Jeżeli przeglądarka nie obsługuje formatu SMIL wyświetli okno z pytaniem czy zapisać plik na dysku lokalnym. W przeciwnym przypadku rozpocznie się odtwarzanie prezentacji. W dokumencie oprócz układu strony zawarty jest również scenariusz prezentacji. Można dokładnie wyspecyfikować, gdzie, kiedy i w jakiej kolejności poszczególne elementy prezentacji mają być uaktywnianie. Dokument nie zawiera informacji o obsłudze formatów danych medialnych pochodzących ze źródeł wyspecyfikowanych w dokumencie. Jest to zadanie zrzucone na program odtwarzający. Można jednak wyspecyfikować jakość danych. Na przykład można określić jakość dźwięku, z jaką należy odtworzyć plik muzyczny. W ramach tej samej etykiety mogą być zdefiniowane różne parametry jakościowe, co oznacza, że program powinien sam dobrać optymalną jakość dla przepustowości łącza. Dokument SMIL ma podobną strukturę jak dokument HTML. Sekcja BODY zawiera szczegóły prezentacji. Przy pomocy specjalnych znaczników definiuje się poszczególne elementy prezentacji. Przykładowo, wywołanie pliku wideo wygląda następująco: <video src= film.avi /> Inne obiekty medialne, jakie mogą być zdefiniowane to audio, animation, img, ref, text, textstream. Najważniejsze parametry, jakie dodatkowo można przypisać obiektom medialnym to: src begin dur przyporządkowanie źródła obiektu. Jest to parametr wymagany dla każdego obiektu medialnego. rozpoczęcie odtwarzania danego pliku ma nastąpić po upływie pewnego czasu. Np. begin= 10s parametr mający zastosowanie dla obiektów nietemporalnych. Określa czas, przez jaki mają być wyświetlane. id identyfikator obiektu 15

16 region przypisuje specyfikowany obiekt do regionu o nazwie podanej w wartości tego parametru. SMIL udostępnia również szeroki wachlarz znaczników. Oto najbardziej przydatne: head meta w obrębie tego znacznika definiuje się znaczniki meta oraz layout. definiuje dodatkowe informacje o prezentacji. Znacznik ten może być użyty tylko w wewnątrz znacznika head. layout znacznik umieszczany w sekcji head. Tutaj definiuje się właściwości mające wpływ na kształt prezentacji. Do tych właściwości należą ustawienia okna prezentacji czy definicje regionów. root-layout definicje okna, w którym będzie odtwarzana prezentacja. Znacznik ten musi znajdować się wewnątrz znacznika layout. region definiuje pewną wydzieloną część stanowiącą zamknięty obszar. Obiekty umieszczane w regionie są pozycjonowane względem prawego górnego rogu regionu. switch analizuje własności systemowe i porównuje z wartościami zadanymi w dokumencie. Jeżeli wartości są identycznie, wykonywany będzie blok następujący tej po definicji. seq par obiekty znajdujące się wewnątrz tego znacznika będą odtwarzane sekwencyjnie w kolejności podanej w definicji. odtwarzanie elementów znajdujących się wewnątrz znacznika równolegle. Oto przykład prezentacji zapisanej przy pomocy SMIL: <smil> <head> <layout> <root-layout width="300" height="200" background-color="white"/> <region id="icon1_reg" left="75" top="50" width="32" height="32"/> <region id="icon2_reg" left="150" top="50" width="100" height="30"/> </layout> </head> <body> <seq> <img src="icon1.gif" alt="first icon" region="icon1_reg" dur="6s"/> <img src="icon2.gif" alt="second icon" region="icon2_reg" dur="4s" begin="1s"/> </seq> </body> </smil> 16

17 SMIL w wersji 2.0 jest językiem dojrzałym i dającym duże możliwości. Posiada zdefiniowane mechanizmy przejść pomiędzy obiektami medialnymi, obsługę zdarzeń oraz wspiera tworzenie animacji. HTML+TIME HTML+TIME [9.1] jest technologią powstałą w firmie Microsoft. Umożliwia ona zawarcie elementów synchronizacji na stronach HTML. Skrót TIME oznacza Timed Interactive Multimedia Extensions. HTML+TIME wprowadza znaczniki XML do HTML pozwalające dodawać do strony obrazy, filmy video i dźwięki a następnie synchronizować je z elementami tekstowymi HTML w wyspecyfikowanych momentach czasu. Synchronizacja zdarzeń w HTML+TIME nie wymaga znajomości języków skryptowych. Istnieją dwie wersje HTML+TIME. Pierwsza wersja została zaimplementowana w przeglądarce Internet Explorer 5.0, druga (HTML+TIME2) w programie Internet Explorer 5.5. Format ten bazuje na profilu językowym HTML+SMIL, który powstał jako połączenie technologii HTML oraz SMIL. HTML+TIME umożliwia dynamiczną oraz interaktywną zmianę zawartości strony. Przykładowo, na stronie HTML można zdefiniować pokaz slajdów zsynchronizowanych z tekstem, obrazami, plikami dźwiękowymi czy filmami video. Kolejność pojawiania się poszczególnych obrazów może zależeć od definicji czasowych oraz zdarzeń generowanych przez prezentacje lub użytkownika. Definiowanie prezentacji na stronie HTML wymaga dodanie kilku nowych atrybutów do istniejących elementów. Dzięki temu, osoby znające HTML nie muszą uczyć się nowego języka. Atrybuty HTML+TIME specyfikują czas pojawiania się elementów na stronie, jak długo są wyświetlane oraz sposób oddziaływania na otaczające je elementy HTML. Dodano także kilka nowych elementów bazujących na XML, aby zapewnić kontrolę na kolejnością przetwarzania elementów medialnych. Przykładowo, element excl pozwala wyspecyfikować, kiedy należy rozpocząć odgrywanie pliku dźwiękowego, w którym momencie prezentacji należy odgrywane zatrzymać oraz ile razy ma być powtarzany. Elementy HTML mogą być grupowane w hierarchiczne związki tak, by łatwo manipulować grupami obiektów. Grupowanie jest również wykorzystywane do specyfikacji kolejności pojawiania się elementów na stronie. Do grupowania elementów należy wykorzystywać znaczniki t:par, t:seq, oraz t:excl. Znacznik pierwszy umożliwia przetwarzanie równoległe, znacznik drugi przetwarzanie sekwencyjne. Element t:excl zezwala na odtwarzanie tylko jednego elementu w podanym czasie. Grupowanie umożliwia również atrybut timecontainer. Wsparcie języków skryptowych w HTML+TIME zrealizowane jest przez udostępnienie modelu obiektów DHTML. Dzięki temu można wykorzystywać właściwości HTML+TIME, jego metody oraz zdarzenia. Model synchronizacji zawarty w HTML+TIME stanowi połączenie modelu opartego na linii czasu oraz modelu bazującego na zdarzeniach. Statyczne oraz deterministyczne elementy prezentacji łączy się z linią czasu za pomocą atrybutów begin oraz end. Reakcja na zdarzenia interaktywne zrealizowania jest w bardzo zbliżony sposób i polega na specyfikacji zdarzeń do tych samych atrybutów, a więc do begin lub end. W chwili, gdy dane zdarzenie zachodzi, na przykład użytkownik kliknie myszką, niedeterministyczny związek zostaje zdefiniowany jako związek w bieżącej chwili czasu. Związek ten jest dodawany do linii czasu, tak jakby był wyspecyfikowany jako związek deterministyczny. Wersja HTML+TIME2 pozwala definiować animację. W tym celu wprowadzono moduł oparty na specyfikacji SMIL2. Moduł ten umożliwia przemieszczanie elementów po zdefiniowanej ścieżce. Do zmiany wartości atrybutów w czasie służy element t:animate. 17

18 Element ten posiada dwa atrybuty: targetelement oraz atrybutename. Pierwszy wskazuje na element strony, który ma być animowany, drugi zmienia wartość atrybutu. Oto przykładowy dokument HTML zawierający elementy HTML+TIME. <html xmlns:t="urn:schemas-microsoft-com:time"> <head> <title>synchronizacja HTML+TIME</title> <style type="text/css">.time { behavior: url(#default#time2) } </style> <?import namespace="t" implementation="#default#time2"?> </head> <body> <h1>zabytki Lublina</h1> <hr size="1"/> <t:seq repeatcount="indefinite"> <t:par> <img class="time" begin="0" dur="3" timeaction="display" src="zamek.jpg" style="height=150; width=300"/> <div <div </t:par> </t:seq> </body> </html> class="time" begin="0" dur="3" timeaction="display">zamek lubelski</div> </t:par> <t:par> <img class="time" dur="3" timeaction="display" src="karmel.jpg" style="height=300; width=221"/> class="time" dur="3" timeaction="display">klasztor Karmelitów Bosych</div> Przykład 1. Dokument HMTL wykorzystujący HTML+TIME. Przykład zaczerpnięty z [9.1] 18

19 3 Wykorzystane technologie 3.1 UML Język UML (Unified Modeling Language) został stworzony jako język przeznaczony do specyfikacji i konstruowania modeli oprogramowania. Zastosowanie znajduje również w procesie tworzenia dokumentacji systemów informatycznych. Jest on oparty o pojęcia obiektowości, takie jak obiekty, klasy, atrybuty, związki, agregacje, dziedziczenie czy metody. UML powstał w wyniku połączonych wysiłków trzech znanych metodologów: Grady Boocha, Ivara Jacobsona i Jamesa Rumbaugh'a. Język UML jest zestawem pojęć oraz notacji graficznych (diagramów), które pozwalają wszechstronnie odwzorować modelowaną dziedzinę problemu, założenia projektowanego systemu informatycznego, oraz większość istotnych aspektów jego konstrukcji. UML jest obecnie wspomagany przez wiele narzędzi CASE. Podstawowym celem UML jest modelowanie systemów (nie tylko oprogramowania) z użyciem pojęć obiektowych. Jest on jest notacją pośrednią, pomostem pomiędzy ludzkim rozumieniem struktury i działania programów, a kodem programów. Taka notacja jest niezbędna do specyfikacji, konstrukcji, wizualizacji i dokumentacji wytworów związanych z systemami intensywnie wykorzystującymi oprogramowanie. Diagramy UML ustanawiają bezpośrednie powiązanie elementów modelu pojęciowego z wykonywalnymi programami. Jednocześnie umożliwiają one objęcie zagadnień związanych ze skalą problemu, towarzyszących złożonym systemom o krytycznej misji. UML cechuje się wysoką elastycznością w pewnym stopniu jest to standard otwarty. Można dostosowywać go do własnych potrzeb, stosując stereotypowanie. Można tworzyć stereotypy tekstowe i graficzne. Praktyczne zastosowania języka UML zostaną zademonstrowane w dalszej części pracy. 3.2 XML W ciągu kilku lat HTML zyskał bardzo silną pozycję w dziedzinie aplikacji internetowych. Jednak jego ograniczenia oraz konieczność uzyskania większej elastyczności sprawiły, że rozpoczęto pracę nad językiem, który byłby elastyczny i dawał możliwość komunikacji pomiędzy różnymi platformami sprzętowymi. Tak powstał XML. Skrót tłumaczy się jako extensible Markup Language, a więc rozszerzalny język znaczników. Szczególny wpływ na pojawienie się języka XML miały aplikacje tworzone w języku Java. Java jest językiem wieloplatformowym i wymagała formatu reprezentacji danych równie łatwego do przenoszenia jak ona sama. XML jest doskonałym narzędziem do prezentowania, przechowywania, modelowania oraz wymiany danych. XML jest metajęzykiem używanym do tworzenia nowych języków znacznikowych (markup languages). Używając XML, można zdefiniować język specjalnie przystosowany do tworzonej aplikacji. Należy zaznaczyć, że XML może posłużyć do zapisu jedynie syntaktyki opisywanego języka. Aby zadbać o poprawność semantyczną należy wykorzystać technologie DTD [9.2] lub XMLSchema [9.2]. Dokument zawierający definicję semantyczną zapisany przy pomocy XMLSchama nazywany jest schemą. XML nie jest konkurentem HTML, jest raczej do niego uzupełnieniem HTML służy do formatowania i wyświetlania danych, natomiast XML do reprezentacji znaczenia kontekstowego danych. 19

20 Przykładowy dokument XML wygląda następująco: <?xml version="1.0"?> <Przepis> <Nazwa_przepisu>Babka piaskowa</nazwa_przepisu> <Opis>Moja ulubiona!!!</opis> <Składniki> <Składnik> <Ilość jednostka="kostka">1</ilość> <Nazwa>margaryna</Nazwa> </Składnik> <Składnik> <Ilość jednostka="g">800</ilość> <Nazwa>mąka</Nazwa> </Składnik> <Składnik> <Ilość jednostka="ml">250</ilość> <Nazwa>mleko</Nazwa> </Składnik> <Składnik> <Ilość jednostka="g">20</ilość> <Nazwa opcjonalnie="1">wiórki kokosowe</nazwa> </Składnik> </Składniki> <Instrukcje> <Krok>Wymieszać wszystko dokładnie.</krok> </Instrukcje> </Przepis> Przykład 2. Dokument XML. Przykład zaczerpnięty z [9.2]. Powyższy dokument zawiera przepis na babkę piaskową. Poprawny dokument XML powinien zaczynać się nagłówkiem <?xml version= 1.0?>. Każdy dokument musi posiadać element główny, czyli zawierający wszystkie inne elementy. W powyższym dokumencie jest to element Przepis. Każdy element może zawierać podelementy oraz atrybuty. Przykładami atrybutu są jednostka oraz opcjonalnie. Interpretując powyższy dokument można powiedzieć, że przepis posiada nazwę, opis oraz składa się z wielu składników. Składnik przepisu posiada swoją jednostkę, ilość oraz nazwę. Dla każdego składnika może być określony fakt, czy jest on niezbędny w danym przepisie, czy też opcjonalny. Dokument XML opisuje przepis w kontekście przepisów kucharskich, a nie w kontekście wyświetlania tych przepisów. Znaczenie informacji jest przechowywane w znacznikach XML. Znaczniki XML dzielą się na znaczniki otwierające i znaczniki zamykające. Znaczniki otwierające mogą posiadać listę atrybutów i wartości. W XML każdy znacznik otwierający być zakończony znacznikiem zamykającym. Konstrukcje bez znaczników zamykających znane z HTML (np. <BR>) są niedozwolone. W XML, podobnie jak w HTML, mogą istnieć znaczniki niezawierające wewnątrz tekstu. Dane w dokumencie XML mogą być związane z innymi danymi w tym dokumencie (hierarchicznie), a dokumenty XML mogą być przetwarzane jako struktury hierarchiczne (drzewa). 20

21 3.3 XMI XMI [9.2] jest aplikacją XML, służącą do opisu i wymiany obiektów. XMI można stosować do opisu obiektów w językach programowania, w komponentach, bazach danych oraz do zapisu języka UML. W ramach niniejszej pracy, XMI zostanie wykorzystany jako format danych dla zapisu diagramów UML. Specyfikacja XMI wykorzystuje szeroko język UML do definicji samego XMI. Udostępnia również odpowiednie profile XMI do zapisu modeli UML. XMI jest obecnie wykorzystywane głównie do przenoszenia modeli pomiędzy narzędziami modelującymi przy pomocy UML. XMI jest elastyczną specyfikacją. Aby dostosować go do własnych potrzeb, można tworzyć arkusze styli walidujące modele XMI, definiować własne typy czy rodzaje związków. Ponadto, XMI pozwala na odwoływanie się do modeli zapisanych w różnych plikach, a także zapisywać kolejne wersje modeli, poprzez specyfikowanie różnic pomiędzy nimi. Najnowsza specyfikacja XMI 2.0 pochodzi z maja 2003 roku. 21

22 4 System autorski Tomato 4.1 Wizja systemu Nazwa systemu Nazwą systemu jest skrót od Tomato: Object Multimedia Authoring Tool. Cel Celem systemu Tomato jest umożliwienie użytkownikowi tworzenia prezentacji multimedialnych w oparciu o paradygmat obiektowości. Celem pośrednim jest sprawdzenie przydatności technik modelowania obiektowego w dziedzinie multimediów. Zakres System Tomato ma dostarczyć narzędzi niezbędnych do zdefiniowania oraz uruchomienia prezentacji. Definiowanie prezentacji należy rozumieć jako definiowanie obiektów wchodzących w skład prezentacji oraz relacji zachodzących pomiędzy nimi. Relacje rozumiane są jako relację określające położenie obiektów na ekranie prezentacji oraz interakcje, jakie mogą zachodzić pomiędzy obiektami lub pomiędzy obiektami i użytkownikiem. Użytkownicy systemu System adresowany jest do użytkowników znających technologie obiektowe oraz metody modelowania oparte na obiektach. Należy zaznaczyć, że podejście to nie jest trywialne i użytkownik mający pierwszy raz styczność z modelem pracy zorientowanym na obiekty może napotykać wiele trudności. Z tego względu system Tomato może posłużyć jako narzędzie edukacji. Użytkownik może nauczyć się postrzegać rzeczywistość przez pryzmat obiektu. Zastosowanie uznanych standardów modelowania obiektowego daje szansę nabycia praktycznej wiedzy z zakresu modelowania. Niespotykaną wśród innych systemów jest możliwość bezpośredniej obserwacji wpływu modelu na kształt prezentacji. Użytkownik ma bezpośredni podgląd na to, jak system Tomato interpretuje zdefiniowane przez niego modele. 4.2 Struktura prezentacji oraz model danych w systemie Tomato System Tomato zdefiniowaną przez użytkownika prezentację interpretuje jako drzewo. Korzeniem tego drzewa jest element reprezentujący całą prezentację, dziećmi zaś poszczególne składowe prezentacji. W celu lepszego zrozumienia tego zagadnienia posłużmy się przykładem. Załóżmy ze prezentacja składa się z dwóch scen. Pierwsza scena zawiera napis powitalny, obrazek stanowiący tło oraz przycisk przełączający do dalszej części. Druga scena to film oraz zestaw klawiszy kontrolnych: play, stop oraz pause. Oto drzewo dla przykładowej prezentacji: 22

23 Prezentacja Scena1 Scena 2 Tło Przycisk Dalej Przycisk Play Przycisk Stop Przycisk Pause Film Rysunek 7. Poglądowy rysunek przedstawiający ideę drzewa prezentacji. Budując drzewo, prezentację podzielono na części zgodnie z jej logiką. Dziećmi korzenia prezentacji są elementy dające się wydzielić z prezentacji jako składowe o największej granulacji. W praktycznym zastosowaniu najczęściej będą to poszczególne sceny prezentacji, slajdy czy karty. Składowe tych elementów będą różne i zależne od stopnia skomplikowania prezentacji. W prostych prezentacjach będą to elementy medialne budujące prezentację (obrazy, napisy, filmy video czy klipy audio), w prezentacjach o większym stopniu skomplikowanie będą to podsceny lub wydzielone grupy obiektów. Nic nie stoi na przeszkodzie, aby dziećmi tego samego węzła były zarówno obiekty medialne jak i podscena. Niespotykaną w innych systemach cechą jest traktowanie drzewa prezentacji jako struktury fraktalnej. Każde poddrzewo może być taktowane jak niezależna struktura obiektów tworząca kompletną prezentację. W takim przypadku odtworzenie prezentacji polegać będzie na demonstrowaniu elementów chodzących w skład poddrzewa. Istotną cechą systemu Tomato jest rozszerzenie pojęcia strumień na wszystkie typy medialne [9.1]. Typy, które mają naturę strumieniową (audio i video) zostały opakowane przez obiekty zapewniające obsługę tych typów medialnych. Dla typów medialnych mających charakter nietemporalny 1 zostały utworzone specjalne strumienie nadające tym typom cechy strumienia. Nadanie cech strumienia typom nietemporalnym opiera na następującej interpretacji. Czas trwania strumienia jest tożsamy z prezentacją obiektu. Przykładowo, po rozpoczęciu odtwarzania strumienia opakowującego obraz statyczny, zostanie on wyświetlony na ekranie. Przedstawiona koncepcja strumieni stanowi rozwinięcie koncepcji zawartej w pracy [9.1]. Zdefiniowane powyżej drzewo prezentacji, w interpretacji systemu Tomato, staje się drzewem strumieni. Liście drzewa są strumieniami prostymi, czyli zawierającymi strumienie wbudowane. Węzły są strumieniami złożonymi skupiającymi podstruminie [9.1]. System Tomato daje użytkownikowi możliwość definiowanie własnych strumieni złożonych. Zagadnienie to zostanie opisane w dalszej części pracy. Naturalną konsekwencja przyjęcia drzewiastej struktury prezentacji jest hierarchiczny model synchronizacji. Wszelkie zależności synchronizacyjne mogą zachodzić jednie 1 Typ nietemporalny określa dane medialne niemające ciągłości w czasie. Przykładem danych nietemporalnych jest obraz statyczny, tekst czy grafika wektorowa. Przeciwieństwem są dane temporalne, takie jak obraz video czy strumień audio. 23

24 pomiędzy obiektami połączonymi w drzewie prezentacji związkami ojciec-dziecko lub brat-brat. Związek brat-brat zachodzi w przypadku, gdy obiekty mają tego samego ojca. Model hierarchiczny [9.1] znany z literatury, węzły drzewa traktuje jako całość i nie zezwala na synchronizację pomiędzy składowymi danego obiektu. Twórcy oprogramowania, które bazuje na powyższym modelu trudność tą rozwiązują przez podział obiektu na części, które powinny być zsynchronizowane. Kolejna niedogodnością tego modelu jest brak wsparcia dla zdarzeń interaktywnych, a więc wygenerowanych przez użytkownika. Powyższe trudności w systemie Tomato rozwiązane zostały przez wprowadzenie punktów synchronizacyjnych. Każdy obiekt może posiadać nieograniczony zbiór punktów synchronizacyjnych. Zgłaszając punkt obiekt informuje o stanie, w którym się znalazł. Zgłoszony punkt może zostać wykorzystanie przez inne obiekty w celu synchronizacji. Idea punktów synchronizacyjnych została rozszerzona i zastąpiły one zdarzenia interaktywne. System Tomato po wykrycia zdarzenia (np. wciśniecie klawisza myszy lub klawiatury przez użytkownika) rzutuje zdarzenie na odpowiedni punkt. Synchronizację definiuje się jako związek pomiędzy dwoma punktami synchronizacyjnymi. W związku tym występuje wyróżnienie na punkt wyzwalający oraz punkt wyzwalany. Punkt wyzwalający jest punktem, który został zgłoszony przez obiekt i determinuje on wystąpienie synchronizacji. Zaistnienie synchronizacji powoduje wymuszenie wystąpienia drugiego punktu synchronizacyjnego. Oznacza to, że dany obiektu musi znaleźć się w stanie, dla którego punkt ten został zdefiniowany. Punkty synchronizacyjne obecne są w każdym aspekcie prezentacji. Przy ich pomocy oraz odpowiednim wartościowaniu związku (nadaniu synchronizacji parametrów) można definiować nie tylko synchronizacje czasową, ale również przestrzenną. Osoby zainteresowana powyższym zagadnienie zachęcam do zapoznania się z pracą [9.1] szczegółowo opisującą zagadnienie synchronizacji w systemie Tomato. Połączenie strumieni z punktami synchronizacyjnymi pozwala na swobodne manipulowanie prezentacją. Każdy strumień zawiera dwa predefiniowane punkty: begin oraz end. Punkty te oznaczają początek strumienia oraz jego koniec. W dowolnym momencie trwania strumienia użytkownik może definiować własny punktu synchronizacyjny i wykorzystać go do synchronizacji z innym strumieniem. Definicja synchronizacji musi spełniać wymogi związane z relacjami zachodzącymi pomiędzy strumieniami. Synchronizacja dopuszczalna są jedynie pomiędzy punktami należącymi do strumieni w relacjach ojciec-dziecko i brat-brat. 24

25 * SynchroPoint * <<fire>> 0..1 Stream VirtualDim ension * firesynchropoint() play() s top() s tart() paus e() 1..* join SerialStream 0..1 ParallelStrea m 1..* LDU Rysunek 8. Model logiczny systemu Tomato. Rysunek zaczerpnięty z pracy [9.1]. Powyższe rozważania prowadzą do modelu logicznego systemu Tomato. Klasa Stream jest klasą abstrakcyjną definiującą podstawowe metody strumienia. SerialStream jest klasą bazową dla wszystkich strumieni wbudowanych. Model opisujący zależności pomiędzy typami wbudowanymi szczegółowo opisany jest w pracy [9.1]. Klasa ParallelStream jest klasą bazową dla typów definiowanych przez użytkownika. System Tomato umożliwia wykorzystanie skryptów jako dodatkowego narzędzia pozwalającego definiować prezentację. W tym celu wykorzystano interpreter języka JavaScript. Kod zawarty w skrypcie może wywoływać akcje na strumieniach oraz zgłaszać punktu synchronizacyjne, przez co wpływać na stan całej prezentacji. Mechanizm uruchomienia skryptu połączono z mechanizmami obsługującymi punkty synchronizacyjne. Przyjęto, że każdy skrypt posiada punktu startowy wyrażony jako punkt begin. Dzięki temu uruchomienie skryptu można zsynchronizować z dowolnym innym punktem synchronizacyjnym. 25

26 5 Koncepcja opisu prezentacji Przedstawiona w poprzednim rozdziale koncepcja systemu autorskiego stawia przed sposobem opisu prezentacji określone wymagania. Wymagania te, przyjęte jako podstawa opisu prezentacji, tworzyć będą specyficzne dla systemu podejście do zagadnienia modelowania prezentacji multimedialnej. Pierwszym zadaniem niniejszego rozdziału jest prezentacja wymagań stawianych przed opisem prezentacji. Zadania kolejne to prezentacja proponowanego rozwiązania oraz dyskusja nad jego przydatnością. Spełnienie zdefiniowanych wymagań będzie podstawą oceny przydatności przyjętego rozwiązania. 5.1 Wymagania stawiane przed opisem prezentacji. Wymagania, jakie zostały postawione przez systemem opisu prezentacji multimedialnej można zawrzeć w czterech punktach: 1. Wsparcie obiektowości. 2. Modelowanie wyglądu oraz dynamiki prezentacji. 3. Modelowanie prezentacji na różnych poziomach abstrakcji. 4. Wykorzystanie wcześniej zdefiniowanych komponentów. Wsparcie obiektowości Programowanie zorientowane obiektowo wprowadza pojęcie obiektu. Obiekt jest bytem podstawowym posiadającym cechy opisane przez klasę, która stanowi definicję obiektu. Obiekty będącymi instancjami tej samej klasy mogą różnić się wartościami tych samych cech, gdyż wartości te zależą od indywidualnego cyklu życia obiektu. Należy przyjąć analogicznie sposób opisu prezentacji dla środowiska Tomato. Podstawową jednostką prezentacji jest strumień, odpowiadający klasie w paradygmacie programowania obiektowego. Z tego względu w niniejszej pracy pojęcia klasa będzie stosowane wymiennie z pojęciem strumień. System opisu powinien umożliwić zdefiniowanie strumienia, tak by na podstawie jednej definicji użytkownik mógł stworzyć kilka instancji. Mechanizm tworzenia instancji musi umożliwiać nadanie wartości każdej z cech. Budowa strumieni złożonych powinna polegać na złożeniu klas prostych. Złożenie to może być zrealizowane na dwa sposoby. Pierwszy to agregacja strumieni przez strumień złożony. Drugi sposób polega na dziedziczeniu składowych strumienia bazowego. Definicja strumienia powinna zawierać opis reakcji na zgłaszane punkty synchronizacyjne. Mechanizmy dziedziczenia muszą umożliwić wykorzystanie tak zdefiniowanych zachowań. W paradygmacie programowania obiektowego, do każdej klasy można dodać metodę specyfikującą zachowanie instancji tej klasy. System Tomato mechanizmów tych nie wspiera. Każdy strumień posiada predefiniowane metody niezbędne do jego obsługi, jednak użytkownik nie może dodawać nowych. W związku z tym, nie jest konieczne włączanie do dziedziczenia mechanizmów dziedziczenia oraz przykrywania metod. Polimorfizm również nie znajduje zastosowania. 26

27 Modelowanie kompozycji przestrzennej oraz dynamiki prezentacji Na każdą prezentację można spojrzeć z dwóch perspektyw. Pierwsze perspektywa to położenie elementów na ekranie oraz relacje związane z tym położeniem. Relacje te mogą wyrażają się we pozycjonowaniem elementów (względnym lub bezwzględnym). Druga perspektywa obejmuje dynamiczne aspekty prezentacji. Są to powiązania pomiędzy obiektami związane z synchronizacją wyspecyfikowaną jawnie, synchronizacją wewnątrzstrumieniową, interakcją prezentacji z użytkownikiem oraz wywołania akcji skryptowych. Język opisu prezentacji musi pozwolić na kompletny opis prezentacji, a więc musi pozwolić na opis prezentacji z uwzględnieniem dwóch powyższych perspektyw. Modelowanie prezentacji na różnych poziomach abstrakcji System opisu prezentacji multimedialnej powinien umożliwiać pracę na różnych poziomach abstrakcji. Użytkownik rozpoczynając pracę może mieć jedynie ogólną koncepcję, którą następnie będzie uszczegóławiał. Wskazane jest umożliwienie użytkownikowi utworzenia szkieletu prezentacji, który wraz z postępem prac przekształcałyby się w pełną prezentację. Użytkownik pomógłby podzielić prezentację na części, nad którymi mógłby pracować zgodnie z zasadą od ogółu do szczegółu. Na każdym etapie modelowania prezentacji, użytkownik powinien mieć możliwość odtworzenia prezentacji. Odtworzenie prezentacji może być zrealizowane na dwa sposoby: podglądu lub pełnej wizualizacji. Podgląd rozumiany jest jako odtworzenie prezentacje z uproszczeniami wymaganymi do poprawnej prezentacji stanu prac. Ustalenie skali dopuszczalnych uproszczeń pozostawia się inwencji architekta systemu. Wykorzystanie komponentów Pożądaną cechą systemu opisu prezentacji jest wykorzystanie komponentów. Komponenty te mogą mieć postać bibliotek udostępniających definicje najczęściej wykorzystywanych obiektów. Podejście takie daje dwojakie korzyści. Pierwsza, to budowa bardzo ogólnego mechanizmu definiowania typów obiektów, tak by nawet typy wbudowane miały charakter komponentów dostarczanych wraz z aplikacją. Komponenty te przybrałyby postać biblioteki systemowej. Kolejną zaletą wykorzystana komponentów jest możliwość tworzenia bibliotek przez użytkowników. Systemy otwarte na rozszerzenia tworzone przez bezpośrednich użytkowników bardzo szybko zdobywają dużą popularność. Użytkownicy w stosunkowo krótkim czasie dostarczają wielu funkcjonalności poszerzających możliwości systemu. 5.2 Opracowane rozwiązanie Omawianie opracowanego rozwiązania należy rozpocząć od wprowadzenia definicji procesu twórczego prezentacji. Proces twórczy prezentacji obejmuje wszystkie czynności, jakie należy wykonać, aby stworzyć prezentację multimedialną i zaprezentować ją na urządzeniach wyjściowych podłączonych do komputera. Naturalnym wydaje się włączenie do procesu twórczego czynności potrzebnych do przygotowania wszystkich mediów niezbędnych do odtworzenia prezentacji. Materiały te mogą przybrać postać nagrań 27

28 dźwiękowych, obrazów lub filmów video. Należy jednak pamiętać, że przygotowanie materiałów może obejmować wykonanie fotografii (analogowej lub cyfrowej) lub nagranie dźwięków. Aspekty te nie są przedmiotem niniejszej pracy, dlatego też pozostaną poza definicją. Rozwiązanie, które opisuje niniejsza praca dzieli proces tworzenia prezentacji multimedialnej na dwie części. Część pierwsza polega na definiowaniu prezentacji, część druga to uruchomienie prezentacji zdefiniowanej w części pierwszej. Aby to zilustrować, można przytoczyć analogię związaną z procesem wytwarzania oprogramowania. W pierwszym etapie programista pisze kod programu, a następnie przy pomocy kompilatora zamienia go na postać wykonywalną i uruchamia go. W przypadku prezentacji użytkownik najpierw definiuje prezentację a następnie przy pomocy systemu Tomato konwertuje ją do formatu wykonywalnego i uruchamia ją. Poniżej zamieszczono diagram obrazujący proces twórczy prezentacji. Utworzenie prezentacji Diagramy UML Modyfikacje Działająca prezentacja Zapis Odczyt XMI Konwersja TomatoML Aplikacja Tomato Rysunek 9. Proces twórczy prezentacji multimedialnej. Proces rozpoczyna się od utworzenia prezentacji. Kolejnym krokiem jest modelowanie prezentacji. W czasie modelowania, użytkownik będzie posługiwał się diagramami UML. Diagramy te to diagram klas, obiektów, interakcji, stanów, oraz diagram prezentacji. Diagram interakcji wymaga modyfikacji, gdyż brak w nim jawnej specyfikacji czasu. Diagram prezencji jest diagramem nieopisanym w UML i zostanie on zdefiniowany w ramach tej pracy. Modelowanie aplikacji można rozpatrywać w trzech aspektach. 1. Aspekt statyczny. Aspekt ten określa statyczne powiązania pomiędzy obiektami wchodzącymi w skład prezentacji. Diagramem modelującym prezentację w tym aspekcie jest diagram klas. 2. Aspekt dynamiczny, czyli dynamiczne relacje pomiędzy obiektami. Aspekt ten obejmuje interakcję pomiędzy obiektami prezentacji, interakcję z użytkownikiem oraz definiowanie punktów synchronizacyjnych. Diagramy modelujące aspekt dynamiczny to zmodyfikowany diagram interakcji, diagram stanów oraz diagram sekwencji. 28

29 3. Aspekt prezentacji. Ostatnim aspektem jest aspekt wizualizacji prezentacji. Zadaniem tej części modelowania prezentacji jest zdefiniowanie położenia obiektów w oknie, w którym prezentacja będzie wyświetlana oraz wymiarów tego okna. UML nie zawiera diagramów, które mogłyby być przydatne w tym etapie prac. W związku z tym zostanie wprowadzony nowy diagram, nazwany diagramem prezentacji. Powyższy zbiór diagramów umożliwia kompletne modelowanie prezentacji. Projekt prezentacji multimedialnej składa się z kolekcji powyższych diagramów połączonych relacjami odpowiadającymi zagnieżdżeniom. Zagadnienie zagnieżdżania diagramów opisane jest szerzej w rozdziale 6.3. Aby zapewnić swobodę pracy, użytkownik musi posiadać możliwość zapisu pośrednich etapów prac nad prezentacja. W fazie modelowania, zapis prezentacji ma formę zapisu diagramów UML przy pomocy standardu XMI. Standard XMI pozwala na zapis modeli języka UML przy pomocy XML. Podjęcie dalszych prac nad prezentacją polega na odtworzeniu modeli UML z dokumentu XML. W tym miejscu kończy się faza przygotowania prezentacji a zaczyna faza odtwarzania. Pierwszym krokiem uruchomienia prezentacji jest konwersja dokumentów XMI zawierających diagramy do TomatoML. TomatoML jest aplikacją XML stworzoną na potrzeby systemu Tomato. Zadaniem tej aplikacji jest opis prezencji multimedialnej w postaci odpowiedniej do odczytania przez system Tomato. TomatoML stanowi pomost pomiędzy prezentacją w postaci diagramów UML, a prezentacją wykonywana przez system Tomato. Należy postawić pytanie, czy tworzenie dodatkowego formatu zapisu danych jest niezbędne. Zgodnie w wcześniejszymi zapewnieniami, zapis diagramów w XMI jest wystarczający do odtworzenia logiki prezentacji. Argumenty przemawiające za wyodrębnieniem formatu pośredniego są następujące. Opis prezentacji przy pomocy diagramów UML jest opisem o wysokim poziomie abstrakcji. Zawiera on dane, które dla samego odtworzenia prezentacji są danymi nadmiarowymi. Przykładem tych danych jest graficzny wygląd diagramów. Diagramy modelujące dynamiczny aspekt prezentacji pokazują to samo zagadnienie z różnych perspektyw. Dokonanie dynamicznej syntezy danych i przetworzenie ich do wewnętrznego modeli danych zawartego w systemie Tomato byłby nieefektywne. TomatoML został zaprojektowany z myślą o szybkim wczytaniu danych. W związku z tym zapis prezentacji w tym języku zbliżony jest do modelu danych systemu i pozwala zbudować drzewo strumieni w czasie krótszym niż trwa analiza diagramów i konwersja ich na postać akceptowaną przez Tomato. Przechowywanie ukończonej prezentacji jako układu diagramów niesie ze sobą konieczność niepotrzebnej już analizy i konwersji przy każdym odtworzeniu. Rozdzielenie zapisu na dwie części powoduje, że możliwe staje się wykorzystanie zewnętrznych edytorów UML do procesu definiowania prezentacji. W chwili obecnej, każdy liczący się producent oprogramowania wspierającego modelowanie w UML zamieszcza w swym oprogramowaniu moduł pozwalający na zapis diagramów do XMI. Przy wyborze tego rozwiązania należy rozważyć, jak zapewnić obsługę zmodyfikowanego diagramu interakcji oraz diagramu prezentacji. Problem ten nie jest jednak aż tak duży, jak się początkowo wydaje. Systemy bardzo często pozwalają na dołączanie tzw. wtyczek (ang. plug-in). Wtyczki pozwalają na modyfikację diagramów oraz tworzenie nowych. Konwersja diagramów do TomatoML jest konwersja stratną. Tracone są informacje niezbędne do odtworzenia graficznej postaci diagramów. Uzyskany zapis jest zwięzły i zawiera jedynie te dane, które są niezbędne do odtworzenia prezentacji. Prezentacja w tej 29

30 postaci, łącznie z plikami zawierającymi dane medialne (filmy, obrazy, klipy audio czy też pliki tekstowe), może być rozpowszechniana. Po skonwertowaniu diagramów do TomatoML można przystąpić do uruchomienia prezentacji. System Tomato ładuje prezentację i następnie odtwarza ją. 5.3 Dlaczego UML? W dwóch poprzednich rozdziałach przedstawiono wymagania, jakie zostały postawione przed językiem opisu prezentacji oraz została zaprezentowana ogólna koncepcja rozwiązania. Zanim rozwiązanie zostanie przestawione szczegółowo należy skonfrontować je z powyższymi wymaganiami. Zadaniem tego rozdziału jest dyskusja nad zasadnością wyboru języka UML. Język UML jest uznanym standardem w dziedzinie modelowania systemów informatycznych. Decyzja o wyborze języka UML jako języka opisu prezentacji multimedialnej w głównej mierze bierze się z chęci sprawdzenia czy język ten jest na tyle elastyczny, by sprostać wymaganiom niezwiązanym bezpośrednio z projektowaniem. Próba ta jest jednym z zadań stawianych przed niniejszą pracą. Wsparcie obiektowości. Pierwszym wymaganiem postawionym przez językiem opisu było wsparcie obiektowości. UML jest językiem stworzonym do modelowania obiektowego. W jego definicji obiekt i klasa są podstawowymi elementami. Aby zdefiniować obiekt wystarczy skorzystać z dostarczonego stereotypu i podać listę pól będących składowymi obiektu. Utworzenie instancji klasy jest równie proste. Należy nanieść na diagram obiekt i oznaczyć klasę z której się wywodzi. Każdemu nowotworzonemu obiektowi można inicjalizować pola odpowiednimi wartościami. Tworzenie obiektów złożonych w UML można wykonać zgodnie ze zdefiniowanym powyżej wymaganiem wspierania obiektowości. Definicja obiektu umożliwia zarówno agregację jak i dziedziczenie. Omawiane założenie wymaga, by klasa dziedzicząca przejęła zachowania wyspecyfikowane dla klasy bazowej. Mechanizmów takich nie znajdziemy w paradygmacie programowania obiektowego, nie ma go także w UML. Nic nie stoi jednak na przeszkodzie, by rozszerzyć definicję dziedziczenia. Odpowiednia interpretacja musi się znaleźć w module przetwarzającym diagramy UML na TomatoML, tak by generowany zapis uwzględniał dziedziczenie zachowań. Definiowane reakcji strumienia na zgłaszane punkty synchronizacyjne może zostać zrealizowane przy pomocy diagramu stanów. Modelowanie wyglądu oraz dynamiki prezentacji Diagramy UML doskonale nadają się do modelowania dynamicznych aspektów systemów. Diagram obiektów pozwala na modelowanie powiązań pomiędzy obiektami w danej chwili czasu. Diagram interakcji (sekwencji) przedstawia uporządkowane w kolejności czasowej interakcje zachodzące pomiędzy obiektami. Przedstawia obiekty uczestniczące w interakcjach oraz kolejność zdarzeń. Nie przedstawia jednak relacji pomiędzy obiektami. Kolejnym diagramem obrazującym dynamiczny aspekt modelowanej rzeczywistości jest diagram kolaboracji, nazywany również diagramem współdziałania. Diagram ten jest semantycznie zbliżony do diagramu interakcji. W odróżnieniu od diagramu interakcji, pokazuje relacje pomiędzy instancjami obiektów, nie wyróżnia jednak osi czasu. Z tego 30

31 względu kolejność wywołań określana jest w etykietach przy pomocy liczb. Diagram stanów służy do modelowania maszyny stanów. Jego szczególnym przypadkiem jest diagram aktywności, w którym jeden lub więcej stanów są stanami aktywności. Przejścia pomiędzy stanami aktywności oznaczają zakończenie jednej aktywności i rozpoczęcie drugiej. Język UML nie zawiera diagramów wspierających modelowanie aspektu wizualnego. W związku z tym należy wyspecyfikować diagram umożliwiający to zadanie. Modelowanie prezentacji na różnych poziomach abstrakcji Modelowanie prezentacji na różnych poziomach abstrakcji, w kontekście systemu Tomato, oznacza pracę na poziomie poszczególnych węzłów drzewa prezentacji. Każdy węzeł posiada własny zestaw diagramów, w ramach których wszelkie synchronizację mogą zachodzić jedynie w relacji węzłów ojciec-dziecko lub brat-brat. Dzięki temu zmiany w modelu prezentacji na poziome poddrzewa nie wpływają bezpośrednio na inne niezależne poddrzewa. Utworzenie schematu czy też konspektu prezentacji może polegać na zdefiniowaniu podstawowych węzłów wraz z diagramami niezbędnymi do odtworzenia szablonu. Odtworzenie częściowych wyników pracy może nastręczać pewnych trudności, gdyż przedstawienie stanu prezentacji w dowolnym punkcie jej trwania wymaga interpretacji wszystkich diagramów aż do tego punktu. Wykorzystanie komponentów Komponenty definiowane przez użytkownika mogą wystąpić jako stereotypy. Definicja stereotypu w UML jest następująca [9.1]: Stereotyp nowy rodzaj elementu modelującego, który rozszerza semantykę metamodelu. Stereotyp musi bazować na wybranych elementach istniejących w metamodelu. Stereotypy mogą tylko rozszerzać semantykę (uściślać), lecz nie naruszać istniejących (predefiniowanych) elementów. Przytoczona definicja dopuszcza, by rozszerzać UML o nowe elementy. Dzięki temu podstawowe elementy modelowania prezentacji można przedstawić jako stereotypy. Zestaw tychże stereotypów odpowiadałby bibliotece systemowej. Ten sam mechanizm można wykorzystać do tworzenia bibliotek zewnętrznych. Użytkownik definiowałby własne stereotypy, które rozpowszechniane byłyby pod postacią definicji oraz transformaty konwertującej zapis do TomatoML. UML jest trudny dla początkujących użytkowników. Opisując zalety języka UML nie wolno zapominać o jego wadach. Jest to język nieznany poza środowiskiem inżynierów zajmujących się projektowaniem. Osoby niemające wiedzy informatycznej, a w szczególności wiedzy z zakresu paradygmatu obiektowego będą miały duże trudności z przyswojeniem sobie tego języka. Konieczność przyswojenia tej wiedzy przez użytkownika będzie stanowić duży problem w propagowaniu proponowanego podejścia do modelowania prezentacji multimedialnych. Z tego względu warto przygotować stereotypy dla najczęściej wykorzystywanych strumieni tak, by początkujący użytkownik mógł zbudować prostą prezentację posiadając jedynie podstawową wiedzę o języku UML. 31

32 5.4 Dlaczego XML? Przyjęto, że najodpowiedniejszym językiem zapisu prezentacji multimedialnej (diagramów opisujących jak i zapisu prezentacji dla systemu Tomato) będzie aplikacja języka XML [9.1]. Oto argumenty przemawiające za przyjętym rozwiązaniem. Model dokumentu DOM odpowiada strukturze prezentacji Model DOM (Document Object Model) [9.2] jest interfejsem, a przez to definiuje sposób dostępu do dokumentu XML. Parser ładuje cały dokument do pamięci i od tej chwili dostęp do dokumentu zapewnia DOM. DOM prezentuje dokument XML jako drzewo. W drzewie tym elementy traktowane są jako węzły drzewa. Idea ta zgodna jest z przyjętym modelem reprezantacji hierarchii strumieni w prezentacji. Dzięki temu bardzo łatwo zbudować jest drzewo strumieni. Ładowanie drzewa strumieni polega na odpowiednim przechodzeniu po drzewie reprezentującym dokument i wczytywaniu danych potrzebnych do uruchomienia poszczególnych strumieni. Drugim interfejsem umożliwiającym przetwarzanie dokumentów XML jest SAX [9.2]. SAX (Simple Api for XML) czyta plik od początku do końca i zgłasza zdarzenia napotykając elementy dokumentu XML. Interfejs ten nie znajduje zastosowania w ramach niniejszej pracy, gdyż wymaga od programisty zbudowania drzewa dokumentu, by poprawnie załadować drzewo strumieni. Jak opisano wyżej, drzewo to jest elementem interfejsu DOM, więc efektywniej będzie wykorzystać interfejs DOM. Prosta konwersja z XMI do TomatoML Aplikacja XMI jest uznanym standardem wymiany danych stosowanym do zapisu diagramów UML. Każdy liczący się producent oprogramowania wspierającego UML umożliwia zapis oraz odczyt diagramów z wykorzystaniem powyższego standardu. Technologie oparte na XML wspierają transformację pomiędzy aplikacjami XML, dlatego też naturalnym wydaje się fakt, że format danych dla systemu Tomato będzie również aplikacją XML. Najprostszym sposobem konwersji pomiędzy XMI a TomatoML jest wykorzystanie transformat XSLT [9.2]. W przypadku bardzo złożonych zależności pomiędzy diagramami, konwersję można wykonać programowo korzystając z interfejsu DOM. Interfejs ten pozwala na swobodne manipulowanie zawartością dokumentu XML. Umożliwia wstawianie nowych elementów do dokumentu, usuwanie elementów oraz edycję. Prostota składni Zapis prezentacji w TomatoML jest wynikiem translacji diagramów UML opisujących prezentację. Im prostszy będzie to format, tym łatwiej jest zachować jego poprawność syntaktyczną oraz semantyczną. Oparcie języka na XML wymusza zastosowanie bardzo prostych założeń, na których XML się opiera. Podstawowym elementem dokumentu jest znacznik. Znacznik może zawierać w sobie dane lub inne znaczniki. Dodatkowo każdemu znacznikowi możemy przypisać pewne atrybuty, które nadają mu cechy zamierzone przez projektanta języka. Każda złożona struktura zapisana przy pomocy XML musi być wyrażona przy pomocy znaczników. Powoduje to, że skomplikowane obiekty zapisywane są przez złożenie obiektów prostych. Taki sposób zapisu jest ułatwia zrozumienie intencji autora. 32

33 Dodatkową korzyścią płynącą w prostego formatu jest to, że jest łatwy do zrozumienia przez człowieka. Docelowo TomatoML jest formą zapisu prezentacji generowaną automatycznie. Należy jednak przypuszczać, że w początkowych fazach implementacji systemu prezentacje będą zapisywane jedynie w tym formacie i będą tworzone przez człowieka. Złożony format zapisu danych stałby się przyczyną błędów w zapisie, które mogłyby wprowadzić błędy w implementacji. Doświadczenie mówi, że im mniejsza złożoność, tym mniejsza podatność na błędy. Łatwa obsługa formatu Przy wyborze formatu zapisu danych warto rozważyć istniejące formaty, dla których dostępne są narzędzia ułatwiające jego obsługę. Użycie gotowych parserów, interpreterów czy analizatorów leksykalnych zdecydowanie upraszcza pracę. XML jest popularnych sposobem zapisu danych. Jego popularność z każdym dniem staje się coraz większa. Powstało bardzo wiele bezpłatnych narzędzi ułatwiających pracę z dokumentami XML. Użytkownik tego języka ma do dyspozycji parsery, walidatory oraz transformatory umożliwiające konwersję pomiędzy dokumentami XML. Narzędzie wspomagające pracę z dokumentami XML bardzo silnie wspierają walidacje. Walidacja można zapewnić na dwóch poziomach: syntaktycznym oraz semantycznym. Zgodność syntaktyczna dokumentu oznacza zapewniona jest przez poprawność ze składnią XML. Walidacja na tym poziomie dostarczona jest w każdym przypadku, gdyż brak zgodności uniemożliwia przetwarzanie dokumentu. Walidacja semantyki dokumentu nie jest niezbędna do poprawnego odczytania. Może być uzyskana przy pomocy technologii DTD lub XMLSchema. Rozszerzalność Jedynie systemy rozszerzalne mają szansę na rozwój i zaistnienie w dłuższej perspektywie czasu. Brak rozszerzalności niejednokrotnie stał się przyczyną śmierci systemów, które znane były w przeszłości. Dotyczy to również formatu zapisu danych. Zaprojektowanie formatu z uwzględnieniem możliwości zmian umożliwi rozwój. Rozszerzalność jest wpisana w definicję XML. Już sama nazwa mówi, że jest to rozszerzalny język znaczników (Extensible Markup Language). Rozszerzenie istniejącej aplikacji XML o nowe znaczniki jest bardzo proste. Aby to zrobić należy jedynie zmodyfikować dokument walidujący. Z implementacyjnego punktu widzenia ważne jest, że dodanie nowych znaczników do formatu zapisu danych nie wpływa na przetwarzanie już istniejących. Można tak zbudować aplikację odczytująca dane z dokumentu XML, że pominie ona nieznane dla siebie znaczniki. Dane zapisane w dokumencie XML można w prosty sposób konwertować pomiędzy różnymi formatami. Technologia XSLT umożliwia transformację pomiędzy formatami zapisu opartymi o XML oraz do dowolnego formatu tekstowego. Pierwszy przypadek to transformacja z XML do XML (transformacja pomiędzy aplikacjami XML), drugi to transformacja z XML do formatu tekstowego. Warto w tym miejscu nadmienić, że transformacja z dokumentu tekstowego niebędącego aplikacją XML do dokumentu XML przy pomocy XSLT nie jest możliwa. Dokument tekstowy można objąć elementem głównym, aby był poprawnym dokumentem XML, jednak oddanie semantyki dokumentu nie jest możliwe. 33

34 Duża ekspresja Siła formatu tkwi w możliwościach zapisu otaczającej nas rzeczywistości przy jego pomocy. Jeżeli dany format pozwala na zapis bardzo złożonych procesów lub stanów można powiedzieć, że ma dużą siłę ekspresji. Format służący do zapisu prezentacji w systemie obiektowym musi pozwolić na opis wymaganych przez ten system cech. Siła jego ekspresji musi być na tyle duża, by opisać obiekty, związki pomiędzy nimi oraz mechanizmy dziedziczenia. Taką siłę posiada XML. XML jest metajęzykiem, w którym należy zdefiniować własne znaczniki odpowiednio do wymagań. Muszą one być zgodne z ogólnymi regułami XML, ale ich znacznie jest całkowicie zależne od potrzeb. Dzięki temu projektant języka nie jest ograniczony składnią i siła ekspresji uzależniona jest jedynie przez jego inwencję. Specyfika XML umożliwia oddzielenie danych od sposób ich interpretacji. Jest to szczególnie istotne, gdyż w systemie Tomato kładzie się duży nacisk, by zapis definicji danych oddzielić od danych fizycznych zawartych w zewnętrznych plikach medialnych. 34

35 6 Definiowanie prezentacji Diagramy UML wybrano jako język modelowania prezentacji. Elastyczna budowa języka UML sprawia, że diagramy wchodzące w jego skład pozwalają na modelowanie rzeczywistości z wielu perspektyw. Modelowanie prezentacji jest bardzo specyficznym zadaniem, dlatego też nie jest uzasadnione wykorzystanie wszystkich diagramów. Należy zawęzić zbiór diagramów dostępnych w UML do tych diagramów, które w sposób jednoznaczny oddają specyfikę prezentacji multimedialnej. Diagramy, które wybrano to diagram klas, obiektów, interakcji oraz stanów. Dodano diagram prezentacji, który pozwoli na modelowanie kompozycji przestrzennej. Opis użycia powyższych diagramów podzielono na cztery części. Część pierwsza opisuje jak definiować nowe strumienie (aspekt statyczny prezentacji). Kolejne dwie części opisują dynamiczny aspekt prezentacji, który zawiera modelowanie drzewa prezentacji oraz definiowanie synchronizacji pomiędzy obiektami. Ostatnia część to modelowanie kompozycji przestrzennej. 6.1 Definiowanie strumieni Diagram klas modeluje statyczny aspekt prezentacji multimedialnej. Daje użytkownikowi możliwość definiowania nowych strumieni medialnych. Oto przykład definicji strumienia. Slajd obraz tekst tomato.stream. ImageStream tomato.stream.text.textstream 2 tomato.stream.audio.audiostream Rysunek 10. Definicja strumienia. Powyższa definicja tworzy nowy strumień o nazwie Slajd. Strumień ten składa się z następujących podstrumieni: tomato.stream.imagestream, tomato.stream.text.textstream oraz dwóch podstrumieni tomato.stream.audio.audiostream. Strumienie składowe w podanym przykładzie są typami wbudowanymi w system Tomato. Pełny wykaz strumieni wbudowanych znajduje się w rozdziale Załącznik A Typy wbudowane. Relacje agregacji dla dwóch strumieni, tomato.stream.imagestream oraz tomato.stream.text.textstream są nazwane. Etykieta relacji jest nazwą pola, które wiąże agregowane strumienie ze strumieniem Slajd. Pole to zostaje utworzone w strumieniu Slajd. Specyfikacja pól wiążących strumienie na poziomie diagramu klas związana jest z maszyną stanu. Każdy strumień posiada maszynę stanów, która określa deterministyczne 35

36 aspekty życia strumienia w systemie. Aby poprawnie działać, maszyna ta musi znać składowe danego strumienia. Etykieta agregacji nadaję podstrumieniowi nazwę i nazwa ta może być wykorzystana w definicji maszyny stanów. Strumienie zagregowane relacjami anonimowymi w definicji tej nie mogą być wykorzystane. Maszyna stanów połączona z definicją strumienia dołączana jest do każdej instancji strumienia. Zagadnienia związane z definiowaniem maszyny stanów znajdują się w rozdziale 6.3. Każdy strumień może agregować strumienie wbudowane lub zdefiniowane przez użytkownika. Definicje strumieni mogą znajdować się na jednym, lub wielu diagramach. Poniżej zaprezentowano przykład definicji dwóch strumieniu zamieszczonych na jednym diagramie. Wstep napispowitalny tomato.stream.text.textstream Slajd obraz tekst tomato.stream.imagestream tomato.stream.text.textstream tomato.stream.audio.audiostream 2 Rysunek 11. Definicje dwóch strumieni na tym samym diagramie. Dziedziczenie W ramach definicji strumienia można wykorzystać mechanizmy dziedziczenia. 36

37 tomato.stream.audio.audiostream dzwiek obraz StrumienPod stawowy tomato.stream.imagestream StrumienZlozony napis tomato.stream.text.textstream Rysunek 12. Dziedziczenie. Powyższy zapis oznacza, że klasa StrumienZlozony dziedziczy wszystkie składowe strumienia StrumienPodstawowy. Należy zaznaczyć, że klasa dziedzicząca przejmuje jedynie podstrumienie klasy bazowej, a nie całą hierarchię klas związaną z klasą bazową. Poniższy przykład ilustruje to zagadnienie. tomato.stream.audio.audiostream 2 Slajd tomato.stream.imagestream obraz tek st tomato.stream.text.textstream napispowitalny Wstep logo WstepZlozony Rysunek 13. Złożony przykład dziedziczenia. 37

38 Klasa WstepZlozony dziedziczy z klasy bazowej Wstep dwa podstrumienie składowe: Slajd oraz tomato.stream.text.textstream. Nie są dziedziczone struktury powiązane z tymi strumieniami. Klasa WstepZlozony otrzymuje nowe podstrumienie składowe, ale bez informacji o ich budowie. W trakcie dziedziczenia przejmowana jest również maszyna stanów. Maszyna stanów dziedziczona jest według zasady wszystko albo nic. Niemożliwe jest dziedziczenie poszczególnych elementów maszyny stanów. Zdefiniowanie nowej maszyny w klasie dziedziczącej powoduje przykrycie maszyny przejętej z klasy bazowej. Dziedziczenie maszyny stanów w myśl zasady wszystko albo nic wiązane jest z zachowaniem spójności maszyny. Mechanizm zapewniający dziedziczenie poszczególnych stanów oraz umożliwiający wiązanie stanów odziedziczonych ze stanami zdefiniowanymi w strumieniu jest możliwy do wykonania, jednak skala trudności tego problemu wydaje się zbyt duża. Trudności pojawiają się również w przypadku modelowania. Użycie nazwy stanu na modelu maszyny stanów nie oddaje jednoznacznie intencji, gdyż nie jest możliwe odróżnienie stanu odziedziczonego od stanu przykrywającego stan odziedziczony. 6.2 Drzewo prezentacji Diagram obiektów jest diagramem definiującym drzewo prezentacji. Do konstrukcji tego drzewa użytkownik może wykorzystywać strumienie wbudowane lub strumienie zdefiniowane na diagramie klas. wstep:wstep napispowitalny :tomato.stream.text.textstream value = "Serdecznie witamy!" type-of-value = content slajd:slajd obraz tekst obraz:tomato.stream. ImageStream value = file:obraz.jpg :tomato.stream.text.textstream value = type-of-value = uri dzwiek:tomato.stream. audio.audiostream value = file:bang.wav muzyka:tomato.stream. audio.audiostream value = file:tlo.mp3 tomato.synch.planardimension x = 0.5 y = 0.5 Rysunek 14. Drzewo strumieni zbudowane przy pomocy diagramu obiektów. Powyżej zdefiniowane zostało proste drzewo prezentacji. Definicje strumieni Wstep oraz Slajd znajdują się w rozdziale

39 Elementem głównym drzewa jest element wstep będący instancją strumienia Wstep. Agregacje pomiędzy obiektami tworzą powiązania pomiędzy węzłami drzewa prezentacji. Agregacja etykietowana wskazuje pole, do którego należy przypisać obiekt. Pewne obiekty znajdujące się na diagramie są obiektami anonimowymi. Sytuacja taka jest dopuszczalna jedynie w przypadku, gdy obiekt wiązany jest z konkretnym polem. Wiązanie obiektu do pola powoduje przypisanie nazwy pola jako nazwy obiektu. Działanie to uwarunkowane jest tym, że system Tomato odwołując się do obiektu, wyszukuje go po nazwie. Maszyna stanów skojarzona z definicją strumienia nie zna nazw obiektów, zna jedynie nazwy pól. W konsekwencji, mechanizmy przypisania obiektów do pól dbają, by nazwy pól były identyczne z nazwami obiektów. W przypadku nadania obiektowi innej nazwy, maszyna odwoływałyby się do nieistniejących obiektów. Obiekty nieprzypisane bezpośrednio do pola, muszą mieć nadaną unikalna nazwę w obrębie swoich braci, a więc obiektów mającego tego samego ojca, co one. Do nadawania obiektom wartości służą dwa pola: value oraz type-of-value. Są to pola predefiniowane dla każdego strumienia wbudowanego. Pole value zawiera wartość inicjującą dany obiekt, a pole type-of-value określa, w jaki sposób interpretować wartość inicjującą. Pole type-of-value może przybrać jedną spośród następujących wartości: content lub uri. Wartość content oznacza, że obiekt należy zainicjować wartością wskazaną w polu value. Wartość uri oznacza, że wartość pola value stanowi adres URI wskazujący wartość inicjującą. Adres ten może wskazywać plik lokalny lub umieszczony w sieci Internet. Pole type-of-value ma szczególne znacznie dla strumieni tekstowych, gdyż nie można rozpoznać, czy value zawiera tekst czy adres pliku, w którym tekst się znajduje. Pole type-of-value nie jest polem obligatoryjnym. Każdy obiekt predefiniowany w przypadku braku tego wartości tego pola, domyślnie interpretuje wartość pola value. Strumienie tekstowe domyślnie przyjmują, że pole type-of-value ma wartość content, strumienie zawierające obrazy, pliki dźwiękowe lub video, że ma wartość uri. Każdy strumień odtwarzany jest w pewnej przestrzeni wirtualnej. Przestrzeń wirtualna określa wielkość prezentowanych obrazów (wymiar przestrzenny), prędkość odtwarzania strumienia (wymiar czasowy) lub głośność prezentacji (wymiar dźwięku). Definiowanie przestrzeni polega na dołączeniu do strumienia odpowiedniego obiektu z zainicjowanymi polami. Wykaz dostępnych obiektów definiujących przestrzenie wirtualne wraz z opisem parametrów znajduje się dziale Załącznik B Typy wymiarów. Dla każdego obiektu znajdującego się na omawianym diagramie można zdefiniować indywidualną dla tego obiektu maszynę stanów. Diagram obiektów, oprócz deklaracji drzewa strumieni, może posłużyć do definiowania synchronizacji. Zagadnienie to opisuje rozdział Dynamiczne powiązania pomiędzy obiektami Zdefiniowanie typów strumieni oraz drzewa prezentacji pozwala na budowę szkieletu prezentacji. W powyższy sposób tworzone są obiekty biorące udział w prezentacji oraz przyporządkowywane są do poszczególnych węzłów drzewa zgodnie z logika prezentacji. Kolejnym krokiem w budowie prezentacji jest definiowanie powiązań pomiędzy obiektami pozwalającymi na interakcję pomiędzy nimi oraz na interakcje z użytkownikiem. Służy do tego diagram stanów (aktywności) oraz diagram interakcji. 39

40 Diagram stanów Przeznaczeniem diagramu stanów jest modelowanie deterministycznych zachowań strumienia. Diagram stanów powiązany ze strumieniem definiuje maszynę stanów dla wszystkich instancji danego strumienia. Powiązanie diagramu z instancją powoduje przykrycie w tej instancji diagramu zdefiniowanego w strumieniu. Należy zwrócić uwagę, że niektóre stany mają charakter aktywności. Aby zmniejszyć liczbę diagramów niezbędnych do zdefiniowania prezentacji zdecydowano się połączyć te dwa diagramy. W ramach niniejszej pracy, diagram stanów zawiera zarówno stany jak i aktywności. W celu zobrazowania zastosowania diagramu stanów rozważmy następujący przykład. W powyższych rozdziałach została zdefiniowana prezentacja zawierająca strumień slajd. Celem dalszych działań, będzie zdefiniowanie prezentacji w taki sposób, by składowe obraz i napis wyświetlane byłby przez cały czas trwania instancji strumienia slajd, a składowa muzyka odtwarzany byłby po wciśnięciu klawisz myszy. Zakończenie odtwarzania składowej muzyka ma nastąpić po ponownym wciśnięciu klawisza myszy. Składowa muzyka nie została przypisana jawnie w definicji strumienia. Aby się do niej odwołać, diagram ten należy powiązać z instancją strumienia Slajd, a więc z obiektem slajd. <<notify>> MOUSE_BUTTON_UP wyswietlanieslajdu entry/ ^tekst.fire(begin) entry/ ^obraz.fire(begin) odtwarzaniemuzyki entry/ ^muzyka.fire(begin) exit/ ^muzyka.fire(end) <<notify>> MOUSE_BUTTON_UP Rysunek 15. Diagram stanów dla strumienia slajd. Interpretacja powyższego diagramu jest następująca. Obiekt slajd może znajdować się w jednym z dwóch stanów: wyswietlanieslajdu lub odtwarzaniemuzyki. Zaraz po uruchomieniu obiektu slajd, zgłoszone zostaną wszystkie punkty synchronizacyjne zdefiniowane w części entry. W powyższym przykładzie spowoduje to uruchomienie strumieni tekst i obraz. Dzięki temu zostaną one wyświetlone na ekranie. Aktywność ta będzie trwała, aż do chwili wciśnięcia przez użytkownika klawisza myszy. System Tomato czuwający nad wykonaniem maszyny stanów zmieni stan aktywny na stan odtwarzeniemuzyki. W czasie zmiany stanu nastąpi zgłoszenie wszystkich punków synchronizacyjnych zdefiniowanych w części exit w opuszczanym stanie (w powyższym przykładzie brak takich definicji) oraz wszystkich punków zdefiniowanych w części entry stanu docelowego. Konsekwencją tego będzie rozpoczęcie odtwarzania muzyki. Kolejne wciśnięcie klawisza myszy spowoduje zakończenie odtwarzania muzyki (cześć exit zawiera zgłoszenie punku synchronizacyjnego end). Uogólnijmy powyższy przykład wyprowadzając reguły dla maszyn stanów. Każdy obiekt prezentacji posiada maszynę stanów. Maszyna ta może być zdefiniowana dla 40

41 wszystkich obiektów danego strumienia (maszyna skojarzona z definicją strumienia) lub osobno dla każdej instancji (maszyna skojarzona z instancją). Skojarzenie maszyny stanów z definicją oznacza, że każdy obiekt otrzyma kopię maszyny wykonaną według wzorca podanego w definicji klasy. Brak definicji maszyny stanów dla obiektu powoduje wygenerowania domyślnej maszyny o następującej postaci. Stan Rysunek 16. Domyślna maszyna stanów. Przejście pomiędzy stanami wykonywane jest na skutek zgłoszenia punktu synchronizacyjnego. Punktu te mogą być generowane przez system (np. zakończenie odtwarzania strumienia) lub przez użytkownika (np. wciśnięcie klawisza myszy, klawiatury). Zgłoszenie zdarzenia oznaczane jest przez stereotyp <<notify>>. Rzutowaniem zdarzeń na punkty synchronizacyjne zajmuje się system Tomato. Maszyna stanów może korzystać z punktów synchronizacyjnych zgłaszanych przez dzieci obiektu, w którym się znajduje. Każdy stan może zawierać inna maszynę stanów lub diagram interakcji. W związku z faktem zespolenia diagramu stanów i diagramu aktywności na użytek tej pracy, możliwe jest zdefiniowane stanów równoległych. odtwarzeniedzwieku entry/ ^dzwiek.fire(begin) <<notify>> dzwiek.end odtwarzenievideo entry/ ^video.fire(begin) <<notify>> video.end <<confinuous>> Rysunek 17. Stany równoległe (synchronizacja ciągła). Rysunek wykonany na podstawie pracy[9.1] Kreski poziome na powyższym diagramie oznaczają punkty rozdzielenia sterowania lub punkty spotkań. Powyższy diagram oznacza, że obiekty dźwięk oraz video będą odtwarzanie równocześnie (zapewnia to użycie stereotypu <<continuous>>). Obiekt, który zakończy się wcześniej będzie czekał na zakończenie odtwarzania drugiego obiektu, a następnie maszyna przejdzie do stanu końcowego. Czytelnika zainteresowanego szczegółowych opisem mechanizmów działania maszyn stanów działających w systemie Tomato zachęcam do zapoznania się z pracą [9.1] 41

42 Diagram interakcji W poprzednim rozdziale zdefiniowano prosty przykład synchronizacji zdarzeń. Rozszerzmy naszą prezentacje. Po pierwsze, komunikat powitalny powinien pojawić się 2 sekundy po wyświetleniu tła slajdu. Po drugie, kliknięciu myszy powinien towarzyszyć efekt dźwiękowy (w tym celu zostanie wykorzystany obiekt dźwięk). Aby zrealizować powyższe zadania, należy posłużyć się diagramami interakcji. Jednak zanim zostaną wyspecyfikowane diagramy interakcji, należy zmodyfikować diagram stanów tak, by odpowiadał bieżącym potrzebom. przygotowanieslajdu <<notify>> Dalej stanpodstawowy <<notify>> MOUSE_BUTTON_UP <<notify>> dzwiek.end odtwarzaniedzwieku odtwarzaniedzwieku <<notify>> dzwiek.end <<notify>> MOUSE_BUTTON_UP odtwarzaniemuzyki entry/ ^muzyka.fire(begin) exit/ ^muzyka.fire(end) Rysunek 18. Maszyna stanów dla obiektu slajd po dodaniu fazy przygotowania tła slajdu. Działanie maszyny stanów jest następujące. Po uruchomieniu obiektu slajd maszyna stanów przechodzi do stanu przygotowującego slajd. Przygotowanie to polega na wyświetleniu tła, odczekaniu 2s a następnie wyświetleniu tekstu powitalnego. Zadanie to zostanie wyspecyfikowane na diagramie interakcji. Po tych czynnościach prezentacja przejdzie do stanu stanpodstawowy i będzie oczekiwała na wciśnięcie klawisza myszki. Wciśnięcie klawisza powoduje przejście do stanu odtwarzania dźwięku i po zakończeniu odtwarzanie rozpocznie się odtwarzanie muzyki. Ponowne wciśnięcie klawisza myszy powoduje przejście do stanu podstawowego wraz z odtworzeniem efektu dźwiękowego. Pierwszym przykładem diagramu interakcji będzie diagram modelujący przygotowanie slajdu. 42

43 timer:timer obraz : tomato. stream.imagestream tekst:tomato.stream.text.textstream [s] 0 2 <<fire>> begin <<fire>> begin 4 <<notify>> Dalej Rysunek 19. Diagram interakcji dla stanu przygotowanieslajdu. Diagram interakcji posiada predefiniowany obiekt timer, który wprowadza jawną oś czasu. Jednostką czasu jest sekunda. Interakcje z pomiędzy obiektami opierają się na zgłoszeniu odpowiednich punktów synchronizacyjnych. Powyższy przykład obrazuje sytuację, w której zgłaszane są dwa punktu synchronizacyjne. Pierwszy w chwili 0, drugi 2 sekundy później. Zgłoszenie, a dokładniej mówiąc wymuszenie punktu zaznaczone jest przy pomocy stereotypu <<fire>>. Stereotyp <<notify>> powoduje zgłoszenie lub wygenerowanie punktu, który będzie można wykorzystać w maszynie stanów. Wygenerowany w ten sposób punkt Dalej powoduje przejście do kolejnego stanu. timer:timer [s] 0 <<notify>> begin dzwiek : tomato.stream. audio.audiostream Rysunek 20. Wywołanie punku w części entry maszyny stanów wyrażone jako diagram interakcji. Warto zwrócić uwagę na fakt, że wywołanie punktu synchronizacyjnego w części entry stanu maszyny stanów można zamodelować również na diagramie interakcji. Dodanie powyższego diagramu do stanów odtwarzaniedzwieku uzupełnia zaprezentowany model i pozwala na odtworzenie efektu dźwiękowego w czasie naciśnięcia klawisza myszy. 43

44 Diagram obiektów Do definiowanie zależności dynamicznych pomiędzy obiektami może posłużyć także diagram obiektów. Oto przykład. slajd:slajd obraz tekst obraz:tomato.stream.imagestream value = file:obraz.jpg :tomato.stream.text.textstream value = "Serdecznie witamy!" type-of-value = content :tomato.synch.timesynchpoint name = begin :tomato.synch.timesynchpoint name = begin <<first>> <<second>> :tomato.synch.synchtypes. TimeSychronization delay = 2s Rysunek 21. Modelowanie synchronizacji na diagramie obiektów. Zaprezentowany powyżej diagram modeluje fragment specyfikacji podanej w poprzednim rozdziale. Obiekt napis zostanie wyświetlony 2 sekundy po uruchomieniu obrazu. Wyspecyfikowanie synchronizacji polega na zdefiniowaniu dwóch punktów synchronizacyjnych, przyporządkowanie ich do odpowiednich strumieni oraz powiązaniu ich z obiektem definiujących rodzaj synchronizacji. Wykaz dostępnych punktów synchronizacyjnych wbudowanych w system Tomato znajduje się z dziale Załącznik C Klasy synchronizacji. Każdy punkt synchronizacyjny musi posiadać nazwę. Nazwy begin oraz end są nazwami zastrzeżonymi i oznaczają kolejno początek oraz koniec strumienia. Nazwa punktu powinna być unikalna w obrębie strumienia, do którego dany punkt należy. Jeżeli nazwa została wcześniej wykorzystana, system powiąże definiowaną synchronizację z istniejącym punktem. Kolejność punktów w synchronizacji jest istotna. Z tego względu relacja z obiektem definiującym rodzaj synchronizacji musi posiadać stereotyp <<first>> lub <<second>>. Punkt połączony relacją <<first>> jest punktem wyzwalającym synchronizacje. Wyzwolenie synchronizacji następuje w momencie zgłoszenia tego punktu. 44

45 Każda synchronizacja posiada pewne parametry, które są niezbędne do jej prawidłowego działania. Dokładny wykaz parametrów dla każdej synchronizacji obsługiwanej przez system Tomato znajduje się w dziale Załącznik C Klasy synchronizacji. Warto zauważyć, że powyższy sposób definiowania interakcji pomiędzy obiektami jest niewygodny. Przy dużej liczbie interakcji, diagram obiektów stanie się nieczytelny. Taką samą funkcjonalność można uzyskać przy pomocy diagramu stanów lub diagramu interakcji w łatwiejszy sposób. Ponadto definiowanie interakcji przy pomocy diagramu obiektów wymaga od użytkownika znajomości typów synchronizacyjnych oraz parametrów wymaganych przez te typy. Wybierając diagram stanów lub interakcji nie trzeba znać nazw parametrów, gdyż system zainicjuje je na podstawie kontekstu diagramu. Ten sposób modelowania nie jest zalecany. Skrypty Każde wywołanie skryptu system Tomato interpretuje jako wywołanie akcji. W związku z tym w czasie definiowania obiektu zawierającego kod skryptu należy posłużyć się akcjami. Definiowanie skryptu jest bardzo zbliżone do definiowania obiektu zawierającego napis. Aby to zrobić, należy stworzyć instancję klasy tomato.script.action. Sposób inicjowania tego obiektu jest zgodny ze sposobami inicjacji obiektów opisanymi w rozdziale 6.2. Aby wywołać skrypt należy utworzyć punkt synchronizacyjny o nazwie begin oraz typie tomato.synch.actionsynchpoint oraz połączyć go relacją z odpowiednim obiektem zawierającym skrypt. Następnie należy utworzyć synchronizację wywołującą utworzony punkt synchronizacyjny. Poniżej zamieszczono dwa przykłady wywołania skryptu, Przykład pierwszy to definicja wywołania skryptu wyrażona diagramem obiektów, przykład drugi to ta sama definicja, ale wyrażona za pomocą diagramu interakcji. Nic nie stoi na przeszkodzie, aby uruchomić skrypt z maszyny stanów. Aby to zrobić, należy zgłosić związany z nim punkt synchronizacyjny. obraz:tomato.stream.imagestream value = file:obraz.jpg :tomato.synch.timesynchpoint name = begin :tomato.synch. ActionSynchPoint name = begin akcja:tomato.script.action value = file:skrypt.js type-of-value = uri <<first>> <<second>> :tomato.synch.synchtypes. TimeSychronization delay = 2s Rysunek 22. Modelowanie wywołania skryptu za pomocą diagramu obiektów. 45

46 [s] timer : Timer 0 2 <<fire>> begin obraz : tomato. stream.imagestream <<fire>> begin akcja : tomato. script.action Rysunek 23. Modelowanie wywołania skryptu za pomocą diagramu interakcji. 6.4 Modelowanie kompozycji prezentacji Ostatnim prezentowanym diagramem jest diagram prezentacji. W trakcie opracowywania tego diagramu wzorowano się na diagramie prezentacji zawartym w systemie OMMMA. Na potrzeby systemu Tomato diagram ten zostanie nieznacznie zmodyfikowany. Podstawową rolą diagramu prezentacji jest modelowanie kompozycji przestrzennej prezentacji. Specyfikowanie prezentacji przy pomocy UML nie jest zadaniem trywialnym. W związku tym w systemie Tomato kładzie się duży nacisk na to, by modelowanie kompozycji prezentacji było w dużym stopniu intuicyjne. W celu zapewni się użytkownikowi pracę w trybie WYSIWYG ( What You See Is What You Get ). Diagram prezentacji służyć ma dwóm celom. Pierwszy z nich to specyfikacja przestrzennych synchronizacji pomiędzy obiektami, drugi to wizualizacja poszczególnych strumieniu złożonych oraz ich podstrumieni w danej chwili czasu. Obok diagramu prezentacji wyświetlone będą diagramy interakcji opisujące modelowany węzeł drzewa prezentacji. Specyfikacja synchronizacji przestrzennych polegać będzie na wskazaniu na diagramie interakcji czasu, a następnie zdefiniowaniu połączenia pomiędzy obiektami wizualnymi na diagramie prezentacji. Dzięki takiemu podejściu, możliwe jest również wyspecyfikowanie animacji. W tym celu należy wskazać związek pomiędzy obiektami przestrzennymi w pierwszej oraz ostatniej jednostce czasu animacji. System Tomato automatycznie wygeneruje położenia pośrednie. 46

47 Rysunek 24. Diagram prezentacji systemu OMMMA. W celu zapewnienia wygody pracy, każdy wizualizowany obiekt zawiera się w bryłach otaczających widocznych na rysunku jako czerwone prostokąty. Celem tego działania jest ułatwienie manipulowania obiektami oraz zwiększenie czytelności obiektów o nieregularnych kształtach. Obiekty, których wizualizacja nie odbywa się na ekranie (np. strumienie audio) powiązane będą z odpowiadającymi im metaforami. System OMMMA przyjmuje, że początek obiektu znajduje się w prawym górnych narożniku, co zostało zaznaczone czarną kropką. System Tomato początek ten umiejscawia w lewym górnym rogu i wiąże go z punktem synchronizacyjnym begin strumienia. Diagram prezentacji umożliwia definiowanie przestrzeni wirtualnych wpływających na prezentowane obiekty. Od przestrzeni wirtualnej zależy wielkość oraz proporcje obiektu, szybkość odtwarzania czy głośność. 47

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych dr inż. Adam Iwaniak Infrastruktura Danych Przestrzennych w Polsce i Europie Seminarium, AR Wrocław

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

Bardziej szczegółowo

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Dział Zagadnienia Wymagania podstawowe Wymagania ponadpodstawowe Arkusz kalkulacyjny (Microsoft Excel i OpenOffice) Uruchomienie

Bardziej szczegółowo

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,

Bardziej szczegółowo

3 Programy do tworzenia

3 Programy do tworzenia 3 Programy do tworzenia prezentacji PowerPoint 2007 3.1. Tworzenie prezentacji w programie PowerPoint 2007 Tworzenie prezentacji w programie PowerPoint 2007 jest podobne jak w programie PowerPoint 2003.

Bardziej szczegółowo

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury Obsługa za pomocą klawiatury Różnego typu interfejsy wykorzystują różne metody reagowania i wydawania poleceń przez użytkownika. W środowisku graficznym najpopularniejsza jest niewątpliwie mysz i inne

Bardziej szczegółowo

Spis treści. Księgarnia PWN: Roland Zimek - SWiSH Max2 i SWiSH Max3. Wprowadzenie... 9

Spis treści. Księgarnia PWN: Roland Zimek - SWiSH Max2 i SWiSH Max3. Wprowadzenie... 9 Księgarnia PWN: Roland Zimek - SWiSH Max2 i SWiSH Max3 Spis treści Wprowadzenie... 9 1. Opis programu i instalacja... 13 1.1. Nowości w SWiSH Max2... 13 1.1.1. Wygląd okna programu... 13 1.1.2. Język skryptowy...

Bardziej szczegółowo

GML w praktyce geodezyjnej

GML w praktyce geodezyjnej GML w praktyce geodezyjnej Adam Iwaniak Kon-Dor s.c. Konferencja GML w praktyce, 12 kwietnia 2013, Warszawa SWING Rok 1995, standard de jure Wymiany danych pomiędzy bazami danych systemów informatycznych

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

16) Wprowadzenie do raportowania Rave

16) Wprowadzenie do raportowania Rave 16) Wprowadzenie do raportowania Rave Tematyka rozdziału: Przegląd wszystkich komponentów Rave Tworzenie nowego raportu przy użyciu formatki w środowisku Delphi Aktywacja środowiska Report Authoring Visual

Bardziej szczegółowo

Osadzenie pliku dźwiękowego na stronie www

Osadzenie pliku dźwiękowego na stronie www Osadzenie pliku dźwiękowego na stronie www gdzie jako "ścieżka dostępu do pliku" należy podać lokalizację

Bardziej szczegółowo

Podręcznik użytkownika programu. Ceremonia 3.1

Podręcznik użytkownika programu. Ceremonia 3.1 Podręcznik użytkownika programu Ceremonia 3.1 1 Spis treści O programie...3 Główne okno programu...4 Edytor pieśni...7 Okno ustawień programu...8 Edycja kategorii pieśni...9 Edytor schematów slajdów...10

Bardziej szczegółowo

Alicja Marszałek Różne rodzaje baz danych

Alicja Marszałek Różne rodzaje baz danych Alicja Marszałek Różne rodzaje baz danych Rodzaje baz danych Bazy danych można podzielić wg struktur organizacji danych, których używają. Można podzielić je na: Bazy proste Bazy złożone Bazy proste Bazy

Bardziej szczegółowo

Michał Adamczyk. Język UML

Michał Adamczyk. Język UML Michał Adamczyk Język UML UML I. Czym jest UML Po co UML II.Narzędzia obsługujące UML, edytory UML III.Rodzaje diagramów UML wraz z przykładami Zastosowanie diagramu Podstawowe elementy diagramu Przykładowy

Bardziej szczegółowo

Procesowa specyfikacja systemów IT

Procesowa specyfikacja systemów IT Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

Podstawy technologii cyfrowej i komputerów

Podstawy technologii cyfrowej i komputerów BESKIDZKIE TOWARZYSTWO EDUKACYJNE Podstawy technologii cyfrowej i komputerów Budowa komputerów cz. 2 systemy operacyjne mgr inż. Radosław Wylon 2010 1 Spis treści: Rozdział I 3 1. Systemy operacyjne 3

Bardziej szczegółowo

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 1 Wprowadzenie do narzędzia CASE

Bardziej szczegółowo

Microsoft PowerPoint 2003 efektywne tworzenie i prezentacji multimedialnych

Microsoft PowerPoint 2003 efektywne tworzenie i prezentacji multimedialnych Microsoft PowerPoint 2003 efektywne tworzenie i prezentacji multimedialnych Projekt: Wdrożenie strategii szkoleniowej prowadzony przez KancelarięPrezesa Rady Ministrów Projekt współfinansowany przez Unię

Bardziej szczegółowo

Model semistrukturalny

Model semistrukturalny Model semistrukturalny standaryzacja danych z różnych źródeł realizacja złożonej struktury zależności, wielokrotne zagnieżdżania zobrazowane przez grafy skierowane model samoopisujący się wielkości i typy

Bardziej szczegółowo

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 013/01 Nr programu: 31[01]/T,SP/MENIS/00.06.1 Okres kształcenia: łącznie ok. 170 godz. lekcyjne Moduł Bok wprowadzający 1. Zapoznanie z programem nauczania i

Bardziej szczegółowo

UML w Visual Studio. Michał Ciećwierz

UML w Visual Studio. Michał Ciećwierz UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować

Bardziej szczegółowo

Analiza i projektowanie aplikacji Java

Analiza i projektowanie aplikacji Java Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

4.2. Ustawienia programu

4.2. Ustawienia programu 4.2. Ustawienia programu Zmiana wielkości dokumentu Pracując w programie MS Excel 2010 niejednokrotnie doświadczysz sytuacji, w której otwarty przez Ciebie arkusz nie będzie mieścił się na ekranie monitora.

Bardziej szczegółowo

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80

Bardziej szczegółowo

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów Aplikacje internetowe KL. III Rok szkolny: 011/01 Nr programu: 31[01]/T,SP/MENIS/004.06.14 Okres kształcenia: łącznie ok. 180 godz. lekcyjne Wojciech Borzyszkowski Zenon Kreft Moduł Bok wprowadzający Podstawy

Bardziej szczegółowo

Sieciowe Technologie Mobilne. Laboratorium 4

Sieciowe Technologie Mobilne. Laboratorium 4 Sieciowe Technologie Mobilne Laboratorium 4 Tworzenie wieloplatformowych aplikacji mobilnych przy użyciu biblioteki PhoneGap. Łukasz Kamiński Laboratorium 4 Urozmaicone zostaną animacje potworów, aby odpowiadały

Bardziej szczegółowo

Podręcznik użytkownika Obieg dokumentów

Podręcznik użytkownika Obieg dokumentów Podręcznik użytkownika Obieg dokumentów Opracowany na potrzeby wdrożenia dla Akademii Wychowania Fizycznego im. Eugeniusza Piaseckiego w Poznaniu W ramach realizacji projektu: Uczelnia jutra wdrożenie

Bardziej szczegółowo

Przedmiotowy system oceniania z informatyki

Przedmiotowy system oceniania z informatyki Przedmiotowy system oceniania z informatyki Przedmiotowy system oceniania został skonstruowany w oparciu o następujące dokumenty: Rozporządzenie MEN z dnia 7 września 2004 roku w sprawie zasad oceniania,

Bardziej szczegółowo

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji: Technologia wykonania projektu: HTML5 Javascript: o jquery (1.9.1), o CreateJS (0.6.1): EaselJS, TweenJS, PreloadJS. Części funkcjonalne projektu: Strona internetowa pliki strony internetowej zlokalizowane

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P).

PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II. Uczeń umie: Świadomie stosować się do zasad regulaminów (P). PLAN REALIZACJI MATERIAŁU NAUCZANIA Z INFORMATYKI II DZIAŁ I: KOMPUTER W ŻYCIU CZŁOWIEKA. 1. Lekcja organizacyjna. Zapoznanie uczniów z wymaganiami edukacyjnymi i PSP. 2. Przykłady zastosowań komputerów

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Aplikacje webowe wspomagające działalność przedsiębiorstwa na przykładzie przychodni stomatologicznej

Aplikacje webowe wspomagające działalność przedsiębiorstwa na przykładzie przychodni stomatologicznej Aplikacje webowe wspomagające działalność przedsiębiorstwa na przykładzie przychodni stomatologicznej Małgorzata Barańska Wydział Informatyki i Zarządzania, Politechnika Wrocławska Beata Laszkiewicz Wydział

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 4

Podstawy programowania III WYKŁAD 4 Podstawy programowania III WYKŁAD 4 Jan Kazimirski 1 Podstawy UML-a 2 UML UML Unified Modeling Language formalny język modelowania systemu informatycznego. Aktualna wersja 2.3 Stosuje paradygmat obiektowy.

Bardziej szczegółowo

Wykład 1 Inżynieria Oprogramowania

Wykład 1 Inżynieria Oprogramowania Wykład 1 Inżynieria Oprogramowania Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowaniaiteracyjno-rozwojowy cykl oprogramowania Autor: Zofia Kruczkiewicz System Informacyjny =Techniczny SI

Bardziej szczegółowo

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

Prezentacja multimedialna MS PowerPoint 2010 (podstawy) Prezentacja multimedialna MS PowerPoint 2010 (podstawy) Cz. 2. Wstawianie obiektów do slajdu Do slajdów w naszej prezentacji możemy wstawić różne obiekty (obraz, dźwięk, multimedia, elementy ozdobne),

Bardziej szczegółowo

Centrum Edukacyjne Żelazna www.cezelazna.pl Ul. Żelazna 87 pok. 211 biuro@cezelazna.pl 00-879 Warszawa

Centrum Edukacyjne Żelazna www.cezelazna.pl Ul. Żelazna 87 pok. 211 biuro@cezelazna.pl 00-879 Warszawa Centrum Edukacyjne Żelazna Ul. Żelazna 87 pok. 211 00-879 Warszawa www.cezelazna.pl biuro@cezelazna.pl 1. Preliminaria planowanie prezentacji podstawowe funkcje 2. Grafika osadzanie obiektów teksty, tabele,

Bardziej szczegółowo

Praca z widokami i nawigacja w pokazie

Praca z widokami i nawigacja w pokazie Poniższe ćwiczenie ma na celu zapoznanie z ogólnymi zasadami pracy w środowisku MS PowerPoint oraz najczęściej wykorzystywanymi mechanizmami służącymi do dodawania i edycji slajdów. Należy pobrać ze wskazanej

Bardziej szczegółowo

OLIMPIADA INFORMATYCZNA 2010 ROK ETAP SZKOLNY

OLIMPIADA INFORMATYCZNA 2010 ROK ETAP SZKOLNY KOD UCZNIA OLIMPIADA INFORMATYCZNA 2010 ROK ETAP SZKOLNY * Postaw znak x w okienku obok właściwej odpowiedzi. 1. Przybornik w programie Paint to element programu, w którym znajdują się: kolory przyciski

Bardziej szczegółowo

Opracował: Jan Front

Opracował: Jan Front Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny

Bardziej szczegółowo

1. Przypisy, indeks i spisy.

1. Przypisy, indeks i spisy. 1. Przypisy, indeks i spisy. (Wstaw Odwołanie Przypis dolny - ) (Wstaw Odwołanie Indeks i spisy - ) Przypisy dolne i końcowe w drukowanych dokumentach umożliwiają umieszczanie w dokumencie objaśnień, komentarzy

Bardziej szczegółowo

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu. AGH, EAIE, Informatyka Winda - tutorial Systemy czasu rzeczywistego Mirosław Jedynak, Adam Łączyński Spis treści 1 Wstęp... 2 2 Przypadki użycia (Use Case)... 2 3 Diagramy modelu (Object Model Diagram)...

Bardziej szczegółowo

Spis treúci. 1. Wprowadzenie... 13

Spis treúci. 1. Wprowadzenie... 13 Księgarnia PWN: W. Dąbrowski, A. Stasiak, M. Wolski - Modelowanie systemów informatycznych w języku UML 2.1 Spis treúci 1. Wprowadzenie... 13 2. Modelowanie cele i metody... 15 2.1. Przegląd rozdziału...

Bardziej szczegółowo

PROGRAM NAUCZANIA DLA I I II KLASY GIMNAZJUM

PROGRAM NAUCZANIA DLA I I II KLASY GIMNAZJUM PROGRAM NAUCZANIA DLA I I II KLASY GIMNAZJUM Proporcje podziału godzin na poszczególne bloki Blok Liczba godzin I rok II rok Na dobry początek 7 Internet i gromadzenie danych 6 2 Multimedia 5 3 Edytory

Bardziej szczegółowo

Proporcje podziału godzin na poszczególne bloki. Tematyka lekcji. Rok I. Liczba godzin. Blok

Proporcje podziału godzin na poszczególne bloki. Tematyka lekcji. Rok I. Liczba godzin. Blok Proporcje podziału godzin na poszczególne bloki Blok Liczba godzin I rok II rok Na dobry początek 7 Internet i gromadzenie danych 6 2 Multimedia 5 3 Edytory tekstu i grafiki 6 4 Arkusz kalkulacyjny 7 4

Bardziej szczegółowo

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1.

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1. Widżety KIWIPortal tworzenie umieszczanie na stronach internetowych opcje zaawansowane Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1.3 Strona 1 z 17 1 SPIS TREŚCI 2 Metody osadzania widżetów... 3 2.1

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Paweł Kurzawa, Delfina Kongo

Paweł Kurzawa, Delfina Kongo Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management

Bardziej szczegółowo

HTML5 Nowe znaczniki header nav article section aside footer

HTML5 Nowe znaczniki header nav article section aside footer Specyfikacja HTML5 wprowadza nowe znaczniki pozwalające w łatwy i intuicyjny sposób budować szkielet strony, który przez zmniejszenie ilości kodu jest czytelniejszy i łatwiejszy w utrzymaniu, pozwala poza

Bardziej szczegółowo

Wprowadzenie do UML, przykład użycia kolizja

Wprowadzenie do UML, przykład użycia kolizja Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2012 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

Rozdział 4. Multimedia

Rozdział 4. Multimedia Rozdział 4. Multimedia Ćwiczenia zawarte w tym rozdziale pozwolą na wykorzystanie ogromnych moŝliwości multimedialnych systemu Windows XP. Większość narzędzi multimedialnych w Windows XP pochodzi z systemu

Bardziej szczegółowo

MODUŁ AM6: GRAFIKA MENEDŻERSKA

MODUŁ AM6: GRAFIKA MENEDŻERSKA ECDL ADVANCED ECDL-A EUROPEJSKI CERTYFIKAT UMIEJĘTNOŚCI KOMPUTEROWYCH POZIOM ZAAWANSOWANY MODUŁ AM6: GRAFIKA MENEDŻERSKA I PREZENTACYJNA Syllabus v. 1.0 Oficjalna wersja dokumentu jest dostępna w serwisie

Bardziej szczegółowo

Rysunek 1: Przykłady graficznej prezentacji klas.

Rysunek 1: Przykłady graficznej prezentacji klas. 4 DIAGRAMY KLAS. 4 Diagramy klas. 4.1 Wprowadzenie. Diagram klas - w ujednoliconym języku modelowania jest to statyczny diagram strukturalny, przedstawiający strukturę systemu w modelach obiektowych przez

Bardziej szczegółowo

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie informatycznej. Zadaniem systemu jest rejestracja i przechowywanie

Bardziej szczegółowo

Tomasz Grześ. Systemy zarządzania treścią

Tomasz Grześ. Systemy zarządzania treścią Tomasz Grześ Systemy zarządzania treścią Co to jest CMS? CMS (ang. Content Management System System Zarządzania Treścią) CMS definicje TREŚĆ Dowolny rodzaj informacji cyfrowej. Może to być np. tekst, obraz,

Bardziej szczegółowo

Tematy lekcji zajęć komputerowych klasa 5b grupa 1 i grupa 2

Tematy lekcji zajęć komputerowych klasa 5b grupa 1 i grupa 2 Tematy lekcji zajęć komputerowych klasa 5b grupa 1 i grupa 2 1 Program nauczania. Przedmiotowy system oceniania. Regulamin pracowni komputerowej. - 7 punktów regulaminu potrafi powiedzieć, czego się będzie

Bardziej szczegółowo

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

koniec punkt zatrzymania przepływów sterowania na diagramie czynności Diagramy czynności opisują dynamikę systemu, graficzne przedstawienie uszeregowania działań obrazuje strumień wykonywanych czynności z ich pomocą modeluje się: - scenariusze przypadków użycia, - procesy

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH Autorzy scenariusza:

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

Prezentacja multimedialna MS PowerPoint 2010 (podstawy) Prezentacja multimedialna MS PowerPoint 2010 (podstawy) Cz. 4. Animacje, przejścia, pokaz slajdów Dzięki animacjom nasza prezentacja może stać się bardziej dynamiczna, a informacje, które chcemy przekazać,

Bardziej szczegółowo

Wymagania edukacyjne: Statyczne witryny internetowe (na podstawie programu nr 351203)

Wymagania edukacyjne: Statyczne witryny internetowe (na podstawie programu nr 351203) Wymagania edukacyjne: Statyczne witryny internetowe (na podstawie programu nr 351203) Technikum - kl. 3 Td, semestr 5 i 6 Ocena niedostateczna dopuszczająca Wymagania edukacyjne wobec ucznia: Uczeń nie

Bardziej szczegółowo

Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody.

Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody. Załącznik nr 1 Specyfikacja przedmiotu zamówienia Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody. Słowniczek pojęć Badanie

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty 1. Co to jest funkcja? Funkcja jest oddzielnym blokiem kodu, który może być wielokrotnie wykonywany w danym programie, poprzez jej wielokrotne wywoływanie. Do funkcji przekazujemy przeważnie jakieś argumenty,

Bardziej szczegółowo

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Notka biograficzna Dr inż. Mariusz Trzaska jest adiunktem w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych, gdzie zajmuje się

Bardziej szczegółowo

Dodanie nowej formy do projektu polega na:

Dodanie nowej formy do projektu polega na: 7 Tworzenie formy Forma jest podstawowym elementem dla tworzenia interfejsu użytkownika aplikacji systemu Windows. Umożliwia uruchomienie aplikacji, oraz komunikację z użytkownikiem aplikacji. W trakcie

Bardziej szczegółowo

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2 Modelowanie i analiza systemów informatycznych 1. Warstwowa budowa systemów informatycznych 2. Model procesu wytwarzania oprogramowania - model cyklu życia oprogramowania 3. Wstęp do modelowania systemów

Bardziej szczegółowo

Platforma e-learningowa

Platforma e-learningowa Platforma e-learningowa skrócona instrukcja obsługi. Aby uruchomić platformę e-learningową, należy otworzyć przeglądarkę internetową, a następnie wpisać adres http://aok.learnway.eu/ - wyświetlony zostanie

Bardziej szczegółowo

Fazy analizy (modelowania) oraz projektowania FAZA ANALIZY:

Fazy analizy (modelowania) oraz projektowania FAZA ANALIZY: Fazy analizy (modelowania) oraz projektowania Analiza bez brania pod uwagę szczegółów implementacyjnych Projektowanie ze szczegółami implementacyjnymi. FAZA ANALIZY: Celem fazy analizy jest ustalenie wszystkich

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2 Wyższa Szkoła Menedżerska w Legnicy Systemy informatyczne w przedsiębiorstwach Zarządzanie, ZIP, sem. 6 (JG) Modelowanie wymagań Wykład 2 Grzegorz Bazydło Cel wykładu Celem wykładu jest przekazanie wiedzy

Bardziej szczegółowo

Przekształcenie danych przestrzennych w interaktywne mapy dostępne na stronach www (WARSZTATY, poziom zaawansowany)

Przekształcenie danych przestrzennych w interaktywne mapy dostępne na stronach www (WARSZTATY, poziom zaawansowany) Wrocławski Instytut Zastosowań Informacji Przestrzennej i Sztucznej Inteligencji Przekształcenie danych przestrzennych w interaktywne mapy dostępne na stronach www (WARSZTATY, poziom zaawansowany) Szkolenia

Bardziej szczegółowo

Program modułu multimedialnego mgr Urszula Galant. PROGRAM MODUŁU MULTIMEDIALNEGO DLA UCZNIÓW KLAS IV VI SP im. Szarych Szeregów w Płochocinie

Program modułu multimedialnego mgr Urszula Galant. PROGRAM MODUŁU MULTIMEDIALNEGO DLA UCZNIÓW KLAS IV VI SP im. Szarych Szeregów w Płochocinie PROGRAM MODUŁU MULTIMEDIALNEGO DLA UCZNIÓW KLAS IV VI SP im. Szarych Szeregów w Płochocinie 1 I. WSTĘP Wraz z powszechną komputeryzacją większości dziedzin życia codziennego oraz szybkim rozwojem sprzętu

Bardziej szczegółowo

Animacja w prezentacji

Animacja w prezentacji Animacja w prezentacji 109 8.4 Animacja w prezentacji Przyszedł czas na kolejny, czwarty już rozdział jakim są animacje w prezentacji multimedialnej. Nauczymy się dodawać różne animacje do elementów slajdu,

Bardziej szczegółowo

Tom 6 Opis oprogramowania

Tom 6 Opis oprogramowania Część 4 Narzędzie do wyliczania wielkości oraz wartości parametrów stanu Diagnostyka stanu nawierzchni - DSN Generalna Dyrekcja Dróg Krajowych i Autostrad Warszawa, 30 maja 2012 Historia dokumentu Nazwa

Bardziej szczegółowo

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty przedmiotu Stopień studiów i forma: Rodzaj przedmiotu Kod przedmiotu Grupa kursów Zaawansowane techniki analizy

Bardziej szczegółowo

Menu Plik w Edytorze symboli i Edytorze widoku aparatów

Menu Plik w Edytorze symboli i Edytorze widoku aparatów Menu Plik w Edytorze symboli i Edytorze widoku aparatów Informacje ogólne Symbol jest przedstawieniem graficznym aparatu na schemacie. Oto przykład przekaźnika: Widok aparatu jest przedstawieniem graficznym

Bardziej szczegółowo

Diagramy UML, przykład problemu kolizji

Diagramy UML, przykład problemu kolizji Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Wydział Elektroniki Politechnika Wrocławska Kurs: Copyright c 2015 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu

Bardziej szczegółowo

Programowanie na poziomie sprzętu. Programowanie w Windows API

Programowanie na poziomie sprzętu. Programowanie w Windows API Programowanie w Windows API Windows API Windows Application Programming Interface (API) to zestaw funkcji systemu operacyjnego Windows, które umożliwiają aplikacjom korzystanie z wszystkich usług systemu.

Bardziej szczegółowo

Informatyzacja przedsiębiorstw WYKŁAD

Informatyzacja przedsiębiorstw WYKŁAD Informatyzacja przedsiębiorstw WYKŁAD dr inż. Piotr Zabawa IBM/Rational Certified Consultant pzabawa@pk.edu.pl wersja 0.1.0 07.10.2010 Wykład 1 Modelowanie procesów biznesowych Przypomnienie rodzajów narzędzi

Bardziej szczegółowo

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9 Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9 Uruchamianie edytora OpenOffice.ux.pl Writer 9 Dostosowywanie środowiska pracy 11 Menu Widok 14 Ustawienia dokumentu 16 Rozdział 2. OpenOffice

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34 Projektowanie oprogramowania cd. 2/34 Modelowanie CRC Modelowanie CRC (class-responsibility-collaborator) Metoda identyfikowania poszczególnych

Bardziej szczegółowo

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym konceptualnym modelem danych jest tzw. model związków encji (ERM

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH Modeling and analysis of computer systems Kierunek: Informatyka Forma studiów: Stacjonarne Rodzaj przedmiotu: Poziom kwalifikacji: obowiązkowy

Bardziej szczegółowo

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki Artur Krawczyk AGH Akademia Górniczo Hutnicza Problem modelowania tekstowego opisu elementu geometrycznego

Bardziej szczegółowo

Iv. Kreatywne. z mediów

Iv. Kreatywne. z mediów Iv. Kreatywne korzystanie z mediów Edukacja formalna dzieci Kreatywne korzystanie z mediów [ 45 ] Zagadnienia Wychowanie przedszkolne Szkoła podstawowa, klasy 1-3 Szkoła podstawowa, klasy 4-6 Tworzenie

Bardziej szczegółowo

APLIKACJE - MULTIMEDIALNE

APLIKACJE - MULTIMEDIALNE APLIKACJE - MULTIMEDIALNE Multimedia połączenie różnych technik medialnych z interakcją, przy wykorzystaniu różnych narzędzi komputerowych Potrzeby: 1. Sprzęt: - HD 7200 obr/min, min. ATA66, SATA, min.

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

TWORZENIE PREZENTACJI MS POWERPOINT

TWORZENIE PREZENTACJI MS POWERPOINT TWORZENIE PREZENTACJI MS POWERPOINT Wstęp TWORZENIE PREZENTACJI MS POWERPOINT Czasami zdarza się, że zostajemy poproszeni o poprowadzenia spotkania czy szkolenia w firmie, w której pracujemy lub po prostu

Bardziej szczegółowo

Programowanie Obiektowe GUI

Programowanie Obiektowe GUI Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu

Bardziej szczegółowo