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

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

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

Transkrypt

1 Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas Materiały dla studentów Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

2 Spis treści 1. Informacje wstępne Cel ćwiczenia Budowa diagramu klas Scenariusz pracy Demonstracja budowy diagramu klas Zadanie 1 dzielenie duŝych diagramów klas Zadanie 2 podział modelu klas na pakiety Literatura

3 1. Informacje wstępne 1.1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się ze sposobami tworzenia diagramów klas w narzędziu Enterprise Architect, przedstawianiem klas modelu na diagramach oraz grupowaniem klas w pakiety. Za poprawne wykonanie ćwiczenia moŝna otrzymać 2 punkty Budowa diagramu klas Wraz z rozwojem technik obiektowych, klasy stały się podstawowymi elementami konstrukcyjnymi systemów oprogramowania. Modele klas tworzone są na kaŝdym etapie procesu wytwarzania oprogramowania począwszy od etapu analizy, kiedy modelowane są pojęcia związane z dziedziną problemu, poprzez etapy projektowania oraz implementacji, podczas których tworzone są bardziej szczegółowe modele klas, uwzględniające aspekty konstrukcyjne i implementacyjne oprogramowania. PoniŜej przedstawione są najwaŝniejsze elementy języka UML słuŝące do tworzenia modeli klas. Opisana została zarówno ich semantyka, jak równieŝ ich graficzna reprezentacja słuŝącą do rysowania diagramów klas. Podstawowa notacja dla klas Klasa (ang. class) to opis grupy obiektów, które mają taki sam zestaw właściwości oraz sposób zachowania. KaŜda klasa ma przypisaną nazwę, która wyróŝnia ją spośród innych klas. Właściwości obiektów reprezentowanych przez klasę zwane są atrybutami. Klasa moŝe mieć dowolną ilość atrybutów (ang. attribute), a nawet nie mieć ich wcale. Zachowanie, czyli usługi, które mogą wykonywać obiekty danej klasy nazywane są operacjami (ang. operation). Klasa moŝe mieć dowolną ilość operacji, a nawet nie mieć ich wcale. Rysunek 1.1 przedstawia notację dla klasy w języku UML. Ta sama klasa moŝe być reprezentowana w róŝny sposób na róŝnym poziomie szczegółowości. W najprostszym wariancie, klasa jest symbolizowana przez prostokąt z nazwą klasy (Rysunek 1.1a). Na ogół nazwę podaje się w formie rzeczownika lub wyraŝenia rzeczownikowego, pochodzącego z modelowanej dziedziny. KaŜdy wyraz w nazwie zaczyna się zwykle wielką literą. MoŜliwe jest takŝe pokazanie atrybutów klasy. Umieszcza się je w sekcji oddzielonej poziomą kreską od jej nazwy klasy (Rysunek 1.1b). MoŜna podać jedynie nazwy atrybutów. MoŜna teŝ podać typ wartości, jakie atrybut moŝe przyjmować. Nazwę atrybutu podaje się zazwyczaj w formie rzeczownika lub wyraŝenia opisującego właściwości obiektów danej klasy. MoŜliwe jest pokazanie tylko operacji klasy, poprzez umieszczenie ich w sekcji symbolu klasy poniŝej jej nazwy (Rysunek 1.1c). MoŜna podać jedynie nazwy operacji. MoŜna teŝ dokładnie określić operacje poprzez podanie w nawiasach typu przekazywanych parametrów oraz typu wartości zwracanej. Jeśli chcemy pokazać jednocześnie atrybuty i operacje klasy, to atrybuty umieszczamy w sekcji poniŝej nazwy klasy, natomiast operacje w sekcji poniŝej atrybutów (Rysunek 1.1d). Symbol klasy nie musi zawierać wszystkich atrybutów i operacji. 3

4 Rysunek 1.1: Notacja dla klasy w języku UML Sposób prezentacji klasy na diagramie zaleŝy od celu, w jakim sporządzamy diagram oraz od osoby, która będzie ten diagram czytać. Jeśli diagram ma na celu poglądowe przedstawienie struktury pojęć modelowanej dziedziny, wystarczy, Ŝe klasy będą przedstawione w najprostszej postaci. W przypadku diagramów, które mają posłuŝyć programistom do implementacji systemu, przedstawione na nich klasy powinny zawierać wszystkie szczegóły. Przestrzenie nazw klas Pakiety słuŝą do grupowania elementów modelu w hierarchiczne struktury. W przypadku modelu klas, gdzie moŝe występować bardzo duŝa ilość elementów, stworzenie odpowiedniej struktury pakietów moŝe okazać się niezbędne. Modelując dziedzinę problemu, za pomocą pakietów grupujemy logicznie powiązane ze sobą pojęcia (Rysunek 1.2). MoŜemy teŝ oddzielić klasy modelujące aspekty techniczne oprogramowania (np. okna interfejsu uŝytkownika) od klas modelujących pojęcia dziedziny. Rysunek 1.2: Pakiety jako elementy grupujące klasy Pakiety stanowią przestrzenie nazw dla klas. W modelu nie mogą istnieć dwie klasy o takiej samej nazwie, chyba, Ŝe naleŝą do innych przestrzeni nazw. Na diagramie, nazwa klasy moŝe być poprzedzona nazwą pakietu. Nazwę klasy oddziela się od nazwy pakietu znakiem ::. Takie nazwy klas określa się mianem nazw kwalifikowanych. Ich stosowanie ma szczególne znaczenie wtedy, gdy na diagramie umieszczamy klasy o takiej samej nazwie, lecz pochodzące z innych przestrzeni nazw. Atrybuty i operacje Klasę moŝna prezentować na róŝnym poziomie szczegółowości. Czasami wystarczy zaprezentować klasę w postaci prostokąta z nazwą, jednak w większości przypadków umieszcza się takŝe atrybuty i operacje klasy. W zaleŝności od szczegółowości diagramu, notacja dla atrybutów i operacji moŝe uwzględniać lub pomijać pewne elementy. Tworząc model klas na wysokim poziomie abstrakcji, zazwyczaj wystarczy podać jedynie nazwy atrybutów i operacji. Atrybuty i operacje mogą mieć określoną widoczność. Widoczność określa czy dany składnik klasy jest dostępny dla pozostałych klas. UML definiuje cztery poziomy widoczności składników klas. 4

