PORÓWNANIE SPOSOBÓW REPREZENTACJI WZORCÓW PROJEKTOWYCH

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

Download "PORÓWNANIE SPOSOBÓW REPREZENTACJI WZORCÓW PROJEKTOWYCH"

Transkrypt

1 RAFAŁ WOJSZCZYK Katedra Inżynierii Komputerowej Wydział Elektroniki i Informatyki Politechnika Koszalińska PORÓWNANIE SPOSOBÓW REPREZENTACJI WZORCÓW PROJEKTOWYCH Streszczenie: Celem publikacji jest porównanie sposobów reprezentacji wzorców projektowych, które będą umożliwiały ich dalsze analizowanie. W pracy krótko przedstawiono historię wzorców projektowych, zawierając w tym wkład C. Alexandra oraz Bandy Czterech. Wyjaśnione są rodzaje wzorców, cel ich stosowania oraz korzyści z tego wynikające. Przedstawione zostały różne sposoby reprezentacji wzorców projektowych, w tym oparte na grafach i ontologiach. Następnie zostały teoretycznie porównane względem siebie, wraz ze wskazaniem najlepszego sposobu reprezentacji do analizowania wzorców projektowych. Słowa kluczowe: wzorce projektowe, GoF, grafy etykietowane, ontologie 1. Wprowadzenie Obecnie różnego rodzaju wzorce mają bardzo szerokie zastosowanie w wielu nie powiązanych ze sobą dziedzinach, przez co nie powinno utożsamiać się terminu "wzorzec" wyłącznie z informatyką. Przykładowym wzorcem są frazy melodyjne lub wzorce akompaniamentów pianistycznych (z ang. Piano Patterns) w muzyce. Są to wzory pewnych melodii lub akompaniamentów, możliwych do powtórzenia w różnych tonacjach a do tego gwarantujące ich dobre współbrzmienie z tą tonacją. Zapewne w większości przypadków celem użycia tego słowa jest wskazanie idei powtarzającego się problemu i możliwości ponownego użycia rozwiązania do tegoż problemu. Panuje przekonanie, że wspomnianą ideę pierwszy nazwał wzorcem Christopher Alexander w latach siedemdziesiątych XX wieku.

2 134 Rafał Wojszczyk Christopher Alexander zdefiniował wzorzec słowami: "Każdy wzorzec opisuje pewien regularnie napotykany problem i łączy go z ogólnym opisem jego rozwiązania w sposób, który pozwala stosować to rozwiązanie miliony razy, ale za każdym razem nieco inaczej" [6]. Słowa te dotyczyły budownictwa, lecz są na tyle uniwersalne, że można przenieść ich znaczenie do wielu innych dziedzin, w tym też do programowania. Prace Alexandra skupiały się na definiowaniu i klasyfikacji wzorców. Zaproponował również nieformalny sposób opisu wzorców, składający się z wyjaśnienia kontekstu, problemu i rozwiązania. 2. Wzorce w oprogramowaniu Prace Alexandra wywarły bardzo duży wpływ na informatykę, szczególnie na programowanie. Sam Christopher Alexander miał swój osobisty wkład w tematyce wzorców w informatyce [1]. W samej informatyce za bardzo ważne dzieło uważana jest publikacja E. Gammy i innych "WZORCE PROJEKTOWE Elementy oprogramowania obiektowego wielokrotnego użytku" [7] (tytuł oryginału: "Design Patterns: Elements of Reusable Object-oriented Software"), autorzy nazywani są często Bandą Czterech. Mimo upływu 20 lat od wydania tej pozycji, wciąż jest ona uważana za pewien standard i omawiana przez innych: [10, 11, 12]. Autorom [7] przypisywanych jest wiele zasług za rozpowszechnianie i popularyzację wzorców. Jednakże nie są oni twórcami samych wzorców, czy też zasad stosowania wzorców w programowaniu obiektowym. Ich zasadniczym wkładem jest zebranie i opisanie 23 wzorców Podział wzorców Wieloznaczeniowy charakter słowa wzorzec ma taką wadę, że używając tego słowa, nawet w kontekście programowania, można łatwo wprowadzić rozmówców w błąd. Dlatego warto przedstawić podział [11], bazujący na różnych poziomach abstrakcji i wyjaśnić ich znaczenie: wzorce architektury są to strategie o wysokim poziomie abstrakcji, opisujące poziom integracji komponentów. Do tej grupy zaliczają się między innymi Model-View-Controler oraz Model-View-Presenter. wzorce projektowe obejmują mniejszy zakres niż wzorce architektury, dotyczą poziomu interakcji między klasami lecz wciąż są abstrakcyjne, ponad poziomem implementacji. Do tej grupy zaliczają się między innymi wzorce przedstawione w [7].

