Projektowanie Graficznych Interfejsów Użytkownika. Robert Szmurło
|
|
- Janusz Przybylski
- 8 lat temu
- Przeglądów:
Transkrypt
1 Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło 1
2 Wzorce Projektowe Nie ma złotego środka spełniającego wszystkie wymagania. skala projektu liczba deweloperów stopień skomplikowania Wzorzec projektowy w inżynierii oprogramowania, uniwersalne, sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych problemów projektowych. (za wikipedią :-) Po co mówimy o wzorcach? chcemy np. zrozumieć różne style architektoniczne chcemy w zespole architektów i programistów posługiwać się wspólną terminologią przecież nie chce nam się za każdym razem tłumaczyć jak odseparować prezentację :-) chcemy szybko orientować się w strukturze istniejącego projektu 2
3 Wzorce projektowe - przykłady Przykłady: Wzorzec singleton Wzorzec fabryki i wiele innych... Wzorzec (?) MVC Model View Controller przetrwał próbę czasu (ponad 35 lat, lata 70) sprawdza się w separacji Logiki Biznesowej od Logiki Prezentacji. stosuje się go zazwyczaj do rozwiązań bazodanowych, a nie do specjalistycznych aplikacji opartych na technologii bogaty klient ( rich client ) 3
4 Wzorce projektowe - GUI Wzorce projektowe w GUI: Model Widok Kontroler (MVC) (osobny wzorzec projektowy czy raczej ich zbiór?) Model Widok (np. Java oraz Qt w kontekście kontrolek) Zawiadomienie (Notification) Kontroler zarządzający (Supervising controller) Pasywny widok (Passive View) Model prezentacji (Presentation Model) Sumator zdarzeń (scalacz) (Event aggregator) Sterownik okna (Window Driver) Synchronizacja przepływu (Flow Synchronization) Synchronizacja obserwatora (Observer Synchronization) Selektor prezentacji (Presentation Chooser) Oddzielona prezentacja (Separated Presentation) Głównym źródłem niniejszego opracowania wzorców jest praca: Martin Fowler, Development of Further Patterns of Enterprise Application Architecture (Link: ) 4
5 Synchronizacja stanów Najczęściej dane wyświetlane na ekranie pochodzą z jakiejś bazy danych (SQL). Dane te występują w trzech zasadniczych kopiach (stanach): 1. w rzeczywistej bazie na serwerze (lub lokalnym pliku), kopię tę możemy nazwać stanem rekordu. 2. w pamięci operacyjnej związanej z naszą aplikacją w postaci jakiegoś zbioru danych (RecordSet), którą nazwiemy stanem sesji. 3. na ekranie w komponentach GUI, którą określimy stanem ekranowym. Jednym z kluczowych elementów architektury GUI jest synchronizacja danych pomiędzy stanami ekranowym i sesji. W naszym pierwszym wzorcu wykorzystuje się do tego wbudowany w niektóre kontrolki mechanizm: DataBinding. Stan ekranowy Stan Sesji Stan rekordu Stan ekranowy Stan Sesji 5
6 Wzorzec 1: Formularze i Kontrolki Architektura promowana w latach 90-tych dla aplikacji klient-serwer głównie w narzędziach takich jak Visual Basic, Delphi czy PowerBuilder. Bardzo praktyczna podczas prototypowania, ze względu na natychmiastowe efekty. Program przykładowy: (na podstawie Martin Fowler, Development of Further Patterns of Enterprise Application Architecture ) Zbiór stacji pomiarowych pewnej wartości, raportujemy dla każdej stacji: wartość zmierzoną wartość progową różnicę 6
7 Zadania formularza Formularz (widok) jest specyficzny dla naszej aplikacji, ale używa pewnych ogólnych kontrolek. Formularz jest odpowiedzialny za: układ kontrolek na ekranie, logikę formularza (widoku), która nie może być w łatwy sposób zrealizowana wewnątrz kontrolek. 7
8 Databinding szczegóły Podstawowa idea data binding zapewnia synchronizację między tym co znajduje się na ekranie a tym co znajduje się w recordset'ie. Kontrolka jest podpięta do kolumny w tabeli lub kwerendzie zazwyczaj za pomocą pola atrybutu (property). Data binding może być rozbudowany o synchronizację z bazą danych (stan rekordu). Każda zmiana na ekranie automatycznie propaguje się do recordsetu i odwrotnie. Problem zapętlających się uaktualnień. Koncepcja ładowania z sesji (RecordSet) do kontrolek tylko podczas pierwszego pokazywania. Koncepcja obserwatorów. Stan ekran. (kontrolka 1) Większa część funkcjonalności związanej z Data Binding jest zaimplementowana w bibliotece, którą wykorzystujemy. Stan Sesji (recordset) Stan rekordu (baza danych) Stan ekran. (kontrolka 2) 8
9 RecordSet (ADOQuery) Demo w Delphi Mechanizm Data Binding (TDataSource) W rzeczywistości w Delphi komponent ten jest interfejsem między standardowymi kontrolkami bazodanowymi a różnymi komponentami przechowującymi zbiory danych (TDataSet). Połączenie do bazy danych (ADOConnection) Zsynchronizowane za pomocą TDataSource uniwersalne kontrolki bazodanowe: TDBGrid i TDBEdit 9
10 Specyficzne wymagania aplikacji Niestety bardzo często standardowe kontrolki nie udostępniają jakiejś funkcjonalności, która jest związana z logiką naszej konkretnej aplikacji. W naszym przypadku jest to logika związana z kolorem w jakim ma być wyświetlona różnica między wartościami zmierzonymi i zadanymi. W przypadku znacznych odchyłek ma być to kolor czerwony. Są dwa zasadnicze rozwiązania: 1. za każdym razem gdy zmieni się wartość kontrolki różnicy, możemy informować o tym formularz (klasę widoku), który następnie pobierze aktualną wartość z kontrolki i na tej podstawie podejmie odpowiednią decyzję o kolorze. (Wzorzec GUI: Formularz i Kontrolka) Kontrolki udostępniają mechanizm zdarzeń (events), do których podpina się formularz. Takie rozwiązanie wykorzystuje wzorzec obserwatora. 2. tworzymy naszą własną kontrolkę, która rozszerza funkcjonalność kontrolki standardowej o dodatkową opcję koloru (np. Qt). 10
11 Analiza procesu edycji z wykorzystaniem Form Diagram klas Diagram sekwencji dla przypadku gdy użytkownik wprowadza nową wartość. 11
12 Podsumowanie Formularz i Kontrolka Podsumujmy pierwszy wzorzec oparty na formularzu i kontrolkach: Programiści tworzą formularze (widoki) specjalizowane dla naszej aplikacji, ale wykorzystują do tego uniwersalne kontrolki. Formularz definiuje układ kontrolek na ekranie. Problemy: Proste edycje danych na ekranie są obsługiwane przez mechanizm Data Binding. Bardziej złożone modyfikacje są realizowane w metodach obsługi zdarzeń w formularzu. W tym celu formularz obserwuje kontrolki za pośrednictwem metod, które są połączone ze zdarzeniami generowanymi przez kontrolki. niska kontrola nad wydajnością ostatecznej wersji systemu (databinding), problematyczne transakcje, wzajemne blokowanie (zakleszczenia), Walidacja gdzie ją zrealizować?, dla klikaczy... :-) 12
13 Motywacja- czyli potrzeby rynku Interfejs użytkownika ale i nie tylko interfejs zmienia się bardzo często. (nowe strony, zmiana kolejności, zmiana organizacji elementów na ekranie, nowe kolumny w bazie, nowe tabele,... ) W niektórych sytuacjach system wyświetla tą samą informację, ale w innej formie (widoki). Projekt efektywnego (też efektownego?) interfejsu w HTML wymaga specjalnych kwalifikacji? Rzadko spotyka się osoby, które potrafią projektować strony internetowe i jednocześnie logikę biznesową. Interfejs składa się zasadniczo z dwóch elementów: wyświetlania i uaktualniania. Kod interfejsu użytkownika zależy od specyfiki sprzętowej (np. PDA, WebForms, WindowForms) Tworzenie automatycznych testów interfejsu użytkownika jest pracochłonne i trudniejsze od testów logiki biznesowej. 13
14 Odseparowana Prezentacja (ang. Separated Presentation) Koncepcja której podstawą jest odseparowanie obiektów dziedziny dla której stworzona jest aplikacja, czyli obiektów użytkownika, od widoków prezentacji realizowanych za pomocą elementów GUI. Obiekty dziedziny (użytkownika) w koncepcji tej powinny być całkowicie niezależne i nie powinny odwoływać się do prezentacji. Więcej, powinny w naturalny sposób obsługiwać wiele interfejsów jednocześnie. GUI 2 WEB GUI 1 Linia Komend Model 14
15 Wzorzec MVC cd Struktura Modelu MVC Kontroler cd MVC Obserwator Model Kontroler «realize» Model «interface» Obserwator + uaktualnij() : void Widok «realize» Widok Wiele odmian 15
16 Model. (obiekty dziedziny) Widok. Potrafi poinformować o swoim stanie. Potrafi uaktualnić swój stan. MVC Moduły Tu już operujemy na obiektach a nie na RecordSet'ie Zarządza zachowaniem się danych w dziedzinie dla której została stworzona aplikacja. Zajmuje się tylko wyświetlaniem informacji. Ma wiedzę co trzeba wyświetlić i jak w danym momencie. Kontroler. Interpretuje zainicjowane akcje oraz wprowadzone przez użytkownika dane. Ma wiedzę potrzebną aby kontrolować sekwencje widoków. Uwaga! W aplikacji jest wiele par widok, kontroler. 16
17 Model Widok - Kontroler Koncepcja klasyczna model jest elementem niezależnym występuje dwustronna zależność między kontrolerem a widokiem Koncepcja: Martin Fowler model nadal niezależny programista zazwyczaj nie używa bezpośrednio zależności między kontrolerem a widokiem, komunikację automatyzują różne narzędzia i wzorce, które informują widok o zmianach modelu cd Struktura Modelu MVC Kontroler Model Widok 17
18 MVC kontra Architektura Warstwowa Porównanie architektury warstwowej z MVC mylona przez wielu autorów z MVC, nowa w stosunku do MVC: koncepcja trzech warstw pochodzi z lat 90: html prezentacja application server database bardziej można ją porównać z wzorcem model aplikacji lub z wzorcem model prezentacji 18
19 Model wywodzi się ze Smalltalka. Tradycyjny model MVC Zakładamy, że mamy kontrolki dedykowane do naszej aplikacji. Bardzo podobne do Data Binding, ale bez zdarzeń (events), oraz tym razem widok obserwuje model, a nie formularz obserwuje kontrolki. (czyli też wzorzec Obserwator) 19
20 MVC ze specyficznymi kontrolkami W specjalistycznych kontrolkach umieszczamy dodatkową funkcjonalność: Sposób prezentacji graficznej (kolor) przedstawiamy w postaci logicznej (kategoria) Dla tablicy kategorii przyporządkowujemy np. tablicę kolorów fontu, w ten sposób model musi udostępniać dodatkową informację o nowym wskaźniku 20
21 Poziom implementacji MVC MVC może być zrealizowane na różnych poziomach: Na poziomie kontrolek (każda kontrolka ma własny kontroler) Na poziomie okien (każde okno ma własny kontroler - Page Controler) Na poziomie całej aplikacji (kontroler i elementy widoku są odseparowane np. w postaci osobnych komponentów) Często wykorzystywane w aplikacjach internetowych z uwagi na odseparowanie jsp i html w postaci jakichś szablonów stron itp. 21
22 Pośredni model prezentacji (intermediate presentation model) Tworzymy model dla widoku, czyli pewien obiekt tłumaczący wartości z dziedziny aplikacji na dziedzinę interfejsu użytkownika. Model prezentacji przechowuje i udostępnia konkretne informacje związane bezpośrednio z interfejsem użytkownika: czyli np. kolor. Centralizacja logiki. 22
23 Powiadomienie (Notification) Obiekt zbierający informacje o błędach lub innych wiadomościach związanych z dziedziną aplikacji, który następnie jest przekazywany do warstwy (modułu) prezentacji. Moduł prezentacji następnie może wyświetlić odpowiednie komunikaty zawarte w obiekcie Notification. W najprostszej postaci Notification jest zbiorem napisów. Kiedy używać? Np. w przypadku gdy walidacja wykonywana jest warstwie, która nie ma dostępu do prezentacji. 23
24 Kontroler nadzorujący (supervising controller) Wzorzec wykorzystuje kontroler do obsługi komunikatów pochodzących od użytkownika (koncepcja klasyczna), oraz do obsługi złożonej logiki prezentacji (w naszym przypadku do określenia koloru). Niezmiernie ważny w testach automatycznych
25 Widok pasywny (passive view) Cała funkcjonalność: reakcja na komunikaty użytkownika i zarządzanie prezentacją włącznie z logiką aplikacji specyficzną dla dziedziny jest realizowana przez kontroler. Najczęściej stosowany w aplikacjach typu rich client ze względu na możliwość stworzenia automatycznych testów
26 Model prezentacji (presentation model) 1 Umożliwia reprezentację stanu i zachowania prezentacji niezależnie od kontrolek GUI używanych na ekranie. Oznacza, to że stan ekranu nie znajduje się w kontrolkach lecz w modelu. Model prezentacji może odwoływać się do wielu obiektów dziedziny aplikacji. Nie jest zatem fasadą obiektów dziedziny Model prezentacji można uznać za pewną 'abstrakcję' niezależną od platformy GUI (GUI framework) 2 26
27 Synchronizacja przepływu (flow synchronization) Używany w sytuacjach gdy w kilku widokach pokazujemy dane pochodzące z tego samego źródła. Jeżeli na jednym ekranie użytkownik zmieni wartość jakiegoś pola wówczas formularz uaktualnia kopię sesji (czyli np. Recordset), a następnie samodzielnie wymusza na pozostałych oknach, które pokazują tą samą informację aby się odświeżyły. Rozwiązanie stosuje się dla małych aplikacji. Typowym przykładem jest program z głównym oknem, oraz szeregiem okien modalnych dostępnych z głównego. Problem z wzorcem tym polega na tym, że wprowadzamy zbyt duże zależności pomiędzy widokami. 27
28 Synchronizacja obserwująca (observer synchronization) Synchronizacja wielu okien. Każde okno obserwuje pewien współdzielony zbiór danych z obszaru dziedziny. Jeden z głównych wzorców składowych MVC. Źródło: 28
29 Synchronizacja obserwatora (kod w C#) Dziedzina aplikacji Prezentacja 1) class DomainObject { 2) public void SignalChanged() 3) { 4) if (Changed!= null) Changed(this, null); 5) } 6) public event DomainChangeHandler Changed; 7) 8) public delegate void DomainChangeHandler( DomainObject source, EventArgs e); 9) } 10) 11) class Album : DomainObject { 12) //... 13) public string Title 14) { 15) get { return _title; } 16) set 17) { 18) _title = value; 19) SignalChanged(); 20) } 1 21) } 22) string _title; 23) } 2 1) class FrmAlbum { 2) //... 3) public FrmAlbum(Album album) 4) { 5) InitializeComponent(); 6) this._album = album; 7) observedomain(); 8) load(); 3 9) } 10) private Album _album; 11) private void observedomain() 12) { 13) _album.changed += 14) new DomainChangeHandler(Subject_Changed); 15) foreach (Performer p in _album.performers) 16) p.changed += 17) new DomainChangeHandler(Subject_Changed); 18) } 19) private void Subject_Changed( 20) DomainObject source, EventArgs e) 21) { 22) load(); 23) } 24) }
30 Selektor prezentacji (presentation chooser) Wybiera ekran (formularz) odpowiedni dla konkretnego obiektu z dziedziny aplikacji. Stosowany w sytuacji, gdy w danym momencie musimy wyświetlić różne formularze dla różnych aktualnie wybranych obiektów. Edycja jest różna dla pozycji muzyki klasycznej a inna dla muzyki popularnej. 30
31 Selektor prezentacji (presentation chooser) Tworzymy osobną klasę, która na podstawie obiektu dziedziny decyduje w którym oknie trzeba go wyświetlić. Rozwiązanie związane z wzorcem Fabryka. class Presentation Chooser class Presentation Chooser Dziedzina ObjDziedzina_1 ObjDziedzina ObjDziedzina_2 ObjDziedzina_3 Formularz 1 - object: ObjDziedzina_ 1 PresentationChooser Formularz 2 - object: ObjDziedzina_ 2 Formularz 3 - object: ObjDziedzina_ 3 FormularzGłówny pyta się w jakim oknie wyświetlić dany obiekt. Formularz FormularzGlowny - listobjects: list<objdziedzina> 31
32 Interakcja Dziękuję za uwagę. Chcemy być coraz lepsi! Jeżeli coś cię zainteresowało napisz a: Jeżeli coś cię bardzo znudziło napisz a: Jeżeli zauważyłeś błąd napisz a: 32
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło LATO 2007 Projektowanie Graficznych Interfejsów Użytkownika 1 Wzorce Projektowe Nie ma złotego środka spełniającego wszystkie wymagania.
Programowanie obiektowe
Programowanie obiektowe Laboratorium 11 - przegląd wybranych wzorców mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 24 maja 2017 1 / 38 mgr inż. Krzysztof Szwarc Programowanie obiektowe Wzorce
Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i
Program szkolenia: Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i JFace Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Kompleksowe tworzenie aplikacji
Wprowadzenie do programowania aplikacji mobilnych
Wprowadzenie do programowania aplikacji mobilnych dr Przemysław Juszczuk dr Przemysław Juszczuk Trochę historii Idea wzorców projektowych wywodzi się jeszcze z wczesnych lat osiemdziesiątych ubiegłego
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło LATO 2007 Projektowanie Graficznych Interfejsów Użytkownika 1 UCD - User Centered Design 1) User Centered Design Projekt Skoncentrowany
Forum Client - Spring in Swing
Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy
ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3
3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0
Wzorce architektoniczne
Wzorce architektoniczne Architektura warstwowa, MVP, MVC, MVVM Wojciech Szymecki Wydział Fizyki, Astronomii i Informatyki Stosowanej Uniwersytet Mikołaja Kopernika 23 maja 2014 Architektura warstwowa W
Omówienie wzorców wykorzystywanych w Prism 5.0. Dominika Różycka
1 Omówienie wzorców wykorzystywanych w Prism 5.0 Dominika Różycka Czym jest wzorzec projektowy? 2 3 Wzorzec projektowy 1. Uniwersalne i sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych
Programowanie obiektowe
Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w
Tworzenie aplikacji Web Alicja Zwiewka. Page 1
Tworzenie aplikacji Web Alicja Zwiewka Page 1 Co to są web-aplikacje? Aplikacja internetowa (ang. web application) program komputerowy, który pracuje na serwerze i komunikuje się poprzez sieć komputerową
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło ZIMA 2008/2009 Projektowanie Graficznych Interfejsów Użytkownika 1 Wymagania na zaliczenie Pierwszy wykład wprowadzajacy. Podstawowe zalecenia
Projektowanie obiektowe oprogramowania Wykład 7 wzorce czynnościowe (2) Wiktor Zychla 2018
Projektowanie obiektowe oprogramowania Wykład 7 wzorce czynnościowe (2) Wiktor Zychla 2018 1 Mediator Motto: Koordynator współpracy ściśle określonej grupy obiektów dzięki niemu one nie odwołują się do
Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
ASP.NET MVC. Grzegorz Caban grzegorz.caban@gmail.com. 20 stycznia 2009
ASP.NET MVC Grzegorz Caban grzegorz.caban@gmail.com 20 stycznia 2009 Agenda Przyczyna powstania Co to jest ASP.NET MVC Architektura Hello World w ASP.NET MVC ASP.NET MVC vs ASP.NET WebForm Przyszłość framework'a
Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.
Warstwa integracji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Ukrycie logiki dostępu do danych w osobnej warstwie 2. Oddzielenie mechanizmów trwałości od modelu obiektowego Pięciowarstwowy
Usługi analityczne budowa kostki analitycznej Część pierwsza.
Usługi analityczne budowa kostki analitycznej Część pierwsza. Wprowadzenie W wielu dziedzinach działalności człowieka analiza zebranych danych jest jednym z najważniejszych mechanizmów podejmowania decyzji.
Analiza i projektowanie aplikacji Java
Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie
Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35
Wzorce projektowe cz. II Wzorce projektowe cz. II 1/35 Wzorce projektowe cz. II 2/35 Iterator Przeznaczenie Wzorzec zapewnia sekwencyjny dostęp do elementów obiektu zagregowanego bez ujawniania jego reprezentacji
Wprowadzenie do projektu QualitySpy
Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5 Programowanie komponentowe 1 Przykład 1- Wykonanie prostej aplikacji internetowej w technologii JavaEE w środowisku Netbeans 5.5 z wykorzystaniem
Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC
Akademia MetaPack Uniwersytet Zielonogórski Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Krzysztof Blacha Microsoft Certified Professional Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Agenda:
Wzorce prezentacji internetowych
Wzorce prezentacji internetowych 1. Model kontrolera widoku (Model View Controller). 2. Kontroler strony (Page Controller). 3. Kontroler fasady (Front Controller). 4. Szablon widoku (Template View). 5.
Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski
Technologie dla aplikacji klasy enterprise Wprowadzenie Marek Wojciechowski Co oznacza enterprise-ready? Bezpieczeństwo Skalowalność Stabilność Kompatybilność wstecz Wsparcie Dokumentacja Łatwość integracji
Programowanie komponentowe 5
Budowa warstwy klienta w architekturze typu klient-serwer zbudowanych z komponentów typu EE - klient desktopowy i internetowy. Zastosowanie komponentów opartych na technologii EJB 3.2. na podstawie https://docs.oracle.com/javaee/7/jeett.pdf
Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz
Projektowanie oprogramowania Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz 1 Wykonanie czterowarstwowej aplikacji EE z dostępem do bazy danych,
Warstwa prezentacji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.
Warstwa prezentacji wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe. 1. Definicja warstwy prezentacji - pięciowarstwowy model logicznego rozdzielania zadań 2. Podstawowe przypadki - analiza
Architektura interfejsu użytkownika
Uniwersytet Jagielloński Interfejsy graficzne Wykład 3 Architektura interfejsu użytkownika Barbara Strug 2011 Hall of shame Hall of Shame Hall of Fame O czym dzisiaj Model Widok- Kontroler Hierarchia widoków
1 Wprowadzenie do J2EE
Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2
Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11
Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET
Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin
Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin Czym jest Spring Boot? Spring Boot jest szkieletem aplikacji, opiera się o Spring Framework czyli Framework szeroko
Dokumentacja projektu Makao karciana gra sieciowa
Dokumentacja projektu Makao karciana gra sieciowa 1 Spis treści Specyfikacja wymagań...3 Diagram przypadków użycia...4 Scenariusze...5 Diagramy sekwencji...6 Diagram modelu domeny...8 Projekt graficznego
Budowanie aplikacji biznesowych przy użyciu. Presentation Foundation i wzorca MVVM
Budowanie aplikacji biznesowych przy użyciu Windows Presentation Foundation i wzorca MVVM Raffaele Garofalo Przekład: Jakub Niedźwiedź APN Promise Warszawa 2011 Spis treści Wstęp................................................................
Leszek Stasiak Zastosowanie technologii LINQ w
Leszek Stasiak Zastosowanie technologii LINQ w C# 1. Wstęp - połączenie Do naszych zadań będziemy używać Microsoft Visual Studio 2010. Stwórzmy nowy projekt Windows Form Application. Mając do dyspozycji
Web frameworks do budowy aplikacji zgodnych z J2EE
Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida promotor: dr Dariusz Król Przypomnienie Celem pracy jest porównanie wybranych szkieletów programistycznych o otwartym kodzie źródłowym
Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design
Projektowanie Zorientowane na Dziedzinę ang. Domain Driven Design 2 Projektowanie Stan posiadania Przypadki użycia Model dziedziny Operacje systemowe Kontrakty dla operacji systemowych Problemy do rozwiązania
Serwery aplikacji. dr Radosław Matusik. radmat
www.math.uni.lodz.pl/ radmat EL - Expression Language Załóżmy, że mamy klasę Pracownik, której atrybutem jest PESEL. Załóżmy dalej, że w atrybucie sesji zalogowany przechowujemy obiekt aktualnie zalogowanego
- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy
Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla
Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy
Dokumentacja techniczna Młodzieżowe Pośrednictwo Pracy Spis Treści 1. Widok ogólny architektury MPP... 3 2. Warstwy systemu... 5 3. Struktura systemu/komponentów... 7 3.1 Aplikacje... 7 3.2 Biblioteki...
1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1
1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie
Wzorce logiki dziedziny
Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),
Web frameworks do budowy aplikacji zgodnych z J2EE. Jacek Panachida
Web frameworks do budowy aplikacji zgodnych z J2EE Jacek Panachida Cel pracy Analiza wybranych ram projektowych dostępnych dla platformy Java Warunki selekcji napisany z wykorzystaniem języka Java oraz
Wykład 1 Inżynieria Oprogramowania
Wykład 1 Inżynieria Oprogramowania Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowaniaiteracyjno-rozwojowy cykl oprogramowania Autor: Zofia Kruczkiewicz System Informacyjny =Techniczny SI
Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne
Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec
Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski
Adapter: opis Wzorce Strukturalne Tomasz Borzyszkowski Alternatywna nazwa: Wrapper (opakowanie) Rola obiektu Adapter: pełni wobec Klienta rolę otoczki, która umożliwia przetłumaczenie jego żądań na protokół
Zdarzenia Klasa Application Powiadomienia Toast AlertDialog
Android Wykład 3 1 Zdarzenia Klasa Application Powiadomienia Toast AlertDialog 2 Zdarzenia UI (UI Events) zapewniają programowi interakcje z użytkownikiem. Obiekty określają wzajemne oddziaływania z resztą
problem w określonym kontekście siły istotę jego rozwiązania
Wzorzec projektowy Christopher Alexander: Wzorzec to sprawdzona koncepcja, która opisuje problem powtarzający się wielokrotnie w określonym kontekście, działające na niego siły, oraz podaje istotę jego
Szkolenie wycofane z oferty
Szkolenie wycofane z oferty Program szkolenia: Java Server Faces 2 Informacje: Nazwa: Java Server Faces 2 Kod: Java-EE-JSF 2 Kategoria: Java EE Grupa docelowa: developerzy Czas trwania: 3 dni Forma: 50%
Programowanie zorientowane obiektowo. Mateusz Kołecki
Programowanie zorientowane obiektowo Mateusz Kołecki Plan MVC Wstęp Separacja odpowiedzialnośći Antyprzykład Dobry przykład Wady/zalety MVC MVC to tylko początek - wzorce projektowe Dlaczego chcemy używać
Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton
Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu
Wskazówki projektowe. Programowanie Obiektowe Mateusz Cicheński
Wskazówki projektowe Programowanie Obiektowe Mateusz Cicheński Przydatne zasady SOLID Wzorce struktury aplikacji MVC MVP MVVM Metody wytwarzania oprogramowania Manifest Zwinnego Wytwarzania Oprogramowania
Programowanie obiektowe
Programowanie obiektowe Laboratorium 12 - wstęp do JavyFX mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 31 maja 2017 1 / 15 mgr inż. Krzysztof Szwarc Programowanie obiektowe Krótka lekcja
Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych
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
Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.
Adrian Skalczuk Szymon Kosarzycki Spis Treści Wstęp [1/2] Wzorce projektowe są nieodłącznym przyjacielem programisty pozwalają pisać czystszy kod, łatwiejszy do zrozumienia przez innych i zapewniają pewien
Szkolenie. IBM Lotus - Podstawy projektowania aplikacji w Domino Designer 8.5. Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje
Szkolenie IBM Lotus - Podstawy projektowania aplikacji w Domino Designer 8.5 Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje Opis szkolenia Szkolenie dla początkujących projektantów
UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.
UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami
WYKŁAD 1 ANGULARJS CZĘŚĆ 1
WYKŁAD 1 ANGULARJS CZĘŚĆ 1 DEFINICJA ANGULARJS Framework JavaScript na licencji open-source wykorzystywany do tworzenia aplikacji SPA (single page applications) w oparciu o wzorzec projektowy Model-View-Controler.
DLIBRA & DRUPAL DWA SYSTEMY, JEDNA WITRYNA
DLIBRA & DRUPAL DWA SYSTEMY, JEDNA WITRYNA Michał Kwiatkowski Piotr Grzybowski Poznańskie Centrum Superkomputerowo-Sieciowe VII Warsztaty Biblioteki Cyfrowe 22.10.2010 Plan prezentacji 2/15 Geneza Biblioteka
Architektura nowoczesnych aplikacji internetowych
Architektura nowoczesnych aplikacji internetowych Lech Madeyski Michał Stochmiałek Wydziałowy Zakład Informatyki Wydział Informatyki i Zarządzania Politechnika Wrocławska Krajowa Konferencja Inżynierii
AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7
AUREA BPM Oracle TECNA Sp. z o.o. Strona 1 z 7 ORACLE DATABASE System zarządzania bazą danych firmy Oracle jest jednym z najlepszych i najpopularniejszych rozwiązań tego typu na rynku. Oracle Database
Wypożyczalnia VIDEO. Technologie obiektowe
Wypożyczalnia VIDEO Jest to program do obsługi wypożyczalni i wypożyczeń klientów. Głównym zadaniem programu jest zarządzanie wypożyczeniami i drukowanie potwierdzenia wypożyczenia oraz naliczenie punktów
Dokument Detaliczny Projektu
Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej
Grzegorz Ruciński. Warszawska Wyższa Szkoła Informatyki 2011. Promotor dr inż. Paweł Figat
Grzegorz Ruciński Warszawska Wyższa Szkoła Informatyki 2011 Promotor dr inż. Paweł Figat Cel i hipoteza pracy Wprowadzenie do tematu Przedstawienie porównywanych rozwiązań Przedstawienie zalet i wad porównywanych
Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)
Program szkolenia: Przygotowanie do nowoczesnego programowania po stronie przeglądarki (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania:
Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)
Zagadnienia (1/3) Rola modelu systemu w procesie analizy wymagań (inżynierii wymagań) Prezentacja różnego rodzaju informacji o systemie w zależności od rodzaju modelu. Budowanie pełnego obrazu systemu
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Full Stack JavaScript z Angular i Nest. Dni: 5. Opis: Adresaci szkolenia
Kod szkolenia: Tytuł szkolenia: DED/FSJS Full Stack JavaScript z Angular i Nest Dni: 5 Opis: Adresaci szkolenia Kurs przeznaczony jest dla programistów posiadających podstawową wiedzę w zakresie JavaScript,
Instrukcja laboratoryjna
Zaawansowane techniki obiektowe 2016/17 Instrukcja laboratoryjna Testy funkcjonalne Prowadzący: Tomasz Goluch Wersja: 1.0 Testowanie aplikacji z bazą danych Większość współczesnych aplikacji korzysta z
Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF. Tomasz Turski 26.05.2011
Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF Tomasz Turski 26.05.2011 Plan prezentacji Architektura korporacyjna Frameworki Pryncypia Metodyka TOGAF
Programowanie MorphX Ax
Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn
Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor
Koszalin, 15.06.2012 r. Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor Zespół projektowy: Daniel Czyczyn-Egird Wojciech Gołuchowski Michał Durkowski Kamil Gawroński Prowadzący: Dr inż.
Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4
Utrwalanie danych zastosowanie obiektowego modelu danych warstwy biznesowej do generowania schematu relacyjnej bazy danych Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4 1. Relacyjne
LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika
LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika Prowadzący: Dr inż. Jacek Habel Instytut Technologii Maszyn i Automatyzacji Produkcji Zakład Projektowania Procesów
Komunikator internetowy w C#
PAŃSTWOWA WYśSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie Komunikator internetowy w C# autor: Artur Domachowski Elbląg, 2009 r. Komunikacja przy uŝyciu poczty internetowej
PROJEKTOWANIE APLIKACJI INTERNETOWYCH
PROJEKTOWANIE APLIKACJI INTERNETOWYCH (WFAIS.IF-N016) dr inż. Marcin Zieliński Wykład dla kierunku: Informatyka Stosowana I rok, II stopień Rok akademicki: 2016/2017 - semestr letni WYKŁAD 2 Przypomnienie
Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione
Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji
Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4
Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Agnieszka Holka Nr albumu: 187396 Praca magisterska na kierunku Informatyka
Programowanie Zespołowe
Programowanie Zespołowe Dobre Praktyki dr Rafał Skinderowicz mgr inż. Michał Maliszewski Parafrazując klasyka: Jeśli piszesz w Javie pisz w Javie - Rafał Ciepiela Principal Software Developer Cadence Design
Podstawy programowania III WYKŁAD 4
Podstawy programowania III WYKŁAD 4 Jan Kazimirski 1 Podstawy UML-a 2 UML UML Unified Modeling Language formalny język modelowania systemu informatycznego. Aktualna wersja 2.3 Stosuje paradygmat obiektowy.
OBC01/TOPMOB Projektowanie w języku Objective-C
Szkolenie skierowane do: Programistów zaczynających pracę z platformą ios na urządzeniach iphone oraz ipad. Tematy zajęć: Dzień 1 1. Wprowadzenie Zarys historyczny NextStep oraz rozwój Apple ios Historia
I. Raport wykonywalności projektu
Spis treści: " I. " Raport wykonywalności projektu..." str. 2 " II. " Glosariusz projektu... " str. 4 " III. " Diagramy relacji encja-związek..." str. 6 " IV. " Diagramy przepływu danych..." str. 7 " V.
16) Wprowadzenie do raportowania Rave
16) Wprowadzenie do raportowania Rave Tematyka rozdziału: Przegląd wszystkich komponentów Rave Tworzenie nowego raportu przy użyciu formatki w środowisku Delphi Aktywacja środowiska Report Authoring Visual
Podstawy Programowania 2
Podstawy Programowania 2 Laboratorium 7 Instrukcja 6 Object Pascal Opracował: mgr inż. Leszek Ciopiński Wstęp: Programowanie obiektowe a programowanie strukturalne. W programowaniu strukturalnym, któremu
Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG
Java JMX Monitorowanie i zarządzanie usługami sieciowymi w Javie Marcin Werla mwerla@man.poznan.pl PCSS/Poznań JUG Plan prezentacji Wprowadzenie Specyfikacja Dodatkowe narzędzia i biblioteki Studium przypadku
Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski
Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.wroc.pl http://www.tjeleniewski.wstt.edu.pl Treści kształcenia: Paradygmaty
Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy
Plan Podstawy narzędzia Application Builder, 2 budowa strony, kreatory Architektura Tworzenie Tworzenie formularza tabelarycznego Budowa strony 2 Architektura Aplikacja kolekcja stron połączonych ze sobą
Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa
1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło LATO 2007 Projektowanie Graficznych Interfejsów Użytkownika 1 System.Windows.Forms System.Windows.Forms Core infrastructure podstawowe operacje
Zaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 4 - wzorce projektowe. dr inż. Robert Nowak - p. 1/18 Powtórzenie klasy autonomiczne tworzenie nowych typów: dziedziczenie i agregacja dziedziczenie: przedefiniowywanie
Spring Framework - wprowadzenie i zagadnienia zaawansowane
Program szkolenia: Spring Framework - wprowadzenie i zagadnienia zaawansowane Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Spring Framework - wprowadzenie i zagadnienia
Technologie obiektowe
WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność
Wybrane działy Informatyki Stosowanej
Wybrane działy Informatyki Stosowanej Java Enterprise Edition WebServices Serwer aplikacji GlassFish Dr hab. inż. Andrzej Czerepicki a.czerepicki@wt.pw.edu.pl http://www2.wt.pw.edu.pl/~a.czerepicki Aplikacje
Backend Administratora
Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona
Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i
Program szkolenia: Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Produktywne tworzenie aplikacji webowych z
Przykładowa implementacja
Wzorce projektowe, cz. 10 Facade Fasada służy do ujednolicenia dostępu do złożonego systemu poprzez udostępnienie uproszczonego i uporządkowanego interfejsu programistycznego. Fasada zwykle implementowana
Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1
Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1 Zofia Kruczkiewicz Zofia Kruczkiewicz Inżynieria oprogramowania INEK011 1 Składnia elementów na diagramach UML 1. W prezentacji składni diagramów