Podstawy projektowania systemów komputerowych

Podobne dokumenty
Modelowanie obiektowe

Diagramy klas. dr Jarosław Skaruz

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

UML w Visual Studio. Michał Ciećwierz

Podstawy programowania III WYKŁAD 4

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

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

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny

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

Diagramy klas. WYKŁAD Piotr Ciskowski

Język UML w modelowaniu systemów informatycznych

Podstawy modelowania w języku UML

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

Podstawy języka UML UML

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

Rysunek 1: Przykłady graficznej prezentacji klas.

UML. zastosowanie i projektowanie w języku UML

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

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Język UML w modelowaniu systemów informatycznych

TECHNOLOGIE OBIEKTOWE. Wykład 3

Język UML w modelowaniu systemów informatycznych

Programowanie obiektowe

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

Inżynieria Oprogramowania. UML Schematy klas

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Programowanie obiektowe

Dokumentacja do API Javy.

Podstawy języka UML UML

MAS dr. Inż. Mariusz Trzaska

Programowanie obiektowe

Język UML w modelowaniu systemów informatycznych

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Technologie i usługi internetowe cz. 2

Diagramy przypadków użycia. WYKŁAD Piotr Ciskowski

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

MODELOWANIE OBIEKTOWE Z UML

Podstawy inżynierii oprogramowania

Po lewej przykłady klas. Stereotypy zostały tu wykorzystane do metaklasyfikacji metod.

Technologie obiektowe

Dziedziczenie. dr Jarosław Skaruz

Programowanie obiektowe

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

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

PHP 5 język obiektowy

Diagramy klas UML. Mateusz Kobos

Projektowanie logiki aplikacji

UML a kod. C++, Java i C#

Wykład 7: Pakiety i Interfejsy

Inżynieria oprogramowania wykład VII Faza analizy analiza obiektowa Język UML wprowadzenie, diagramy struktury

Polimorfizm. dr Jarosław Skaruz

Aplikacje w środowisku Java

UML - zarys 2007/2008

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

Biuro Podróży 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę

Podstawy języka UML2 w realnych projektach

TEMAT : KLASY DZIEDZICZENIE

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Faza analizy (modelowania) Faza projektowania

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

MAS dr. Inż. Mariusz Trzaska

Biuro Podróży 0. Stwórz projekt aplikacja konsolowa lub WPF (przemyśl wybór, bo zmiana może być czasochłonna). 1. Stwórz abstrakcyjną klasę

Język UML. dr inż. Piotr Szwed C3, pok

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

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Projektowanie obiektowe oprogramowania Wykład 2 - UML Wiktor Zychla 2016

INŻYNIERIA OPROGRAMOWANIA. laboratorium

Programowanie obiektowe

MODELOWANIE OBIEKTOWE

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

MAS dr. Inż. Mariusz Trzaska

Enkapsulacja, dziedziczenie, polimorfizm

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

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

Builder (budowniczy) Cel: Przykład:

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

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

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

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

Michał Adamczyk. Język UML

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

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

PARADYGMATY PROGRAMOWANIA Wykład 4

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Kurs WWW. Paweł Rajba.

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Modelowanie obiektowe systemów

UML. dr inż. Marcin Pietroo

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Podstawowe części projektu w Javie

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

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

Spis treúci. 1. Wprowadzenie... 13

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

Diagramy czynności Na podstawie UML 2.0 Tutorial

Materiały do zajęć VII

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

Analiza i projektowanie aplikacji Java

Transkrypt:

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 oraz sposobów, w jaki one ze sobą współdziałają. Ten widok zazwyczaj tworzą diagramy: Klas, Obiektów, Maszyny stanowej, Interakcji. 2 1

Podstawowe sposoby przedstawiania klas, różne poziomy szczegółowości Okno Pole nazwy klasy: Okno Atrybut czy_widoczne Okno Operacja() czy_widoczne() Okno rozmiar czy_widoczne wyświetl() schowaj() nazwa_ klasy Pole atrybutów: dostępność nazwa_atrybutu : typ = wart_początkowa Pole metod: Okno rozmiar: int czy_widoczne: boolean wyświetl() schowaj() dostępność nazwa_metody (lista_arg) : typ_wart_zwracanej 3 Dostepności: + publiczna - prywatna # chroniona ~ zakres pakietu Poziomy dostępu 4 2

Atrybuty BlogAccount -name : String +publicurl : String 1 * -entries BlogEntry Atrybuty wpisane Atrybuty zadeklarowane poprzez asocjację 5 Statyczne części klasy Podkreślenie! 6 3

Pracownik Imię[1..2] nazwisko data ur. wiek adres zamieszkania płeć stosunek do służby wojsk. [0..1] lista poprz. miejsc pracy [0..*] adres firmy Liczebność Pozwala określić, że atrybut w rzeczywistości reprezentuje zbiór obiektów. policz wiek (imię, nazwisko) policz wiek policz wiek (imię, nazwisko) czy pracował w (nazwa firmy) znajdź najstarszego() 7 Ogólna deklaracja atrybutu wpisanego [widoczność] nazwa [liczebność] [: typ] [=wartość początkowa] Przykład: + wysokosc : double = 10 8 4