3 Porównanie sposobów reprezentacji wzorców projektowych 135 wzorce implementacyjne, nazywane również idiomami, są to konstrukcje programistyczne używane w konkretnym paradygmacie programowania, są na najniższym poziomie abstrakcji. Do tej grupy zaliczają się między innymi proste instrukcje jak: inkrementacja wartości stałoprzecinkowej, nieskończone pętle Czym jest wzorzec projektowy? Odpowiadając wprost na pytanie z tytułu tego podrozdziału, można powiedzieć, że wzorzec projektowy jest to opis rozwiązania pewnego problemu, który jest powtarzalny. Łatwość przy tym jest taka, że rozwiązanie nie musi być ponownie opracowywane oraz osoba korzystająca z takiego rozwiązania nie musi rozumieć wszystkich jego aspektów, a jedynie wiedzieć jak z niego skorzystać. Oprócz tego wzorce projektowe są w pewnym sensie językiem komunikacji pomiędzy programistami, umożliwiają dzielenie się wiedzą oraz sposobem na udokumentowanie projektu. Poprzez stosowanie odpowiednich nazw bądź adnotacji, każdy nowy programista znający wzorce projektowe, łatwiej zrozumie kod programu, który widzi pierwszy raz. Stosowanie wzorców projektowych jest uznane wśród społeczności programistów za bardzo dobrą praktykę. Sama idea ponownego wykorzystania nie jest niczym nowym. Wiele lat wcześniej, przed popularyzacją wzorców projektowych przez [7], znane były techniki ponownego wykorzystania komponentów, czy po prostu klas. Warto też dodać, czym nie jest wzorzec projektowy - nie jest to gotowa biblioteka lub klasa, którą można bezpośrednio wykorzystać. Każdy wzorzec projektowy wymaga aby to programista wykorzystujący dany wzorzec odpowiednio go zaimplementował. Wzorce projektowe można nazwać "półproduktami". Ponadto nie w każdej sytuacji można zastosować znany wzorzec projektowy. Przyjęło się, że aby pewne rozwiązanie można było nazwać wzorcem musi spełnić regułę trzech. Co oznacza, że rozwiązanie musi zostać wykorzystane w przynajmniej trzech przypadkach bardzo podobnych problemów Klasyfikacja wzorców projektowych Jednym z najważniejszych dokonań Bandy Czterech jest klasyfikacja wzorców projektowych [7]. Klasyfikację tą przedstawia tabela 1. Wzorce konstrukcyjne dotyczą problemów związanych z tworzeniem obiektów. Wzorce strukturalne dotyczą problemów ze składaniem klas lub obiektów. Wzorce operacyjne dotyczą problemów ze współdziałaniem klas lub obiektów oraz podziałem zachowania między nimi.

4 136 Rafał Wojszczyk Tab. 1. Klasyfikacja wzorców projektowych na podstawie [GoF] Konstrukcyjne Strukturalne Operacyjne Metoda wytwórcza Fabryka abstrakcyjna Budowniczy Prototyp Singleton Adapter Most Kompozyt Dekorator Fasada Pyłek Pełnomocnik Interpreter Metoda szablonowa Łańcuch zobowiązań Polecenie Iterator Mediator Pamiątka Obserwator Stan Strategia Wizytator 3. Nieformalne sposoby reprezentacji wzorców projektowych Wzorce projektowe reprezentowane są bardzo często w sposób nieformalny, tzn. w postaci ogólnego opisu słownego, wzbogaconego diagramami w notacji UML. Takie podejście zostało wykorzystane w [7]. Christopher Alexander do opisu swoich wzorców również stosował sposób nieformalny. Sposób nieformalny zaproponowany przez [7] przedstawia tabela 2. Niewątpliwą zaletą takiego sposobu reprezentacji jest łatwość zrozumienia i przejrzystość. Tym bardziej, że dzieło [7] jest traktowane jako katalog wzorców projektowych. Niestety, zasadniczą wadą takiej reprezentacji jest brak możliwości interpretacji tego zapisu w sposób zrozumiały dla komputera. Jak też wynik przekształcenia zaimplementowanego wzorca projektowego w kodzie programu do reprezentacji nieformalnej, nie ma sensu i nie będzie mógł być poddany dalszej analizie. Oprócz wspomnianych sposobów [7] oraz Alexandra, istnieją też inne sposoby reprezentacji nieformalnej, np. przedstawiona w [6]. Cechą wspólną tych sposobów jest przede wszystkim nazwa, która powinna jednoznacznie nakreślać istotę rozwiązywanych problemów. Według [10] i [11] reprezentacje oparte w znacznym stopniu na języku UML klasyfikują się pomiędzy reprezentacjami nieformalnymi a formalnymi i uznawane są za półformalne. Opis w postaci diagramów klas UML jest jednym z elementów systemu nieformalnego opisanego wcześniej. Mimo wszystko