5 Public (publiczny). KaŜda zewnętrzna klasa, która ma dostęp do klasy zawierającej składniki publiczne, ma równieŝ dostęp do tych składników. Na diagramie składowe publiczne oznacz się znakiem +. Jeśli składnik nie ma określonej widoczności, domyślnie przyjmuje się, Ŝe jest to składnik publiczny. Private (prywatny). Dostęp do składników prywatnych ma jedynie klasa zawierająca te składniki. Na diagramie składowe prywatne oznacza się znakiem -. Protected (zabezpieczony). Dostęp do składników chronionych ma klasa zawierająca te składniki oraz wszystkie klasy dziedziczące z niej (podklasy). Na diagramie składniki chronione oznaczamy znakiem #. Package (pakietowy). Dostęp do składników o takiej widoczności ma kaŝda klasa znajdująca się w tym samym pakiecie, co klasa zawierająca te składniki. Na diagramie oznaczamy takie składniki znakiem ~. Rysunek 1.3 przedstawia przykład klasy zawierającej atrybuty i operacje o róŝnej widoczności. Rysunek 1.3: Widoczność atrybutów i operacji klasy Kolejną cechą atrybutów i operacji jest ich zasięg. Normalnie, atrybuty i operacje klasy występują w kaŝdym obiekcie danej klasy określając ich właściwości oraz zachowanie. O takich atrybutach i operacjach mówimy, Ŝe mają zasięg instancji. Dla niektórych atrybutów i operacji klasy, moŝemy określić, Ŝe ich zasięg ogranicza się jedynie do tej klasy. Składniki o takim zasięgu określamy mianem statycznych. Oznacza to, Ŝe istnieje jeden egzemplarz takiego składnika, wspólny dla wszystkich instancji klasy. Na diagramie atrybuty i operacje statyczne oznacza się poprzez ich podkreślenie. Rysunek 1.4 przedstawia klasę zawierającą operację statyczną. Operacja statyczna generujnowynumer() zawsze zwraca unikalny numer zamówienia, który moŝe być przypisany jako wartość atrybutu numer w nowo tworzonych obiektach klasy Zamówienie. Numer ten moŝe być odczytany poprzez wywołanie na obiekcie operacji podajnumer(), która ma zasięg instancji. Rysunek 1.4: Operacja statyczna Oprócz widoczności oraz zasięgu atrybutu, moŝna takŝe określić jego liczebność, typ oraz wartość początkową. Liczebność atrybutu określa ilość egzemplarzy danego atrybutu, jaką moŝe zawierać kaŝdy obiekt klasy posiadającej ten atrybut. Liczebność definiuje się podając w nawiasach kwadratowych liczbę lub zakres. 5

