Zadanie 6 Zastosowanie w projektowaniu
Celem zajęć jest sporządzenie częściowego projektu serwisu internetowego. Modelując, należy przyjąć założenie, że projektujecie Państwo serwis wzorowany na istniejącym serwisie, ale korzystając ze znanej z innych zajęć technologii (np.: PHP + MySQL).
O ile analiza wymagań specyfikuje, co system ma robić, jakie dane i jakie obiekty przetwarzać, projekt wskazuje jak to ma być zrealizowane, z jakiej technologii i z jakich bibliotek należy skorzystać.
Architekturę aplikacji internetowych opisuje się często, jako trójwarstwową:
Model (warstwa składowania danych) obejmuje bazie danych (lub inną formę zarządzania danymi)
Widok (warstwa prezentacji) obejmuje obiekty realizujące interfejs graficzny (okna dialogowe, strony
HTML, itd.)
Kontroler (warstwa przetwarzania) reaguje na polecenia płynące z obiektów warstwy widoku, przetwarza je i wysyła zlecenia do warstwy modelu.
Sporządzając projekt będziemy więc definiować obiekty typowe dla każdej warstwy:
Składowe projektu
Model
Baza danych może być potraktowana jako klasa , której atrybutami są tabele, natomiast metodami zapytania (kwerendy).
Zazwyczaj dostęp do bazy danych lub jej tabeli jest “opakowany” przez komponent oprogramowania zapewniający typow funkcje: dodawanie, usuwanie, modyfikację i wyszukiwanie elementów.
Widok
Elementami widoku klasy stron HTML.
Atrybutami stron są wyświetlane na nich dane (obiekty) oraz pola edycyjne, listy, pola ukryte.
Użytkownik dokonując interakcji za pośrednictwem przeglądarki woła metody obiektu. W większości przypadków metody te przekazują sterowanie do skryptów, ale też mogą być metody implementowane wewnętrznie, np.: przez JavaScript.
Kreacja obiektu następuje najczęściej w wyniku wywołania skryptu, ale mogą też istnieć strony statyczne (np.: strona logowania serwisu) odpowiadające obiektom globalnym
Destrukcja obiektu jest dokonywana niejawnie przez przeglądarkę
Definicja klasy, czyli przepis jak utworzyć konkretną stronę zapisana jest w odpowiednim skrypcie odpowiedzialnym za jej generację.
Aplikacje internetowe często mają złożone widoki, np.: zawierają ramki złożone ze stron podrzędnych (kompozycja).
Kontroler
Elementami tej warstwy są skrypty.
Mogą mieć jedną domyślną metodę wywoływaną przez zlecenie get lub post. Rozróżnienie metod może nastąpić na podstawie parametru typu action. Wówczas nazwy metod powinny odpowiadać wartościom tego parametru.
Metody skryptu mogą mieć parametry. Powinny odpowiadać polom stron, z których są wołane.
Skrypty mogą korzystać z funkcji innych modułów
Skrypty mogą być traktowane jako obiekty globalne, o czasie życia równym czasowi istnienia systemu
Do wykonania
Należy wybrać istniejący serwis internetowy i zamodelować jego fragment:
Analiza dziedziny: zidentyfikować klasy przetwarzanych obiektów i relacje pomiędzy nimi (w ograniczonym zakresie, niezbędnym do zrozumienia następnych diagramów)
Projekt: zidentyfikować klasy wchodzące w skład warstw aplikacji (strony
HTML, skrypty, baza danych) w zakresie niezbędnym do realizacji punktu 3
Projekt: sporządzić jeden diagram sekwencji przedstawiający wybraną funkcje serwisu (ale nie logowania).
W sprawozdaniu proszę dodać zrzuty ekranu dla stron
HTML (wraz z identyfikatorem obiektu). Należy to potraktować jako projekt interfejsu.
W miarę możliwości proszę starać się wygenerować alternatywne scenariusze pojawiające się w przypadku błędnych danych wprowadzonych przez użytkownika.
Wybierając funkcję serwisu do zamodelowania należy w miarę możliwości wybrać taką, która jest wykonywana w kilku etapach.
Przykładowe zadania
Licytacja towaru na Allegro
Wystawianie komentarza na Allegro
Zakup w sklepie internetowym (dodanie do koszyka)
Zakup w sklepie internetowym (złożenie zamówienia)
Wystawienie komentarza do artykułu w serwisie typu onet.pl
Publikacja materiałów na forum internetowym
Wyszukiwanie ogłoszeń w serwisie typu gratka.pl
Wysyłanie SMS za pośrednictwem bramki
Przykład 1 Logowanie
Klasy biorące udział w realizacji przypadku użycia
Diagram sekwencji
Przykład 2 Wyszukiwanie osób
Klasy biorące udział w realizacji przypadku użycia
Diagram sekwencji
Interfejs użytkownika (projekt)
Strona wyszukiwania
Wyniki wyszukiwania
Szczegóły