Programowanie i projektowanie obiektowe

Podobne dokumenty
Programowanie i projektowanie obiektowe

Laboratorium 02: Obiektowe modelowanie dziedziny [2h]

Modelowanie i Programowanie Obiektowe

Programowanie i projektowanie obiektowe

Świat rzeczywisty i jego model

Programowanie i projektowanie obiektowe

Podstawy Programowania Obiektowego

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

Programowanie i projektowanie obiektowe

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Programowanie obiektowe

Paweł Kurzawa, Delfina Kongo

Podejście obiektowe - podstawowe pojęcia

Modelowanie i Programowanie Obiektowe

Wykład I. Wprowadzenie do baz danych

Technologie informacyjne - wykład 12 -

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

Modelowanie danych, projektowanie systemu informatycznego

Programowanie współbieżne i rozproszone

Programowanie obiektowe

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

Programowanie obiektowe - 1.

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

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

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

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Bazy danych i usługi sieciowe

Programowanie i projektowanie obiektowe

UML w Visual Studio. Michał Ciećwierz

Pojęcie bazy danych. Funkcje i możliwości.

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Podstawy inżynierii oprogramowania

Laboratorium 5 - Projektowanie programów zorientowanych obiektowo. Indywidualny projekt programistyczny

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

Definicje. Algorytm to:

Technologie obiektowe

Definiowanie własnych klas

Alicja Marszałek Różne rodzaje baz danych

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

Wstęp do programowania

Wstęp do programowania

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Bazy danych TERMINOLOGIA


Programowanie i projektowanie obiektowe

1 Projektowanie systemu informatycznego

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

Programowanie obiektowe

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

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

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

Programowanie i projektowanie obiektowe

Rysunek 1: Przykłady graficznej prezentacji klas.

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

Modelowanie obiektowe

Programowanie obiektowe

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

1.1. Rachunek zdań: alternatywa, koniunkcja, implikacja i równoważność zdań oraz ich zaprzeczenia.

Inżynieria oprogramowania. Część 5: UML Diagramy klas

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

Podejście obiektowe wprowadzenie

Język UML w modelowaniu systemów informatycznych

Wzorce projektowe i refaktoryzacja

EGZAMIN ÓSMOKLASISTY od roku szkolnego 2018/2019

Wykład z Technologii Informacyjnych. Piotr Mika

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

Technologie i usługi internetowe cz. 2

Technologie obiektowe. Plan. Ewolucja technik wytwarzania oprogramowania

W przyszłość bez barier

Podstawy modelowania w języku UML

Technologia programowania

Szablony funkcji i klas (templates)

UML. zastosowanie i projektowanie w języku UML

Podstawy programowania. Wprowadzenie

1 Powtórzenie wiadomości

Wykład 9: Metody wirtualne i polimorfizm

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Podstawa programowa przedmiotu MATEMATYKA. III etap edukacyjny (klasy I - III gimnazjum)

Faza analizy (modelowania) Faza projektowania

Wstęp do programowania

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów.

Programowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h

Programowanie obiektowe

Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Zaawansowane programowanie w C++ (PCP)

Programowanie obiektowe

Paradygmaty programowania

Diagramy UML, przykład problemu kolizji

ROZKŁAD MATERIAŁU NAUCZANIA KLASA 1, ZAKRES PODSTAWOWY

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Inżynieria Oprogramowania. UML Schematy klas

KWIECIEŃ klasa 2 MATEMATYKA

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Transkrypt:

Programowanie i projektowanie obiektowe Wstęp Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 1 / 27

Plan wykładu 1 Wstęp podstawowe pojęcia, modelowanie dziedziny 2 Projektowanie obiektowe 3 Obiekty i klasy w Pythonie 4 Typy sekwencyjne, iteratory 5 Wyjątki, własności, dekoratory 6 Zaawansowane aspekty obiektowości w Pythonie 7 Zastosowania 8 XML i przetwarzanie tekstów 9 SQLAlchemy 10 CherryPy 11 Jak działa Python? 12 Inne języki obiektowe P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 2 / 27

Programowanie nieobiektowe Dostępne typy danych Typy proste liczby, znaki, wartości logiczne, napisy Tablice numerowane ciągi wartości innych typów, np. wektor liczb całkowitych. Struktury (rekordy) Zestaw nazwanych pól określonych typów. P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 3 / 27

