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



Podobne dokumenty
Jarosław Kuchta. Projektowanie Aplikacji Internetowych. Wprowadzenie

Zagadnienia projektowania aplikacji J2EE

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

Wykład 1 Inżynieria Oprogramowania

Zasady organizacji projektów informatycznych

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Projektowanie aplikacji JEE z użyciem wzorców projektowych i notacji UML

DLA SEKTORA INFORMATYCZNEGO W POLSCE

Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński

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

ZAPYTANIE OFERTOWE. Zamawiający. Przedmiot zapytania ofertowego. Wrocław, dnia r.

Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka

Spring Framework - wprowadzenie i zagadnienia zaawansowane

Projektowanie architektury systemu internetowego

Testowanie aplikacji mobilnych na platformie Android - architektura, wzorce, praktyki i narzędzia

Szczegółowy harmonogram rzeczowy realizacji prac systemu B2B

REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Modelowanie systemów w architekturze J2EE z wykorzystaniem notacji UML

Programowanie sieciowe Network programming PRZEWODNIK PO PRZEDMIOCIE

Projektowanie Aplikacji Internetowych Jarosław Kuchta. Wzorce projektowe warstwy biznesowej

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne

Błędy procesu tworzenia oprogramowania (Badania firmy Rational Software Corporation)

udokumentowanych poprzez publikacje naukowe lub raporty, z zakresu baz danych

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Analiza i projektowanie aplikacji Java

ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Programowanie komponentowe 5

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

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

Projektowanie Aplikacji Rozproszonych Jarosław Kuchta. Wzorce projektowe warstwy danych

FORMULARZ OFERTOWY. 8. Społeczeństwo informacyjne zwiększanie innowacyjności gospodarki

Programowanie obiektowe

Wprowadzenie do programowania aplikacji mobilnych

Wzorce projektowe Java EE

Podstawy modelowania programów Kod przedmiotu

ZAMAWIAJĄCY. CONCEPTO Sp. z o.o.

Inżynieria wymagań. Wykład 3 Zarządzanie wymaganiami w oparciu o przypadki użycia. Część 5 Definicja systemu

III ZAPYTANIE OFERTOWE

AUREA BPM HP Software. TECNA Sp. z o.o. Strona 1 z 7

Opracowanie protokołu komunikacyjnego na potrzeby wymiany informacji w organizacji

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

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

Załącznik Nr 1. Istotne warunki zamówienia do przetargu nieograniczonego na wykonanie pakietu usług programistycznych

KARTA PRZEDMIOTU. 1) Nazwa przedmiotu: INŻYNIERIA SYSTEMÓW I ANALIZA SYSTEMOWA. 2) Kod przedmiotu: ROZ-L3-20

ZAŁĄCZNIK Nr 1 do CZĘŚCI II SIWZ

Projekt: Współpraca i Rozwój wzrost potencjału firm klastra INTERIZON

Testowanie oprogramowania. Piotr Ciskowski

7. zainstalowane oprogramowanie zarządzane stacje robocze

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

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

Wykaz osób w postępowaniu o udzielenie zamówienia publicznego nr 32-CPI-WZP-2244/13. Podstawa do dysponowania osobą

Modelowanie i analiza. warstwy biznesowej aplikacji

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

Kluczowe zasoby do realizacji e-usługi Warszawa, 16 października Maciej Nikiel

Architektura korporacyjna jako narzędzie koordynacji wdrażania przetwarzania w chmurze

INŻYNIERIA OPROGRAMOWANIA

Plan testów do Internetowego Serwisu Oferowania i Wyszukiwania Usług Transportowych

Projektowanie logiki aplikacji

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

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Audyt oprogramowania systemu B2B oprogramowanie umożliwiające zarządzanie informacjami o produktach:

RUP. Rational Unified Process

Wzorce projektowe warstwy danych

1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

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

Etapy życia oprogramowania

ZAPYTANIE OFERTOWE. nr 1/UE/2014. z dnia r. w związku z realizacją projektu pn.

Szczegółowy opis przedmiotu umowy. 1. Środowisko SharePoint UWMD (wewnętrzne) składa się z następujących grup serwerów:

Księgarnia PWN: Kevin Kenan - Kryptografia w bazach danych. Spis treści. Podziękowania O autorze Wprowadzenie... 15

