Projektowanie architektury systemu internetowego

Podobne dokumenty
Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Analiza i projektowanie aplikacji Java

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie logiki aplikacji

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Wybrane działy Informatyki Stosowanej

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie struktury danych

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Wybrane działy Informatyki Stosowanej

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Projektowanie warstwy danych

Jarosław Kuchta. Projektowanie Aplikacji Internetowych. Wprowadzenie

Szczegółowy opis zamówienia:

Pojęcie systemu baz danych

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Wybrane działy Informatyki Stosowanej

EJB 3.0 (Enterprise JavaBeans 3.0)

DLA SEKTORA INFORMATYCZNEGO W POLSCE

1 Wprowadzenie do J2EE

Dokumentacja aplikacji Szachy online

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Projektowanie interakcji. Jarosław Kuchta

Diagramy interakcji. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Czym jest jpalio? jpalio jpalio jpalio jpalio jpalio jpalio jpalio jpalio

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Wstęp. Historia i przykłady przetwarzania współbieżnego, równoległego i rozproszonego. Przetwarzanie współbieżne, równoległe i rozproszone

Szczegółowy harmonogram rzeczowy realizacji prac systemu B2B

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

DIAGRAMY IMPLEMENTACYJNE

Programowanie obiektowe

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Serwery Statefull i Stateless

Usługi analityczne budowa kostki analitycznej Część pierwsza.

Serwery aplikacji. mgr Radosław Matusik. Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego radmat radmat@math.uni.lodz.

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Projektowanie i implementacja wysokowydajnych aplikacji w języku

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Opis Architektury Systemu Galileo

Zaawansowane aplikacje internetowe - laboratorium

Piotr Bubacz Cloud Computing

Problemy optymalizacji, rozbudowy i integracji systemu Edu wspomagającego e-nauczanie i e-uczenie się w PJWSTK

Wykład 1 Inżynieria Oprogramowania

Język UML w modelowaniu systemów informatycznych

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia

Spis wzorców. Działania użytkownika Strona 147 Obsługa większości Działań użytkownika za pomocą kodu JavaScript przy użyciu metod obsługi zdarzeń.

Przesłanki powstania książki... xvi Dla kogo przeznaczona jest ta książka?... xvi Co znajdziemy wewnątrz książki?... xvii

Przetwarzanie danych w chmurze

Zastosowanie Oracle Designer/2000 do projektowania i implementacji aplikacji WWW

76.Struktura oprogramowania rozproszonego.

Licencjonowanie serwerów do zarządzania wydajnością. Office Web Apps Server

TWÓJ BIZNES. Nasz Obieg Dokumentów

System Obsługi Wniosków

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Aplikacje WWW Wprowadzenie

PHP: bazy danych, SQL, AJAX i JSON

bo od menedżera wymaga się perfekcji ANKIETY ONLINE W SYSTEMIE BUSINESS NAVIGATOR

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

INTERNET - Wrocław Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

Tworzenie aplikacji bazodanowych

Systemy GIS Systemy baz danych

Zagadnienia projektowania aplikacji J2EE

Modelowanie przypadków użycia. Jarosław Kuchta Projektowanie Aplikacji Internetowych

edziennik Ustaw Opis architektury

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Podstawy projektowania aplikacji biznesowych w systemie SAP R/3

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

Leonard G. Lobel Eric D. Boyd. Azure SQL Database Krok po kroku. Microsoft. Przekład: Marek Włodarz. APN Promise, Warszawa 2014

Programowanie Komponentowe WebAPI

Tworzenie wersji demonstracyjnych enova365 na potrzeby prezentacji u Klienta

System Kancelaris. Zdalny dostęp do danych

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

WPROWADZENIE DO UML-a

Praca magisterska Jakub Reczycki. Opiekun : dr inż. Jacek Rumiński. Katedra Inżynierii Biomedycznej Wydział ETI Politechnika Gdańska

Wybrane działy Informatyki Stosowanej

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Założenia projektowe dla zapytania ofertowego EAK_ZA_01/2015

Oferta szkoleniowa Yosi.pl 2012/2013

Transkrypt:

Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego

Zagadnienia Architektura wielowarstwowa a architektura wielopienna Typy architektury systemu internetowego Rozbudowana architektura wielowarstwowa Przykładowa struktura klas z podziałem na warstwy Zawartość projektu architektury systemu Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 2

Architektura wielowarstwowa a architektura wielopienna Warstwa prezentacji Warstwa logiki prezentacyjnej Warstwa logiki aplikacyjnej klient Warstwa prezentacji serwer aplikacji Warstwa logiki prezentacyjnej serwer danych Warstwa dostępu do danych Warstwa dostępu do danych Warstwa logiki prezentacyjnej Warstwa logiki aplikacyjnej Warstwa bazy danych Warstwa bazy danych architektura wielowarstwowa architektura wielopienna Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 3

Kryteria wyboru architektury (wybór warstw) Wydzielona warstwa Prezentacji Logiki prezentacji po stronie klienta Logiki prezentacji po stronie serwera Logiki aplikacji Logiki dostępu do danych Warstwa danych Kiedy trzeba stosować? W każdej aplikacji interaktywnej obsługującej użytkowników W aplikacji interaktywnej, gdy trzeba zapewnić walidację danych lub obsługę zdarzeń bez komunikacji z serwerem Gdy trzeba zapewnić walidację przychodzących danych lub zaawansowane filtrowanie żądań Gdy trzeba przetwarzać dane lub zmieniać stan aplikacji. Gdy dane są złożone. Gdy stosuje się przetwarzanie obiektowe. Gdy trzeba podzielić dane na kilka serwerów, gdy trzeba zapewnić zróżnicowany dostęp do danych w zależności od stanu aplikacji, gdy trzeba przyspieszyć dostęp do złożonych danych przez ich buforowanie W każdej aplikacji wykorzystującej bazy danych Kiedy można nie stosować? W aplikacji usługowej, gdy klientami są inne serwery Gdy wystarczy podstawowa walidacja lub interakcja zapewniana przez framework Gdy wystarczy walidacja lub filtrowanie zapewniane przez framework W aplikacji wyłącznie rejestrującej dane, albo gdy wystarczy proste przetwarzanie danych przez kwerendy SQL Gdy dane są proste i wystarczy wydajność serwera SQL. Gdy serwer SQL zapewnia wystarczającą ochronę dostępu do danych. Gdy aplikacja korzysta tylko z usług innych serwerów Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 4

Typy architektury systemu internetowego Architektura bazująca na serwerze Architektura bazująca na kliencie Architektura klientserwer z "cienkim" klientem z "grubym" klientem Warstwa prezentacji Warstwa logiki prezentacyjnej Warstwa logiki aplikacyjnej Warstwa dostępu do danych Warstwa bazy danych Klient Serwer Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 5

Architektura bazująca na serwerze Serwer mainframe przechowywanie danych, cała logika Klient terminal tylko interfejs użytkownika Komunikacja Remote Desktop Protocol Prosta w projektowaniu Duże prawdopodobieństwo przeciążenia serwera Bardzo kosztowna modernizacja RDP Serwer Terminal Warstwa prezentacji Logika prezentacyjna Logika aplikacyjna Logika dostępu do danych Baza danych Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 6

Architektura bazująca na kliencie Serwer tylko przechowuje dane wspólne dla wielu klientów ew. umożliwia pobieranie aplikacji Łatwe projektowanie Możliwe przeciążenie serwera Przy dostarczaniu aplikacji z serwera problem z zapewnieniem bezpieczeństwa klientów (wiarygodność serwera) Klient Warstwa prezentacji Logika prezentacyjna Logika aplikacyjna Serwer Logika dostępu do danych Baza danych Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 7

Architektura klient-serwer Logika aplikacyjna może być dzielona między klienta i serwer Łatwo skalowalna Możliwość stosowania różnych typów klientów i serwerów 1000 x niższy koszt niż architektury bazującej na serwerze przy tym samym poziomie wydajności Ograniczona złożoność aplikacji Odmiany: cienki klient gruby klient Klient Warstwa prezentacji Logika prezentacyjna Serwer Logika aplikacyjna Logika dostępu do danych Baza danych Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 8