Programowanie nieobiektowe Dostępne typy danych Typy proste liczby, znaki, wartości logiczne, napisy Tablice numerowane ciągi wartości innych typów, np. wektor liczb całkowitych. Struktury (rekordy) Zestaw nazwanych pól określonych typów. Struktury o1.nazwisko="kowalski" o1.imie="jan" o1.adres="banacha 5" o2=o1 Osoba nazwisko imie adres print o2.nazwisko P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 3 / 27

Programowanie nieobiektowe c.d. Funkcje Funkcja przyjmuje argumenty, oblicza i zwraca wynik. W programie może występować co najwyżej jedna funkcja o danej nazwie. Problem Mamy struktury opisujące figury geometryczne: Kolo, Kwadrat, Prostokąt, Trójkąt. Jak zrealizować funkcję obliczającą pole? P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 4 / 27

Programowanie nieobiektowe c.d. Funkcje Funkcja przyjmuje argumenty, oblicza i zwraca wynik. W programie może występować co najwyżej jedna funkcja o danej nazwie. Problem Mamy struktury opisujące figury geometryczne: Kolo, Kwadrat, Prostokąt, Trójkąt. Jak zrealizować funkcję obliczającą pole? Wariant 1 polekola(kolo) polekwadratu(kwadrat) poletrojkata(trojkat)... P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 4 / 27

Programowanie nieobiektowe c.d. Funkcje Funkcja przyjmuje argumenty, oblicza i zwraca wynik. W programie może występować co najwyżej jedna funkcja o danej nazwie. Problem Mamy struktury opisujące figury geometryczne: Kolo, Kwadrat, Prostokąt, Trójkąt. Jak zrealizować funkcję obliczającą pole? Wariant 2 def p o l e ( f i g u r a ) : i f ( f i g u r a i s Kolo ) :... e l s e i f ( f i g u r e i s Kwadrat ) :... P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 5 / 27

Programowanie obiektowe Cel Typy pierwotne (i tablice) są niewygodne do opisywania rzeczywistości. Obiekty odpowiadają rzeczywistym bytom. Podobne obiekty grupowane są w klasy. Forma i materia klasa i obiekty. Historia Simula 67 opracowana do modelowania statków (Norsk Regnesentral) Smalltalk pierwszy nowoczesny język obiektowy (dziedziczenie) (Palo Alto Research Center) C++, Java, Objective-C, Python P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 6 / 27

Programowanie obiektowe c.d. Najważniejsze cechy Obiekty oprócz atrybutów zawierają metody. Dziedziczenie Polimorfizm P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 7 / 27

Polimorfizm Zbiór technik pozwalających stosować funkcje do różnych typów. Statyczny vs. dynamiczny Czy na etapie kompilacji można określić, która funkcja ma zostać wywołana? P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 8 / 27

Polimorfizm Zbiór technik pozwalających stosować funkcje do różnych typów. Statyczny vs. dynamiczny Czy na etapie kompilacji można określić, która funkcja ma zostać wywołana? Uniwersalny Funkcja może działać na różnych typach danych. Np. iloczyn skalarny. P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 8 / 27

Polimorfizm Zbiór technik pozwalających stosować funkcje do różnych typów. Statyczny vs. dynamiczny Czy na etapie kompilacji można określić, która funkcja ma zostać wywołana? Uniwersalny Funkcja może działać na różnych typach danych. Np. iloczyn skalarny. Ad-hoc Właściwa funkcja jest dobierana na podstawie podanych argumentów. P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 8 / 27

Polimorfizm Zbiór technik pozwalających stosować funkcje do różnych typów. Statyczny vs. dynamiczny Czy na etapie kompilacji można określić, która funkcja ma zostać wywołana? Uniwersalny Funkcja może działać na różnych typach danych. Np. iloczyn skalarny. Ad-hoc Właściwa funkcja jest dobierana na podstawie podanych argumentów. Rzutowania i konwersje typów. P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 8 / 27

Analiza, a projektowanie Analiza Badanie problemu i wymagań, ale nie rozwiązania. Analiza obiektowa (ang. object-oriented analysis) zajmuje się badaniem i klasyfikacją obiektów pojęciowych. Obiekty pojęciowe nie mają nic wspólnego z programowaniem - reprezentują pojęcia i koncepcje ze świata rzeczywistego. Przykład W wypadku systemu informacyjnego dla Zakładu Transportu Miejskiego obiektami pojęciowymi mogą być: Autobus, Linia i Kierowca. P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 9 / 27