6 Typ atrybutu moŝe być jednym z typów pierwotnych, jak np. int (liczby całkowite) lub boolean (wartość logiczna). Typem atrybutu moŝe być inna klasa, co oznacza, Ŝe jego wartością jest obiekt danej klasy. Wartość początkowa określa wartość, jaką atrybut przyjmuje zaraz po utworzeniu obiektu danej klasy. Wartość ta musi być zgodna z typem atrybutu. Atrybuty moŝemy więc określać w następujący sposób: [widoczność] nazwa [[liczebność]] [: typ] [= wartość początkowa] Elementy w nawiasach ostrokątnych moŝemy umieszczać na diagramach opcjonalne. Rysunek 1.3 zawiera przykłady róŝnych atrybutów. Oprócz widoczności oraz zasięgu metody, moŝna takŝe określić jej listę parametrów oraz typ wyniku. Nazwa operacji wraz z parametrami oraz typem wyniku nazywamy sygnaturą. Dana klasa moŝe zawierać operacje o takiej samej nazwie, jednak ich sygnatury muszą być róŝne. Operacje klasy moŝemy deklarować w następujący sposób: [widoczność] nazwa [(lista parametrów)] [: typ wyniku] Parametry są wartościami określonych typów, przekazywanymi operacji podczas jej wywoływania. Mogą one np. stanowić dane wejściowe dla operacji, sterować sposobem jej wykonania, przekazywać wartości potrzebne do zmiany stanu obiektu, przekazywać wyniki wykonania operacji do obiektu wywołującego, itp. Lista parametrów moŝe zawierać dowolną ilość parametrów oddzielonych przecinkami. Deklaracja kaŝdego z parametrów jest następująca: [tryb] nazwa : typ [= wartość domyślna] Tryb określa, w jaki sposób operacja wykorzystuje dany parametr i moŝe przyjmować jedną z trzech wartości: in parametr jest parametrem wejściowym i nie moŝe być modyfikowany, out parametr jest parametrem wyjściowym i moŝe być zmodyfikowany w celu przekazania informacji obiektowi wywołującemu, inout parametr jest parametrem wejściowym, ale moŝe być zmodyfikowany. JeŜeli tryb nie jest określony dla parametru, to domyślnie przyjmuje się tryb in. Typ parametrów określa się w taki sam sposób jak typ atrybutów. Wartość domyślna, natomiast, określa wartość, jaką przyjmuje parametr w przypadku, kiedy wartość parametru nie zostanie podana podczas wywołania operacji. Jeśli operacja w wyniku wykonania zwraca jakąś wartość, to typ zwracanej wartości jest określany poprzez typ wyniku. Jeśli operacja nie zwraca Ŝadnej wartości, typ wyniku moŝemy określić jako void. Rysunek 1.3 przedstawia przykładowe deklaracje operacji. Asocjacje Podstawowymi blokami konstrukcyjnymi w języku UML, słuŝącymi do łączenia elementów modelu są związki. Związki są bardzo istotnym elementem modelu klas. Najczęstszym rodzajem związków w modelach klas są asocjacje. Asocjacje reprezentują związki strukturalne pomiędzy instancjami klas. Najogólniej, asocjacja pomiędzy dwiema klasami oznacza, Ŝe moŝliwe jest przejście od obiektu jednej klasy do obiektu drugiej klasy. Z punktu widzenia perspektywy pojęciowej asocjacje odzwierciedlają związki znaczeniowe pomiędzy pojęciami modelowanej dziedziny. W przypadku modeli na niŝszym poziomie abstrakcji asocjacja oznacza najczęściej, Ŝe obiekt jednej klasy ma stały, bezpośredni dostęp do obiektu drugiej klasy. Asocjacja jest przedstawiana na diagramie jako linia ciągła łącząca powiązane klasy. Asocjacja moŝe być uzupełniona o dodatkowe informacje, takie jak nazwa asocjacji, nazwy ról, krotności oraz kierunek asocjacji. 6

7 Rysunek 1.5: Asocjacja z nazwą Rysunek 1.5 przedstawia przykład asocjacji z nazwą. Nazwa określa znaczenie. Strzałka obok nazwy wskazuje kierunek, w jakim naleŝy odczytywać asocjację. Asocjacja z powyŝszego przykładu mówi nam: osoba pracuje dla przedsiębiorstwa. MoŜliwe jest zamodelowanie tej asocjacji w drugą stronę: przedsiębiorstwo zatrudnia osobę. Nazywanie kaŝdej asocjacji w modelu nie jest konieczne. Nazwy nadaje się zwykle wtedy, kiedy pozwala to uniknąć niejednoznaczności. Nazwy asocjacji nie trzeba podawać zwłaszcza w przypadku, kiedy wyraźnie określi się nazwy ról. KaŜda z klas będąca końcem asocjacji moŝe być opisana nazwą roli, jaką dana klasa pełni w związku. W kolejnym przykładzie (Rysunek 1.6) Osoba pełni rolę pracownika względem Przedsiębiorstwa, natomiast Przedsiębiorstwo występuje w roli pracodawcy względem Osoby. Rysunek 1.6: Role i krotności asocjacji Rysunek 1.6 zawiera równieŝ przykład asocjacji, której oba końce stanowi ta sama klasa. Taka asocjacja oznacza, Ŝe obiekty danej klasy mogą być połączone z innymi obiektami tej samej klasy. W takim przypadku równieŝ moŝemy określić role końców asocjacji. Rysunek 1.7: Instancje asocjacji Rysunek 1.7 przedstawia diagram obiektów pokazujący instancje asocjacji z powyŝszego diagramu klas. Mamy tutaj dwie instancje klasy Osoba: kierownikoddziału oraz kasjer. Połączenie między nimi jest natomiast instancją asocjacji, której oba końce stanowi klasa Osoba występująca w róŝnych rolach. Na tym samym diagramie obiektów widzimy, Ŝe obiekt klasy Przedsiębiorstwo łączy się z dwoma obiektami klasy Osoba mamy więc dwie instancje asocjacji łączącej Osobę z Przedsiębiorstwem. O tym, ile obiektów klasy będącej jednym końcem asocjacji moŝe być połączonych z obiektem klasy z drugiego końca asocjacji decyduje krotność. Ogólnie rzecz biorąc, krotność wskazuje dolne i górne granice dla liczby obiektów mogących brać udział w asocjacji. Krotności umieszczamy na końcach asocjacji, przy klasach, których te krotności dotyczą. Na omawianym diagramie klas (Rysunek 1.6) widzimy, Ŝe Przedsiębiorstwo moŝe mieć co najmniej jednego pracownika. Jedna Osoba, natomiast, moŝe mieć dowolną ilość pracodawców (przynajmniej w teorii) lub nie mieć Ŝadnego. W praktyce najczęściej uŝywa się krotności: jeden (1), zero lub jeden (0..1), dowolna ilość (*), co najmniej jeden (1..*). MoŜna teŝ określić dowolną kombinację liczb i zakresów, jak np. 2, 10..*, Asocjacja pomiędzy dwiema klasami oznacza moŝliwość przejścia od obiektów jednej klasy do obiektów drugiej klasy w obu kierunkach. Czasami jednak zachodzi potrzeba ograniczenia moŝli- 7