5 Porównanie sposobów reprezentacji wzorców projektowych 137 taki opis może być niewystarczający do pełnego przedstawienia rozbudowanych wzorców projektowych. Dzieje się tak, ponieważ diagramy klas przedstawiają wyłącznie statyczną strukturę wzorców, podczas gdy wiele z nich charakteryzuje się wieloma właściwościami dynamicznymi. Tab. 2. Opis nieformalny według [7] Nazwa i klasyfikacja Przeznaczenie Inne nazwy Uzasadnienie Warunki stosowania Struktura Elementy Współdziałanie Konsekwencje Implementacja Przykładowy kod Znane zastosowania Powiązane wzorce Zwięzła nazwa określająca jego istotę oraz klasyfikacja zgodnie z podrozdziałem 2.3. niniejszej pracy. Krótkie określenie problemu jaki rozwiązuje dany wzorzec. Inne nazwy pod jakimi jest znany wzorzec. Scenariusz ilustrujący problem projektowy. Opis sytuacji w jakich można zastosować wzorzec. Graficzna reprezentacja wzorca, przeważnie w postaci diagramu klas UML (w [GoF] przedstawione w notacji OMT [GoF, s. 347]. Klasy i obiekty wchodzące w skład wzorca oraz ich wzajemne relacje. Opis współpracy pomiędzy elementami wzorca, w celu zrealizowania odpowiednich zadań. Rezultaty wykorzystania wzorca, problemy oraz konsekwencje z tego wynikające. Opis ważnych zagadnień podczas implementacji. Fragmenty kodu demonstrujące przykładową implementację wzorca. Znane i powielane zastosowania wzorca w istniejących systemach. Opis związków z innymi wzorcami, sugestie, z którymi powinno się stosować dany wzorzec. 4. Reprezentacje formalne Zasadniczą cechą reprezentacji formalnej jest fakt, że może ona zostać poddana analizie i przetwarzaniu komputerowemu. Cechą niekorzystną reprezentacji formalnej jest trudność wprowadzenia, zrozumienia i odczytania tego zapisu przez człowieka. W dalszej części zostały przedstawione reprezentacje formalne oparte na grafach oraz ontologiach.

6 Reprezentacja grafowa Rafał Wojszczyk Wychodząc od popularnego opisu wzorców projektowych w postaci diagramu klas UML, można zauważyć, że jest to po prostu graf skierowany [8]. Podstawowym założeniem jest reprezentowanie klas jako wierzchołków a relacji jako krawędzi. Podejście grafowe zostało przedstawione w [SinR13] wraz z rozwinięciem w [13], oraz w [16]. Podstawowe podejście jak w [12] było znane już wcześniej. Elementy w oprogramowaniu przedstawione są jako wierzchołki, a relacje między tymi elementami jako krawędzie. Jak podaje [12] takie podejście jest wystarczające do opisania i rozpoznania niektórych wzorców, np. Fabryka abstrakcyjna. Bardzo mała ilość informacji zawarta w tym podejściu nie pozwala na zaawansowany opis wzorców projektowych. W [13] przedstawione jest rozszerzone podejście względem [12]. Rozszerzenie polega na odpowiednim etykietowaniu wierzchołków i krawędzi. Wierzchołki opisane są poprzez trzy parametry: ilość nadklas, ilość podklas, ilość powiązań. Poprzez ilość nadklas i podklas rozumiane są klasy, z których dziedziczy rozważana klasa oraz z klasy, które dziedziczą z rozważanej klasy. Etykiety krawędzi reprezentują rodzaj relacji pomiędzy klasami, autorzy [13] proponują: 1 - zależność, 2 - generalizacja, 3 - asocjacja skierowana, 4 - agregacja. Przykład takiego opisu przedstawia rysunek 1 i 2.

7 Porównanie sposobów reprezentacji wzorców projektowych 139 Rys. 1. Diagram klas opisujący wzorzec Strategia. Źródło: opracowanie własne na podstawie [13] Rys. 2. Graf etykietowany opisujący wzorzec projektowy Strategia. Źródło: opracowanie własne na podstawie [13] W [16] szczególna uwaga została skupiona na reprezentacji relacji, przez co zakładają użycie większej liczby relacji niż [13]. Ponadto zauważają, że wiele wzorców projektowych ma wspólną cechę związaną z relacjami, tj. występują klasy lub interfejsy abstrakcyjne. W obu przedstawionych podejściach [13] i [16] znaczącą cechą wspólną jest możliwość łatwej transformacji grafu do postaci macierzy. Macierze są typowe dla zastosowań inżynierskich. W obu przypadkach dla każdego rodzaju relacji tworzona jest podobna macierz, a etykietami wierszy oraz kolumn są

8 140 Rafał Wojszczyk wierzchołki grafów. Wystąpienie danej relacji pomiędzy wierzchołkami grafu oznaczane jest w macierzy odpowiednią wartością (zależne od podejścia), co odpowiada istnieniu relacji pomiędzy elementami wzorca. Reprezentacja w postaci grafów ma swoje wady i zalety. Zaletą jest to, że taki zapis wynika z popularnych diagramów UML, a po odpowiednim przekształceniu informacje reprezentowane są w postaci macierzy. Wada wynikła w trakcie próby weryfikacji w [13], polegającej na wyszukaniu kilku wzorców w grafie. Przedstawione wyniki dla trzech przypadków: pełne dopasowanie, częściowe oraz brak dopasowania (szukany wzorzec nie został odnaleziony w grafie mimo, że występuje). Wystąpienie ostatniego przypadku oznacza, że taka reprezentacja może być niewystarczająca do analizowania komputerowego wzorców projektowych Reprezentacja ontologiczna Termin ontologia wywodzi się z filozofii, gdzie celem ontologii było określenie rzeczywistych bytów świata rzeczywistego [14]. Popularność ontologii w informatyce stale rośnie i jest wykorzystywana do formalnej reprezentacji wiedzy w postaci zbioru pojęć z danej dziedziny i relacji między tymi pojęciami. Podstawową korzyścią ontologii w informatyce jest założenie, że reprezentowana przez nie wiedza jest rozumiana przez komputery. Inną korzyścią jest możliwość łączenia ontologii ze sobą. Opiera się to na idei sieci semantycznych, które wprowadzają standaryzowane metadane służące do opisu danych [3]. Ontologie mogą być opisane za pomocą kilku języków: RDF (od ang. Resource Description Framework), RDFS (od ang. RDF Schema) oraz OWL (od ang. Web Ontology Language) [15]. Semantyka wszystkich wymienionych wywodzi się z języka XML, dzięki czemu są do siebie podobne. Języki te różnią się możliwościami. OWL występuje w trzech odmianach, OWL Full najbardziej ekspresywny (wyrazisty), DL mniej ekspresywny i bardziej wydajny w przetwarzaniu oraz Lite najmniej ekspresywny ale za to najbardziej wydajny w przetwarzaniu. W najgorszym przypadku przetwarzanie OWL Full może być nieskończone. Przez ostatnie lata ontologie zostały kilkukrotnie wykorzystane do reprezentacji wzorców projektowych np. w [2, 5, 9, 10, 11]. Cechami wspólnymi kilku z tych prac jest dostarczenie ontologii opisującej strukturę wzorców projektowych, w niektórych przypadkach również możliwość opisania dodatkowych niestatycznych cech: zachowania, sposób implementacji, wymagania kontekstu [10]. Opis wzorca projektowego Fabryka Abstrakcyjna w podejściu [5] przedstawia rysunek 3. W tym podejściu wykorzystany jest język OWL.

9 Porównanie sposobów reprezentacji wzorców projektowych 141 Rys. 3. Graficzna reprezentacja wzorca projektowego Fabryka Abstrakcyjna opisanego za pomocą ontologii. Źródło: [5] Bardziej rozbudowane podejście przedstawione jest w [9]. Oprócz ontologii opisującej wzorce projektowe, autorzy wprowadzili również taksonomię, opisującą podstawowe elementy z paradygmatu programowania obiektowego: zmienne, stałe, pętle, typy danych i inne. Wprowadzają również ograniczenia opisujące w sposób formalny różne cechy charakterystyczne dla konkretnych wzorców. Możliwe jest następujące opisanie ograniczeń np. dla wzorca projektowego Singleton [9]: 1 - dopuszczalny jest tylko prywatny konstruktor; 2 - musi być przynajmniej jedna publiczna metoda, która zwraca typ taki sam jak tworzony Singleton; 3 - publiczna metoda zawsze musi zwracać tą samą instancję obiektu. Oczywiście przytoczone restrykcje mogą, a nawet powinny być opisane w języku formalnym, zrozumiałym dla komputera. W tym przypadku jest to OWL abstract syntax [17]. Istnieją też repozytoria wiedzy o wzorcach projektowych, jak przedstawione w [10]. Celem takiego repozytorium jest szerzenie wiedzy o wzorcach projektowych, nauka i wsparcie w ich wykorzystaniu. Możliwy jest dialog pomiędzy użytkownikiem a systemem zaproponowanym w [10], na zasadzie pytanieodpowiedź (pytania są predefiniowane i istnieje możliwość rozszerzenia tej listy). W tym rozwiązaniu został wykorzystany język RDF, a baza wiedzy została zasilona z innych baz, dzięki możliwości przekształceń danych do RDF.

10 Porównanie Rafał Wojszczyk W poniższej części zaprezentowano porównanie wymienionych wcześniej sposobów reprezentacji wzorców projektowych. Przedmiotem porównania jest reprezentacja nieformalna i formalna. W przypadku ostatniego sposobu zostanie on rozdzielony na dwa podtypy reprezentacji grafowej oraz ontologicznej. W obu przypadkach porównywane cechy będą rozważane dla całych rodzin z tych reprezentacji, ponieważ możliwe jest połączenie cech w celu stworzenia najkorzystniejszego rozwiązania. Porównywane cechy są związane z przedmiotem badań nad wzorcami projektowymi, dokładniej nad weryfikacją ich implementacji. Spełnienie cech w porównaniu zostało określone przez autora na podstawie przeprowadzonej wcześniej analizy reprezentacji wzorców projektowych. Wynik analizy przedstawia tabela 3. Stawiając za cel zautomatyzowane analizowanie wzorców projektowych, konieczne jest odrzucenie reprezentacji innych niż formalne, ponieważ wykorzystanie pozostałych to tego celu znacznie skomplikuje cały proces. Pozostając przy dwóch sposobach reprezentacji, grafowej oraz ontologicznej, należy uwzględnić zakres możliwej analizy. W przypadku wykorzystania reprezentacji grafowej zakres analizy ograniczy się jedynie do aspektów statycznych. Będzie to wystarczające to wykrycia i zweryfikowania (w podstawowym zakresie) przynajmniej kilku wzorców, w pozostałych przypadkach wynik może być niejednoznaczny lub błędny, jak przedstawiono w [12] i [13]. Korzyścią tego podejścia, po przekształceniu do macierzy, jest możliwość wykorzystania ogólnodostępnych programów do obliczeń inżynierskich. Rozważając wykorzystanie reprezentacji ontologicznej zakres analizy rozszerza się w stosunku do grafowej. Zasadniczą różnicą jest możliwość opisania w sposób formalny zachowania wzorców. Dzięki czemu analiza może mieć znacznie szerszy zakres i uwzględniać aspekty, którą są niedostępne przy czysto statycznym podejściu. Następną korzyścią, na rzecz ontologii, jest możliwość opisu w sposób formalny dowolnych aspektów związanych z rozpatrywaną dziedziną wiedzy. Niestety wymienione korzyści, mają też negatywny wydźwięk. Wymagają one prawidłowego opisania w jednym ze wspomnianych języków definiowania ontologii, co zdaje się być bardzo wymagającym zadaniem, aby osiągnąć owe korzyści.

11 Porównanie sposobów reprezentacji wzorców projektowych 143 Tab. 3.Wyniki porównania Cecha\Sposób Nieformalne Grafy Ontologie Możliwość formalnego analizowania komputerowego Nie Tak Tak Złożoność analizowania Nie dotyczy Zależna od ilości elementów W najgorszym przypadku nieskończona Możliwość zautomatyzowanego pozyskania danych na podstawie kodu źródłowego Nie Tak Tak Opis aspektów statycznych Tak Tak Tak Opis zachowania Tak Nie Tak Możliwość opisania charakterystycznych cech, np. występujących tylko w jednym wzorcu Możliwość zautomatyzowanego przekształcenia do innej reprezentacji Przydatność do nauki, łatwość czytania przez człowieka Tak Nie Tak Nie Tak Tak Duża Mała Mała Możliwość reprezentacji modelu referencyjnego Tak Tak Tak Możliwość opisu implementacji Nie Tak Tak Formalna standaryzacja podstawowych elementów Nie Tak, teoria grafów Tak, W3C Możliwość rozbudowy semantyki Tak Nie Tak Możliwość formalnego i spójnego łączenia z innymi zasobami wiedzy Nie Nie Tak 6. Podsumowanie W pracy przedstawiono nieformalne oraz formalne sposoby reprezentacji wzorców projektowych. Następnie dokonano teoretycznej analizy, w oparciu o cechy związane z badaniem implementacji wzorców, a wyniki przedstawiono w postaci porównania. Wykonane porównanie nie wskazuje jednoznacznie najlepszego pod każdym względem sposobu reprezentacji wzorców projektowych. Do poznawania ich oraz nauki sprawdza się od wielu lat sposób nieformalny. Stawiając za cel wyszukiwanie, weryfikowanie czy też podpowiadanie wzorców projektowych,

12 144 Rafał Wojszczyk powinien zostać wykorzystany sposób formalny. W zależności od zakresu tych działań, należy wybrać pomiędzy reprezentacją grafową, gdy wystarczające będą aspekty statyczne, lub ontologiczną w pozostałych przypadkach. Obierając za cel możliwość pełnego analizowania oprogramowania, w tym weryfikację implementacji wzorców projektowych, pretendentem do takiego zastosowania staje się reprezentacja ontologiczna. Dzięki odpowiedniemu zaprojektowaniu ontologii, która uwzględniałaby cechy związane z paradygmatem programowania obiektowego, możliwe jest zastąpienie w ten sposób reprezentacji grafowej, z jednoczesnym dostarczeniem dodatkowych możliwości, jakie daje uniwersalność ontologii. Literatura 1. Alexander C., The origins of pattern theory: the future of the theory, and the generation of a living world, Journal IEEE Software archive, Volume 16 Issue 5, IEEE Computer Society Press Los Alamitos, CA, USA, Alnusair A., Zhao T., Yan G., Rule-based detection of design patterns in program code, International Journal on Software Tools for Technology Transfer, Springer Berlin Heidelberg, Bilski J., Model systemu wieloagentowego korzystającego z danych Sieci semantycznej w projekcie Open Natura 2000, Modele inżynierii teleinformatyki, tom 8, X Krajowa Konferencja Studentów i Młodych Pracowników Nauki, Dae-kyoo Kim, Robert France, Sudipto Ghosh, Eunjee Song, A UML- Based Metamodeling Language to Specify Design Patterns, Patterns, Proc. Workshop Software Model Eng. (WiSME) with Unified Modeling Language Conf Dietrich J., Elgar C., A formal description of design patterns using OWL, Software Engineering Conference, Australian, Fowler M. i inni, Architektura systemów zarządzania przedsiębiorstwem Wzorce projektowe, Helion, Gliwice, Gamma E. i inni, WZORCE PROJEKTOWE Elementy oprogramowania wielokrotnego użytku, Helion, Gliwice, Grzanek K., Realizacja systemu wyszukiwania wystąpień wzorców projektowych w oprogramowaniu przy zastosowaniu metod analizy statycznej kodu źródłowego, Dysertacja doktorska, Politechnika Częstochowska, Łódź, 2008

13 Porównanie sposobów reprezentacji wzorców projektowych Kirasić D., Basch D., Ontology-Based Design Pattern Recognition, Knowledge-Based Intelligent Information and Engineering Systems, Zagreb, Croatia, Pavlic L. i inni, Improving design pattern adoption with Ontology-Based Design Pattern Repository, Informatica An International Journal of Computing and Informatics, Vol 33, Ljubljana, Slovenia, Rosengard J.M., Ursu M.F., Ontological Representations of Software Patterns, Knowledge-Based Intelligent Information and Engineering Systems, pages 31-37, Springer Berlin Heidelberg, Singh Rao R., Gupta M., Design Pattern Detection by Sub Graph Isomorphism Technique, International Journal Of Engineering And Computer Science, Volume 2 Issue 11 Page No , Singh Rao R., Gupta M., Design Pattern Detection by Greedy Algorithm Using Inexact Graph Matching, International Journal Of Engineering And Computer Science, Volume 2 Issue 10, Susłow W., Analiza I modelowanie konceptualne w inżynierii systemów oprogramowania ujęcie humanistyczne, Wydawnictwo Uczelniane Politechniki Koszalińskiej, Koszalin, Szymczak M., Modelowanie przy pomocy technologii ontologicznych, Praca Magisterska, Uniwersytet im. Adama Mickiewicza w Poznaniu, Tsantalis N. i inni, Design Pattern Detection Using Similarity Scoring, IEEE Transactions on Software Engineering (Volume:32, Issue: 11),

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

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

Wprowadzenie do programowania aplikacji mobilnych

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

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

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

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

MODEL OCENY JAKOŚCI IMPLEMENTACJI WZORCÓW PROJEKTOWYCH W OPROGRAMOWANIU

MODEL OCENY JAKOŚCI IMPLEMENTACJI WZORCÓW PROJEKTOWYCH W OPROGRAMOWANIU MODEL OCENY JAKOŚCI IMPLEMENTACJI WZORCÓW PROJEKTOWYCH W OPROGRAMOWANIU Rafał WOJSZCZYK Streszczenie: Istnieje wiele metod i dobrych praktyk mających na celu zapewnienie jakości wytwarzanego oprogramowania,

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

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

Zaawansowane programowanie obiektowe - wykład 5

Zaawansowane programowanie obiektowe - wykład 5 Zaawansowane programowanie obiektowe - wykład 5 dr Piotr Jastrzębski (czynnościowe) opisują zachowanie obiektów, komunikację pomiędzy nimi i ich odpowiedzialność. Interpreter Iterator (kursor) Łańcuch

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

Model oceny jakości implementacji wzorców projektowych

Model oceny jakości implementacji wzorców projektowych Model oceny jakości implementacji wzorców projektowych mgr inż. Rafał Wojszczyk Promotor: prof. dr hab. inż. Volodymyr Khadzhynov Promotor pomocniczy: dr inż. Piotr Ratuszniak Politechnika Koszalińska

Bardziej szczegółowo

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

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

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

Programowanie obiektowe

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

Bardziej szczegółowo

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 1) Oprogramowanie to: 2) Produkty oprogramowania w inżynierii oprogramowania można podzielić na: 3) W procesie wytwarzania oprogramowania