Analiza, a projektowanie c.d. Projektowanie Wymyślanie koncepcyjnego rozwiązania (programistycznego i sprzętowego), które realizuje wymagania. Projektem może być opis schematu bazy danych lub klas programowych. Podczas projektowania zazwyczaj pomija się niskopoziomowe lub oczywiste (dla zamierzonych odbiorców projektu) szczegóły i koncentruje się na wysokopoziomowych pomysłach oraz ideach. Analiza i projektowanie dają się krótko streścić jako zrób co należy (analiza) oraz zrób to jak należy (projektowanie). P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 10 / 27

Proces wytwórczy Podejście kaskadowe 1 Analiza 2 Projekt 3 Implementacja P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 11 / 27

Proces wytwórczy Podejście kaskadowe 1 Analiza 2 Projekt 3 Implementacja Tak się nie da. P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 11 / 27

Proces wytwórczy Podejście kaskadowe 1 Analiza 2 Projekt 3 Implementacja Tak się nie da. W praktyce działa się przyrostowo przeplatając fazy. P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 11 / 27

Obiektowe modelowanie dziedziny Model dziedziny ma odzwierciedlać pojęcia z modelowanej części świata rzeczywistego oraz ich zależności. W modelu dziedziny nie zajmujemy się klasami programowymi (ang. software class). Może on posłużyć jako źródło inspiracji przy ich projektowaniu, ale nie w drugą stronę. klasy pojęciowe powiązania między klasami pojęciowymi atrybuty klas pojęciowych P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 12 / 27

Przykład P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 13 / 27

Odnajdywanie klas pojęciowych Przy znajdowaniu klas pojęciowych należy: używać istniejących nazw nie zajmować się niczym, co nie dotyczy modelowanej części rzeczywistości nie dodawać rzeczy, których nie ma. Analiza fraz rzeczownikowych Wyszukiwanie fraz rzeczownikowych w tekstowym opisie dziedziny lub wymagań (jeżeli takimi dysponujemy). P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 14 / 27

Często spotykane kategorie klas pojęciowych Kategoria Przykłady Klasy z dziedziny gry w Monopol transakcje SprzedażBiletu, RezerwacjaMiejsc pozycje transakcji PozycjaRezerwacji produkty bądź usługi związane z transakcjami i kontraktami lub ich Bilet pozycjami gdzie transakcje są odnotowywane Kasa, WykazDostępnychMiejsc role ludzi i organizacji związanych z transakcją Kasjer Gracz miejsce zajścia transakcji/obsługi transakcji Kasa, SalaKinowa zdarzenia (często trzeba pamiętać czas ich zajścia) Seans GraWMonopol obiekty fizyczne Bilet, Kino, Kasa, Miejsce Plansza, Pionek, Kostka opisy OpisSeansu katalogi KatalogSeansów, KatalogFilmów kontenery rzeczy fizycznych lub informacji Kino, SalaKinowa Plansza rzeczy w kontenerach SalaKinowa, Miejsce Pole inne współpracujące systemy SystemAutoryzującyPłatnościElektroniczne potwierdzenia, rejestry, kontrakty, zagadnienia prawne Pokwitowanie, PotwierdzenieRezerwacji instrumenty finansowe Czek, Gotówka harmonogramy, instrukcje, dokumenty regularnie używane podczas wykonywania prac DziennaListaPromocji P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 15 / 27

Klasy pojęciowe dla gry w Monopol P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 16 / 27

Odnajdywanie powiązań Powiązanie (ang. association) między klasami wskazuje, że między ich egzemplarzami może występować jakaś zależność. szukamy powiązań, które są niezbędne do wypełnienia wymagań informacyjnych i pomagają zrozumieć dziedzinę warto pokazywać powiązania między klasami, jeżeli przez jakiś czas trzeba pamiętać o zależności między ich egzemplarzami P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 17 / 27