Odmiany architektury klient-serwer Cienki klient Cała logika po stronie serwera Klient tylko korzysta z przeglądarki Logika aplikacji zazwyczaj prosta (aplikacje oparte na bazie danych) Zagrożenie przeciążenia serwera Gruby klient Logika aplikacyjna na kliencie Aplikacja pobierana z serwera Aplikacja wykonywana w: środowisku przeglądarki (ograniczenia środowiska) środowisku systemu operacyjnego Zaawansowana logika aplikacji (modelowanie, grafika, gry) Zagrożenie bezpieczeństwa klienta (trojany) Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 9

Architektura dwu-, trój- i wielopienna Architektura dwupienna (two-tiered) cała logika aplikacyjna u klienta lub na serwerze, serwer zawiera bazę danych Architektura trójpienna (three-tiered) logika aplikacyjna na serwerze aplikacji, baza danych na osobnym serwerze Architektura wielopienna (n-tiered) wiele serwerów aplikacji i/lub wiele serwerów bazy danych Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 10

Architektura dwupienna (two-tiered) Tylko jedna warstwa serwerowa (z bazą danych) Stosunkowo łatwe rozwiązanie Duże prawdopodobieństwo przeciążenia serwera Klient Warstwa prezentacji Serwer Logika aplikacyjna Logika dostępu do danych Baza danych Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 11

Architektura trójpienna (three-tiered) Logika dostępu do danych wydzielona do osobnego serwera Możliwość skalowania (wiele serwerów aplikacji) Klient Warstwa prezentacji Serwer(y) aplikacji Logika aplikacyjna Serwer danych Logika dostępu do danych Baza danych Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 12

Architektura wielopienna (multitiered) Osobny serwer WWW obsługuje żądania HTTP na RPC Logika aplikacyjna wydzielona do osobnego serwera Dane przechowywane na osobnym serwerze Możliwość skalowania (wiele serwerów WWW i aplikacji) Zwiększone bezpieczeństwo (dodatkowe zapory) Klient Warstwa prezentacji HTTP RPC Serwer(y) WWW Serwer(y) aplikacji Logika prezentacji Logika aplikacyjna Serwer danych Logika dostępu do danych Baza danych Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 13

Architektury alternatywne (1) Przetwarzanie w chmurze Warstwa bazy danych hostowana na serwerach zewnętrznych (potrzebna warstwa dostępu do danych po stronie serwera aplikacji). Możliwość hostowania aplikacji na serwerze firmy zewnętrznej. Ew. wykorzystanie usług webowych firm zewnętrznych w warstwie aplikacji. Zalety zmniejszenie kosztów i problemów z konserwacją sprzętu Wada powierzenie czasami poufnych danych firmie zewnętrznej Architektura typu peer-to-peer Komunikacja między równoważnymi węzłami sieci. Każdy klient jest jednocześnie serwerem dla innych klientów. Rola serwera ograniczona do dostarczania aplikacji i kojarzenia klientów ze sobą. Stosowana: przy ograniczeniach prawnych przesyłania danych (torrenty) przy ogromnych danych, które nie są przetwarzane, a tylko przesyłane i wymagałyby potężnego centrum danych w aplikacjach mobilnych (sieci społecznościowe, płatności P2P) Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 14

Architektury alternatywne (2) Architektura typu grid Rozbudowana i mocno zrównoleglona warstwa aplikacji Wiele serwerów aplikacji i/lub usług komunikujących się ze sobą Stosowana: gdy przetwarzanie danych wymaga dużej mocy obliczeniowej gdy przetwarzanie wymaga rozproszenia geograficznego gdy wymagana jest wysoka niezawodność i/lub dostępność serwerów Przetwarzanie w modelu volunteer computing Odwrócenie ról klient-serwer Klient, który się zgłasza do serwera, dostaje zadanie obliczeniowe, przetwarza dane i odsyła do serwera. Stosowane do rozproszenia dużych obliczeń na wiele (miliony?) komputerów. Wykorzystuje w tle dostępną moc obliczeniową klientów. Problemy z bezpieczeństwem klientów. Problemy z niezawodnością obliczeń. Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 15