Bardziej szczegółowo

Koncepcja hybrydowej metody do oceny jakości zaimplementowanych wzorców projektowych

Koncepcja hybrydowej metody do oceny jakości zaimplementowanych wzorców projektowych Rafał Wojszczyk Wydział Elektroniki i Informatyki Politechnika Koszalińska rafal.wojszczyk@tu.koszalin.pl Koncepcja hybrydowej metody do oceny jakości zaimplementowanych wzorców projektowych Słowa kluczowe:

Bardziej szczegółowo

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014

Modelowanie diagramów klas w języku UML. Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Modelowanie diagramów klas w języku UML Łukasz Gorzel 244631@stud.umk.pl 7 marca 2014 Czym jest UML - Unified Modeling Language - Rodzina języków modelowania graficznego - Powstanie na przełomie lat 80

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

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych Wykorzystanie standardów serii ISO 19100 oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych dr inż. Adam Iwaniak Infrastruktura Danych Przestrzennych w Polsce i Europie Seminarium, AR Wrocław

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

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

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

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej

Analiza i projektowanie obiektowe 2017/2018. Wykład 3: Model wiedzy dziedzinowej Analiza i projektowanie obiektowe 2017/2018 Wykład 3: Model wiedzy dziedzinowej Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Model wiedzy dziedzinowej

