Laboratorium 02: Obiektowe modelowanie dziedziny [2h]

Podobne dokumenty
Programowanie i projektowanie obiektowe

Modelowanie i Programowanie Obiektowe

Programowanie i projektowanie obiektowe

Świat rzeczywisty i jego model

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

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

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

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

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

UML w Visual Studio. Michał Ciećwierz

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

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

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

Język UML w modelowaniu systemów informatycznych

Podstawy modelowania w języku UML

Modelowanie obiektowe

Podstawy inżynierii oprogramowania

Zajęcia nr. 3 notatki

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

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

6. TWORZYMY OPOWIEŚĆ DO RZUTÓW KOSTKĄ CZYLI O UKŁADANIU OPOWIADAŃ

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

Modelowanie obiektowe - Ćw. 3.

Język UML w modelowaniu systemów informatycznych

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

Systemy baz danych. 1. Plan: 2. Zadania: Projekt Bazy Danych - wybór tematów, wstępna kategoryzacja 8. Projekt Bazy Danych - diagram ER

Zasady gry i przygotowanie

Diagram przypadków użycia

Technologie informacyjne - wykład 12 -

Podstawy projektowania systemów komputerowych

Język UML w modelowaniu systemów informatycznych

Wprowadzenie do systemów informacyjnych

Algorytmy sztucznej inteligencji

2017/2018 WGGiOS AGH. LibreOffice Base

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Projektowanie Systemów Informacyjnych

Paweł Kurzawa, Delfina Kongo

Tworzenie raportów. Ćwiczenie 1. Utwórz Autoraport przedstawiający tabelę Studenci

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

Modelowanie i Programowanie Obiektowe

Podstawy Programowania Obiektowego

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Realizacja algorytmu z warunkiem czy Twój uczeń lubi programować? Grażyna Koba

Technologia informacyjna

Relacyjny model baz danych, model związków encji, normalizacje

B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:

Wykład 8: klasy cz. 4

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Technologie obiektowe

5.4. Tworzymy formularze

Podstawy programowania III WYKŁAD 4

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

KSS: Modelowanie konceptualne przykład

Tworzenie dokumentacji 2D

Architektura interfejsu użytkownika

Skanowanie OCR w aplikacji Kancelaria Komornika. Instrukcja dla użytkownika

Rozdział 4 KLASY, OBIEKTY, METODY

Rysunek 1: Przykłady graficznej prezentacji klas.

Bazy danych TERMINOLOGIA

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

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

Bazy Danych. Modele danych. Krzysztof Regulski WIMiIP, KISiM,

PRZYKŁAD. Prosta uczelnia. Autor: Jan Kowalski nr indeksu: (przykładowy projekt)

Wzorce projektowe i refaktoryzacja

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

MS Access formularze

Instalacja i obsługa generatora świadectw i arkuszy ocen

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

#UczymyDzieciProgramować #ZadanieWprogramie

Programowanie zaawansowane

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Modelowanie danych, projektowanie systemu informatycznego

Autor: Joanna Karwowska

Programowanie obiektowe - 1.

Szablon i zasady pisana pracy dyplomowej. Aneta Poniszewska-Marańda

Arytmetyka liczb binarnych

Przykład 1 Iteracja 1 tworzenia oprogramowania

3. MINIMAX. Rysunek 1: Drzewo obrazujące przebieg gry.

Bazy danych i usługi sieciowe

25. NIE TYLKO WORECZKI CZYLI O ROZUMIENIU SYSTEMU DZIESIĘTNEGO, CZ. I

TECHNOLOGIE OBIEKTOWE. Wykład 3

Jak dodać wpis? Po zalogowaniu na blog znajdujesz się w panelu administracyjnym. Po lewej stronie widzisz menu:

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

10. Dokumentacja systemu zarządzania bezpieczeństwem i higieną pracy

Deklaracja struktury w C++

SysML Tworzenie diagramu aktywności SysML005

W tej instrukcji zostanie opisany sposób w jaki tworzy się, edytuje i usuwa obiekty na mapie. Następnie wybierz Rysuj

Sprawozdanie z realizacji Pilotażowego wdrażania nauki programowania w edukacji formalnej w oparciu o innowacje pedagogiczne w szkołach

Pokaz slajdów na stronie internetowej

Zapisywanie algorytmów w języku programowania

Czym są właściwości. Poprawne projektowanie klas

PROGRAM RETROKONWERSJI ZDALNEJ

Wykład I. Wprowadzenie do baz danych

Transkrypt:

. Wprowadzenie. Programowanie obiektowe (ang. object-oriented programming) jest obecnie najpopularniejszą techniką tworzenia programów komputerowych. Program komputerowy wyraża się jako zbiór obiektów będących bytami łączącymi stan (czyli dane) i zachowanie (czyli metody, które są funkcjami operującymi na danych obiektu). W celu realizacji zadania obiekty wywołują nawzajem swoje metody, zlecając w ten sposób innym obiektom odpowiedzialność za pewne czynności. W porównaniu z tradycyjnym programowaniem proceduralnym, w którym dane i procedury nie są ze sobą powiązane, programowanie obiektowe ułatwia tworzenie dużych systemów, współpracę wielu programistów i ponowne wykorzystywanie istniejącego kodu. 2. Obiektowe modelowanie dziedziny. Zgodnie ze swoją nazwą 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ę. Tworzenie modelu dziedziny nie jest obowiązkowe ale bardzo przydatne, jeżeli dziedzina problemu, który rozwiązujemy, nie jest dobrze zrozumiała. Jeżeli jest, tworzenie modelu dziedziny należy potraktować jako dekompozycję dziedziny na godne uwagi pojęcia i obiekty. Inspirowanie się nim podczas projektowania systemu pomoże w zmniejszeniu luki reprezentacji. W modelu dziedziny pokazuje się: klasy pojęciowe, powiązania między klasami pojęciowymi, atrybuty klas pojęciowych. Przykład: częściowy model dziedziny dla aplikacji wspomagającej rezerwację miejsc i sprzedaż biletów w teatrze. Sztuka +czastrwania +tytuł +obsada +JestGranaWTrakcie * Spektakl +data * OdbywaSięW Sala +numer

Klasy pojęciowe przedstawiane są w prostokątach. Są to Sztuka, Spektakl i Sala. Każda klasa pojęciowa reprezentuje wszystkie możliwe obiekty jednego typu/rodzaju. Nazwy klas pojęciowych przyjęło się umieszczać w pierwszej przegródce prostokąta i pisać wielką literą. Jeżeli nazwa klasy składa się z kilku członów, łączy się je i każdy kolejny człon również rozpoczyna wielką literą, np. RozkładJazdy. W drugiej przegródce prostokąta reprezentującego klasę pojęciową umieszcza się jej atrybuty. Atrybuty to napisy, liczby, daty bądź wartości logiczne opisujące poszczególne egzemplarze klasy pojęciowej. Każdy egzemplarz/obiekt klasy Sztuka posiada na przykład tytuł i czas trwania oraz obsadę. Uzupełniając klasy o atrybuty trzeba zachować ostrożność. Coś, co na pierwszy rzut oka wydaje się atrybutem, może być inną klasą pojęciową. W naszym przykładzie, mimo że podczas spektakli grane są sztuki, klasa Spektakl nie ma takiego atrybutu. Jest za to powiązana z klasą Sztuka. Na diagramie jest to pokazane przy pomocy ciągłej linii łączącej obie klasy. Powiązanie oznacza, że między egzemplarzami klas pojęciowych może zachodzić związek, który warto pamiętać przez jakiś czas. Powiązania również mają nazwy. Będziemy je zapisywać tak samo jak nazwy klas pojęciowych, chociaż niektórzy nazwy członów rozdzielają myślnikami. Jako nazw powiązań należy używać zwrotów czasownikowych tak, aby informacje na diagramie tworzyły zdania. W naszym przypadku z diagramu można odczytać: sztuka jest grana w trakcie spektaklu spektakl odbywa się w sali. Domyślnie przyjmuje się kierunek czytania z góry na dół lub od lewej do prawej. Jeżeli niewygodne jest rozmieszczenie klas na diagramie tak, żeby zachować domyślny kierunek, można przy etykiecie umieścić jakiś symbol graficzny wskazujący właściwy kierunek czytania, np. wypełniony na czarno trójkącik. Podczas obiektowego modelowania dziedziny największą wagę przykłada się do odnajdywania klas pojęciowych i od tego zaczyna się pracę. Następnie rozważa się związki, które mogą wystąpić między egzemplarzami klas pojęciowych i przedstawia je jako powiązania. Odnajdywanie atrybutów jest czymś najmniej istotnym i zostawia się je na koniec. 2 3. Odnajdowanie klas pojęciowych. Przy znajdowaniu klas pojęciowych (ang. conceptual class) należy postępować jak kartograf:

należy używać istniejących nazw, np. gdy analizujesz system do zbierania wyników w nauce, który ma być używany w liceum, jego użytkownikami będą uczniowie, a gdy jest przeznaczony dla uczelni wyższej to studenci, nie zajmować się niczym, co nie dotyczy modelowanej części rzeczywistości; jeżeli pracujesz iteracyjnie powstrzymaj się od rozpoznawania klas pojęciowych, które są nieistotne w obecnej iteracji oraz nie dodawać rzeczy, których nie ma. Analiza fraz rzeczownikowych innym wygodnym pomysłem na odnajdywanie klas pojęciowych jest analiza fraz rzeczownikowych w tekstowym opisie dziedziny lub wymagań. W przypadku gry w Monopol na pewno warto rozpoznać frazy rzeczownikowe w instrukcji z zasadami gry. Może się wtedy okazać na przykład, że nie uwzględniliśmy kompletów pól, banku, ani kart szans/ryzyka. Klasy pojęciowe dla gry w monopol: 3 GraWMonopol Gracz Pionek Plansza Pole KompletPól Kostka 4. Odnajdywanie powiązań. Powiązanie (ang. association) między klasami wskazuje, że między ich egzemplarzami może występować jakaś zależność. W modelu dziedziny pokazujemy powiązania, które są niezbędne do wypełnienia wymagań informacyjnych i pomagają zrozumieć dziedzinę. Pokazanie zbyt wielu powiązań sprawi, że diagramy będą mało czytelne. Zazwyczaj warto pokazywać powiązania między klasami, jeżeli przez jakiś czas "trzeba pamiętać" o zależności między ich egzemplarzami. Dlatego, mimo że powiązania rysujemy między klasami, myślimy o ich egzemplarzach. Czy trzeba na przykład pamiętać na jakim Polu jest Pionek albo do jakiego Gracza należy? Oczywiście. Jednak informacji, że wartość wskazywana przez Kostkę określa, na które Pole się ruszyć, nie trzeba przechowywać w modelu. Jest to metainformacja. Tak samo nie ma potrzeby zapamiętywać, że Gracz przesuwa Pionek.