BCC ECM Autorskie rozwiązanie BCC wspomagające zarządzanie dokumentami oraz procesami biznesowymi

Co to jest GASTRONOMIA?

Usługi specjalistyczne IBM Analytics

PRZEWODNIK PO PRZEDMIOCIE

Część I - Załącznik nr 7 do SIWZ. Warszawa. 2011r. (dane Wykonawcy) WYKAZ OSÓB, KTÓRYMI BĘDZIE DYSPONOWAŁ WYKONAWCA DO REALIZACJI ZAMÓWIENIA

Programowanie współbieżne i rozproszone

Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty

Prezentacja specjalności studiów II stopnia. Inteligentne Technologie Internetowe

ZAŁOŻENIA TECHNICZNO-TECHNOLOGICZNE SYSTEMU BUDOWANEGO W RAMACH PROJEKTU

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Enterprise Java Beans wykład 7 i 8

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Narzędzia informatyczne wspierające przedsięwzięcia e-commerce

KARTA PRZEDMIOTU. Programowanie aplikacji internetowych

Zaproszenie do składania ofert, w ramach Projektu realizowanego zgodnie z umową o dofinansowanie UDA-POIG /12-00

Wymagania techniczne Comarch ERP e-sklep. Wersja

ZAŁĄCZNIK Nr 3 do CZĘŚCI II SIWZ

Inżynieria wymagań. Jarosław Kuchta Dokumentacja i Jakość Oprogramowania

Projektowanie zabezpieczeń Centrów Danych oraz innych systemów informatycznych o podwyższonych wymaganiach bezpieczeństwa

Szczegółowy opis przedmiotu zamówienia:

I. Opis przedmiotu zamówienia

Wzorce projektowe. dr inż. Marcin Pietroo

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Transkrypt:

Szczególne problemy projektowania aplikacji Jarosław Kuchta

Miejsce projektowania w cyklu wytwarzania aplikacji SWS Analiza systemowa Analiza statyczna Analiza funkcjonalna Analiza dynamiczna Analiza behawioralna Projektowanie systemowe Projektowanie szczegółowe Projektowanie w dziedzinie problemu Projektowanie interfejsu użytkownika Projektowanie struktury danych Projektowanie architektury systemu Implementacja Implementacja struktury klas Implementacja interfejsu użytkownika Implementacja struktury danych Opracowanie dokumentacji użytkowej 2/14

Analiza systemowa Cel: Osiągnięcie właściwego poziomu zrozumienia pomiędzy zespołem projektowym a klientem odnośnie tego co ma system robić Aktywności Analizowanie wymagań systemowych Modelowanie wymaganego systemu Prototypowanie systemu 3/14

Aspekty analizy Aspekt statyczny Analiza struktury systemu: elementów składowych (klas, obiektów), ich właściwości i relacji między nimi Aspekt funkcjonalny Analiza funkcjonalności systemu: funkcji udostępnianych przez system dla użytkowników lub innych systemów Aspekt behawioralny Analiza zachowania systemu i jego elementów składowych: ich reakcji na zdarzenia pochodzące od użytkowników lub innych systemów Aspekt dynamiczny Analiza relacji w czasie i zmian czasowych zachodzących w systemie i pomiędzy systemem a jego użytkownikami lub innymi systemami 4/14

Modele analityczne Model klas i obiektów (a.statyczny) Model przypadków użycia (a.funkcjonalny) Model kolaboracji (a.funkcjonalny) Model przepływu danych (a.funkcjonalny) Model czasowy (a.dynamiczny) Model przejść stanów (a.behawioralny) Model aktywności (a.funkcjonalny, behawioralny, dynamiczny) 5/14

Cele projektowania Projektowanie systemowe Określenie zgrubnej struktury systemu dla zrozumienia jak system ma być zrealizowany Projektowanie szczegółowe Określenie szczegółowej struktury systemu dla ułatwienia poprawnej implementacji projektu 6/14