Bardziej szczegółowo

Spis treści Informacje podstawowe Predykaty Przykłady Źródła RDF. Marek Prząda. PWSZ w Tarnowie. Tarnów, 6 lutego 2009

Spis treści Informacje podstawowe Predykaty Przykłady Źródła RDF. Marek Prząda. PWSZ w Tarnowie. Tarnów, 6 lutego 2009 PWSZ w Tarnowie Tarnów, 6 lutego 2009 1 Interpretacja trójek i SWI-Prolog Składnia 2 3 4 Interpretacja trójek i SWI-Prolog Składnia Opis (ang. Resource Description Framework) jest specyfikacją modelu metadanych,

Bardziej szczegółowo

Wykorzystanie modeli danych do weryfikacji implementacji wzorców projektowych

Wykorzystanie modeli danych do weryfikacji implementacji wzorców projektowych Rafał Wojszczyk Zakład Podstaw Zarządzania i Informatyki Wydział Elektroniki i Informatyki Politechnika Koszalińska rafal.wojszczyk@tu.koszalin.pl Włodzimierz Khadzhynov Katedra Inżynierii Komputerowej

Bardziej szczegółowo

SVN. 10 października 2011. Instalacja. Wchodzimy na stronę http://tortoisesvn.tigris.org/ i pobieramy aplikację. Rysunek 1: Instalacja - krok 1