8 wości nawigowania pomiędzy klasami tylko do jednego kierunku. Stosuje się wtedy asocjację jednokierunkową, która oznacza, Ŝe mając dostęp do obiektu na jednym końcu moŝna bezpośrednio przejść do obiektów na drugim końcu. W modelu implementacyjnym jest to zazwyczaj moŝliwe dzięki przechowywaniu przez obiekt źródłowy odniesień do obiektów będących celem asocjacji. Rysunek 1.8: Asocjacja jednokierunkowa Rysunek 1.8 przedstawia przykład asocjacji jednokierunkowej. Dla konkretnej Osoby, mamy bezpośredni dostęp do jej adresów, ale na podstawie danego Adresu nie jesteśmy w stanie bezpośrednio zidentyfikować powiązanych z nimi Osób. Istnienie asocjacji jednokierunkowej nie wyklucza jednak zupełnie moŝliwości wskazania Osób na podstawie Adresu moŝliwe jest przejście pośrednie poprzez inne klasy. Asocjacje odzwierciedlają zwykle związek strukturalny pomiędzy równorzędnymi klasami, znajdującymi się na tym samym poziomie pojęciowym. Czasem jednak klasy powiązane są relacją całość-część, w której klasa-agregat (całość) zawiera klasę-składnik (część). Innymi słowy, oznacza to zawieranie się obiektów jednej klasy w obiektach innej klasy. Taki rodzaj asocjacji nazywa się agregacją. Na diagramie agregację oznacza się poprzez umieszczenie pustego rombu po stronie klasy reprezentującej całość. Agregacja nie zmienia znaczenia nawigacji między klasami. Oprócz zwykłej agregacji, UML udostępnia jej silniejszą wersję zwaną kompozycją. Ten rodzaj asocjacji charakteryzuje się wyłączną własnością oraz zaleŝnością czasu Ŝycia całości i części. W odróŝnieniu od agregacji, w przypadku kompozycji obiekt będący częścią moŝe naleŝeć wyłącznie do jednej całości. Ponadto, części mogą powstawać po utworzeniu całości i umierają razem z nią. Usunięcie całości powoduje kaskadowe usunięcie wszystkich części. Na diagramie kompozycję oznacza się poprzez umieszczenie zaczernionego rombu po stronie klasy reprezentującej całość. NaleŜy pamiętać, Ŝe krotność po stronie klasy reprezentującej całość w relacji kompozycji musi być zawsze równa 1. Rysunek 1.9: Agregacja i kompozycja Rysunek 1.9 pokazuje przykład agregacji i kompozycji. Wielokąt moŝe zawierać 3 lub więcej instancji Punktu, przy czym Ŝadna z tych instancji nie moŝe naleŝeć do Koła, które posiada własną instancję Punktu. Instancja Stylu natomiast, moŝe być dzielona przez wiele Wielokątów i Kół. Usunięcie Wielokąta bądź Koła spowoduje usunięcie wszystkich naleŝących do niego Punktów, ale nie spowoduje usunięcia zawartego w nim Stylu. ZaleŜności Obok asocjacji, w modelu klas moŝna uŝywać innego rodzaju związków pomiędzy klasami, a mianowicie zaleŝności. ZaleŜność oznacza, Ŝe jeden element modelu uŝywa innego elementu. Np. 8