Rozbudowana architektura wielowarstwowa Warstwa prezentacji Warstwa logiki prezentacyjnej Warstwa logiki aplikacyjnej Warstwa usług Warstwa zarządzania danymi Warstwa przechowywania danych (Pseudo)warstwa podstawowa Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 16

(Pseudo)warstwa podstawowa (Foundation) Pakiet Foundation obejmuje klasy wykorzystywane bezpośrednio we wszystkich innych warstwach: definicje podstawowych typów danych (np. typy wyliczeniowe), definicje podstawowych struktury danych (np. listy, drzewa, stosy), użyteczne typy abstrakcyjne (data, czas, waluta) operacje dodatkowe, które nie są dostarczane przez biblioteki Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 17

Warstwa przechowywania danych (Data Layer) Warstwa przechowywania danych (Data Layer) zawiera komponenty odpowiedzialne za przechowywanie (zapisywanie i odczytywanie) danych: bazy danych (tabele, kwerendy) repozytoria plików Wymaga określenia: które klasy są trwałe (dane przechowywane pomiędzy uruchomieniami serwera) jaki sposób przechowywania będzie stosowany (baza danych, pliki) jaki typ bazy danych będzie stosowany (relacyjna, obiektowa) schematu bazy danych (struktura tabel i relacji) Typowa implementacja: serwer SQL Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 18

Warstwa zarządzania danymi (Data Management Layer) Warstwa zarządzania danymi (Data Management Layer) zawiera klasy odpowiedzialne za dostęp do przechowywanych danych. Umożliwia: ochronę danych przed nieupoważnionym dostępem współdzielenie danych między wieloma użytkownikami walidację wprowadzanych danych synchronizację baz danych (w przypadku rozproszonej b.d.) Typowa implementacja Java, C# Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 19

Warstwa usług (Service Layer) Warstwa usług (Services Layer) jest typowa dla systemów rozproszonych, w których wiele różnych aplikacji może wykonywać wiele wspólnych operacji biznesowych. Zawiera klasy (funkcje) grupujące operacje biznesowe na danych Udostępnia jednolity interfejs dla aplikacji klienckich Typowa implementacja Java, C# Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 20

Warstwa logiki aplikacji (Application Logic Layer) Warstwa logiki aplikacji (Application Logic Layer) zwana również warstwą biznesową (Business Layer) zawiera klasy realizujące operacje wymagane w konkretnej aplikacji wynikające z analizy wymagań Może występować po stronie klienta (gruby klient) Gdy występuje po stronie serwera, to często jest zintegrowana w warstwą usług Typowa implementacja: Java, ASP.NET Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 21

Warstwa logiki prezentacji (Presentation Logic Layer) Warstwa logiki prezentacji (Presentation Logic Layer) zawiera funkcje obsługi interfejsu użytkownika. Może występować po stronie klienta i po stronie serwera. Po stronie klienta: Umożliwia obsługę zdarzeń w formularzach zmianę stanu pewnych kontrolek po zmianie stanu innych kontrolek (np. wypełnienie zbioru pól adres dostawy na podstawie pól adres zamieszkania przy kliknięciu przycisku dostawa na adres zamieszkania ). Zapewnia walidację wprowadzanych danych i powstrzymuje klienta przed wysłaniem niewypełnionych formularzy. Typowa implementacja JavaScript Po stronie serwera: Tłumaczy żądania z HTTP na wywołania procedur w warstwie logiki aplikacji. Generuje odpowiedzi HTTP (strony HTML) na podstawie wyników z warstwy aplikacji. Typowa implementacja PHP, Java, ASP.NET Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 22

Warstwa prezentacji (Presentation Layer) Warstwa prezentacji (Presentation Layer) zawiera komponenty interfejsu użytkownika (okna, strony etc.) Umożliwia użytkownikowi wydawanie poleceń dla systemu i wprowadzanie danych. Prezentuje dla użytkownika dane przetwarzane przez warstwę logiki aplikacji. Typowa implementacja HTML, ASP.NET Może być połączona w jeden pakiet z logiką prezentacji (specjalna aplikacja po stronie klienta). Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 23