SVN. 10 października 2011. Instalacja. Wchodzimy na stronę http://tortoisesvn.tigris.org/ i pobieramy aplikację. Rysunek 1: Instalacja - krok 1 SVN 10 października 2011 Instalacja Wchodzimy na stronę http://tortoisesvn.tigris.org/ i pobieramy aplikację uruchamiany ponownie komputer Rysunek 1: Instalacja - krok 1 Rysunek 2: Instalacja - krok 2

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

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

Ś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

Analiza i projektowanie aplikacji Java

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

Bardziej szczegółowo

Modelowanie obiektowe - Ćw. 3.

Modelowanie obiektowe - Ćw. 3. 1 Modelowanie obiektowe - Ćw. 3. Treść zajęć: Diagramy przypadków użycia. Zasady tworzenia diagramów przypadków użycia w programie Enterprise Architect. Poznane dotychczas diagramy (czyli diagramy klas)

Bardziej szczegółowo

Rysunek 1: Przykłady graficznej prezentacji klas.

Rysunek 1: Przykłady graficznej prezentacji klas. 4 DIAGRAMY KLAS. 4 Diagramy klas. 4.1 Wprowadzenie. Diagram klas - w ujednoliconym języku modelowania jest to statyczny diagram strukturalny, przedstawiający strukturę systemu w modelach obiektowych przez

Bardziej szczegółowo

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD Projektowanie systemów informatycznych Roman Simiński roman.siminski@us.edu.pl siminskionline.pl Modelowanie danych Diagramy ERD Modelowanie danych dlaczego? Od biznesowego gadania do magazynu na biznesowe

Bardziej szczegółowo

Projektowanie logiki aplikacji

Projektowanie logiki aplikacji Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie logiki aplikacji Zagadnienia Rozproszone przetwarzanie obiektowe (DOC) Model klas w projektowaniu logiki aplikacji Klasy encyjne a klasy

Bardziej szczegółowo

Inżynieria oprogramowania. Jan Magott

Inżynieria oprogramowania. Jan Magott Inżynieria oprogramowania Jan Magott Literatura do języka UML G. Booch, J. Rumbaugh, I. Jacobson, UML przewodnik użytkownika, Seria Inżynieria oprogramowania, WNT, 2001, 2002. M. Fowler, UML w kropelce,

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

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

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

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego. Umiejętność czytania oraz tworzenia diagramów klas UML jest podstawą w przypadku zawodu programisty. Z takimi diagramami będziesz spotykał się w przeciągu całej swojej kariery. Diagramy klas UML są zawsze

Bardziej szczegółowo

Spis treści. Analiza i modelowanie_nowicki, Chomiak_Księga1.indb :03:08

Spis treści. Analiza i modelowanie_nowicki, Chomiak_Księga1.indb :03:08 Spis treści Wstęp.............................................................. 7 Część I Podstawy analizy i modelowania systemów 1. Charakterystyka systemów informacyjnych....................... 13 1.1.

Bardziej szczegółowo

Egzamin / zaliczenie na ocenę*

