Title: Standardy w zakresie system
1Standardy w zakresie systemów rozproszonych i
baz danych
Wyklad 8 Wprowadzenie do systemu VIDE
Piotr Habela Kazimierz Subieta Polsko-Japonska
Wyzsza Szkola Technik Komputerowych, Warszawa
2Materialy
- Strony internetowe projektu VIDE
- http//www.vide-ist.eu/
- VIDE e-learning system
- http//www.vide-ist.eu/reflib/elearning/index.html
- VIDE Cookbook
- http//www.vide-ist.eu/reflib/cookbook.html
- Prace opublikowane nt. projektu VIDE
http//www.si.pjwstk.edu.pl/publications/pl/index.
html - G.Falda, P.Habela, K.Kaczmarski, K.Stencel,
K.Subieta Object Oriented Database Prototype as
a Model Execution Engine for Executable UML.
Proceedings of the 1st International Conference
on Object Databases, ICOODB 2008, Berlin 13-14
March 2008, pp.167-178 - P.Habela, K.Kaczmarski, K.Stencel, K.Subieta OCL
as the Query Language for UML Model Execution.
Computational Science - ICCS 2008, 8th
International Conference, Kraków, Poland, June
23-25, 2008, Proceedings, Part III. Lecture Notes
in Computer Science 5103 Springer 2008,
pp.311-320 - G.Falda, P.Habela, K.Kaczmarski, K.Stencel,
K.Subieta Executable Platform Independent Models
for Data Intensive Applications. Computational
Science - ICCS 2008, 8th International
Conference, Kraków, Poland, June 23-25, 2008,
Proceedings, Part III. LNCS 5103 Springer 2008,
pp. 301-310 - R.Adamus, G.Falda, P.Habela,K.Kaczmarski,
K.Stencel, K.Subieta Project VIDE Challenges
of Executable Modelling of Business Applications.
Proc. of NEPTUNE2008 Conf. on Model-Driven
Engineering, Paris 8-9 April 2008, Genie Logiciel
85, 2008, pp.53-56 - P.Habela, K.Kaczmarski, K.Stencel, K.Subieta
Implementing OCL as a Database Query Language. On
the Move to Meaningful Internet Systems 2007 OTM
2007 Workshops, OTM Confederated International
Workshops and Posters,Vilamoura, Portugal,
November 25-30, 2007, Proceedings, Part I., LNCS
4805, Springer, 2007, pp. 17-18 - G.Falda, P.Habela, K.Kaczmarski, K.Stencel,
K.Subieta. Platform-independent programming of
data-intensive applications using UML 2nd IFIP
Central and East European Conference on Software
Engineering Techniques CEE-SET 2007, Poznan 2007
3Geneza projektu VIDE (1)
- Projekt europejski (VIsualize all moDel drivEn
programming) - 6-ty Program Ramowy Unii Europejskiej
- Autor pomyslu i wniosku grantowego Grzegorz
Falda - Czas trwania projektu lipiec 2006 grudzien
2008 - Dofinansowanie UE 2 300 000 , rzady 1 700
000 - 9-ciu partnerów
- PJWSTK (Polska), koordynacja projektu
- Bournemouth University (Wielka Brytania)
- Fraunhofer Instititute (Niemcy)
- DFKI - German Research Center for Artificial
Intelligence (Niemcy) - Rodan Systems (Polska)
- Softeam (Francja)
- TNM Software GmbH (Niemcy)
- SAP AG (Niemcy)
- ALTEC (Grecja)
- Zakonczony sukcesem, bardzo pochlebne opinie
recenzentów
4Geneza projektu VIDE (2)
- Dotyczy podejscia Model Driven Architecture (MDA)
- VIDE realizuje postulaty wykonywalnego UML
(Executable UML) - Jezyk akcji o nazwie VIDE, zgodny z UML 2.1
standard OMG - Kodowanie tekstowe i graficzne.
- Szeroki zakres potencjalnych zastosowan
(biznesowych) opartych o bazy danych. - Implementacja OCL 2.0 standard OMG - jako
jezyka zapytan do obiektowej bazy danych - Programowanie aspektowe
- Mechanizmy kontroli jakosci oprogramowania
- Specyfikacji procesów biznesowych (workflow)
- Kompilatory z VIDE do zewnetrznych platform (Java
i ODRA) - Integracja zewnetrznych zasobów i oprogramowania
(relacyjne bazy danych, XML, OfficeObjectsWorkflow
, ) - Prototyp zrealizowany dla platformy ODRA (PJWSTK)
5Prototyp VIDE najwazniejsze informacje (1)
- VIDE jest jezykiem programowania opartym na
standardzie UML 2.1 i zgodnie z postulatami
podejscia MDA - Ma sluzyc do specyfikowania w UML oprogramowania
(wlaczajac w to pelna logike aplikacji) na
poziomie modelu niezaleznego od platformy - Model taki pozwala na jego transformowanie na
wybrana platforme docelowa, poprzez wygenerowanie
z odpowiednich konstrukcji modelu kodu zródlowego
lub maszynowego dla tejze platformy - Specyfikowanie szczególów zachowania w jezyku UML
sluza niedawno wprowadzone do jego specyfikacji
czesci Structured Activities oraz Actions - W edytorze wizualnym - pojecia bezposrednio
wystepujace w ww. czesciach metamodelu UML - W edytorze tekstowym instrukcje jezyka
programowania - W UML nie zestandaryzowano dotychczas skladni dla
tych konstrukcji - ani wizualnej ani tekstowej - Obie skladnie natomiast sa odwzorowywane
odpowiednio na te same, zestandaryzowane elementy
metamodelu UML
6Prototyp VIDE najwazniejsze informacje (2)
- Specyfikowane zachowanie jest odwzorowywane na
model stanowiacy instancje metamodelu UML. - Zachowanie aplikacji specyfikujemy w VIDE poprzez
budowe cial metod, zwiazanych z operacjami w
klasach znajdujacych sie w modelu klas UML. - Strukturalna warstwa modelu jest realizowana
przez pojecia pakietów oraz klas, polaczonych w
kompozycje i asocjacje oraz mogacych
wykorzystywac relacje generalizacji. - Szczególna role odgrywac moze klasa modulowa -
specjalna klasa, której instancji nie powolujemy
w normalny sposób. - Zaklada sie, ze w momencie uruchomienia aplikacji
istnieje dokladnie jedna instancja takiej klasy,
która pelni role punktu wejscia dla uruchamiania
funkcjonalnosci aplikacji. - Klase modulowa, która musi miec nazwe identyczna
z nazwa zawierajacego ja pakietu, definiujemy
przypisujac jej stereotyp module.
7Prototyp VIDE najwazniejsze informacje (3)
- Funkcjonalnosc aplikacji mozna wywolac
- wolajac jedna z operacji klasy modulowej
- wydobywajac z atrybutów klasy modulowej obiekty i
wywolujac operacje - UML 2.1 wprowadza akcje do odczytu pojedynczych
wartosci - Jest to niewystarczajace dla aplikacji z baza
danych - Konieczny jest jezyk zapytan a la SQL
- W tej roli OCL (Object Constraint Language),
stworzony do formulowania ograniczen w modelu - Rola OCL jest zmieniona, w VIDE wystepuje jako
jezyk zapytan - Specyfikacje UML 2.1 i OCL 2.0 sa mocno
niedojrzale - Tocza sie prace nad precyzyjna, wykonywalna
semantyka UML - UML Actions oraz Structured Activities nie
posiadaja okreslonej w standardzie skladni
konkretnej - Stad na potrzeby VIDE trzeba bylo zaprojektowac
konkretna skladnie i semantyke - Jest to przedmiot wniosku do OMG
8Ogólne moduly VIDE
9VIDE a MDA
- VIDE wspiera podejscie MDA. W tym celu wyróznia 4
warstwy modeli i artefaktów - Computation Independent Model (CIM)
przykrywajacy wiedze dziedzinowa i opisujacy
logike biznesowa w sposób abstrahujacy od
konkretnych rozwiazan programistycznych - Platform Independent Model (PIM) opisujacy
struktury i zachowanie (behaviour) wytwarzanego
oprogramowania bez okreslania detali docelowej
platformy implementacyjnej - Platform Specific Model (PSM) model precyzujacy
decyzje projektowe w terminach pewnej technologii
programistycznej - Kod kod zródlowy oprogramowania, automatycznie
wygenerowany z PSM - VIDE idzie nieco dalej niz typowe zalozenia MDA,
mianowicie oferuje kodowanie, uruchamianie i
testowanie programów juz na poziomie PIM - Inne rozwiazanie zmuszaloby do uruchamiania i
testowania oprogramowania dopiero na poziomie PSM
lub na poziomie kodu, co oznaczaloby nizszy
poziom abstrakcji w programowaniu, nizszy
potencjal ponownego uzycia, wieksza
pracochlonnosc, gorsza jakosc, - Na poziomie PSM tylko drobne poprawki, jezeli w
ogóle ktos bedzie chcial wprowadzac PSM - Generowanie kodu bezposrednio z poziomu PIM
- Odpowiednie adnotacje do modelu PIM, specyficzne
dla danej platformy
10MDA w architekturze narzedzi VIDE
Modelowanie niezalezne od obliczen
Analiza dziedzinowa
CIM
Prototypowanie na poziomie PIM
Modelowanie procesów
Kompozycja aspektowa
Modelowanie aplikacji
Zapewnienie jakosci
PIM
Wykonanie/testowanie modelu PIM
PIM z adnotacjami
PSM?
Kod
Generowanie kodu
11VIDE jako nowy jezyk programowania
- Poprzez to, ze mozna programowac juz na poziomie
PIM, powstaje pewna sprzecznosc z zalozeniami MDA - Jezeli programujemy na poziomie PIM, to po co PSM
i kod? - PIM staje sie w ten sposób PSM, który jest
jednoczesnie kodem - po co generowac kod w Java, C, itd. jezeli
wszystko, co mozna zrobic z tym kodem, to go
skompilowac? - przykryc jakims makefile i zapomniec o tych
jezykach i ich kompilatorach - VIDE jest nowym obiektowym jezykiem programowania
- z baza danych/obiektów
- ze schematem obiektów zapisanym w UML
- zlozone obiekty, kolekcje, typy, klasy, metody,
asocjacje, dziedziczenie, - Mozna takze uwazac, ze w VIDE piszemy tylko
prototyp, który wprawdzie jest wykonywalny, ale
ze slaba wydajnoscia, uproszczonymi interfejsami,
itd. - Ale wtedy powstaje zadanie optymalizacyjne jak
zrobic VIDE w pelni wydajnym jezykiem, z
wlasciwymi interfejsami, itd. - Aby nie tracic istniejacych bibliotek pomosty
do Java, .Net, C,
12Przypadki uzycia systemu VIDE
13Funkcjonalne moduly VIDE
14Designer aplikacji powiazania miedzy-modulowe
15Przypadki uzycia na poziomie PIM
16Typowa zaleznosc kroków rozwoju oprogramowania
17Unikalne cechy systemu VIDE (1)
- Zuniformizowany jezyk programowania bazujacy na
UML pozwalajacy na precyzyjna specyfikacje
zachowania - Wieksza elastycznosc dla procesów rozwoju
oprogramowania - Mniejsze problemy komunikacyjne pomiedzy
spolecznosciami analizy, projektowania i
programowania - Jezyk OCL jako jezyk zapytan pozwala na zapis
wymaganej funkcjonalnosci w sposób krótki,
koncepcyjny i deklaracyjny - Zapytania oraz zdania imperatywne sa bezszwowo
zintegrowane w jeden jezyk - Zestandaryzowany metamodel
- Brak niezgodnosci impedancji
- Podejscie aspektowe oraz wykrywanie defektów
podniesione na poziom PIM - Sprzyja ponownemu uzyciu
- Sprzyja walce ze zlozonoscia aplikacji
18Unikalne cechy systemu VIDE (2)
- Pelne pokrycie procesu przejscia z modelu
biznesowego do wykonywalnego kodu - Wykonywalny model PIM posiada pomosty do
istniejacych uslug (np.WS), silnika workflow,
itd. - Prototypowanie i testowanie pry pomocy GUI
- Narzedzie do modelowania pre-CIM dla
uzytkowników biznesowych - Pozwala im na efektywne wlaczenie sie w rozwój
aplikacji - Rozszerzony jezyk na poziomie CIM bazujacy na
notacji BPMN - Przejscie z CIM do PIM w terminach odwzorowania
pomiedzy modelami jako punkt wyjsciowy do
specyfikacji aplikacji oraz jako wzorzec dla
projektowania wykonywalnych procesów workflow
19Standardy wspomagane lub uzywane przez VIDE
- BPMN - Business Process Modeling Notation
- XPDL - XML Process Definition Language
- UML - Unified Modeling Language
- OCL - Object Constraint Language
- XML - Extensible Markup Language
- XMI - XML Metadata Interchange
- SOAP Simple Object Access Protocol
- WS - Web Services
- WSDL - Web Service Definition Language
- UDDI - Universal Description, Discovery and
Integration - JDBC Java Data Base Connectivity
- SQL Structured Query Language
20Dostepnosc komponentów VIDE
21Proces generacji aplikacji w ODRA
Behavior
PIM
VIDE Textual
SBQL AST
SBQL CODE
ODRA Server
VIDE Visual
ODRA DDL
UML Structures
22Eclipse SDK
- Dla systemu VIDE wybrano Eclipse jako
zintegrowane srodowisko deweloperskie (IDE) dla
edytowania programów tekstowych - Jest to popularne i uniwersalne srodowisko
open-source, jakkolwiek nie wolne od wad takich
jak zlozonosc, trudnosci w nauczeniu sie i bledy
w oprogramowaniu - Bazujace na Eclipse implementacje MDT metamodeli
dla UML i OCL tworza mechanizm odwzorowania
pomiedzy modelami - Programy zapisane w PIM odwzorowuje sie na graf
abstrakcyjnej skladni okreslony w/w metamodelami - Abstrakcyjna skladnia moze byc dalej przedmiotem
przetwarzania, np. w zwiazku z aspektowoscia i
wykrywaniem defektów - Po zakonczeniu przetwarzania, abstrakcyjna
skladnia moze byc odwzorowana na kod. Obecnie dwa
kompilatory kodu sa dostepne Java Hibernate
oraz ODRA - openArchiectureware framework dla kompilatora
modelu dla Java - Dla edytorów wizyjnych wykorzystano framework GMF
- Wybór Eclipse i popularnych frameworków do zapisu
i odwzorowania modeli znacznie ulatwia
projektowanie funkcjonalnosci aplikacji.