9 jedna klasa uŝywa drugiej jako argumentu w sygnaturze operacji. Zmiany dokonane w specyfikacji jednej klasy mogą mieć wpływ na klasę, która uŝywa tej pierwszej. Rysunek 1.10 przedstawia przykład zaleŝności pomiędzy klasami. Widać na nim, Ŝe klasa Produkt jest wykorzystywana jako argument operacji w klasie Koszyk. Zmiana sposobu zachowania klasy Produkt moŝe zatem pociągnąć za sobą zmianę w zachowaniu klasy Koszyk, która jest zaleŝna od tej pierwszej. Generalizacja i klasy abstrakcyjne Rysunek 1.10: ZaleŜność WaŜnym rodzajem związku pomiędzy elementami modelu w UML, zwłaszcza modelu klas, jest generalizacja. Generalizacja jest to związek między elementem ogólnym, zwanym równieŝ nadklasą lub przodkiem, a pewnym specyficznym jego rodzajem zwanym podklasą lub potomkiem. Potomek dziedziczy wszystkie właściwości przodka jego atrybuty, operacje, związki. Potomek moŝe rozszerzać zbiór właściwości odziedziczonych od przodka o swoje własne cechy. Potomek moŝe zatem wystąpić wszędzie tam, gdzie spodziewany jest przodek, ale nie na odwrót. Generalizacja przedstawiana jest na diagramie za pomocą strzałki z zamkniętym pustym w środku grotem wskazującym przodka. Generalizacja umoŝliwia stworzenie hierarchii dziedziczenia. Klasy ogólne znajdują się na górze hierarchii, a bardziej szczegółowe na dole. Klasa moŝe mieć dowolną ilość potomków. Jeśli chodzi o przodków, to rozróŝniamy dziedziczenie pojedyncze gdy klasa ma jednego przodka, oraz dziedziczenie wielokrotne gdy klasa ma wielu przodków. Dla danej klasy moŝemy ograniczyć moŝliwość tworzenia klas potomnych. Taką klasę nazywamy liściem i oznaczamy na diagramie napisem {leaf} umieszczonym pod nazwą klasy. Klasę znajdującą się na szczycie hierarchii dziedziczenia, która nie ma przodków nazywamy korzeniem i oznaczamy na diagramie napisem {root} umieszczonym pod jej nazwą (patrz Rysunek 1.11). Niektóre klasy w hierarchii dziedziczenia mogą być określone jako abstrakcyjne, czyli takie, dla których nie moŝna utworzyć instancji. Klasy takie nie dostarczają implementacji niektórych lub wszystkich swoich operacji, zwanych operacjami abstrakcyjnymi. Implementację operacji abstrakcyjnych powinny zapewnić klasy potomne, które następnie mogą być uŝyte wszędzie tam, gdzie spodziewana jest klasa abstrakcyjna. Nazwy klas i operacji abstrakcyjnych zapisuje się kursywą. W przedstawionym przykładzie (Rysunek 1.11) klasa Kształt zawiera abstrakcyjną operację obliczpowierzchnie(). Klasy Koło, Trójkąt oraz Prostokąt, będące klasami konkretnymi, dostarczają własnej specyficznej implementacji tej metody. 9

10 Rysunek 1.11: Generalizacja 10

11 2. Scenariusz pracy 2.1. Demonstracja budowy diagramu klas W tej części zajęć prowadzący demonstruje tworzenie modelu klas. W ramach demonstracji zostaną zaprezentowane róŝne sposoby umieszczania na diagramie poszczególnych elementów modelu: klas, asocjacji, generalizacji, atrybutów oraz operacji. Jednocześnie objaśniona zostanie semantyka tworzonych elementów Zadanie 1 dzielenie duŝych diagramów klas Zadanie to polega na samodzielnym stworzeniu modelu klas dla wybranej dziedziny oraz wizualizacja tego modelu na diagramach klas. Przed realizacją zadania, prowadzący przedstawi tematykę zadania, tj. opis dziedziny, dla której naleŝy stworzyć model klas. Przykładowy scenariusz wykonania zadania: 1. Utworzenie nowego projektu. W drzewie projektu naleŝy utworzyć odpowiedni widok oraz diagram klas (Rys. 2.1). Rys Utworzenie w modelu oraz umieszczenie na diagramie 7-10 klas dla zadanej dziedziny oraz utworzenie odpowiednich powiązania między nimi (asocjacji oraz relacji dziedziczenia) (Rys. 2.2). 11

12 Rys Ustawienie odpowiednich właściwości asocjacji (Rys. 2.3) oraz utworzenie niezbędnych atrybutów oraz operacji w klasach (Rys. 2.4). Rys

13 Rys Wyodrębnienie w modelu dziedziny dwóch (lub więcej) obszarów tematycznych. KaŜdy obszar powinien zawierać klasy modelujące odrębne zagadnienia. Niektóre klasy mogą nale- Ŝeć do więcej niŝ jednego obszaru w sytuacji, gdy jest to pomocne w pełnym zrozumieniu modelowanego obszaru. Rys

14 5. Mając wyodrębnione obszary tematyczne, naleŝy utworzyć dla kaŝdego z nich oddzielny diagram klas. Nazwa diagramu powinna nawiązywać do tematyki wyodrębnionej poddziedziny. Na kaŝdym z diagramów naleŝy umieści klasy stanowiące model odpowiedniego obszaru tematycznego. Klasy, które są wspólne dla wielu obszarów, powinny być umieszczone na kaŝdym z diagramów (Rys. 2.6). Rys Zadanie 2 podział modelu klas na pakiety Zadanie to polega na samodzielnej rozbudowie modelu stworzonego w poprzednim zadaniu poprzez podział modelu na pakiety. Przykładowy scenariusz wykonania zadania: 1. Utworzenie w drzewie projektu pakietów odpowiadających wydzielonym obszarom tematycznym modelu (Rys. 2.7a). 2. Przeniesienie w drzewie projektu odpowiednich klas oraz diagramów dla kaŝdego z obszarów tematycznych do odpowiedniego pakietu (Rys. 2.7b). 14