Ogólna deklaracja operacji [widoczność] nazwa [(lista parametrów)] [: typ wyniku] gdzie lista parametrów: nazwa : typ [=wartość domyślna] 9 Ogólna deklaracja operacji 2 [widoczność] nazwa [(lista parametrów)] [: typ wyniku] [właściwość] Nazwa funkcji pisana kursywą metoda abstrakcyjna Nazwa podkreślona metoda wirtualna 10 5

Związki pomiędzy klasami Wymieniane od najsłabszych: Zależność (strzałka przerywana) Asocjacja (pojedyncza linia) Agregacja częściowa (pusta strzałka zakończona rombem) Agregacja całkowita (pełna strzałka zakończona rombem) Dziedziczenie (pusta strzałka) 11 Zależność (1) Zależność pomiędzy dwiema klasami informuje, że jedna z nich, aby używać obiektów innej, musi mieć o niej informacje. Zależność występuje gdy zmiana specyfikacji jednej klasy, może powodować konieczność wprowadzenia zmiany w innej klasie. 12 6

Zależność (2) Najczęściej używa się zależności do pokazania, że jedna klasa używa innej klasy jako parametru jakiejś operacji: Obie klasy są zależne od siebie nawzajem w celu zapewnienia poprawnej pracy! 13 Asocjacja (1) Związek asocjacji pozwala jednej klasie na używanie obiektów innej klasy. Asocjacja oznacza, że klasa będzie w rzeczywistości: Zawierać w postaci atrybutu odwołanie do obiektu, Zawierać w postaci atrybutu same obiekty, Zawierać inną klasę. 14 7

Asocjacja (2) Domyślnie powiązanie jest dwukierunkowe (jeśli tego nie chcemy, to trzeba do linii dodać strzałkę) 15 Asocjacje (3) Na diagramach można umieszczać dodatkowe informacje o powiązaniach Rola: Krotność: Przykładowe krotności: 1, 2, 5, 1..3, *, 3..*, 0,1, 0..6 16 8

Asocjacje (4) Za pomocą dodatkowego atrybutu można określać, czy odwołanie się do powiązania jest dostępne dla innych obiektów nie biorących w powiązaniu udziału (czy jest publiczne): 17 Asocjacje (5) public class Klient { public Maszyna[] zakup; //. } Nawigowalność! 18 9

Klasy asocjacyjne Sama asocjacja może powodować powstawanie nowych klas. Powiązanie może mieć atrybuty i operacje, tak samo jak każda inna klasa. 19 Agregacja częściowa W rzeczywistości jest silniejszą wersją asocjacji. Zaznacza, że jedna klasa w rzeczywistości posiada obiekty innej, ale może je jednocześnie również współdzielić. 20 10

Agregacja całkowita (kompozycja, złożenie) Jeśli obiekt należy tylko do jednej całości, jest tworzony i likwidowany razem z całością, nazywamy to agregacją całkowitą. Kompozycja oznacza, że cykl życiowy składowej zawiera się w cyklu życiowym całości, oraz że składowa nie może być współdzielona. 21 Uogólnienie (dziedziczenie) Używa się w celu opisania klasy, która jest rodzajem innej klasy. Uogólnienie/dziedziczenie jest relacją pomiędzy klasą ogólniejszą (nazywaną klasą rodzicem, klasą bazową itp.) a bardziej szczegółową (nazywaną podklasą, albo klasą dzieckiem) reprezentuje stwierdzenie: A jest rodzajem B. 22 11

Uogólnienie - przykład Klasa posiadająca klasy potomne, ale nie posiadająca rodziców jest nazywana klasą korzeniem (ang. root class) Klasa bez potomków nazywana jest klasą liściem (ang. leaf class) 23 Przykład ograniczenia Określenie niezmienników klasy wymaga użycia języka OCL. podwładny * 0..1 Osoba * zatrudnia 0..1 pracownik pracodawca Firma szef {Osoba.pracodawca = Osoba.szef.pracodawca} 24 12

Klasy abstrakcyjne Nazwa klasy pisana kursywą. Metody abstrakcyjne pisane kursywą. Bryła pole podstawy wysokość policz objętość() 25 Interfejsy Interfejs jest zbiorem operacji, które nie mają odpowiadających im metod implementujących. Przypominają klasy abstrakcyjne, w C++ są implementowane w postaci klas abstrakcyjnych. 26 13

Interfejsy, realizacja Interfejs jest przedstawiany podobnie do klasy nie ma jednak właściwości. Związek pomiędzy klasą a interfejsem nazywa się realizacją 27 Intrfejsy, notacja lizakowa + PrzesunFigure() + PozycjaWyjsciowa() W tej notacji operacje interfejsu podajemy alternatywnie! 28 14

Inżynieria wsteczna / w przód Inżynieria wprzód generowanie kodu na podstawie istniejących diagramów UML. Podczas tego procesu traci się część informacji.choć nie specyfikuje jak takie mapowanie ma być przeprowadzone, UML był tworzony tak aby dało się go przeprowadzić. Inżynieria wsteczna tworzenie diagramów UML na podstawie istniejącego kodu programu. 29 15