Wykad 1 PROJEKTOWANIE APLIKACJI INTERNETOWYCH q Prowadzcy wykady

  • Slides: 19
Download presentation
Wykład 1 PROJEKTOWANIE APLIKACJI INTERNETOWYCH q Prowadzący wykłady: dr inż. Krzysztof Michalak q Liczba

Wykład 1 PROJEKTOWANIE APLIKACJI INTERNETOWYCH q Prowadzący wykłady: dr inż. Krzysztof Michalak q Liczba godzin wykładów: 15 q Liczba godzin laboratoriów: 15 q Liczba godzin projektu: q Forma zaliczenia: 15 test Projektowanie aplikacji internetowych 1

Wykład 1 PROJEKTOWANIE APLIKACJI INTERNETOWYCH q Prowadzący wykłady: dr inż. Krzysztof Michalak q Liczba

Wykład 1 PROJEKTOWANIE APLIKACJI INTERNETOWYCH q Prowadzący wykłady: dr inż. Krzysztof Michalak q Liczba godzin wykładów: 10 q. Liczba godzin projektu: 14 q Forma zaliczenia: test Projektowanie aplikacji internetowych 2

Projektowanie aplikacji internetowych (1) Plan zajęć projektowych 1) Omówienie zasad realizacji zajęć projektowych. Omówienie

Projektowanie aplikacji internetowych (1) Plan zajęć projektowych 1) Omówienie zasad realizacji zajęć projektowych. Omówienie tematów prac zespołowych (aplikacji internetowych). 2) Specyfikacja wymagań. Cel, zakres, funkcjonalność projektowanej aplikacji. Specyfikacja grup użytkowników. 3) Specyfikacja przypadków użycia. Diagramy przypadków użycia, scenariusze. 4) Specyfikacja słownika obiektów. Specyfikacja widoków aplikacji. Opis wymagań niefunkcjonalnych. Szkice wyglądu aplikacji (makiety). 5) Model danych (Web. Ratio). 6 -7) Model hipertekstu (Web. Ratio), oddanie projektu, zaliczenie. 8) Oddanie projektu, zaliczenie. Projektowanie aplikacji internetowych 3