Często spotykane kategorie powiązań Kategoria Przykłady Klasy z dziedziny gry w Monopol A jest transakcją związaną z inną transakcją B Płatność RezerwacjaMiejsc A jest pozycją transakcji B PozycjaRezerwacji RezerwacjaMiejsc A jest produktem lub usługą z transakcji lub pozycji transakcji B Bilet SprzedażBiletu A jest rolą związaną z transakcją B Klient Płatność A jest fizyczną lub logiczną częścią B Miejsce SalaKinowa, SalaKinowa Kino Pole Plansza, Pole KompletPól, GraWMonopol Plansza, GraWMonopol Kostka, GraWMonopol Pionek A fizycznie lub logicznie przechowywane w/na B Kasa Kino Pionek Pole, Pole Plansza A jest opisem B OpisSeansu Seans A jest rejestrowane, zgłaszane, utrwalane, pamiętane w/na B SprzedażBiletu Kasa Pionek Pole, GraWMonopol Plansza A jest uczestnikiem/pracownikiem/członkiem B Kasjer Kino Gracz GraWMonopol A jest organizacyjną podjednostką B Kino SiećKin A używa, zarządza lub posiada B Kasjer Kasa Gracz Pionek A jest obok B PozycjaRezerwacji PozycjaRezerwacji P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 18 / 27

Powiązania Nazywanie powiązań Nie każda nazwa, która pasuje, pozwoli innym zorientować się, o co nam chodziło. Dla wielu powiązań będzie na przykład pasować nazwa Dotyczy, ale nie przenosi ona wielu informacji. Liczebność 1 (dokładnie jeden) 11 (dokładnie jedenaście) 3, 5, 7 (trzy lub pięć lub siedem) 2..8 (od dwóch do ośmiu) 0..1 (zero lub jeden) 1..* (co najmniej jeden) * (dowolna ilość również zero) P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 19 / 27

Klasy pojęciowe i powiązania dla gry w Monopol P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 20 / 27

Dodawanie atrybutów Wartości atrybutów opisują egzemplarze klas pojęciowych. Nie wszystkie klasy pojęciowe muszą mieć atrybuty. Atrybuty mają być przypisane do właściwych klas. Atrybuty powinny być wartościami typów podstawowych. P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 21 / 27

Częściowy model dziedziny dla gry w Monopol P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 22 / 27

Obiekty i ich stan P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 23 / 27

Wiązania P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 24 / 27

Zadanie 1 ZOO Zadanie Zwierzęta mieszkają na wybiegach lub klatkach, które mogą (ale nie muszą) znajdować się w budynkach. Czasem w jednej przestrzeni żyje więcej niż jeden gatunek zwierząt. Każdy gatunek może dostawać określone rodzaje pasz. Możliwe jest również, że konkretne zwierzę jest na specjalnej diecie. Do zwierząt, wybiegów, klatek i budynków są przypisani pracownicy za nie odpowiedzialni. Dodatkowe komplikacje Należy prowadzić ewidencję zdarzeń takich jak narodziny zwierząt, ich choroby i wypadki. Zadawanie pasz odbywa się w ściśle określonych porach. Należy prowadzić terminarz karmień oraz odnotowywać rzeczywiste karmienia i ilości spożytej paszy. Kalendarz dyżurów pracowników. P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 25 / 27

Zadanie 2 Sieć kolejowa Zadanie Sieć kolejowa składa się ze stacji połączonych torami. Pomiędzy dwiema stacjami może być więcej niż jeden tor. Na jednym torze może w danej chwili znajdować się co najwyżej jeden pociąg. Pociągi są ciągnięte przez lokomotywy. Pociągi jeżdżą według rozkładu. Należy zaprojektować system zarządzania ruchem kolejowym z uwzględnieniem priorytetów pociągów (towarowy, osobowy, pospieszny, ekspres). Istotne jest również obliczanie kosztów dostępu do torów i zużytej energii. Dodatkowe komplikacje Wśród stacji wyróżniamy mijanki, przystanki, posterunki odgałęźne i stacje, które różnią się między innymi liczbą pociągów, które mogą na nich oczekiwać. Pociągi są ciągnięte przez lokomotywy spalinowe lub elektryczne, z zastrzeżeniem że lokomotywy elektryczne nie mogą poruszać się po niezelektryfikowanych odcinkach. P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 26 / 27

Zadanie 3 Zadanie Opracuj model dziedziny dla Systemu kasowego, który ma być używany przez kasjerów w sklepie. P. Daniluk (Wydział Fizyki) PO w. I Jesień 2014 27 / 27