Aspekty projektowania Projektowanie w dziedzinie problemu (projekt biznesowy) Odwzorowanie modelu analitycznego w zbiór klas, obiektów, ich właściwości, relacji i funkcjonalności możliwych do zrealizowania w systemie informatycznym Projektowanie interfejsu użytkownika Zaprojektowanie klas, obiektów, ich właściwości, relacji i funkcjonalności niezbędnych do komunikacji pomiędzy systemem informatycznym a jego użytkownikami Projektowanie struktury danych Zaprojektowanie klas, obiektów, ich właściwości, relacji i funkcjonalności niezbędnych do przechowywania danych przez system Projektowanie architektury systemu Określenie elementów składowych systemu tworzących jego fizyczną strukturę 7/14

Modele projektowe Modele analityczne + Model interfejsu użytkownika Model struktury danych Model architektury systemu Model rozwinięcia systemu 8/14

Szczególne wymagania dla aplikacji W czasie specyfikacji wymagań trzeba określić: Wymagania co do architektury systemu (organizacja przedsiębiorstwa) Wymagania wydajnościowe (trudne do określenia) Wymagania co do bezpieczeństwa Wymagania co do globalizacji 9/14

Szczególne problemy projektowania aplikacji rozproszonych (1) Opracowanie odpowiedniej architektury rozproszonej (model komponentów, model wdrożenia) niedookreślone pojęcie komponentu systemowego (klient, serwer) zrozumienie różnicy: komponent softwarowy, komponent hardwarowy zrozumienie różnicy: architektura wielowarstwowa (multilayer) v.s. architektura wielopienna (multitier) Przekształcenie analitycznego modelu klas w projektowy model klas analityczny model klas jest zintegrowany, a projektowy model klas musi być dopasowany do architektury wielowarstwowej i wielopiennej, klasy powiązane logicznie tworzą pakiety rozdzielane między warstwy jedna klasa modelowa może być odwzorowywana w wiele klas programistycznych (modele MVC i MVVM aplikacji) ograniczenia automatyzacji odwzorowania 10/14

Szczególne problemy projektowania aplikacji rozproszonych (2) Odpowiedni podział funkcjonalności między komponenty rozproszone ile funkcjonalności po stronie klienta (bezpieczeństwo klienta v.s. ochrona serwera przed przeciążeniem) ograniczenia technologiczne po stronie klienta zapewnienie wydajności komunikacji (redukcja ilości przesyłanych danych) zapewnienie synchronizacji przetwarzanych danych (identyfikacja obiektów danych, synchronizacja rozproszonej bazy danych) zapewnienie skalowalności systemu (architektura wielopienna, równoważenie obciążenia) 11/14

Szczególne problemy projektowania aplikacji rozproszonych (3) Problemy bezpieczeństwa uwierzytelnianie użytkowników (role użytkowników) bezpieczeństwo komunikacji (szyfrowanie komunikacji, infrastruktura klucza publicznego) odporność na ataki (audyt bezpieczeństwa) Problemy dostępności i niezawodności dostępność 7/24 (a kiedy konserwacja i aktualizacja systemu) odporność na awarie (zabezpieczenia sprzętowe i systemowe) Problemy użyteczności i globalizacji określenie docelowej grupy użytkowników (dopasowanie interfejsu użytkownika) wielojęzyczny interfejs użytkownika różnice kulturowe przenośność oprogramowania klienckiego (różne SO i różny sprzęt) 12/14

Tematyka dalszych zajęć (1) P.Kaczmarek podstawowe wzorce projektowe GoF: funkcjonalne, behawioralne i strukturalne metody komunikacji rozproszonej (send-receive, RMI, Messaging, streaming) wzorce i zasady architektoniczne: wzorzec Domain Model zasada Dependency Inversion wzorce Data Access Object / Repository Object interface Segregation Principle zasady clean code zasady obsługi wyjątków w aplikacjach rozproszonych 13/14

Tematyka dalszych zajęć (2) J.Kuchta Projektowanie architektury systemu rozproszonego: architektury wielowarstwowe i wielopienne Wzorce projektowe warstwy danych: Data Access Object, Transfer Object, Value List Handler Wzorce projektowe warstwy biznesowej: Transfer Object Assembler, Composite Entry, Business Delegate Wzorce projektowe warstwy usług: Service Locator, Service Activator, Session Facade, Wzorce projektowe warstwy aplikacji: Front Controller, Dispatcher View, Service To Worker Wzorce projektowe warstwy prezentacji: Intercepting Filter, View Helper, Composite View 14/14