Nazywanie powiązań nazywanie powiązań nie zawsze jest proste. Wymyślając nazwę sami wiemy co mamy na myśli, ale 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. Pamiętaj o tym nazywając powiązania! Liczebność Odnajdując powiązania, powinniśmy zastanowić się nad ich liczebnością (ang. multiplicity). Liczebność określa, jak wiele egzemplarzy klasy A może być powiązane z jednym egzemplarzem klasy B. Na diagramach liczebność przedstawia się w postaci wyrażenia umieszczanego obok klasy A tuż przy linii obrazującej powiązanie. Przykładowe wyrażenia liczebności to: (dokładnie jeden) (dokładnie jedenaście) 3, 5, 7 (trzy lub pięć lub siedem) 2..8 (od dwóch do ośmiu) 0.. (zero lub jeden)..* (co najmniej jeden) * (dowolna ilość również zero) Określając liczebność pamiętaj, żeby wyrażać ograniczenia związane z dziedziną. Jeżeli na podstawie twojego modelu powstanie w przyszłości system obiektowy, te ograniczenia będą bardzo przydatne i na ich podstawie zostaną określone więzy spójności. 4 5. Klasy pojęciowe i powiązania dla gry w monopol. Gracz Rozgrywa GraWMonopol JestRozgrywanaZaPomoca Kostka +2..8 +2 JestRozgrywanaNa Posiada Plansza SkładaSięZ +40 Pionek StoiNa Pole WchodziWSkład KompletPól +0..8 +2..3 0..

6. Dodawanie atrybutów. Wartości atrybutów (ang. attirbute) opisują egzemplarze klas pojęciowych. Nie wszystkie klasy pojęciowe muszą mieć atrybuty. Dodawanie atrybutów jest w zasadzie prostsze niż odnajdywanie klas pojęciowych czy powiązań i zazwyczaj zostawia się je na koniec. Są jednak dwie pułapki. Po pierwsze, trzeba pilnować, żeby wartości atrybutów rzeczywiście opisywały egzemplarze klas pojęciowych. Może się zdarzyć, że coś, co wydaje się nam atrybutem klasy A, powinno tak naprawdę być atrybutem klasyb, a między A i B powinno być powiązanie. Przykładowo numer jest atrybutem Miejsca, a nie Biletu. Po drugie niech atrybuty będą jedynie wartościami typów podstawowych "czystymi danymi" jak napisy, liczby, wartości logiczne czy daty. W przeciwnym przypadku prawdopodobnie znowu lepiej dodać klasę pojęciową i ustanowić z nią powiązanie. Przykładowo kierownik nie jest atrybutem Teatru. To oddzielna klasa pojęciowa sama posiadająca wiele atrybutów jak imię, nazwisko czy dataurodzenia. 5 Gracz +nazwa +stankonta Rozgrywa +2..8 GraWMonopol JestRozgrywanaZaPomoca +2 Kostka +wskazywanawartość JestRozgrywanaNa Plansza Posiada SkładaSięZ +40 Pole +kolor Pionek StoiNa +0..8 +nazwa +poziomzabudowy +czyoddanewzastaw +cenagruntu +opłatazwykła +opłatadomek +opłata2domki +opłata3domki +opłata4domki +opłatahotel WchodziWSkład +2..3 0.. KompletPól +nazwa

Nie jest to jeszcze wersja ostateczna. Nie uwzględniliśmy na przykład kart szansy/ryzyka, a być może w trakcie późniejszych prac (projektowania, kodowania lub dalszych iteracji) zdecydujemy się wprowadzić jakieś zmiany. Nie należy się tym jednak przejmować. Wystarczy, że przez godzinę lub dwie myśleliśmy o dziedzinie zadania. O to właśnie chodzi, żeby unikać "pędu do kodowania" i zastanowić się nad dziedziną. Pamiętaj również żeby pracować iteracyjnie i nie zabierać się za wszystko na raz, tylko zacząć od tego, co najbardziej ryzykowne. 6 Zadanie: Wykonaj obiektowe modelowanie dziedziny dla gry w szachy.