Wykład 6 Metodyki wytwarzania oprogramowania internetowego Wykładowca: dr inż. Mariusz Trzaska
Zagadnienia Motywacje Propozycje MDA Wymagania WebML WebRatio Wykorzystano materiały pochodzące z http://www.webml.org oraz http://www.webratio.com Tworzenie portali biznesowych, Wykład 6 2
Motywacje Aplikacje webowe są tworzone przy wykorzystaniu metodyk zapożyczonych z innych sektorów IT (np. baz danych). Brak dedykowanego wsparcia zgodnego z MDA; potencjalne problemy: Nawigacja zgodna ze strukturą BD, Sporo ręcznie pisanego kodu, Sporym wyzwaniem jest nawet prototypowanie. Tworzenie portali biznesowych, Wykład 6 3
Motywacje (2) Czynniki dodatkowo komplikujące wytworzenie nowoczesnych aplikacji internetowych: Wyzwania związane z przeniesieniem coraz większego zakresu funkcjonalności do Web u. Różne rodzaje urządzeń do przeglądania witryn (PC, PDA, telefony). Coraz większe oczekiwania/możliwości dostosowywania aplikacji bardzo duże możliwości personalizacji. Tworzenie portali biznesowych, Wykład 6 4
Motywacje (3) Zmniejszenie kosztu wszystkich faz wytwórczych: Analizy, Projektowania, Wytworzenia, Testowania. Tworzenie portali biznesowych, Wykład 6 5
Propozycje Podniesienie poziomu abstrakcji. Dzięki temu: Więcej zasobów można poświęcić na analizę i projektowanie. Ograniczymy (a może nawet wyeliminujemy) potrzebę ręcznego kodowania. Personel techniczny może skupić się na optymalizacjach i tuningu. Graficy mają większą swobodę/łatwość tworzenia GUI. Tworzenie portali biznesowych, Wykład 6 6
Potencjalne rozwiązanie MDA (Model-Driven Architecture): Opracowane przez OMG w 2001 roku; System jest definiowany przy wykorzystaniu kilku modeli: PIM (Platform-Independent Model), PSMs (Platform-Specific Models). Może korzystać z DSLs (Domain Specific Languages) lub języków ogólnego przeznaczenia (np. Java, C#, C++); Pojęcia pokrewne: UML, DDD (Domain-driven design), Executable UML. Tworzenie portali biznesowych, Wykład 6 7
Potencjalne rozwiązanie (2) MDA (Model-Driven Architecture) c. d.: Poszczególne modele są transformowane: PIM PSMs, PIM PSMs?. Transformacja odwrotna jest raczej wątpliwa/niepełna. Wątpliwości Generowanie kodu, Sposoby dostosowywania, Raczej dla dość ogólnych rozwiązań (np. data-intensive applications). Tworzenie portali biznesowych, Wykład 6 8
Potencjalne rozwiązanie (3) MDA (Model-Driven Architecture) c. d.: Potencjalne zalety Skrócenie czasu wytwarzania, Zmniejszenie wykorzystania zasobów, Bardziej uporządkowany proces wytwórczy, Spójne i przewidywalne rezultaty, Samodokumentujące modele projektowe, Szybkie prototypowanie łatwe do uzyskania. Tworzenie portali biznesowych, Wykład 6 9
Wymagania odnośnie projektowania aplikacji webowych Możliwość wyrażenia prawdziwych przypadków biznesowych, Zastosowanie istniejących wzorców projektowych, Łatwość użycia Intuicyjna notacja, Jasna semantyka, Spójność. Tworzenie portali biznesowych, Wykład 6 10
Wymagania odnośnie projektowania aplikacji webowych (2) Implementowalność Mapowanie do istniejących struktur danych, Elastyczne generowanie kodu na podstawie zdefiniowanego zachowania aplikacji, Odpowiednia wydajność, Pielęgnacyjność Łatwość wprowadzania zmian, Dokumentowanie zmian. Tworzenie portali biznesowych, Wykład 6 11
Konkretne propozycje WebML (Web Modeling Language), Model-Driven Web Engineering, UWE Approach Pokrewne tematy Web engineering, Web modeling Tworzenie portali biznesowych, Wykład 6 12
WebML Opracowany przez naukowców z Politecnico di Milano. Wspierany przez WebRatio (http://www.webratio.com) http://www.webratio.com/portal/flash/webratioplayer.swf Tworzenie portali biznesowych, Wykład 6 13
WebML - cele Dostarczenie uporządkowanego podejścia do tworzenia portali zorientowanych na dane. Ułatwienie wytwarzania wysokiej jakości aplikacji przy pomocy zdefiniowanych modeli. Uwzględnienie wszystkich aspektów aplikacji webowych. Zaprzestanie stosowania niespójnych lub przestarzałych metodyk. Tworzenie portali biznesowych, Wykład 6 14
WebML - przeznaczenie Portale zorientowane na dane Duża ilość danych, Dostęp dla wielu użytkowników Przeglądanie, Personalizacja (1 1), Definiowalna treść, struktura, nawigacja, prezentacja Tworzenie portali biznesowych, Wykład 6 15
WebML przeznaczenie (2) WebML nie jest przeznaczony dla Małych witryn, np. strony domowe. Statycznych stron. Tworzenie portali biznesowych, Wykład 6 16
WebML - modele WebML: koncepcyjny język wysokiego poziomu do projektowania witryn zorientowanych na dane. Modele: Structure: organizacja danych. Derivation: redundantne definicje danych. Composition: definicja stron internetowych jako zbiór podstron i podstawowych jednostek publikacyjnych. Tworzenie portali biznesowych, Wykład 6 17
WebML modele (2) Modele c. d.: Navigation: definicje powiązań pomiędzy stronami oraz jednostkami. Presentation: pozycjonowanie elementów na stronie oraz określanie ogólnego wyglądu. entities, relationships units, pages, links site views styles structure navigation + composition user models presentation Tworzenie portali biznesowych, Wykład 6 18
WebML - Structure Model P: czym są publikowane obiekty i jak są powiązane? O: Encja: typ obiektu w domenie biznesowej, Atrybut: wartość atomowa encji, Relacja: połączenie pomiędzy encjami, Klasyfikacja i grupowanie. Kompatybilność z E-R oraz klasami UML. Tworzenie portali biznesowych, Wykład 6 19
WebML - Structure Model (2) Uproszczony diagram klas/e-r Asocjacje/relacje binarne, Dziedziczenie rozłączne, Atrybuty typów prostych, Możliwość zastosowania Author Genre modelu wyliczeniowego dla typów redundantnych Book BestSeller Tworzenie portali biznesowych, Wykład 6 20
WebML Derivation model Derivation model (model pochodny) Dane redundantne mogą być zdefiniowane przy pomocy WebML-OQL (Object Query Language), np. Author.BooksNumber = count(self.author2book) BestSeller := Book where Book.Sales > 50,000 Author Book BestSeller Tworzenie portali biznesowych, Wykład 6 21
WebML - Hipertekst Jakie informacje są publikowane w węzłach hipertekstowych? Jednostki treści (Composition) Jak połączone są węzły hipertekstowe? Linkami (Navigation) Jak hipertekst jest dzielony na strony przekazywane do użytkownika? Za pomocą Composition. Tworzenie portali biznesowych, Wykład 6 22
WebML Compositions Aby opublikować informacje o pojedynczym obiekcie, np. informacje o autorze DATAUNIT content Aby opublikować listę obiektów, np. listę autorów INDEXUNIT content Tworzenie portali biznesowych, Wykład 6 23
WebML Compositions (2) Wizualizacja np. informacje o autorze DATAUNIT Author first name:xxx last name:yyy photo: content np. lista autorów INDEXUNIT Index of Authors S. Ceri P. Fraternali O.Versand content Tworzenie portali biznesowych, Wykład 6 24
WebML Compositions (3) Pages Pojemnik zawierający Units oraz Links, Możliwość zagnieżdżania (pod/nad), Abstrakcja dla Screen, Frame Card, Deck, Umożliwiają grupowanie informacji Np. indeks autorów oraz wybrany autor mogą być wyświetlane na tej samej stornie. Author Author Tworzenie portali biznesowych, Wykład 6 25
WebML Navigation Model Semantyka Przeniesienie się z jednego miejsca do innego Transport informacji z jednego miejsca do innego Efekt uboczny: wykonanie przetwarzania danych AuthorID is transported entity: author Book [ author2book ] Tworzenie portali biznesowych, Wykład 6 26
WebML Navigation Model (2) Typy link ów Kontekstowe (contextual) Pomiędzy Units, Przekazywanie kontekstu Bezkontekstowe (noncontextual) Pomiędzy Pages, Brak przekazywania kontekstu Voyages Books Tworzenie portali biznesowych, Wykład 6 27
WebML Operacje zapisu Zestaw predefiniowanych operacji Create Op. X Możliwość stworzenia własnych, np. Usunięcie autora Delete Author Author Tworzenie portali biznesowych, Wykład 6 28
WebML - Siteviews Siteview zestaw stron z którymi pracuje użytkownik Możliwość tworzenia różnych zestawów dla: Użytkowników, Urządzeń. Tworzenie portali biznesowych, Wykład 6 29
WebML - Presentation Galeria domyślnych styli Możliwość zastosowania dla: Siteview, Page, Zdefiniowanych w plikach XSL Kompatybilność z popularnym oprogramowaniem, np. WebML extensions for Dreamweaver 3 & 4 Tworzenie portali biznesowych, Wykład 6 30
WebML Aplikacja WebRatio Modelowanie struktury. Określanie danych pochodnych. Modelowanie hypertext (Siteviews). Sprawdzanie spójności. Mapowanie struktury na źródło danych. Pozycjonowanie Units na stronie. Automatyczne generowanie witryny. http://www.webratio.com Tworzenie portali biznesowych, Wykład 6 31
WebML Aplikacja WebRatio (2) Modelowanie struktury c.d. Atrybuty Encje Relacje Dziedziczenie http://www.webratio.com Tworzenie portali biznesowych, Wykład 6 32
WebML Aplikacja WebRatio (3) Modelowanie hypertext (Siteviews) c.d. Siteviews Możliwe operacje Nowa witryna Dodaj/usuń pages, units, links Edytuj własności Operacje na Units Cut&paste Links WebML units Page/alternative http://www.webratio.com Tworzenie portali biznesowych, Wykład 6 33
WebML Aplikacja WebRatio (4) Wykorzystanie XML Zapisywanie pełnej informacji o modelowanej witrynie, Walidacja za pomocą DTD, Automatyczne generowanie witryn w wybranym języku przez tworzenie transformacji XSL. Demo http://www.webratio.com Ekrany Przykładowe witryny http://www.webratio.com Tworzenie portali biznesowych, Wykład 6 34
Podsumowanie Współczesne oprogramowanie webowe ma za zadanie rozwiązywanie coraz szerszej gamy problemów. Oznacza to trudności technologiczne oraz koncepcyjne. Częściowym rozwiązaniem tego problemu może być podniesienie poziomu abstrakcji stosowanych metodyk/technologii. Potencjalnie interesującą propozycją wydaje się być MDA (ze wszystkimi swoimi ograniczeniami) oraz WebML. Tworzenie portali biznesowych, Wykład 6 35