Przykładowa struktura warstwowa (1) Presentation «form» Customer «textbox» FirstName «textbox» LastName... new edit «form» Order «form» OrderPosition Application Logic ID: integer FirstName: string LastName: String... class Customer 1 * class Order ID: Integer Customer: Customer Positions: OrderPosition[*]... Check(): boolean Services «service» Customers RegisterCustomer (Customer) GetCustomer(ID: integer): Customer... using «service» Orders RegisterOrder (Order) GetOrder(ID: integer): Order GetOrdersOf(ID: integer): Orders[*] CheckOrder(ID: integer): Order... Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 24

Przykładowa struktura warstwowa (2) Data Management «transfer object» Customer «transfer object» Order «register» Customers RegisterCustomer (Customer) GetCustomer(ID: integer): Customer... «register» Orders RegisterOrder (Order) GetOrder(ID: integer): Order GetOrdersOf(ID: integer): Orders[*] ChangeStatus(Order)... Data Layer «table» Customers ID: integer {auto, PK} FirstName: nvarchar [20] LastName: nvarchar [30]... 1 * 1 «table» Orders ID: integer {auto, PK} CustomerID: integer {FK}... * «table» OrderPos ID: integer {auto, PK} OrderID: integer {FK} Number: integer... «index» FullName = LastName + FirstName Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 25

Zawartość projektu architektury systemu (1) 1. Koncepcja systemu Opis ogólny sposobu realizacji systemu. Wymienione wykorzystywane technologie. 2. Struktura systemu 2.1. Struktura sprzętowa Schematyczny diagram komponentów sprzętowych (nienormowany w UML) lub diagram wdrożenia. 2.2. Struktura programowa Diagram komponentów programowych z podziałem na podsystemy i/lub warstwy. 3. Komponenty sprzętowe Specyfikacje komponentów sprzętowych z wymaganiami sprzętowymi (o ile nie zostały wcześniej zamieszczone w specyfikacji wymagań, albo gdy zostały uzupełnione). 4. Podsystemy W przypadku bardziej złożonego systemu specyfikacje poszczególnych podsystemów z przydzielonymi przypadkami użycia i określonymi komponentami składowymi. Jeśli określono strukturę sprzętową, to podaje się lokalizację komponentów programowych na komponentach sprzętowych. 5. Warstwy architektoniczne Specyfikacje warstw architektonicznych z opisem sposobu realizacji. W specyfikacji wyszczególnione komponenty przydzielone do poszczególnych warstw. W architekturze wielopiennej przypisanie warstw do poszczególnych pni. Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 26

Zawartość projektu architektury systemu (2) 6. Komponenty programowe 6.1. Komponenty główne Specyfikacje głównych komponentów programowych z przydzielonymi przypadkami użycia. 6.2. Komponenty warstwy prezentacji Specyfikacje głównych komponentów należących do warstwy prezentacji. 6.3. Komponenty warstwy aplikacji Specyfikacje głównych komponentów należących do warstwy aplikacji. 6.4. Komponenty warstwy danych Specyfikacje głównych komponentów należących do warstwy aplikacji. 7. Sposoby realizacji wymagań jakościowych Tu można przekopiować wymagania jakościowe ze specyfikacji i uzupełnić je o rubrykę "Sposób realizacji". Rubryka ta jest wypełniana szczegółowo w sposób tekstowy i stanowi zalecenia dla programistów. 7.1. Wymagania w zakresie wiarygodności 7.2. Wymagania w zakresie wydajności 7.3. Wymagania w zakresie elastyczności 7.4. Wymagania w zakresie użyteczności Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 27

Literatura Dennis A., Wixom B.H., Tegarden D.: Systems Analysis & Design. An Object-Oriented Approach with UML, John Wiley and Sons, USA, 2002 Bass L., Clements P., Kazman R.: Architektura oprogramowania w praktyce, WNT, Warszawa, 2006 Hofmeister C., Nord R., Soni D.: Tworzenie architektury oprogramowania, WNT, Warszawa, 2006 Projektowanie Aplikacji Internetowych Projektowanie architektury systemu internetowego 28