15 Rys Edycja właściwości diagramów w celu uwidocznienia przestrzeni nazw dla elementów znajdujących się na diagramach. Przenosząc klasy między pakietami naleŝy zaobserwować zmieniające się przestrzenie nazw wyświetlane w piktogramach klas (Rys. 2.8). Rys Literatura 1. OMG Unified Modeling Language, Superstructure, version 2.2, formal/ ( 2. Martin Fowler: UML w kropelce, wersja 2.0, LTP Oficyna Wydawnicza,

16 3. Michał Smiałek: Zrozumieć UML 2.0. Metody modelowania obiektowego, Wydawnictwo Helion, Grady Booch, James Rumbaugh, Ivar Jacobson: UML przewodnik uŝytkownika, wydanie drugie, WNT, Enterprise Architect User Guide ( 16

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

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

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

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla nauczyciela

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

Bardziej szczegółowo

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla studentów

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

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

Podstawy projektowania systemów komputerowych

Podstawy projektowania systemów komputerowych Podstawy projektowania systemów komputerowych Diagramy klas UML 1 Widok logiczny Widok logiczny Widok fizyczny Widok przypadków użycia Widok procesu Widok konstrukcji Używany do modelowania części systemu

Bardziej szczegółowo

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

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 1 Wprowadzenie do narzędzia CASE. Materiały dla studenta 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

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

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

Modelowanie obiektowe

Modelowanie obiektowe Modelowanie obiektowe ZPO 2018/2019 Dr inż. W. Cichalewski Materiały wykonane przez W. Tylman Diagramy klas Diagramy klas Zawiera informacje o statycznych związkach między elementami (klasami) Są ściśle

Bardziej szczegółowo

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

Laboratorium 6 DIAGRAM KLAS (Class Diagram) Laboratorium 6 DIAGRAM KLAS (Class Diagram) Opisuje strukturę programu (a także zależności między nimi), co znajduje odzwierciedlenie w kodzie. Charakteryzuje zależności pomiędzy składnikami systemu: klasami,

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

Diagramy klas. WYKŁAD Piotr Ciskowski

Diagramy klas. WYKŁAD Piotr Ciskowski Diagramy klas WYKŁAD Piotr Ciskowski przedstawienie statyki systemu graficzne przedstawienie statycznych, deklaratywnych elementów dziedziny przedmiotowej oraz związków między nimi obiekty byt, egzemplarz

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

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 6 Modelowanie przypadków uŝycia i czynności. Materiały dla studentów

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 6 Modelowanie przypadków uŝycia i czynności. Materiały dla studentów Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 6 Modelowanie przypadków uŝycia

Bardziej szczegółowo

Podstawy języka UML UML

Podstawy języka UML UML Podstawy języka UML UML Plan prezentacji Wprowadzenie do modelowania Wprowadzenie do języka UML Diagram klas Diagram pakietów Diagram przypadków użycia Diagram czynności Terminologia Terminologia Aplikacja

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

TECHNOLOGIE OBIEKTOWE. Wykład 3

TECHNOLOGIE OBIEKTOWE. Wykład 3 TECHNOLOGIE OBIEKTOWE Wykład 3 2 Diagramy stanów 3 Diagram stanu opisuje zmiany stanu obiektu, podsystemu lub systemu pod wpływem działania operacji. Jest on szczególnie przydatny, gdy zachowanie obiektu

Bardziej szczegółowo

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

Inżynieria oprogramowania. Część 5: UML Diagramy klas UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI Opracował: mgr inż. Przemysław Pardel v1.01 2010 Inżynieria oprogramowania Część 5: UML Diagramy klas ZAGADNIENIA DO ZREALIZOWANIA (3H) 1. Diagram klas... 3 Zadanie

Bardziej szczegółowo

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 7 Modelowanie klas i stanów, generacja kodu. Materiały dla studentów

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 7 Modelowanie klas i stanów, generacja kodu. Materiały dla studentów Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Ćwiczenie 7 Modelowanie klas i stanów, generacja kodu Materiały dla studentów Projekt współfinansowany

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

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

UML. zastosowanie i projektowanie w języku UML

UML. zastosowanie i projektowanie w języku UML UML zastosowanie i projektowanie w języku UML Plan Czym jest UML Diagramy przypadków użycia Diagramy sekwencji Diagramy klas Diagramy stanów Przykładowe programy Visual Studio a UML Czym jest UML UML jest

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

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

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

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 Diagramy związków encji (ERD) 1 Projektowanie bazy danych za pomocą narzędzi CASE Materiał pochodzi ze strony : http://jjakiela.prz.edu.pl/labs.htm Diagramu Związków Encji - CELE Zrozumienie struktury

Bardziej szczegółowo

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 8 Diagram pakietów I Diagram pakietów (ang. package diagram) jest diagramem

Bardziej szczegółowo

Podstawy języka UML UML

Podstawy języka UML UML Podstawy języka UML UML Plan szkolenia Plan szkolenia Godzina (czas) 10:20 11:20 (60 min) 11:20 11:40 (20 min) 11:40 13:10 (90 min) 13:10 13:30 (20 min) 13:30 15:00 (90 min) Temat Wprowadzenie do UML (Definicja,

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

MODELOWANIE OBIEKTOWE

MODELOWANIE OBIEKTOWE (Wykład na podstawie literatury: M.Śmiałek Zrozumieć UML 2.0, Helion 2005) UML Unified Modeling Language (język do specyfikowania, wizualizowania, konstruowania i dokumentacji tzw. artefactów oraz czynności

Bardziej szczegółowo

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 2 Związki między klasami Asocjacja (ang. Associations) Uogólnienie, dziedziczenie

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

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

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

INŻYNIERIA OPROGRAMOWANIA. laboratorium

INŻYNIERIA OPROGRAMOWANIA. laboratorium INŻYNIERIA OPROGRAMOWANIA laboratorium UML 1/4 UML (Unified Modeling Language) - język modelowania obiektowego systemów i procesów [Wikipedia] Spojrzenie na system z różnych perspektyw dzięki zastosowaniu

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

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

Faza analizy (modelowania) Faza projektowania

Faza analizy (modelowania) Faza projektowania Faza analizy (modelowania) Faza projektowania Celem fazy określania wymagań jest udzielenie odpowiedzi na pytanie: co i przy jakich ograniczeniach system ma robić? Wynikiem tej analizy jest zbiór wymagań

Bardziej szczegółowo

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig Modelowanie Obiektowe Wykład 1: Wprowadzenie do Modelowania i języka UML Anna Kulig Wprowadzenie do modelowania Zasady Pojęcia Wprowadzenie do języka UML Plan wykładu Model jest uproszczeniem rzeczywistości.

Bardziej szczegółowo

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny DIAGRAM KLAS Kamila Vestergaard materiał dydaktyczny DEFINICJA D I A G R A M K L A S Diagram klas pokazuje wzajemne powiązania pomiędzy klasami, które tworzą jakiś system. Zawarte są w nim informacje dotyczące

Bardziej szczegółowo

Charakterystyka oprogramowania obiektowego

Charakterystyka oprogramowania obiektowego Charakterystyka oprogramowania obiektowego 1. Definicja systemu informatycznego 2. Model procesu wytwarzania oprogramowania - model cyklu Ŝycia oprogramowania 3. Wymagania 4. Problemy z podejściem nieobiektowym

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

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

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

Modelowanie związków encji. Oracle Designer: Diagramy związków encji. Encja (1)

Modelowanie związków encji. Oracle Designer: Diagramy związków encji. Encja (1) Modelowanie związków encji Oracle Designer: Modelowanie związków encji Technika określania potrzeb informacyjnych organizacji. Modelowanie związków encji ma na celu: dostarczenie dokładnego modelu potrzeb

Bardziej szczegółowo

Język UML w modelowaniu systemów informatycznych

Język UML w modelowaniu systemów informatycznych Język UML w modelowaniu systemów informatycznych dr hab. Bożena Woźna-Szcześniak Akademia im. Jan Długosza bwozna@gmail.com Wykład 3 Diagramy przypadków użycia Diagramy przypadków użycia (ang. use case)

Bardziej szczegółowo

Podstawy modelowania w języku UML

Podstawy modelowania w języku UML Podstawy modelowania w języku UML dr hab. Bożena Woźna-Szcześniak, prof. UJD Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie Wykład 2 Związki między klasami Asocjacja (ang. Associations)

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

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

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE. C++ - DZIEDZICZENIE Do najważniejszych cech języka C++ należy możliwość wielokrotnego wykorzystywania kodu Prymitywnym, ale skutecznym sposobem jest kompozycja: deklarowanie obiektów wewnątrz innych klas,

Bardziej szczegółowo

Modelowanie klas i obiektów. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Modelowanie klas i obiektów. Jarosław Kuchta Projektowanie Aplikacji Internetowych Modelowanie klas i obiektów Jarosław Kuchta Podstawowe pojęcia (1) Byt, encja (entity) coś co istnieje, posiada własne cechy i wyodrębnioną tożsamość (identity); bytem może być rzecz, osoba, organizacja,

Bardziej szczegółowo

Laboratorium przedmiotu Technika Cyfrowa

Laboratorium przedmiotu Technika Cyfrowa Laboratorium przedmiotu Technika Cyfrowa ćw.3 i 4: Asynchroniczne i synchroniczne automaty sekwencyjne 1. Implementacja asynchronicznych i synchronicznych maszyn stanu w języku VERILOG: Maszyny stanu w

Bardziej szczegółowo

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne

Bardziej szczegółowo

UML - zarys 2007/2008

UML - zarys 2007/2008 UML - zarys 2007/2008 Modelowanie Jest ważne przy tworzeniu wysokiej jakości oprogramowania Jest przydatne przy tworzeniu i analizie działania organizacji Modelujemy aby: Zrozumieć system Określić pożądaną

Bardziej szczegółowo

hierarchie klas i wielodziedziczenie

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

Bardziej szczegółowo

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY Różne właściwości Funkcje tak samo jak zmienne mają swoje miejsce w pamięci, gdzie są zapisane. Można więc uzyskać ich adres. Podobnie jak adres tablicy jest zwracany przez jej nazwę, podaną bez nawiasu

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

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

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

Technologie obiektowe

Technologie obiektowe WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność

Bardziej szczegółowo

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

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

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to

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

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

4. Język UML. 4.1. Alfabet

4. Język UML. 4.1. Alfabet 4. Język UML Język modelowania pojęciowego (Unified Modeling Language) jest językiem formalnym. Jeśli coś w nim zapiszę, to każdy odczyta dokładnie to, co napisałem (nawet jeśli będzie miał nieco złej

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

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek TECHNOLOGIE OBIEKTOWE WYKŁAD 2 Anna Mroczek 2 Diagram czynności Czym jest diagram czynności? 3 Diagram czynności (tak jak to definiuje język UML), stanowi graficzną reprezentację przepływu kontroli. 4

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

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

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

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

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

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Wprowadzenie do UML Igor Gocaliński Odrobina historii Połowa lat 70-tych i koniec 80-tych to początek analizy obiektowej Wiele opracowanych metod w połowie lat 90-tych Metoda

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Związki między klasami: jest i zawiera Programowanie obiektowe Przkład: Pojazd Kompozycja i dziedziczenie klas Silnik Pojazd silnikowy Rower Wóz konny Paweł Rogaliński Instytut Informatyki, Automatyki

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji Inżynieria oprogramowania Jarosław Kuchta Modelowanie interakcji Podstawowe pojęcia Interakcja (interaction) Przepływ komunikatów pomiędzy obiektami konieczny dla wykonania określonego zadania. Interakcja

Bardziej szczegółowo

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING

Laboratorium nr 5. Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Laboratorium nr 5 Temat: Funkcje agregujące, klauzule GROUP BY, HAVING Celem ćwiczenia jest zaprezentowanie zagadnień dotyczących stosowania w zapytaniach języka SQL predefiniowanych funkcji agregujących.

Bardziej szczegółowo

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas

Bardziej szczegółowo

Diagramy czynności Na podstawie UML 2.0 Tutorial

Diagramy czynności Na podstawie UML 2.0 Tutorial Diagramy czynności Na podstawie UML 2.0 Tutorial http://sparxsystems.com.au/resources/uml2_tutorial/ Zofia Kruczkiewicz 1 Diagramy czynności 1. Diagramy czyności UML http://sparxsystems.com.au/resources/uml2_tutorial/

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

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

Modelowanie obiektowe systemów

Modelowanie obiektowe systemów Modelowanie obiektowe systemów Dr inż. Ludmiła Rekuć www.ioz.pwr.wroc.pl/pracownicy/l_rekuc Literatura Dąbrowski M.,Stasiak A.,Wolski M. Modelowanie systemów informatycznych w języku UML 2. PWN, 2009 Wrycza

Bardziej szczegółowo

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne) Bazy danych 1 Wykład 5 Metodologia projektowania baz danych (projektowanie logiczne) Projektowanie logiczne przegląd krok po kroku 1. Usuń własności niekompatybilne z modelem relacyjnym 2. Wyznacz relacje

Bardziej szczegółowo

Wprowadzenie do systemów informacyjnych

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

Bardziej szczegółowo

Michał Adamczyk. Język UML

Michał Adamczyk. Język UML Michał Adamczyk Język UML UML I. Czym jest UML Po co UML II.Narzędzia obsługujące UML, edytory UML III.Rodzaje diagramów UML wraz z przykładami Zastosowanie diagramu Podstawowe elementy diagramu Przykładowy

Bardziej szczegółowo

Wykład 5: Klasy cz. 3

Wykład 5: Klasy cz. 3 Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu

Bardziej szczegółowo

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami

Bardziej szczegółowo

Modelowanie i analiza systemów informatycznych

Modelowanie i analiza systemów informatycznych Katolicki Uniwersytet Lubelski Jana Pawła II Wydział Matematyki, Informatyki i Architektury Krajobrazu Modelowanie i analiza systemów informatycznych ćwiczenia informacja wstępna dr Viktor Melnyk, prof.

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

PREZENTACJE MULTIMEDIALNE cz.2

PREZENTACJE MULTIMEDIALNE cz.2 Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni z przedmiotu Podstawy Informatyki Kod przedmiotu: TS1C 100 003 Ćwiczenie pt. PREZENTACJE MULTIMEDIALNE cz.2

Bardziej szczegółowo

Techniki modelowania programów Kod przedmiotu

Techniki modelowania programów Kod przedmiotu Techniki modelowania programów - opis przedmiotu Informacje ogólne Nazwa przedmiotu Techniki modelowania programów Kod przedmiotu 11.3-WI-INFD-TMP Wydział Kierunek Wydział Informatyki, Elektrotechniki

Bardziej szczegółowo

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji Modelowanie danych. Model związków-encji Plan wykładu Wprowadzenie do modelowania i projektowania kartograficznych systemów informatycznych Model związków-encji encje atrybuty encji związki pomiędzy encjami

Bardziej szczegółowo

Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu

Laboratorium z Grafiki InŜynierskiej CAD. Rozpoczęcie pracy z AutoCAD-em. Uruchomienie programu Laboratorium z Grafiki InŜynierskiej CAD W przygotowaniu ćwiczeń wykorzystano m.in. następujące materiały: 1. Program AutoCAD 2010. 2. Graf J.: AutoCAD 14PL Ćwiczenia. Mikom 1998. 3. Kłosowski P., Grabowska

Bardziej szczegółowo

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska Wprowadzenie Modelowanie biznesowe jest stykiem między

Bardziej szczegółowo