Projektowanie aplikacji internetowych (2) Zaliczenie zajęć projektowych q Realizowanie zadań bieżących na zajęciach (monitorowanie

Projektowanie aplikacji internetowych (2) Zaliczenie zajęć projektowych q Realizowanie zadań bieżących na zajęciach (monitorowanie postępu prac w określonych odstępach czasu - 2 tygodniowe) q Projekt aplikacji internetowej (dokumentacja projektowa), zgodnie z ustalonymi wytycznymi q Obecności na zajęciach (możliwa jedna nieobecność) Projektowanie aplikacji internetowych 4

Projektowanie aplikacji internetowych Plan wykładów 1. Sprawy organizacyjne (W, L, P). Omówienie programu wykładów,

Projektowanie aplikacji internetowych Plan wykładów 1. Sprawy organizacyjne (W, L, P). Omówienie programu wykładów, zaliczenia przedmiotu. Aplikacje internetowe. 2. Projektowanie aplikacji internetowych sterowane modelami. 3. Projekt aplikacji internetowej, metodyka Web. ML (IFML ), proces tworzenia modelu danych, Web. Ratio. 4. Metodyka Web. ML (IFML ), proces tworzenia modelu hipertekstu, prezentacji, Web. Ratio. 5. Inne metodyki projektowania aplikacji internetowych. 6. Projektowanie (dużych) skalowalnych aplikacji internetowych. 7. Zaliczenie wykładów (test). 8. Dodatkowe zaliczenia, poprawy. Projektowanie aplikacji internetowych 7

Projektowanie aplikacji internetowych Wykład 1 Aplikacje internetowe q Aplikacja internetowa q Nurty i trendy

Projektowanie aplikacji internetowych Wykład 1 Aplikacje internetowe q Aplikacja internetowa q Nurty i trendy wytwarzania aplikacji internetowych Projektowanie aplikacji internetowych 8

Aplikacja internetowa (1) Czym nie jest aplikacja internetowa: q nie jest stroną internetową, q

Aplikacja internetowa (1) Czym nie jest aplikacja internetowa: q nie jest stroną internetową, q nie jest aplikacją w rozumieniu typowego użytkownika systemu operacyjnego. Aplikacja internetowa ma pewne cechy witryny internetowej i autonomicznej aplikacji. Aplikacja internetowa, to program komputerowy, który pracuje na serwerze i komunikuje się poprzez sieć komputerową z hostem użytkownika komputera z wykorzystaniem przeglądarki internetowej użytkownika, będącego w takim przypadku interaktywnym klientem aplikacji internetowej. Przykłady: Projektowanie aplikacji internetowych 9

Aplikacja internetowa (2) Cechy aplikacji internetowej: q Aplikacja internetowa składa się zarówno z danych,

Aplikacja internetowa (2) Cechy aplikacji internetowej: q Aplikacja internetowa składa się zarówno z danych, jak i mechanizmu ich dostarczania do przeglądarki. q W aplikacji internetowej istnieje możliwość faktycznego oddzielania danych od warstwy prezentacji. q Aplikacje internetowe nie zawierają stron w rozumieniu znanym z witryn internetowych. q Aplikacja internetowa może oferować różnorodne funkcje, np. przeszukiwanie (na podstawie wpisywanych słów), liczba generowanych „stron internetowych" w praktyce może być nieograniczona. q Niewielki zbiór szablonów i logika generowania dynamicznej zawartości pozwala na tworzenie niezbędnych stron na bieżąco. Projektowanie aplikacji internetowych 10

Aplikacja internetowa (3) q Użytkownik aplikacji internetowej może mieć trudność w odróżnieniu aplikacji od

Aplikacja internetowa (3) q Użytkownik aplikacji internetowej może mieć trudność w odróżnieniu aplikacji od witryny internetowej. Wskazówką może być rozszerzenie pliku (nie zawsze). q Technologia AJAX rozszerzyła model interakcji z aplikacjami internetowymi. Model AJAX umożliwia wysyłanie modyfikacji danych w tle (bez konieczności przeładowywania stron) – podobnie jak w aplikacjach autonomicznych. Projektowanie aplikacji internetowych 11

Aplikacja internetowa (4) q Powolny rozwój charakteru aplikacji internetowych. q Rynek aplikacji internetowych ewoluuje

Aplikacja internetowa (4) q Powolny rozwój charakteru aplikacji internetowych. q Rynek aplikacji internetowych ewoluuje w kierunku produktów dostarczanych za pośrednictwem Internetu (połączenie cech rozwiązań autonomicznych i internetowych). q W aplikacjach internetowych dostęp do podstawowych danych uzyskujemy za pośrednictwem stron internetowych (pozostałe interfejsy mają raczej charakter uzupełniający). Projektowanie aplikacji internetowych 12

Aplikacje tradycyjne a internetowe Różnice pomiędzy aplikacjami internetowymi a tradycyjnymi: q Nawigacja – aplikacje

Aplikacje tradycyjne a internetowe Różnice pomiędzy aplikacjami internetowymi a tradycyjnymi: q Nawigacja – aplikacje internetowe mają zazwyczaj znacznie bogatszy i bardziej elastyczny model nawigacji; q Doświadczenie użytkowników – trudność definiowania założeń w stosunku do umiejętności użytkowników aplikacji internetowych; q Skalowalność - oszacowanie obciążenia systemów internetowych jest praktycznie niemożliwe - aplikacje internetowe mogą zwiększyć liczbę użytkowników w krótkim czasie; q Zmienność – funkcjonalność aplikacji internetowych, udostępniane dane podlegają częstszym zmianom niż w przypadku tradycyjnych aplikacji; q Interfejs użytkownika – technologie wytwarzania aplikacji internetowych dają mniejsze możliwości budowania interfejsu użytkownika, niż w przypadku tradycyjnych aplikacji. Projektowanie aplikacji internetowych 13

Kategorie aplikacji internetowych: q Aplikacje pełniące głównie funkcje informacyjne, np. portale internetowe, strony firmowe,

Kategorie aplikacji internetowych: q Aplikacje pełniące głównie funkcje informacyjne, np. portale internetowe, strony firmowe, itp. Przy projektowaniu takich aplikacji należy mieć jasny obraz struktury i rozmieszczenia danych. Nacisk jest położony na łatwość nawigacji i utrzymania aktualności udostępnianych danych. q Aplikacje udostępniające użytkownikowi pewną funkcjonalność (np. sklepy internetowe, wyszukiwarki, itp. Podstawowym zadaniem jest udostępnianie użytkownikowi konkretnych usług. Aplikacje korzystają z dużych zbiorów danych, które są zwykle bardziej uporządkowane. Główny nacisk podczas projektowania tego typu systemów powinien być położony na udostępnioną funkcjonalność oraz łatwy do niej dostęp. Projektowanie aplikacji internetowych 14

Nurty wytwarzania aplikacji internetowych (1) Dwie główne szkoły, metodyki wytwarzania oprogramowania: 1) z punktu

Nurty wytwarzania aplikacji internetowych (1) Dwie główne szkoły, metodyki wytwarzania oprogramowania: 1) z punktu widzenia programisty: q wykorzystywanie gotowych bibliotek, wzorców projektowych, frameworków, szablonów aplikacji, itp. q wymagania stawiane osobie tworzącej oprogramowanie są dosyć wysokie q programista ma pełną władzę nad kodem aplikacji. Projektowanie aplikacji internetowych 15