Egzamin / zaliczenie na ocenę* WYDZIAŁ PODSTAWOWYCH PROBLEMÓW TECHNIKI Zał. nr 4 do ZW33/01 KARTA PRZEDMIOTU Nazwa w języku polskim : INŻYNIERIA OPROGRAMOWANIA Nazwa w języku angielskim: SOFTWARE ENGINEERING Kierunek studiów (jeśli

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

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

Bardziej szczegółowo

E-ID1S-08-s5. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

E-ID1S-08-s5. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu E-ID1S-08-s5 Nazwa modułu Nazwa modułu w języku angielskim Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. Podstawy Inżynierii Programowania

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

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

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym konceptualnym modelem danych jest tzw. model związków encji (ERM

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

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

Model oceny jakości implementacji wzorców projektowych

Model oceny jakości implementacji wzorców projektowych Model oceny jakości implementacji wzorców projektowych mgr inż. Rafał Wojszczyk Promotor: prof. dr hab. inż. Volodymyr Khadzhynov Promotor pomocniczy: dr inż. Piotr Ratuszniak Politechnika Koszalińska

Bardziej szczegółowo

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji Analiza i programowanie obiektowe 2016/2017 Wykład 6: Projektowanie obiektowe: diagramy interakcji Jacek Marciniak Wydział Matematyki i Informatyki Uniwersytet im. Adama Mickiewicza 1 Plan wykładu 1. Przejście

Bardziej szczegółowo

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla nauczyciela Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 1 Wprowadzenie do narzędzia CASE

Bardziej szczegółowo

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

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką? ROZDZIAŁ1 Podstawy inżynierii oprogramowania: - Cele 2 - Zawartość 3 - Inżynieria oprogramowania 4 - Koszty oprogramowania 5 - FAQ o inżynierii oprogramowania: Co to jest jest oprogramowanie? 8 Co to jest

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH Modeling and analysis of computer systems Kierunek: Informatyka Forma studiów: Stacjonarne Rodzaj przedmiotu: Poziom kwalifikacji: obowiązkowy

Bardziej szczegółowo

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Bazy danych Wykład 3: Model związków encji. dr inż. Magdalena Krakowiak makrakowiak@wi.zut.edu.pl Co to jest model związków encji? Model związków

Bardziej szczegółowo

Modelowanie danych, projektowanie systemu informatycznego

Modelowanie danych, projektowanie systemu informatycznego Modelowanie danych, projektowanie systemu informatycznego Modelowanie odwzorowanie rzeczywistych obiektów świata rzeczywistego w systemie informatycznym Modele - konceptualne reprezentacja obiektów w uniwersalnym

Bardziej szczegółowo

KIERUNKOWE EFEKTY KSZTAŁCENIA

KIERUNKOWE EFEKTY KSZTAŁCENIA WYDZIAŁ INFORMATYKI I ZARZĄDZANIA Kierunek studiów: INFORMATYKA Stopień studiów: STUDIA I STOPNIA Obszar Wiedzy/Kształcenia: OBSZAR NAUK TECHNICZNYCH Obszar nauki: DZIEDZINA NAUK TECHNICZNYCH Dyscyplina

Bardziej szczegółowo

E-1IZ3-06-s6. Inżynieria Programowania. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

E-1IZ3-06-s6. Inżynieria Programowania. Informatyka. I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny) KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu E-1IZ3-06-s6 Nazwa modułu Inżynieria Programowania Nazwa modułu w języku angielskim Software Engineering Obowiązuje od roku akademickiego 2012/2013 (aktualizacja

Bardziej szczegółowo

Tester oprogramowania 2014/15 Tematy prac dyplomowych

Tester oprogramowania 2014/15 Tematy prac dyplomowych Tester oprogramowania 2014/15 Tematy prac dyplomowych 1. Projekt i wykonanie automatycznych testów funkcjonalnych wg filozofii BDD za pomocą dowolnego narzędzia Jak w praktyce stosować Behaviour Driven

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

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne

Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH. Modeling and analysis of computer systems Forma studiów: Stacjonarne Nazwa przedmiotu: MODELOWANIE I ANALIZA SYSTEMÓW INFORMATYCZNYCH Kierunek: Informatyka Modeling and analysis of computer systems Forma studiów: Stacjonarne Rodzaj przedmiotu: obowiązkowy w ramach specjalności:

Bardziej szczegółowo

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski INFORMATYKA W ZARZĄDZANIU Wykład VI dr Jan Kazimirski jankazim@mac.edu.pl http://www.mac.edu.pl/jankazim MODELOWANIE SYSTEMÓW UML Literatura Joseph Schmuller UML dla każdego, Helion 2001 Perdita Stevens

Bardziej szczegółowo

Współczesna problematyka klasyfikacji Informatyki

Współczesna problematyka klasyfikacji Informatyki Współczesna problematyka klasyfikacji Informatyki Nazwa pojawiła się na przełomie lat 50-60-tych i przyjęła się na dobre w Europie Jedna z definicji (z Wikipedii): Informatyka dziedzina nauki i techniki

Bardziej szczegółowo

Analiza i projektowanie obiektowe w UML Kod przedmiotu

Analiza i projektowanie obiektowe w UML Kod przedmiotu Analiza i owanie obiektowe w UML - opis przedmiotu Informacje ogólne Nazwa przedmiotu Analiza i owanie obiektowe w UML Kod przedmiotu 11.3-WK-MATP-UML-W-S14_pNadGen5M44E Wydział Kierunek Wydział Matematyki,

Bardziej szczegółowo

AiSD zadanie trzecie

AiSD zadanie trzecie AiSD zadanie trzecie Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5 5 czerwca 2008 1 Wstęp Celem postawionym przez zadanie trzecie było tzw. sortowanie topologiczne. Jest to typ sortowania

Bardziej szczegółowo

1 Projektowanie systemu informatycznego

1 Projektowanie systemu informatycznego Plan wykładu Spis treści 1 Projektowanie systemu informatycznego 1 2 Modelowanie pojęciowe 4 2.1 Encja....................................... 5 2.2 Własności.................................... 6 2.3 Związki.....................................

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

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2 Wyższa Szkoła Menedżerska w Legnicy Systemy informatyczne w przedsiębiorstwach Zarządzanie, ZIP, sem. 6 (JG) Modelowanie wymagań Wykład 2 Grzegorz Bazydło Cel wykładu Celem wykładu jest przekazanie wiedzy

Bardziej szczegółowo

Podstawy inżynierii oprogramowania

Podstawy inżynierii oprogramowania Podstawy inżynierii oprogramowania Modelowanie. Podstawy notacji UML Aleksander Lamża ZKSB Instytut Informatyki Uniwersytet Śląski w Katowicach aleksander.lamza@us.edu.pl Zawartość Czym jest UML? Wybrane

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

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia Materiały dla nauczyciela Projekt

Bardziej szczegółowo

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń

Projektowanie obiektowe Wzorce projektowe. Gang of Four Wzorce rozszerzeń Projektowanie obiektowe Wzorce projektowe Gang of Four Wzorce rozszerzeń 1 Roadmap Decorator Iterator Visitor 2 Wzorce rozszerzeń Mają na celu uczynić proces rozszerzania kodu bardziej czytelnym, prostym

Bardziej szczegółowo

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram

Bardziej szczegółowo

Internet Semantyczny. Schematy RDF i wnioskowanie

Internet Semantyczny. Schematy RDF i wnioskowanie Internet Semantyczny Schematy RDF i wnioskowanie Ewolucja Internetu Internet dzisiaj Internet Semantyczny Jorge Cardoso, The Syntactic and the Semantic Web, in Semantic Web Services: Theory, Tools, and

Bardziej szczegółowo

Internet Semantyczny i Logika II

Internet Semantyczny i Logika II Internet Semantyczny i Logika II Ontologie Definicja Grubera: Ontologia to formalna specyfikacja konceptualizacji pewnego obszaru wiedzy czy opisu elementów rzeczywistości. W Internecie Semantycznym językiem

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

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

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami Politechnika Gdańska Wydział Zarządzania i Ekonomii Katedra Zastosowań Informatyki w Zarządzaniu Zakład Zarządzania Technologiami Informatycznymi Model referencyjny Open Source dla dr hab. inż. Cezary

Bardziej szczegółowo

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol KIERUNKOWE EFEKTY KSZTAŁCENIA Wydział Informatyki i Zarządzania Kierunek studiów INFORMATYKA (INF) Stopień studiów - pierwszy Profil studiów - ogólnoakademicki Projekt v1.0 z 18.02.2015 Odniesienie do

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

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

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

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak OpenAI Gym Adam Szczepaniak, Kamil Walkowiak Plan prezentacji Programowanie agentowe Uczenie przez wzmacnianie i problemy związane z rozwojem algorytmów Charakterystyka OpenAI Gym Biblioteka gym Podsumowanie

Bardziej szczegółowo

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Notka biograficzna Dr inż. Mariusz Trzaska jest adiunktem w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych, gdzie zajmuje się

Bardziej szczegółowo

WZORCE LOGIKI APLIKACJI Reużywalne składniki wymagań

WZORCE LOGIKI APLIKACJI Reużywalne składniki wymagań WZORCE LOGIKI APLIKACJI Reużywalne składniki wymagań Albert Ambroziewicz, Michał Śmiałek Politechnika Warszawska KKIO 0, SCR 0 27-29.09.200 Treść prezentacji Wprowadzenie powtarzalność rozwiązań w IO Koncepcja

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

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2011/2012

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2011/2012 1/5 Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2011/2012 Nazwa przedmiotu: Analiza i projektowanie systemów informatycznych Kierunek: Specjalność: Tryb studiów: INFORMATYKA Kod/nr Dzienne

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE C1. Podniesienie poziomu wiedzy studentów z inżynierii oprogramowania w zakresie C.

Bardziej szczegółowo

Systemy ekspertowe. System ekspertowy wspomagający wybór zestawu komputerowego w oparciu o ontologie i system wnioskujący RacerPro

Systemy ekspertowe. System ekspertowy wspomagający wybór zestawu komputerowego w oparciu o ontologie i system wnioskujący RacerPro Systemy ekspertowe System ekspertowy wspomagający wybór zestawu komputerowego w oparciu o ontologie i system wnioskujący RacerPro Autorzy: 1 Wstęp Wybór zestawu komputerowego, ze względu na istnienie wielu

Bardziej szczegółowo

Identyfikacja i modelowanie struktur i procesów biologicznych

Identyfikacja i modelowanie struktur i procesów biologicznych Identyfikacja i modelowanie struktur i procesów biologicznych Laboratorium 2: Wprowadzenie do UML-a. mgr inż. Urszula Smyczyńska AGH Akademia Górniczo-Hutnicza 1. Cel zajęć Celem zajęć jest zapoznanie

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

3 grudnia Sieć Semantyczna

3 grudnia Sieć Semantyczna Akademia Górniczo-Hutnicza http://www.agh.edu.pl/ 1/19 3 grudnia 2005 Sieć Semantyczna Michał Budzowski budzow@grad.org 2/19 Plan prezentacji Krótka historia Problemy z WWW Koncepcja Sieci Semantycznej

Bardziej szczegółowo

KARTA MODUŁU KSZTAŁCENIA

KARTA MODUŁU KSZTAŁCENIA KARTA MODUŁU KSZTAŁCENIA I. Informacje ogólne 1 Nazwa modułu kształcenia Inżynieria 2 Nazwa jednostki prowadzącej moduł Instytut Informatyki, Zakład Informatyki Stosowanej 3 Kod modułu (wypełnia koordynator

Bardziej szczegółowo

WOJSKOWA AKADEMIA TECHNICZNA

WOJSKOWA AKADEMIA TECHNICZNA WOJSKOWA AKADEMIA TECHNICZNA PROJEKT MODELOWANIE SYSTEMÓW TELEINFORMATYCZNYCH Stopień, imię i nazwisko prowadzącego Stopień, imię i nazwisko słuchacza Grupa szkoleniowa dr inż. Zbigniew Zieliński inż.

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego PROJEKTOWANIE BAZ DANYCH PRZESTRZENNYCH Zgodne z ogólną metodologią projektowania baz danych Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego Proces budowy bazy danych wymaga

Bardziej szczegółowo