Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Projektowanie aplikacji internetowych
Wykład 3 WebML WebML Specyfikacja wymagań Tworzenie modelu danych Wprowadzenie do WebRatio Wypożyczalnia filmów – tworzenie modelu danych
2
WebML (1) WebML (Web Modeling Language, 1999 r.) – notacja (komponenty, modele), metodyka tworzenia aplikacji internetowych zarządzających dużymi ilościami danych. WebML to graficzna notacja do określania treści, zależności i nawigacji pomiędzy stronami aplikacji internetowej. Składa się z: modelu danych, modelu hipertekstu, modelu prezentacji. Postrzeganie modeli jako wysokopoziomowa graficzna reprezentacja aplikacji internetowej w architekturze MVC.
3
Cykl życia aplikacji internetowej wg metodyki WebML
4
Specyfikacja wymagań Specyfikacja wymagań
5
WebML – specyfikacja wymagań (1)
zbieranie informacji o dziedzinie aplikacji, jej funkcjonalności, analiza zebranych informacji. Wymagania biznesowe, technologia, środowisko działania, przetwarzane dane, specyfika pracy użytkowników Wejście Specyfikacja grup użytkowników Specyfikacja przypadków użycia Specyfikacja słownika obiektów Specyfikacja widoków witryny Szkic wyglądu aplikacji Specyfikacja wymagań niefunkcjonalnych Wyjście (produkty)
6
WebML – specyfikacja wymagań (2)
Specyfikacja grup użytkowników
7
WebML – specyfikacja wymagań (3)
Specyfikacja grup użytkowników Hierarchia grup użytkowników przedstawiona graficznie:
8
WebML – specyfikacja wymagań (4)
Specyfikacja przypadków użycia
9
WebML – specyfikacja wymagań (5)
Specyfikacja słownika obiektów
10
WebML – specyfikacja wymagań (6)
Specyfikacja widoków witryny
11
WebML – specyfikacja wymagań (7)
Specyfikacja (szkic) wyglądu aplikacji Wytyczne tworzenia wyglądu strony: Specyfikacja siatki stron: układ wierszy, kolumn i komórek Specyfikacja rozmieszczenia treści: pozycja banerów, logo i menu Wytyczne wyglądu elementów: krój czcionki, kolory, obramowania i marginesy Wytyczne specyficzne dla przeglądarek i urządzeń dostępowych Przykład: przykładowa reprezentacja (szkic, mockup) kilku typowych stron aplikacji (dla specyficznego urządzenia i języka)
12
WebML – specyfikacja wymagań (8)
Specyfikacja wymagań niefunkcjonalnych Wymagania niefunkcjonalne mogą wypływać z: ustaw, norm, przepisów, kodeksów; strategii biznesowego działania zleceniodawcy, kultury jego organizacji, specyfiki jego działania rynkowego; ograniczeń dziedziny dla której system jest tworzony; technologii i metod realizacji systemu; wymagań jakościowych i technicznych. Opis wymagań niefunkcjonalnych: Ergonomia - wygoda używania aplikacji; Wydajność - wydajność, z jaką aplikacja wykorzystuje dostępne zasoby, w sensie przepustowości i czasu odpowiedzi; Dostępność - dopuszczalna częstotliwość występowania błędów i awarii; Skalowalność - zdolność do zwiększania wydajności aplikacji w odpowiedzi na zwiększenie liczby żądań; Bezpieczeństwo - ochrona integralności informacji, autentykacja użytkowników, ochrona informacji przekazywanych pomiędzy użytkownikami i aplikacją; Zarządzalność - łatwość usuwania błędów oraz przystosowanie aplikacji do zmieniających się wymagań.
13
Tworzenie modelu danych
Model danych Tworzenie modelu danych
14
Model danych: Istota (1)
Jakie są obiekty przetwarzane przez projektowaną aplikację, jakie mają właściwości i w jaki sposób są ze sobą powiązane? Podstawowe pojęcia modelu danych: Encja Atrybut Relacja Hierarchia IS-A Encja1 Encja2 atrybut1 Podencja
15
Model danych: Istota (2)
Model danych (ERD): operuje na pojęciach (relacje, role relacji, atrybuty, encje), dopuszcza relacje wiele-do-wielu, dopuszcza tworzenie hierarchii encji, dopuszcza wartości pochodne (encje, relacje, atrybuty), używa typów danych niezależnych od bazy danych, może być normalizowany. Produkty specyfikacji wymagań Wejście Model warstwy danych aplikacji Wyjście
16
Populacja encji – zbiór wszystkich instancji danej encji.
Encje Encja - opis grupy obiektów (bytów), które posiadają podobne właściwości (np. książki, autorzy, produkty, itp.) Instancje encji - poszczególne byty (obiekty), np. „Potop”, „Pan Tadeusz”, itp. Populacja encji – zbiór wszystkich instancji danej encji. Klucz kandydujący - zestaw cech encji jednoznacznie identyfikujący instancję encji. Klucz główny - jeden wybrany klucz kandydujący. WebML umożliwia organizowanie encji w hierarchię IS-A. Organizowanie encji w hierarchię IS-A
17
Atrybut Atrybut jest własnością/cechą wspólną dla wszystkich instancji danej encji (np. tytuł książki, miejsce urodzenia autora). Niektóre obiekty mogą posiadać cechy nieadekwatne do stanu rzeczywistego (np. miejsce zgonu żyjącego jeszcze autora). Atrybuty: posiadają zdefiniowane przez projektanta nazwy i typy danych (BLOB, Boolean, Date, Decimal, Float, Integer, Password, String, Text, Time, Timestamp, Url), posiadają pojedynczą wartość (może być null), nie mają wewnętrznej struktury.
18
Relacje (1) Książka Autor
Relacje (związki), to połączenia pomiędzy encjami. Wyróżnia się relacje: binarne – łączą dwie encje, N–arne – łączą niż dwie encje. Rola relacji może być rozpatrywana jako jeden z kierunków, w jakich działa relacja. Role relacji mają nazwy zdefiniowane przez projektanta. Np.: relacja Autor_Książka może mieć role: Rola 1: Autor-do-Książka Rola 2: Książka-do-Autor Autor-do-Książka Książka Autor Autor_Książka Książka-do-Autor
19
Relacje (2) Książka Autor Recenzja Książka
Dla kierunku relacji można określić liczność (Cardinality) maksymalną i minimalną. Minimalna liczność roli, to wartość 1 lub 0, maksymalna to N lub 1. Np. relacja Autor_Książka: autor-do-książka minCard: maxCard: N książka-do-autor minCard: maxCard: N 0..N 1..N Książka Autor Np. relacja Książka_Recenzja książka-do-recenzja minCard: maxCard: N recenzja-do-książka minCard: maxCard: 1 0..N 1..1 Recenzja Książka
20
Relacje (3) W zależności od liczności maksymalnej wyróżnia się następujące typy relacji: jeden–do–jednego (1:1) – obydwie role relacji mają liczność maksymalną 1, jeden–do–wielu (1:N) – jedna z ról ma liczność maksymalną równą 1, a druga równą N, wiele–do–wielu (N:M) – obydwie role mają liczność maksymalną większą od 1. Towar może należeć tylko do jednej kategorii, do jednej kategorii może należeć wiele towarów.
21
Relacje – mapowanie modelu (4)
Nie oznacza się kluczy obcych, są one tworzone automatycznie podczas mapowania modelu do rzeczywistego źródła danych. Przykład modelu danych z relacjami 1:N oraz N:N
22
Relacje – mapowanie modelu (5)
Polecenia SQL generujące tabele, powstałe w procesie synchronizacji i exportu obiektów (WebRatio): -- Towar [ent4] create table "APP"."TOWAR" ( "OID" integer not null, "NAZWA_TOWARU" varchar(255), "KOD_TOWARU" varchar(255), "WAGA" double, primary key ("OID") ); -- Grupa_towaru [ent5] create table "APP"."GRUPA_TOWARU" ( "NAZWA_GRUPY" varchar(255), -- Opinia [ent6] create table "APP"."OPINIA" ( "TRESC_OPINII" clob(10000), "DATA" date,
23
Relacje – mapowanie modelu (6)
24
Atrybuty wielowartościowe i złożone
Relacje – mapowanie modelu (6) Atrybuty wielowartościowe i złożone Atrybut wielowartościowy jest to atrybut, która może przyjąć wiele wartości w ramach tej samej instancji encji Atrybut wielowartościowy jest reprezentowany jako osobna encja oraz relacja Przykład: osoba ma wiele adresów: Adres Wartość:string Osoba 1..N 1..1 Atrybut złożony jest to atrybut posiadający swoją wewnętrzną strukturę Atrybuty złożone są reprezentowane jako osobna encja oraz relacja Przykład: osoba posiada 1 lub więcej adresów: Adres Numer Ulica Miasto Województwo Kraj Osoba 1..N 1..1
25
Relacje z atrybutami, relacje N-arne
Relacja z atrybutami jest opisem cechy, która dotyczy par obiektów Relacja z atrybutami jest reprezentowana jako encja i dwie relacje Student 0..N 1..1 Kurs 1..1 0..N Ocena Wartość:integer Relacja N-arna jest to relacja wiążąca więcej niż dwie encje (N>2) Relacja N-arna jest reprezentowana jako encja oraz N relacji binarnych Przykład: dostawca dostarcza towar do odbiorcy: Dostawca 0..N 1..1 Odbiorca Towar Dostawa
26
Hierarchia IS-A Hierarchia IS-A jest specjalnym połączeniem pomiędzy dwiema encjami, które powoduje, że jedna z encji (podencja) jest szczególnym przypadkiem drugiej encji (nadencja) Podencja dziedziczy właściwości nadencji Hierarchia IS-A może mieć wiele poziomów Książka Powieść Biografia Thriller
27
Modelowanie kategoryzacji treści
Klasyfikacja może być modelowana na kilka sposobów 2 Książka Powieść Biografia Thriller 1 Książka Kategoria 3 Książka Podkategoria Kategoria 4 Książka Kategoria Podkategoria
28
Elementy pochodne (1) Model danych można rozszerzyć o dodatkowe informacje powstałe wskutek przetworzenia danych już istniejących. Elementy pochodne (encje, atrybuty, relacje) mogą być definiowane przy pomocy dowolnego języka umożliwiającego przenoszalność relacji oraz budowę wyrażeń zawierających atrybuty encji, np. język OCL (ang. Object Constraint Language), język OQL (ang. Object Query Language). Encja może uzyskać status pochodnej, gdy specjalizuje inną encję. Encję pochodną definiuje się jako perspektywę filtrującą rekordy nadencji, zawierającą wszystkie jej atrybuty oraz współdzielącą wychodzące z niej relacje. Typy relacji pochodnych (WebML): Relacja konkatenowana (ang. Imported Relationship) – relacja pomiędzy encjami zbudowana z istniejących relacji. Relacja specjalizująca (ang. New Relationship) – relacja powstała poprzez uszczegółowienie relacji istniejącej.
29
Elementy pochodne (2) Relację specjalizującą uzyskuje się dodając jeden lub więcej warunków logicznych identyfikujących instancje encji, których dotyczy relacja pochodna. Typy atrybutów pochodnych (WebML): Atrybut stały (ang. Constant Attribute) – wartość atrybutu jest stałą. Atrybut o prostym imporcie (ang. Simple Imported Attribute) – wartość atrybutu jest kopią wartości innego atrybutu innej encji. Dotyczy relacji jeden-do-wielu i jeden-do- jednego. Atrybut o złożonym imporcie (ang. Complex Imported Attribute) – wartość atrybutu jest kopią wartości innego atrybutu osiągalnego z encji relacją o dowolnej liczności i opcjonalnym warunku. Atrybut obliczany (ang. Calculated Attribute) – wartość atrybutu jest wynikiem formuły operującej na innych atrybutach oraz opcjonalnie zawierającej funkcje agregujące.
30
Elementy pochodne (3) Encja „promocja” z 2 atrybutami pochodnymi: średnia_ocena – atrybut obliczany, który przyjmuje wartość będącą średnią ocen przyznanych każdej z promocji przez użytkowników aplikacji. ilość_ocen – atrybut pochodny, który przyjmuje wartość będącą ilością ocen przyznanych każdej z promocji przez użytkowników aplikacji.
31
Przykład – katalog produktów
Ogólne wymagania: Firma X jest firmą meblową, która sprzedaje swoje produkty przez sklepy rozmieszczone po całym świecie. Firma X postanowiła stworzyć stronę internetową prezentującą katalog produktów w celu pozyskania nowych klientów. Strona ta powinna zawierać informacje dotyczące produktów, oferty specjalnej, zestawów produktów sprzedawanych po obniżonych cenach i sklepów. Ponadto produkty są powiązane z danymi technicznymi oraz mogą mieć kilka dużych obrazków.
32
Przykład – projektowanie modelu danych na podstawie wymagań (1)
Identyfikacja encji na podstawie wymagań stawianych aplikacji pod kątem istotnych pojęć (produkty, zestawy, dane techniczne, obrazki, sklepy) Nie wszystkie pojęcia muszą być modelowane (np. katalog = opublikowany zbiór produktów - nie musi być modelowany) Zestaw Sklep Produkt Dane techniczne Duży obrazek
33
Przykład – projektowanie modelu danych na podstawie wymagań (2)
Relacje oraz ich liczność pochodzą ze specyfikacji wymagań Zestawy zawierają produkty Produkty mają dane techniczne Produkty posiadają kilka dużych obrazków Zestaw Sklep Produkt Dane techniczne Duży obrazek O:N 1:N O:N 1:1 O:1 1:1
34
Przykład – projektowanie modelu danych na podstawie wymagań (3)
Atrybuty również pochodzą ze specyfikacji wymagań: Zestawy posiadają nazwę, cenę, miniaturkę itp. Produkty posiadają numeryczny kod, nazwę, cenę i opis Sklepy posiadają lokalizację, mapkę, adres strony domowej, adres itp. Zestaw Nazwa: string Cena: float Opis: text Zdjecie: blob Produkt Nazwa: string Kod: integer Cena: float Opis: text Miniaturka: blob Sklep Lokalizacja:string Mapa: blob URL: URL URL
35
Przykład – projektowanie modelu danych na podstawie szkicu
Analiza szkicu pozwala na wyróżnienie encji, atrybutów i relacji Produkt Nazwa: string Cena: float Opis: text Miniaturka: blob
36
Przykład – kompletny model danych (wersja początkowa)
Produkt Nazwa: string Kod: integer Cena: float Opis: text Miniaturka: blob Zestaw Nazwa: string Cena: float Opis: text Zdjęcie: blob Dane techniczne Kolory: blob Rozmiar: text Duży obrazek Opis: text Zdjęcie: blob Sklep Lokalizacja:string Mapa: blob URL: URL URL
37
Wzorce w modelu danych Sieć Gwiazda
Wzorzec - fragment modelu danych, typowy układ elementów modelu. Wzorce mogą być różnie ze sobą łączone. Sieć Hierarchia Encja2 Encja1 Encja3 Encja2 Encja1 Encja3 Gwiazda Encja2 Encja5 Encja4 Encja3 Encja1
38
Wzorce w modelu danych - Hierarchia
PodKat Kategoria Produkt E-katalog Entity2 Entity1 Entity3 Hierarchia kategoryzująca Użytkownik może przeglądać hierarchę z góry do dołu i z powrotem Często używana w aplikacjach e-commerce
39
Wzorce w modelu danych - Gwiazda
Rodzaj Gwarancja DużyObr DaneTech Produkt Przykład Firma X Można wyróżnić główny (centralny) obiekt Centralny obiekt jest otoczony przez zbiór powiązanych z nim obiektów Użytkownik może przejść z centralnego obiektu do obiektu powiązanego z nim i z powrotem Entity2 Entity5 Entity4 Entity3 Entity1
40
Wzorce w modelu danych - Sieć
Tech Rozwiązanie Produkt Strona wsparcia technicznego Entity2 Entity1 Entity3 Zbiór elementów do opublikowania Wszystkie elementy są jednakowo ważne Każdy obiekt ma wystarczająco szczegółowy opis Użytkownik może przejść z jednego obiektu do obiektów z nim powiązanych
41
Wzorce w modelu danych - Łączenie wzorców
Rzeczywiste strony internetowe są o wiele bardziej złożone Można rozwiązać wiele problemów łącząc ze sobą różne wzorce Obiekt3 Obiekt2 PodkatA1 KatA1 Obiekt1 PodkatB1 KatB1 Kat2 Kat3 Tech Solution SubCat Category Product Brand Country SolCat TechCat Hierarchia1 Hierarchia2 Sieć Hierarchia
42
Przykładowy model danych
43
Wprowadzenie do WebRatio
Model danych Wprowadzenie do WebRatio
44
Instalacja WebRatio Główne składniki pakietu WebRatio:
oprogramowanie WebRatio, serwer WWW Tomcat , serwer bazodanowy Apache Derby. WebRatio wymaga zainstalowanego Java JDK. Pakiet można pobrać ze strony: /.
45
Konfiguracja WebRatio
Po uruchomieniu, WebRatio wymaga jedynie podania ścieżki folderu, w którym będą przechowywane projekty. Dalej aplikacja nie wymaga konfiguracji i jest gotowa do pracy.
46
WebRatio – widok po uruchomieniu
Menadżer projektu i plików Obszar roboczy Właściwości obiektu i podgląd
47
WebRatio - tworzenie nowego projektu
Aby utworzyć nowy projekt, wchodzimy w menu File->new, i wybieramy 'Web Project‘
48
WebRatio – tworzenie pierwszej aplikacji (1)
Podajemy nazwę projektu (oraz możemy skonfigurować połączenie z bazą danych. Nie jest ono wymagane do stworzenia modelu danych. Jednak przydatną funkcją WebRatio, jest wygodna synchronizacja modelu z bazą danych a do tego konfiguracja połączenia jest wymagana). Naciskamy 'Finish'.
49
WebRatio – tworzenie pierwszej aplikacji (2)
Tworzenie nowego widoku strony (Site view) – opcja Add Site View (klikając prawym przyciskiem na obszarze roboczym) 1 2 3
50
WebRatio – tworzenie pierwszej aplikacji (3)
Dodanie nowej strony - wybranie komponentu Page, postawienie go na obszarze roboczym i wpisanie jej nazwy. 1 2 Ustawienia komponentu znajdują się w oknie Properties (po jego zaznaczeniu).
51
WebRatio – tworzenie pierwszej aplikacji (4)
Aplikacja będzie wyświetlać informację o firmie – należy dodać komponent wyświetlający tekst: Multi Message Unit Należy umieścić go wewnątrz utworzonej strony (Page). W okienku Properties klikamy na ikonie Edit obok Message Text i wprowadzamy tekst do wyświetlenia. 2 1 3 4
52
WebRatio – tworzenie pierwszej aplikacji (5)
Należy wygenerować projekt - klikamy na ikonkę Generate Full Web Project. Uruchamiamy serwer Tomcat (na jeden ze sposobów): W przeglądarce wpisujemy adres
53
WebRatio – tworzenie pierwszej aplikacji (6)
Widok strony „Informacje o firmie” w przeglądarce.
54
WebRatio – aplikacja bazodanowa
W celu stworzenia aplikacji internetowej korzystającej z bazy danych należy: stworzyć model danych, tworzyć bazę na podstawie modelu danych, stworzyć stronę zapewniającą dostęp do danych. Przykład: Tworzenie bazy danych z listą pracowników firmy IBM
55
WebRatio – tworzenie modelu danych (1)
W zakładce Data Model wybieramy Entity i klikamy na obszarze roboczym. Nadajemy nazwę encji: Pracownicy. 2 3 1
56
WebRatio – tworzenie modelu danych (2)
Dodawanie atrybutów - klikamy prawym przyciskiem myszy na encji, do której chcemy dodać atrybuty i wybieramy Add Attribute. Dobieramy typ atrybutów (danych). 1 2
57
WebRatio – tworzenie bazy danych (1)
Po stworzeniu modelu, tworzymy bazę danych, w której będą przechowywane dane. Klikamy prawym klawiszem myszy w obszarze roboczym i wybieramy Add Database. Wpisujemy nazwę. 2 1
58
WebRatio – tworzenie bazy danych (2)
Po zaznaczeniu bazy, w oknie Properties wprowadzamy ustawienia dla bazy danych (w tym przypadku baza Apache Derby): Type, URL, Username, Password: 1 2
59
WebRatio – tworzenie bazy danych (3)
Po wprowadzeniu danych należy sprawdzić ich poprawność – opcja Refresh (prawym przyciskiem na nazwie bazy). Jeżeli jest OK, obok nazwy bazy pojawi się zielony znaczek. 1 3 Wybieramy APP. 2 4
60
WebRatio – tworzenie bazy danych (4)
Po poprawnym połączeniu z bazą należy ją zsynchronizować ze stworzonym wcześniej modelem danych Klikamy na bazie i wybieramy opcję Synchronize. Pokaże się nowe okno, klikamy przycisk Export All Objects, następnie next oraz Finish. 1 3 2 Baza została utworzona 4
61
Model danych - przykład
Wypożyczalnia filmów – tworzenie modelu danych
62
Model danych – tworzenie projektu i połączenie z bazą danych
Tworzenie nowego projektu Web – wypozyczalnia_filmow Utworzenie połączenia z bazą danych – sprawdzenie poprawności połączenia
63
Model danych – widok defaultowego modelu danych
Widok po utworzeniu projektu Widok strony z defaultowym modelem danych
64
Model danych – identyfikacja encji (wypożyczalnia filmów)
Założenia: Przechowywanie informacji o kolekcjach filmów (aktorzy, gatunek, stan filmu, właściciel, wypożyczenia). Tabele User, Aktor i Gatunek będą zawierać atrybut Ilość filmów, ma on zawierać aktualną ilość filmów odpowiednio: posiadanych przez danego właściciela, w którym występuje dany aktor, z danego gatunku. Identyfikacja encji
65
Model danych – budowa modelu danych
Tworzenie relacji Dodawanie atrybutów (prawy przycisk myszy) Właściwości relacji
66
Model danych – atrybuty pochodne (1)
Atrybut ilosc_filmow w każdej chwili powinien zawierać aktualną ilość filmów. Model danych w Webratio udostępnia narzędzie do automatycznego definiowania kodu SQL programującego odpowiednio silnik bazy danych tak, aby obsługiwał atrybuty pochodne. Oznaczenie atrybutu ilosc_filmow jako pochodny (derived).
67
Model danych – atrybuty pochodne (2)
Kliknięcie na ikonę przy właściwości Derivation
68
Model danych – atrybuty pochodne (3)
Ustawienie atrybutu jako pochodnego jest oznaczane przez zapisanie jego nazwy kursywą
69
Model danych – synchronizacja bazy danych
Export All Objects'
70
Plik z poleceniami SQL:
Model danych – plik SQL Po zakończeniu procesu synchronizacji baza danych została wygenerowana. Plik z poleceniami SQL:
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.