Grupa MagazynyInternetowe
Online: 901Przyjrzymy się klasom, wchodzącym w skład diagramów klas. Diagramami klas będziemy się zajmowali przez jakiś czas. Jakie zadania spełniają klasy? Są on najczęściej swoistym słownikiem opisującym świat modelowanego systemu. Np. w przypadku forum internetowego mogłyby istnieć takie klasy jak Użytkownik, Post, Dział, Temat i inne.
Przyjęło się, że nazwa klasy opisuje zadanie
jakie klasa ma spełniać (np. Użytkownik mówi, że
klasa odpowiada za obsługę użytkownika, warto
się zastanowić, czy lepszą nazwą w przypadku
forum nie byłoby KontoUżytkownika). Nazwa klasy
zawsze rozpoczyna się wielką literą, w przypadku
zaś gdy jest to nazwa złożona z kilku wyrazów,
każdy wyraz rozpoczyna się bezpośrednio po
poprzednim (bez spacji, odstępu czy innego znaku)
wielką literą (patrz KontoUżytkownika).
Klasy mogą posiadać atrybuty oraz operacje. Atrybuty można sobie wyobrazić jako pojemniki służące do przechowywania danych, a więc są odpowiednikami zmiennych (pól klas) z języków programowania. Operację są czynnościami, jakie może wykonywać klasa - są to więc odpowiedniki metod klas z języków programowania.
Nazwy atrybutów i operacji tworzy się w sposób analogiczny do nazw klas, z tą różnicą, że powinny one rozpoczynać się od małej litery. Na rysunku 1 możesz zobaczyć kilka notacji prezentujących klasę.
Rys. 1. Dozwolone notacje prezentujące klasy na diagramach UML. Od lewej: sama nazwa klasy, nazwa
klasy wraz z atrybutami, nazwa klasy z operacjami, nazwa klasy z atrybutami oraz operacjami, nazwa klasy
z atrybutami, operacjami oraz dodatkowym blokiem, tutaj zawierającym notatkę
Jak widzisz, klasa reprezentowana jest przez
prostokąt podzielony na bloki. Górny blok zawsze
zawiera nawę klasy (na rysunku NazwaKlasy).
Kolejne bloki zawierają odpowiednio pola oraz
atrybuty. Dodatkowo klasa może posiadać jeszcze
dodatkowe pola z innymi informacjami.
W zależności od ustawionego poziomu
szczegółowości, widoczne mogą być wszystkie
bądź tylko niektóre bloki. Jak przedstawiono to na
rysunku 1, najmniej szczegółowa prezentacja klasy
posiada tylko jej nazwę.
Pamiętaj, że wszystkie te poziomy szczegółowości są poprawne. Możesz się między nimi przełączać w zależności od konieczności - np. w zależności od tego, komu chcesz zaprezentować diagram. Warto także pamiętać, że nie każdy program potrafi przełączać się pomiędzy wszystkimi poziomami. Enterprose Architect ma na przykład problemy z poziomem pierwszym (sama nazwa klasy - po wyłączeniu prezentacji wszystkich pozostałych bloków, wyświetla on blok z nazwą oraz drugi, pusty blok).
Diagramy na rysunku zawierają napisy w poszczególnych polach w różnych kolorach. Pamiętaj że kolory nie mają tu znaczenia. Enterprse Architect koloruje zawartość odpowiednich pól w celu czytelniejszej ich prezentacji. Często jednak wszystkie elementy diagramów są czarno-białe.
Zarówno atrybutom, jak i operacjom można przypisać poziomy widoczności:
Widzisz tutaj analogię do działania modyfikatorów dostępu w klasach obiektowych języków programowania (jak public, private i protected z języków PHP, Java czy C++)?
Na diagramach klas UML elementy z określoną widocznością posiadają nazwy poprzedzone odpowiednim znakiem:
Istnieje jeszcze jeden, rzadko używany (dostępny np. w Javie) poziom dostępu, określający widoczność dla pakietu, a oznaczany znakiem tyldy ~. Na rysunku 1 widać zdefiniowane typy atrybutów oraz parametry i wartości zwracane przez operacje. Nazwa atrybutów, w zależności od ustawienia poziomu prezentacji szczegółów w programie, może mieć następującą postać:
1. [widoczność] [/] nazwa [: typ] 2. [wielokrotność] [ = wartość domyślna] 3. [{ustawienia}]
To co zapisano w nawiasach kwadratowych, to dane opcjonalne, których nie trzeba podawać i które można ukrywać. Tak więc poprawne nazwy atrybutów mogą przyjmować postać:
1. imieKlienta 2. +imieKlienta 3. -imieKlienta: string 4. #imieKlienta: string = "Jan" 5. +imieKlienta: string = "Jan" {readOnly}
Ale także:
1. imieKlienta = "Jan" 2. klienci[1..10]
i inne.
Powiązane publikacje
Komentarzy: 5
Do: "Wujek z lasu"
Asocjacja nie ma wypełnionego grotu w strzałce, a na tym rysunku jest wypełniony grot.
Jest wiecej powazniejszych bledow a zauwazacie literowki lub slowa.
Rys. 13 nie przedstawia specjalizacji, generalizacji, czy tzw dziedziczenia, a tylko asocjacje.
Strzalki powinny byc trojkatami, pustymi w srodku.
Na stronie 4. jest drobny błąd. Chodzi o drugi nawias w zdaniu:
"Inaczej mówiąc, jest to związek pomiędzy bardziej ogólną klasą (rodzicem) a klasą bardziej szczegółową (rodzicem). "
A tak poza to świetny kurs. Przyda się do nauki na wejściówkę ![]()
Teraz dopiero zobaczyłem linki do podstron (czemu nie widziałem ich wczoraj?...) No to czytamy dalej ![]()
Brzmi zachęcajaco, ale na podstawie 2. i 3. części odnoszę wrażenie, że tutaj czegoś brakuje (np. diagramy klas, związek asocjacji). Czyżby ta część kursu była niekompletna?
Artykuły tego autora:
Dziś kolej na następny rodzaj diagramów - diagramy czynności (zwany często diagramem aktywności). Diagramy czynności należą do jednych z bardziej złożonych elementów języka UML, jednak jako że kurs ten traktuje o podstawach, zostaną tu zaprezentowane wyłącznie najważniejsze jego elementy.
Polecamy:
Na skróty:
Magazyny Internetowe| Co za ile| Programy| Praca| Magazyn Internet| Internet Maker| Web Toster| ForumNasze serwisy: