Testowanie oprogramowania Wzorce projektowe

Save this PDF as:
 WORD  PNG  TXT  JPG

Wielkość: px
Rozpocząć pokaz od strony:

Download "Testowanie oprogramowania Wzorce projektowe"

Transkrypt

1 Testowanie oprogramowania Wzorce projektowe 1/66 Testowanie oprogramowania Wzorce projektowe dr inż. Grzegorz Michalski 17 listopada 2015

2 Testowanie oprogramowania Wzorce projektowe 2/66 Plan wykładu Agenda Dlaczego należy stosować wzorce projektowe. Jak zbudowane są wzorce projektowe. Zbiór wzorców projektowych.

3 Testowanie oprogramowania Wzorce projektowe 3/66 Dlaczego? Motywacja Różne dziedziny inżynierii stawiają sobie odwiecznie następujące pytania: Czy typowe w danej dziedzinie problemy można rozwiązywać w powtarzalny sposób? Czy takie problemy mogą zostać zapisane w sposób abstrakcyjny, w celu wykorzystania ich do opracowania rozwiązań w różnych kontekstach?

4 Testowanie oprogramowania Wzorce projektowe 4/66 Skąd się wzięły wzorce? Wzorzec opisuje problem, który powtarza się wielokrotnie w danym środowisku, oraz podaje istotę jego rozwiązania w taki sposób, zby można było je zastosować milion razy bez potrzeby powtarzania tej samej pracy Christopher Alexander Język wzorców 1977

5 Testowanie oprogramowania Wzorce projektowe 5/66 Wzorce w budownictwie lądowym Dylemat projektanta budowlanego. (R. Johnson)

6 Testowanie oprogramowania Wzorce projektowe 6/66 Wzorce w inżynierii oprogramowania. Wzorzec projektowy identyfikuje i opisuje pewną abstrakcję, której poziom znajduje się powyżej poziomu abstrakcji pojedynczej klasy, instancji lub komponentu E. Gamma, R. Johnson, R. Helm, J. Vlissides, 1994

7 Testowanie oprogramowania Wzorce projektowe 7/66 Wzorce w inżynierii oprogramowania, Rodzaje architektoniczne poziom integracji komponentów, projektowe poziom interakcji między klasami, analityczne poziom opisu rzeczywistości, implementacyjne poziom języka oprogramowania.

8 Testowanie oprogramowania Wzorce projektowe 8/66 Systematyka wzorców projektowych Wzorce: kreacyjne: abstrakcyjne metody tworzenia obiektów, uniezależnienie systemu od sposobu tworzenia obiektów. strukturalne: sposób wiązania obiektów lub struktur obiektowych, właściwe wykorzystanie dziedziczenia i kompozycji. behawioralne: algorytmy i przydział odpowiedzialności, opis przepływu kontroli i interakcji.

9 Testowanie oprogramowania Wzorce projektowe 9/66 Szablon wzorca projektowego Wzorzec projektowy jest opisany przez: nazwę prosty opis istoty wzorca klasyfikację kategorię, do której wzorzec należy cel do czego wzorzec służy aliasy inne nazwy, pod którymi jest znany motywację scenariusz opisujący problem i rozwiązanie zastosowania sytuacje, w których wzorzec jest stosowany strukturę graficzną reprezentację klas składowych wzorca

10 Testowanie oprogramowania Wzorce projektowe 10/66 Szablon wzorca projektowego Wzorzec projektowy jest opisany przez: uczestników nazwy i odpowiedzialności klas składowych wzorca współdziałania opis współpracy między uczestnikami konsekwencje efekty zastosowania wzorca implementację opis implementacji wzorca w danym języku przykład kod stosujący wzorzec pokrewne wzorce wzorce używane w podobnym kontekście

11 Testowanie oprogramowania Wzorce projektowe 11/66 Zbiór wzorców projektowych Katalog wzorców projektowych Bandy Czworga (24 wzorce) kreacyjne: Abstract Factory, Builder, Factory Method, Prototype, Singleton strukturalne: Adapter, Bridge, Composite, Decorator, Composite, facade, Proxy, Flyweight behawioralne: Chain of Responsibility, Command, Interpreter, Mediator, Iterator, Memento, Observer, Statem Startegy, Template Method, Visitor

12 Testowanie oprogramowania Wzorce projektowe 12/66 Singleton Cel wzorca zapewnienie, że klasa posiada jedną instancję wewnątrz całej aplikacji stworzenie punktu dostępowego do tej instancji

13 Testowanie oprogramowania Wzorce projektowe 13/66 Singleton Struktura i uczestnicy definiuje statyczną metodę getinstance() udostępniającą instancję klasy ogranicza dostęp do konstruktora własnej klasy i podklas jest odpowiedzialny za tworzenie instancji własnej klasy

14 Testowanie oprogramowania Wzorce projektowe 14/66 Singleton Konsekwencje stosowania Singleton przejmuje odpowiedzialność za tworzenie instancji własnej klasy, Klient nie zarządza instancją klasy; otrzymuje ją na żądanie Singleton może zarządzać także swoimi podklasami Singleton jest zwykle obiektem bezstanowym Singleton zachowuje się podobnie do zmiennej globalnej Singleton może powodować zwiększenie liczby powiązań w systemie

15 Testowanie oprogramowania Wzorce projektowe 15/66 Pool of Objects Cel wzorca Zarządzaniem grupą Obiektów reprezentujących zasoby wielokrotnego użycia. Ograniczenie kosztów tworzenia i usuwania obiektów.

16 Pool of Objcets: struktura Testowanie oprogramowania Wzorce projektowe 16/66

17 Testowanie oprogramowania Wzorce projektowe 17/66 Pool of Objects Uczestnicy Pool definiuje punkt dostępu do obiektów Object zarządza cyklem życia obiektów Object Object definiuje swój cykl życia może być ponownie wykorzystany Client otrzymuje obiekty Object za pośrednictwem obiektu Pool

18 Testowanie oprogramowania Wzorce projektowe 18/66 Pool of Objects Konsekwencje Zwiększona wydajność obiekty Object są tworzone w ograniczonej licznie instancji i wykorzystywane wielokrotnie zrównoważone obciążanie zasobów Lepsza hermetyzacja klient nie zajmuje się tworzeniem i obsługą obiektów Object

19 Testowanie oprogramowania Wzorce projektowe 19/66 Obcerver Cel Utworzenie zależności typu jeden wiele pomiędzy obiektami Informacja o zmianie stanu wyróżnionego obiektu jest przekazywana wszystkim pozostałym obiektom.

20 Observer: struktura Testowanie oprogramowania Wzorce projektowe 20/66

21 Testowanie oprogramowania Wzorce projektowe 21/66 Observer Uczestnicy Object utrzymuje rejestr obiektów Observer umożliwia dołączanie i odłączanie obiektów Observer Observer udostępnia interfejs do powiadamiania o zmianach Concrete Object przechowuje stan istotny dla obiektów Concrete Observer powiadamia obiekty Concrete Observer Concrete Observer aktualizuje swój stan na podstawie powiadomienia

22 Testowanie oprogramowania Wzorce projektowe 22/66 Observer Konsekwencje Luźniejsze powiązania pomiędzy obiektami: obiekt Object komunikuje się z innymi obiektami przez interfejs Observer obiekty Subject i Observers mogą należeć do różnych warstw abstrakcji programowe rozgłaszanie komunikatów spójność stanu pomiędzy obiektami Object oraz Observer skalowalność aktualizacji: push: obserwatorzy otrzymują kompletny stan obiektu Object pull: obserwatorzy otrzymują powiadomienie i referencję do obiektu Object

23 Testowanie oprogramowania Wzorce projektowe 23/66 Factory Method metoda wytwórcza (Cel) E. Gamma (1995) Zdefiniowanie interfejsu do tworzenia obiektów Umożliwienie przekazania odpowiedzialności za tworzenie obiektów do podklas Umożliwienie wyboru klasy i konstruktora użytego do tworzenia obiektu

24 Metoda wytwórcza struktura Testowanie oprogramowania Wzorce projektowe 24/66

25 Testowanie oprogramowania Wzorce projektowe 25/66 Metoda wytwórcza uczestnicy Uczestnicy Produkt definiuje interfejs obiektów tworzonych przez Metodę wytwórczą ProduktKonkretny specyficzny produkt tworzony przez Metodę wytwórczą Twórca definiuje interfejs do tworzenia obiektów typu Produkt TwórcaKonkretny tworzy obiekt typu ProduktKonkretny

26 Testowanie oprogramowania Wzorce projektowe 26/66 Metoda wytwórcza konsekwencje Konsekwencje Przeniesienie odpowiedzialności za tworzenie obiektów Produkt z klienta na obiekt Twórcy Możliwość rozszerzania hierarchii klas Produkt niezależnie od klienta

27 Testowanie oprogramowania Wzorce projektowe 27/66 Abstract Factory Fabryka abstrakcyjna ( Cel) Stworzenie interfejsu do tworzenia grup powiązanych ze sobą produktów Rozszerzenie Metody wytwórczej na grupy produktów

28 Fabryka abstrakcyjna struktura Testowanie oprogramowania Wzorce projektowe 28/66

29 Testowanie oprogramowania Wzorce projektowe 29/66 Fabryka Abstrakcyjna uczestnicy Uczestnicy Fabryka Abstakcyjna definiuje interfejs do tworzenia obiektów Produktów abstrakcyjnych Fabryka Konkretna tworzy obiekty konkretne Produkty należące do jednej grupy Produkt Abstrakcyjny deklaruje interfejs obiektów Produkt ProdukA/ProduktB definiuje obiekt konkretnego Produktu

30 Testowanie oprogramowania Wzorce projektowe 30/66 Fabryka abstrakcyjna konsekwencje Konsekwencje stosowania Łatwa zmiana całych grup produktów poprzez zmianę używanej konkretnej Fabryki Wydzielenie interfejsu do tworzenia obiektów Odseparowanie klienta od szczegółów implementacji obiektów Produktu Utrudnione dodawanie kolejnych obiektów Product we wszystkich grupach

31 Testowanie oprogramowania Wzorce projektowe 31/66 Facade Fasada Cel Dostarczenie jednorodnego interfejsu wyższego poziomu do zbioru różnych interfejsów w systemie Ukrycie złożoności podsystemów przed klientem

32 Fasada struktura Testowanie oprogramowania Wzorce projektowe 32/66

33 Testowanie oprogramowania Wzorce projektowe 33/66 Fasada Uczestnicy Uczestnicy Fasada zna zakres odpowiedzialności poszczególnych podsystemów; deleguje żądania klienta do podsystemów Podsystem nie wie o obiekcie Fasada wykonuje żądania od klienta i obiektu Fasada

34 Testowanie oprogramowania Wzorce projektowe 34/66 Fasada konsekwencje Odseparowanie klienta od podsystemów: 1 łatwiejsze korzystanie z podsystemów 2 niższe koszty pielęgnacji podsystemów 3 możliwość wymiany/rozbudowy podsystemów Elastyczny dostęp do podsystemów klient może odwołać się do obiektu Fasada lub bezpośrednio do podsystemów

35 Testowanie oprogramowania Wzorce projektowe 35/66 Builder budowniczy Cel Odseparowanie sposobu reprezentacji i metody konstrukcji złożonych struktur obiektowych Wykorzystanie jednego mechanizmu konstrukcyjnego do tworzenia struktur o różnej reprezentacji

36 Budowniczy struktura Testowanie oprogramowania Wzorce projektowe 36/66

37 Testowanie oprogramowania Wzorce projektowe 37/66 Budowniczy uczestnicy Uczestnicy Budowniczy definiuje interfejs do tworzenia obiektów typu Produkt KonkretnyBudowniczy tworzy specjalizowany obiekt typu Produkt Zarządca zna sposób realizacji struktury i jej algorytm; zarządza grupą obiektów Builder i podzleca im wykonanie obiektów Produkt Produkt reprezentuje element składowy struktury; posiada interfejs umożliwiający łączenie z innymi obiektami Produkt

38 Testowanie oprogramowania Wzorce projektowe 38/66 Budowniczy konsekwencje Konsekwencje Zmiana implementacji obiektów Produkt nie wpływa na proces konstrukcji struktury Odseparowanie reprezentacji i konstrukcji struktur obiektowych Precyzyjna kontrola nad procesem konstrukcji struktury Ułatwione testowanie elementów struktury

39 Testowanie oprogramowania Wzorce projektowe 39/66 Prototype Prototyp Cel Umożliwienie tworzenia obiektów na podstawie przykładowej instancji, a nie poprzez wywołanie konstruktora

40 Prototyp Struktura Testowanie oprogramowania Wzorce projektowe 40/66

41 Testowanie oprogramowania Wzorce projektowe 41/66 Prototyp uczestnicy Uczestnicy Prototyp deklaruje metodę clone(); znacznik obiektów, które mogą się sklonować KonkretnyPrototyp implementuje metodę clone() tworzącą klon własnego obiektu

42 Testowanie oprogramowania Wzorce projektowe 42/66 Prototyp konsekwencje Konsekwencje Możliwość tworzenia obiektów poprzez przykład Uproszczona konstrukcja podobnych obiektów 1 pominięcie wyboru konstruktora 2 ograniczenie liczby podklas w systemie

43 Testowanie oprogramowania Wzorce projektowe 43/66 Wzorzec Dekorator Cel: Umożliwienie dynamicznego dodawania funkcjonalności do obiektu Stworzenie elastycznej alternatywy dla tworzenia podklas

44 Dekorator Struktura Testowanie oprogramowania Wzorce projektowe 44/66

45 Testowanie oprogramowania Wzorce projektowe 45/66 Dekorator Uczestnicy Component definiuje wspólny interfejs obiektów ConcreteComponent realizuje podstawową funkcjonalność obiektu Decorator posiada referencję typu Component i do tego obiektu przekierowuje komunikaty; rozszerza funkcjonalność obiektu ConcreteComponent

46 Testowanie oprogramowania Wzorce projektowe 46/66 Dekorator Konsekwencje Zwiększenie elastyczności w przydziale odpowiedzialności w odniesieniu do dziedziczenia Możliwość dodawania funkcjonalności w trakcie wykonywania programu, gdy jest ona potrzebna Tożsamość obiektu z którym komunikuje się klient może się zmieniać wskutek dekoracji Uproszczenie testowania poszczególnych funkcjonalności

47 Testowanie oprogramowania Wzorce projektowe 47/66 Wzorzec: Most Cel Oddzielenie interfejsu i implementacji obiektu, tak aby mogły zmieniać się niezależnie od siebie Realizacja funkcji interfejsu niezależnie od możliwości języka programowania

48 Bridge Struktura Testowanie oprogramowania Wzorce projektowe 48/66

49 Testowanie oprogramowania Wzorce projektowe 49/66 Bridge Uczestnicy Abstraction definiuje interfejs zewnętrzny (abstrakcję): posiada referencję do obiektu typu Implementor oraz deleguje żądania do obiektu typu Implementor ConcreteAbstraction rozszerza interfejs Abstraction Implementor definiuje interfejs wewnętrzny (implementację), jest niespokrewniony z typem Abstraction ConcreteImplementor implementuje typ Implementor

50 Testowanie oprogramowania Wzorce projektowe 50/66 Bridge Konsekwencje Likwidacja zależności pomiędzy klientem a implementacją Wprowadzenie podziału na niezależne: interfejs (Abstraction) oraz implementację (Implementor) Możliwość niezależnego rozszerzania typów Abstraction oraz Implementor

51 Testowanie oprogramowania Wzorce projektowe 51/66 Flyweight Cel Współdzielenie obiektów w celu zwiększenia wydajności Wydzielenie z obiektu stanu wewnętrznego (współdzielonego) i zewnętrznego (specyficznego)

52 Flyweight Struktura Testowanie oprogramowania Wzorce projektowe 52/66

53 Testowanie oprogramowania Wzorce projektowe 53/66 Flyweight Uczestnicy Flyweight podlega współdzieleniu pomiędzy klientów: definiuje interfejs do przyjmowania i odtwarzania stanu zewnętrznego obiektu ConcreteFlyweight przechowuje stan wewnętrzny (współdzielony) oraz jest niezależny od kontekstu (z wyjątkiem stanu zewnętrznego) FlyweightFactory tworzy oraz przechowuje obiekty Flyweight Client otrzymuje obiekty Flyweight za pośrednictwem FlyweightFactory

54 Testowanie oprogramowania Wzorce projektowe 54/66 Flyweight Konsekwencje Zmniejszenie wymagań pamięciowych programu poprzez zmniejszenie ogólnej liczby obiektów, zmniejszenie rozmiaru stanu obiektów oraz to, iż stan zewnętrzny może być przechowywany lub bezpośrednio wyliczany Wzrost złożoności obliczeniowej poprzez dodatkowy nakład na zarządzanie stanem zewnętrznym.

55 Testowanie oprogramowania Wzorce projektowe 55/66 Mediator Cel Uproszczenie komunikacji wielu obiektów Hermetyzacja mechanizmu wymiany komunikatów

56 Mediator Struktura Testowanie oprogramowania Wzorce projektowe 56/66

57 Testowanie oprogramowania Wzorce projektowe 57/66 Mediator Uczestnicy Mediator definiuje interfejs dołączania i odłączania kolegów Concrete Mediator implementuje mechanizm komunikacji pomiędzy obiektami Colleague, posiada on referencje do zarejestrowanych obiektów Colleague Colleague definiuje wspólny interfejs dla komunikujących się obiektów: posiada referencję do obiektu Mediator oraz komunikuje się z innymi obiektami za pośrednictwem obiektu Mediator

58 Testowanie oprogramowania Wzorce projektowe 58/66 Mediator Konsekwencje Centralizacja mechanizmu komunikacji: wyłączna odpowiedzialność obiektu Mediator, zmiana mechanizmu wymaga tylko zmiany Mediatora, prostota komunikacji vs. złożoność Mediatora Niezależność obiektów Colleague od siebie Uproszczenie protokołów obiektowych: Zamiana relacji wiele wiele na relacje jeden-wiele

59 Testowanie oprogramowania Wzorce projektowe 59/66 Template Method Cel Stworzenie szkieletu algorytmu w postaci klasy Przesunięcie niektórych operacji do podklas

60 Template Method Struktura Testowanie oprogramowania Wzorce projektowe 60/66

61 Testowanie oprogramowania Wzorce projektowe 61/66 Template Method Uczestnicy AbstractClass definiuje szkielet algorytmu w postaci metody: szkielet odwołuje się do prostych metod abstrakcyjnych ConcreteClass implementuje proste metody abstrakcyjne oraz pokrywa inne, wybrane metody odziedziczone z AbstractClass

62 Testowanie oprogramowania Wzorce projektowe 62/66 Template Method Konsekwencje Odwrócona struktura odwołań: zasada Proszę nie dzwonić, to my zadzwonimy Nadklasa odwołuje się do metod w podklasach

63 Testowanie oprogramowania Wzorce projektowe 63/66 Iterator Cel Umożliwienie dostępu do elementów kolekcji bez ujawniania jej wewnętrznej implementacji. Iterator z reguły umożliwia dostęp sekwencyjny, jednak możliwy jest równiez dostęp bezpośredni do elementów.

64 Iterator Struktura Testowanie oprogramowania Wzorce projektowe 64/66

65 Testowanie oprogramowania Wzorce projektowe 65/66 Iterator Uczestnicy Agregator ogólny interfejs każdej kolekcji: deklaruje interfejs do tworzenia iteratora ConcreteAgregator tworzy iterator specyficzny dla własnej struktury Iterator definiuje interfejs sekwencyjnego dostępu do obiektu Agregator (getfirst(), getnext(), hasnext()) ConcreteIterator implemenetacja interfejsu Iterator specyficzna dla konkretnej kolekcji

66 Testowanie oprogramowania Wzorce projektowe 66/66 Iterator Konsekwencje Abstrakcyjny dostęp do elementów kolekcji Niezależność od implementacji kolekcji Możliwość współistnienia różnych iteratorów w jednej kolekcji Możliwość istnienia wielu iteratorów naraz: każdy iterator przechowuje informacje o aktualnym położeniu (pozycyji). Iteratory są obiektami stanowymi.

problem w określonym kontekście siły istotę jego rozwiązania

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

Bardziej szczegółowo

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz

Wzorce projektowe ArrayList. Aplikacja i zdarzenia. Paweł Chodkiewicz Wzorce projektowe ArrayList DataGridView Aplikacja i zdarzenia Paweł Chodkiewicz Wzorzec uniwersalne rozwiązanie często powtarzających się problemów. Wzorzec opisuje problem, który powtarza się wielokrotnie

Bardziej szczegółowo

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób?

Problemy projektowania obiektowego. Czy podobne problemy można rozwiązywac w podobny sposób? Problemy projektowania obiektowego Czy podobne problemy można rozwiązywac w podobny sposób? Czy te problemy można przedstawić w abstrakcyjny sposób, tak aby były pomocne w tworzeniu rozwiązań w różnych

Bardziej szczegółowo

WZORCE PROJEKTOWE (I) (DESIGN PATTERNS)

WZORCE PROJEKTOWE (I) (DESIGN PATTERNS) WZORCE PROJEKTOWE (I) (DESIGN PATTERNS) Maciej Patan Motywacje W wielu dziedzinach nowoczesnej inżynierii napotykamy na następujące zagadnienia: Czy typowe zadania i problemy można rozwiązywać w powtarzalny

Bardziej szczegółowo

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo Wzorce projektowe dr inż. Marcin Pietroo Wzorce projektowe Wzorzec projektowy (ang. design pattern) w inżynierii oprogramowania, rozwiązanie często pojawiających się, powtarzalnych problemów projektowych.

Bardziej szczegółowo

Wypożyczalnia VIDEO. Technologie obiektowe

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

Bardziej szczegółowo

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo Wzorce projektowe dr inż. Marcin Pietroo Adapter - strukturalny wzorzec projektowy, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach - adapter przekształca interfejs

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

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

Bardziej szczegółowo

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

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ół

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych

Projektowanie obiektowe Wzorce projektowe. Wprowadzenie do wzorców projektowych Projektowanie obiektowe Wzorce projektowe Wprowadzenie do wzorców projektowych 1 Zagadnienia Katalog wzorców projektowych wg Gang of Four Zasady projektowania obiektowego S O L I D MVC - Model-Widok-Kontroler

Bardziej szczegółowo

Technologia Programowania 2016/2017 Wykład 4

Technologia Programowania 2016/2017 Wykład 4 Technologia Programowania 2016/2017 Wykład 4 Wzorce projektowe GoF Jakub Lemiesz Wzorce GRASP a wzorce GoF Znamy 9 wzorców GRASP ogólne zasady Na GRASP opierają się klasyczne wzorce GoF Na wzorcach GoF

Bardziej szczegółowo

Analiza i projektowanie obiektowe 2016/2017. Wykład 11: Zaawansowane wzorce projektowe (1)

Analiza i projektowanie obiektowe 2016/2017. Wykład 11: Zaawansowane wzorce projektowe (1) Analiza i projektowanie obiektowe 2016/2017 Wykład 11: Zaawansowane wzorce projektowe (1) Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Wzorce projektowe

Bardziej szczegółowo

Projektowanie oprogramowania: wzorce architektoniczne i projektowe

Projektowanie oprogramowania: wzorce architektoniczne i projektowe Projektowanie oprogramowania: wzorce architektoniczne i projektowe Ogólne zasady projektowania Nie staraj się zadziwić innych. Rzeczy oczywiste rób w sposób oczywisty. Nie rozmawiaj z nieznajomym. Projekt

Bardziej szczegółowo

Wzorce projektowe Michał Węgorek

Wzorce projektowe Michał Węgorek Wzorce projektowe Michał Węgorek Wzorce projektowe Plan prezentacji Co to jest i po co to jest? Podział Najczęściej spotykane wzorce Bibliografia Co to jest i po co to jest? Wzorzec projektowy (ang. Design

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe

Projektowanie obiektowe Wzorce projektowe Projektowanie obiektowe Wzorce projektowe Gang of Four Kreacyjne wzorce projektowe (wzorce konstrukcyjne) 1 Roadmap Memento Factory Method Abstract Factory Prototype Builder 2 Wzorce konstrukcyjne wzorce

Bardziej szczegółowo

Technologia Programowania 2016/2017 Wykład 5

Technologia Programowania 2016/2017 Wykład 5 Technologia Programowania 2016/2017 Wykład 5 Wzorce GoF Jakub Lemiesz Wzorce GoF Kreacyjne Builder Singleton Simple Factory Factory Method Abstract Factory Prototype Strukturalne Adapter Decorator Proxy

Bardziej szczegółowo

(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński

(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński (wybrane) Wzorce projektowe Programowanie Obiektowe Mateusz Cicheński Kreacyjne Fabryka abstrakcyjna (Abstract Factory) Budowniczy (Builder) Metoda wytwórcza (Factory Method) Prototyp (Prototype) Singleton

Bardziej szczegółowo

Wzorce projektowe cz. I. Wzorce projektowe cz. I 1/33

Wzorce projektowe cz. I. Wzorce projektowe cz. I 1/33 Wzorce projektowe cz. I Wzorce projektowe cz. I 1/33 Wzorce projektowe cz. I 2/33 Historia Wzorce projektowe: wywodzą się z wzorców projektowych w architekturze termin wzorca projektowego wprowadzony do

Bardziej szczegółowo

(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński

(wybrane) Wzorce projektowe. Programowanie Obiektowe Mateusz Cicheński (wybrane) Wzorce projektowe Programowanie Obiektowe Mateusz Cicheński Kreacyjne Fabryka abstrakcyjna (Abstract Factory) Budowniczy (Builder) Metoda wytwórcza (Factory Method) Prototyp (Prototype) Singleton

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce odpowiedzialności

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce odpowiedzialności Projektowanie obiektowe Wzorce projektowe Gang of Four Wzorce odpowiedzialności 1 Roadmap Singleton Observer Mediator Proxy Flyweight 2 Wzorce odpowiedzialności Udostępniają techniki centralizacji, delegowania

Bardziej szczegółowo

Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016

Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016 Projektowanie obiektowe oprogramowania Wykład 5 wzorce strukturalne Wiktor Zychla 2016 1 Wzorce strukturalne 1.1 Facade Motto: uproszczony interfejs dla podsystemu z wieloma interfejsami class SmtpFacade

Bardziej szczegółowo

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017

Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017 Projektowanie obiektowe oprogramowania Wykład 4 wzorce projektowe cz.i. wzorce podstawowe i kreacyjne Wiktor Zychla 2017 1 Wzorce podstawowe 1.1 Interface vs Abstract class class InterfaceAbstractClass

Bardziej szczegółowo

Wzorce projektowe [ wstęp ]

Wzorce projektowe [ wstęp ] Wzorce projektowe [ wstęp ] Motywacje definiowania wzorców projektowych Za twórcę uważany jest amerykański architekt Christopher Alexander Alexander, C., Ishikawa, S., Silverstein, M., The Timeless Way

Bardziej szczegółowo

Wzorce oprogramowania Gof (cd) zastosowane w modelu obiektowym

Wzorce oprogramowania Gof (cd) zastosowane w modelu obiektowym Wzorce oprogramowania Gof (cd) (Gang of Four skrót odnoszący się do autorów ksiązki: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software)

Bardziej szczegółowo

Wzorce projektowe cz. II. Wzorce projektowe cz. II 1/35

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

Bardziej szczegółowo

1) Wzorzec projektowy Adapter. Zastosowanie:

1) Wzorzec projektowy Adapter. Zastosowanie: Projektowanie Systemów Komputerowych Laboratoria/Projekty Krzysztof Regulski AGH, WIMiIP WZORCE STRUKTURALNE PSK - projektowanie systemów komputerowych, notatki w Internecie, Beata Frączek, http://brasil.cel.agh.edu.pl/~09sbfraczek

Bardziej szczegółowo

Programowanie w języku Java WYKŁAD

Programowanie w języku Java WYKŁAD Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 24.02.2014 WYKŁAD 1 Wzorce projektowe Znaczenie

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

UML [ Unified Modeling Language ]

UML [ Unified Modeling Language ] UML [ Unified Modeling Language ] UML język formalny służący do opisu świata obiektów w analizie obiektowej oraz programowaniu obiektowym. W najnowszej wersji (2.4.x) języka UML wyróżnia się 13 diagramów

Bardziej szczegółowo

Wzorce projektowe. dr inż. Marcin Pietroo

Wzorce projektowe. dr inż. Marcin Pietroo Wzorce projektowe dr inż. Marcin Pietroo Iterator czynnościowy wzorzec projektowy (obiektowy), którego celem jest zapewnienie sekwencyjnego dostępu do podobiektów zgrupowanych w większym obiekcie (np.

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów)

Projektowanie obiektowe Wzorce projektowe. Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów) Projektowanie obiektowe Wzorce projektowe Gang of Four Strukturalne wzorce projektowe (Wzorce interfejsów) 1 Roadmap Adapter Bridge Composite Facade 2 Pojęcia obiekt interfejs typ klasa 3 Co to jest delegacja?

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Wstęp [2/2] Wbrew częstemu przekonaniu, nie są one gotowymi rozwiązaniami, to tylko półprodukty rozwiązania.

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne Program szkolenia: Wzorce projektowe i ich implementacja w C# oraz testowanie automatyczne Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Wzorce projektowe i ich implementacja

Bardziej szczegółowo

Wzorce projektowe cz. III

Wzorce projektowe cz. III Wzorce projektowe cz. III Prowadzący: Bartosz Walter Wzorce projektowe cz. III 1 Decorator: cel UmoŜliwienie dynamicznego dodawania funkcjonalności do obiektu Stworzenie elastycznej alternatywy dla tworzenia

Bardziej szczegółowo

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

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

Bardziej szczegółowo

Wzorce oprogramowania Gof. zastosowane w modelu obiektowym

Wzorce oprogramowania Gof. zastosowane w modelu obiektowym Wzorce oprogramowania Gof (Gang of Four skrót odnoszący się do autorów ksiązki: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software)

Bardziej szczegółowo

Wzorce projektowe i refaktoryzacja

Wzorce projektowe i refaktoryzacja Wzorce projektowe i refaktoryzacja Paweł Kozioł p.koziol@students.mimuw.edu.pl 18.01.2005 Moja praca magisterska Narzędzie dla środowiska Eclipse wspierające stosowanie wzorców projektowych J2EE Prowadzący:

Bardziej szczegółowo

Perspektywa obiektowości

Perspektywa obiektowości Inżynieria Oprogramowania Wykład 10 Wzorce projektowe Perspektywa obiektowości obiekty hermetyzacja dziedziczenie klasy abstrakcyjne 2 Wzorce projektowe Czym są wzorce projektowe Przykładowe definicje:

Bardziej szczegółowo

WZORCE PROJEKTOWE. Software engineering has accepted as its charter How to program if you cannot. E. Djikstra

WZORCE PROJEKTOWE. Software engineering has accepted as its charter How to program if you cannot. E. Djikstra WZORCE PROJEKTOWE Software engineering has accepted as its charter How to program if you cannot. E. Djikstra 1 * Wykład 1 Wzorzec projektowy opis komunikujących się obiektów i klas dostosowanych do rozwiązania

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 2

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 2 Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 2 Zofia Kruczkiewicz 1 Diagramy maszyn stanowych, wzorce projektowe 1. Modelowanie aktywności za pomocą diagramów sekwencji i aktywności porównanie

Bardziej szczegółowo

Wzorce projektowe kreacyjne

Wzorce projektowe kreacyjne Wzorce projektowe kreacyjne Krzysztof Ciebiera 14 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawy Opis Ogólny Podstawowe informacje Wzorce kreacyjne sªu» do uabstrakcyjniania procesu tworzenia obiektów. Znaczenie

Bardziej szczegółowo

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

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,

Bardziej szczegółowo

Decorator (dekorator)

Decorator (dekorator) 1/10 Decorator (dekorator) Cel: Dołącza dynamicznie nową funkcjonalność do obiektu elastyczna alternatywa dziedziczenia. Przykład: interface iplik { void zapisz(string tekst); String odczytaj(); class

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania Analiza i projektowanie oprogramowania 1/32 Analiza i projektowanie oprogramowania 2/32 Cel analizy Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie:

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Inżynieria Biomedyczna Rodzaj przedmiotu: obowiązkowy moduł specjalności informatyka medyczna Rodzaj zajęć: wykład, laboratorium PROGRAMOWANIE OBIEKTOWE Object-Oriented Programming

Bardziej szczegółowo

Technologie obiektowe

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ść

Bardziej szczegółowo

WYKŁAD 12. Wzorce projektowe czynnociowe State Mediator

WYKŁAD 12. Wzorce projektowe czynnociowe State Mediator WYKŁAD 12 Wzorce projektowe czynnociowe State Mediator Behavioral Design Pattern: State [obj] Umoliwia obiektowi zmian zachowania gdy zmienia si jego stan wewntrzny. Dzieki temu obiekt zdaje si zmienia

Bardziej szczegółowo

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

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

Bardziej szczegółowo

Przykładowa implementacja

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

Bardziej szczegółowo

Programowanie i projektowanie obiektowe

Programowanie i projektowanie obiektowe Programowanie i projektowanie obiektowe Powiązania i tworzenie obiektów Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) PO w. IV Jesień 2014 1 / 27 Powiązania Jeden do jeden Przez

Bardziej szczegółowo

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

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

Bardziej szczegółowo

UML cz. II. UML cz. II 1/38

UML cz. II. UML cz. II 1/38 UML cz. II UML cz. II 1/38 UML cz. II 2/38 Klasy Najważniejsze informacje o klasie: różnica pomiędzy klasą a jej instancją (obiektem) na podstawie klasy tworzone są obiekty (instancje klasy) stan obiektu

Bardziej szczegółowo

Paweł Kurzawa, Delfina Kongo

Paweł Kurzawa, Delfina Kongo Paweł Kurzawa, Delfina Kongo Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management

Bardziej szczegółowo

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2 Modelowanie i analiza systemów informatycznych 1. Warstwowa budowa systemów informatycznych 2. Model procesu wytwarzania oprogramowania - model cyklu życia oprogramowania 3. Wstęp do modelowania systemów

Bardziej szczegółowo

Programowanie Zespołowe

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

Bardziej szczegółowo

Język Java część 2 (przykładowa aplikacja)

Język Java część 2 (przykładowa aplikacja) Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa

Bardziej szczegółowo

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/

Język programowania. Andrzej Bobyk http://www.alfabeta.lublin.pl. www.alfabeta.lublin.pl/jp/ Język programowania Andrzej Bobyk http://www.alfabeta.lublin.pl www.alfabeta.lublin.pl/jp/ Literatura K. Reisdorph: Delphi 6 dla każdego. Helion, Gliwice 2001 A. Grażyński, Z. Zarzycki: Delphi 7 dla każdego.

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 4

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.

Bardziej szczegółowo

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.

Bardziej szczegółowo

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. 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

Bardziej szczegółowo

Zagadnienia projektowania aplikacji J2EE

Zagadnienia projektowania aplikacji J2EE 211 Zagadnienia projektowania aplikacji J2EE Maciej Zakrzewicz Maciej.Zakrzewicz@cs.put.poznan.pl http://www.cs.put.poznan.pl/mzakrzewicz/ Plan rozdziału 212 Wstęp Techniki projektowe: Wprowadzenie modułu

Bardziej szczegółowo

Wykład 1 Inżynieria Oprogramowania

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

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Metody statyczne i klasowe Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk (Wydział Fizyki) PO w. VI Jesień 2013 1 / 23 W poprzednich odcinkach... Klasy kategorie obiektów Przynależność

Bardziej szczegółowo

Wzorce projektowe / Eric Freeman [et al.]. Gliwice, cop Spis treści

Wzorce projektowe / Eric Freeman [et al.]. Gliwice, cop Spis treści Wzorce projektowe / Eric Freeman [et al.]. Gliwice, cop. 2011 Spis treści Wprowadzenie Dla kogo przeznaczona jest ta ksiąŝka? 22 Wiemy takŝe, co sobie myśli Twój mózg 23 Metapoznanie 25 Zmuś swój mózg

Bardziej szczegółowo

Forum Client - Spring in Swing

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

Bardziej szczegółowo

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017 Wykład 12 7 czerwca 2017 Czym jest UML? UML składa się z dwóch podstawowych elementów: notacja: elementy graficzne, składnia języka modelowania, metamodel: definicje pojęć języka i powiazania pomiędzy

Bardziej szczegółowo

Wykład 4. Projektowanie. MIS n Inżynieria oprogramowania Październik 2014

Wykład 4. Projektowanie. MIS n Inżynieria oprogramowania Październik 2014 Wykład 4 MIS-1-505-n Inżynieria oprogramowania Październik 2014 Metody Kazimierz Michalik Akademia Górniczo-Hutnicza im. S. Staszica w Krakowie 4.1 Agenda 1 2 3 Metody Metody 4 5 4.2 Implementacja Metody

Bardziej szczegółowo

Komunikacja i wymiana danych

Komunikacja i wymiana danych Budowa i oprogramowanie komputerowych systemów sterowania Wykład 10 Komunikacja i wymiana danych Metody wymiany danych Lokalne Pliki txt, csv, xls, xml Biblioteki LIB / DLL DDE, FastDDE OLE, COM, ActiveX

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

Rysunkowy tutorial Możesz swobodnie dystrybuować ten plik jeśli pozostawisz go w nietkniętym stanie. Możesz także cytować jego fragmenty umieszczając w tekście odnośnik http://mbartyzel.blogspot.com Jak

Bardziej szczegółowo

Java. Wzorce projektowe

Java. Wzorce projektowe IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK SPIS TREŒCI KATALOG ONLINE DODAJ DO KOSZYKA CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOŒCIACH ZAMÓW CENNIK Java. Wzorce projektowe

Bardziej szczegółowo

Wzorce projektowe cz. I

Wzorce projektowe cz. I Wzorce projektowe cz. I Prowadzący: Bartosz Walter Wzorce projektowe cz. I 1 Agenda 1. Motywacja dla stosowania i definiowania wzorców 2. Struktura wzorca projektowego 3. Katalog wzorców projektowych Wzorce

Bardziej szczegółowo

hierarchie klas i wielodziedziczenie

hierarchie klas i wielodziedziczenie Programowanie Obiektowe (język C++) Wykład 15. hierarchie klas i wielodziedziczenie Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Hierarchie klas Dziedziczenie wprowadza relację

Bardziej szczegółowo

Virtual Grid Resource Management System with Virtualization Technology

Virtual Grid Resource Management System with Virtualization Technology Virtual Grid Resource Management System with Virtualization Technology System zarządzania zasobami wirtualnego Gridu z wykorzystaniem technik wirtualizacji Joanna Kosińska Jacek Kosiński Krzysztof Zieliński

Bardziej szczegółowo

Wzorce projektowe. Wstęp

Wzorce projektowe. Wstęp Wstęp Stworzenie programu łatwego w rozwijaniu i naprawie nie należy do łatwych zadań. Na różnych etapach prac można napotkać wiele niemiłych niespodzianek i przeciwności losu, głównie takich które sami

Bardziej szczegółowo

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV Piotr Jarosik, Kamil Jaworski, Dominik Olędzki, Anna Stępień Dokumentacja wstępna TIN Rozproszone repozytorium oparte o WebDAV 1. Wstęp Celem projektu jest zaimplementowanie rozproszonego repozytorium

Bardziej szczegółowo

Wprowadzenie do systemów informacyjnych

Wprowadzenie do systemów informacyjnych Uwagi ogólne: Wprowadzenie do systemów informacyjnych Projektowanie obiektowe Obiektowość jest nową ideologią, która zmienia myślenie realizatorów SI z zorientowanego na maszynę na zorientowane na człowieka.

Bardziej szczegółowo

Komentarz. W poszukiwaniu zaginionego wzorca

Komentarz. W poszukiwaniu zaginionego wzorca Komentarz W poszukiwaniu zaginionego wzorca W poszukiwaniu zaginionego wzorca Administrator nadal z powodzeniem używa tego samego programu do zarządzania usługami. Aczkolwiek pojawia się coraz więcej systemów

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

1) Interpreter. Idea. Struktura. Uczestnicy

1) Interpreter. Idea. Struktura. Uczestnicy Projektowanie Systemów Komputerowych Laboratoria/Projekty Krzysztof Regulski AGH, WIMiIP WZORCE CZYNNOŚCIOWE PSK - projektowanie systemów komputerowych, notatki w Internecie, Beata Frączek, http://brasil.cel.agh.edu.pl/~09sbfraczek

Bardziej szczegółowo

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Zaawansowane programowanie w języku C++

Zaawansowane programowanie w języku C++ Kod szkolenia: Tytuł szkolenia: C/ADV Zaawansowane programowanie w języku C++ Dni: 3 Opis: Uczestnicy szkolenia zapoznają się z metodami wytwarzania oprogramowania z użyciem zaawansowanych mechanizmów

Bardziej szczegółowo

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2)

Analiza i projektowanie obiektowe 2016/2017. Wykład 8: Przypisywanie obiektom odpowiedzialności (2) Analiza i projektowanie obiektowe 2016/2017 Wykład 8: Przypisywanie obiektom odpowiedzialności (2) Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Wzorce

Bardziej szczegółowo

UML w Visual Studio. Michał Ciećwierz

UML w Visual Studio. Michał Ciećwierz UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować

Bardziej szczegółowo

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

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

Bardziej szczegółowo

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas Analiza i projektowanie obiektowe 2016/2017 Wykład 10: Tworzenie projektowego diagramu klas Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Projektowy

Bardziej szczegółowo

Rok akademicki: 2014/2015 Kod: IEL s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Rok akademicki: 2014/2015 Kod: IEL s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: - Nazwa modułu: Programowanie obiektowe Rok akademicki: 2014/2015 Kod: IEL-1-408-s Punkty ECTS: 5 Wydział: Informatyki, Elektroniki i Telekomunikacji Kierunek: Elektronika Specjalność: - Poziom studiów:

Bardziej szczegółowo

Programowanie w języku Java WYKŁAD

Programowanie w języku Java WYKŁAD Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 26.05.2014 WYKŁAD 13 Refleksja Data Access Object

Bardziej szczegółowo

Interfejsy i klasy wewnętrzne

Interfejsy i klasy wewnętrzne Interfejsy i klasy wewnętrzne mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Interfejs klasy sposób komunikacji z jej obiektami (zestaw składowych publicznych). Określa on zestaw

Bardziej szczegółowo

Świat rzeczywisty i jego model

Świat rzeczywisty i jego model 2 Świat rzeczywisty i jego model Świat rzeczywisty (dziedzina problemu) Świat obiektów (model dziedziny) Dom Samochód Osoba Modelowanie 3 Byty i obiekty Byt - element świata rzeczywistego (dziedziny problemu),

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 03 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas abstrakcyjnych i interfejsów. Wprowadzenie

Bardziej szczegółowo

Podstawy modelowania programów Kod przedmiotu

Podstawy modelowania programów Kod przedmiotu Podstawy modelowania programów - opis przedmiotu Informacje ogólne Nazwa przedmiotu Podstawy modelowania programów Kod przedmiotu 11.3-WI-INFP-PMP Wydział Kierunek Wydział Informatyki, Elektrotechniki

Bardziej szczegółowo