Nurty wytwarzania aplikacji internetowych (2) 2) z punktu widzenia projektanta: q wykorzystywanie zalet Inżynierii

Nurty wytwarzania aplikacji internetowych (2) 2) z punktu widzenia projektanta: q wykorzystywanie zalet Inżynierii Sterowanej Modelami q modele złożone z konfigurowalnych komponentów tworzą wyższą warstwę abstrakcji (skupianie się na zasadzie działania aplikacji, jej funkcjonalności, układzie treści, sposobie nawigacji , przepływie informacji pomiędzy jej modułami q poszczególne komponenty mogą być traktowane jako „czarne skrzynki” q model aplikacji stanowi jej aktualną dokumentację q wynikowy kod aplikacji zazwyczaj nie jest w pełni optymalny, czasami potrzeba korzystania z innych metodyk (niestandardowa funkcjonalność) Projektowanie aplikacji internetowych 16

Specyfikacja wymagań – uczestnicy procesu tworzenia aplikacji internetowej Specyfikacja wymagań (określenie domeny oraz ogólnego

Specyfikacja wymagań – uczestnicy procesu tworzenia aplikacji internetowej Specyfikacja wymagań (określenie domeny oraz ogólnego obrazu aplikacji): q zbieranie informacji o aplikacji q analizy zebranych informacji UCZESTNICY PROCESU TWORZENIA APLIKACJI INTERNETOWEJ (ROLE): 1. Analityk – odpowiedzialny za zbieranie wymagań biznesowych, wstępne opracowanie (interpretacja i opis celów długofalowych) 2. Projektant baz danych – odpowiedzialny za opracowanie modelu danych aplikacji 3. Architekt aplikacji – odpowiedzialny za implementację funkcjonalności aplikacji 4. Grafik – odpowiedzialny warstwę prezentacji projektowanej aplikacji. 5. Administrator – odpowiedzialny za wdrożenie aplikacji, administrację, konserwację. Projektowanie aplikacji internetowych 17

Specyfikacja wymagań – formułowanie wymagań funkcjonalnych Wymagania funkcjonalne określają funkcjonalność aplikacji i reguły dostępu

Specyfikacja wymagań – formułowanie wymagań funkcjonalnych Wymagania funkcjonalne określają funkcjonalność aplikacji i reguły dostępu do niej. Wyniki procesu specyfikacji wymagań funkcjonalnych zazwyczaj zawierają: 1. Reguły dostępu do funkcjonalności aplikacji - opis aktorów, ich uprawnień, rysunek ich hierarchię 2. Scenariusze interakcji aktorów z aplikacją – opis funkcjonalności aplikacji, sposobu jej realizacji, podział na moduły, znaczenie aktorów (diagram przypadków użycia, scenariusze użycia) 3. Dystrybucję przypadków użycia – opis rozmieszczenia treści i funkcjonalności w ramach modułów, okien lub stron aplikacji (notacje graficzne) 4. Spis obiektów w dziedzinie aplikacji – opis reprezentacji oraz charakterystyka obiektów świata rzeczywistego, na których operuje aplikacja 5. Szkic interfejsu użytkownika – zestandaryzowane dla grup stron/okien aplikacji rozmieszczenie pewnych elementów interfejsu użytkownika. Projektowanie aplikacji internetowych 18

Specyfikacja wymagań – formułowanie wymagań niefunkcjonalnych Wymagania niefunkcjonalne opisują kwestie implementacyjne tworzonej aplikacji (architekturę

Specyfikacja wymagań – formułowanie wymagań niefunkcjonalnych Wymagania niefunkcjonalne opisują kwestie implementacyjne tworzonej aplikacji (architekturę sprzętową, programistyczną, rozmieszczenie modułów aplikacji oraz zagadnienia komunikacji). Wymagania niefunkcjonalne obejmują: 1. Użyteczność – spójność interfejsu aplikacji, przyjazność użytkownikowi, sposób realizacji funkcjonalności, dokumentacji. 2. Wydajność – sposób wykorzystania zasobów przez aplikację uwzględniający jej obciążenie (złożoność wykonywanych zadań, ilość zadań do wykonania) 3. Dostępność – sposób wykorzystania mechanizmów zapewniających ciągłość działania aplikacji (analiza dopuszczalnej częstości błędów i awarii) 4. Skalowalność – sposób zwiększenia wydajności przy zwiększonym obciążeniu 5. Bezpieczeństwo – mechanizmy ochrony integralności, trwałości, poufności przetwarzanych informacji. Projektowanie aplikacji internetowych 19

Technologie w procesie tworzenia aplikacji internetowych Technologie wykorzystywane w procesie tworzenia aplikacji internetowych: 1)

Technologie w procesie tworzenia aplikacji internetowych Technologie wykorzystywane w procesie tworzenia aplikacji internetowych: 1) 2) 3) 4) 5) 6) 7) 8) SGML i HTML XML i XSL CSS JAVASCRIPT i AJAX TECHNOLOGIE DOSTĘPU DO DANYCH – język SQL JĘZYKI PROGRAMOWANIA DZIAŁAJĄCE PO STRONIE SERWERA SOA UML Projektowanie aplikacji internetowych 20

Trendy w tworzeniu aplikacji internetowych Wymagania stawiane współczesnym aplikacjom internetowym: 1) NACISK NA SZYBKOŚĆ

Trendy w tworzeniu aplikacji internetowych Wymagania stawiane współczesnym aplikacjom internetowym: 1) NACISK NA SZYBKOŚĆ APLIKACJI WEB Dostarczanie informacji bez opóźnień, w sposób jak najbardziej przypominający korzystanie z desktopowej aplikacji. 2) NACISK NA NOWE TECHNOLOGIE Wykorzystywanie HTML 5 i CSS 3 3) NACISK NA MOBILNOŚĆ Promowaną obecnie praktyką jest „reagujące projektowanie web” - dopasowanie się wyglądu strony web do dowolnej rozdzielczości ekranu (skalowanie i przemodelowanie elementów składowych strony, aby najlepiej pasowały do danego kształtu i rozmiarów. Projektowanie aplikacji internetowych 21