Newsletter

Grupa MagazynyInternetowe

Online: 901

Wyszukiwarka

UML

Kurs UML - część 1 - wstęp i diagramy klas

Zaczynamy

Przyjrzymy 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ę 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:

  • publiczny - dostęp do elementu mają obiekty wszystkich innych klas systemu,
  • prywatny - dostęp do elementu mają tylko obiekty klasy, w której element jest zdefiniowany,
  • chroniony - dostęp do elementu mają obiekty klasy, w której element jest zdefiniowany oraz klas dziedziczących po tej klasie.

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:

  • + - element publiczny,
  • - (dywiz) - element prywatny,
  • # - element chroniony.

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ć:

[+]
 
 
Pobierz
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ć:

[+]
 
 
Pobierz
1. imieKlienta
2. +imieKlienta
3. -imieKlienta: string
4. #imieKlienta: string = "Jan"
5. +imieKlienta: string = "Jan" {readOnly}

Ale także:

[+]
 
 
Pobierz
1. imieKlienta = "Jan"
2. klienci[1..10]

i inne.

16 czerwca 2008

Powiązane publikacje

Kurs UML - część 5 - diagramy czynności/aktywności

Kurs UML - część 5 - diagramy czynności/aktywności

Kurs UML - część 4 - przypadki użycia po raz drugi

Kurs UML - część 4 - przypadki użycia po raz drugi

Kurs UML - część 3 - przypadki użycia

Kurs UML - część 3 - przypadki użycia

Kurs UML - część 2 - interfejsy

Kurs UML - część 2 - interfejsy

 
Skomentuj
ten artykuł

Komentarzy: 5

Kod obrazkowy
(Kliknij, aby zmienić)
 
Przejdż do tego postu na forum Thursday, 28.01.2010 13:29Swieży

Do: "Wujek z lasu"
Asocjacja nie ma wypełnionego grotu w strzałce, a na tym rysunku jest wypełniony grot.

Przejdż do tego postu na forum Wednesday, 25.11.2009 23:03wujek z lasu

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.

Przejdż do tego postu na forum Sunday, 16.11.2008 18:08Marcin R.

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ę smile.gif

Przejdż do tego postu na forum Thursday, 30.10.2008 19:32Piotrek

Teraz dopiero zobaczyłem linki do podstron (czemu nie widziałem ich wczoraj?...) No to czytamy dalej smile.gif

Przejdż do tego postu na forum Thursday, 30.10.2008 00:43Piotrek

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?

Zobacz wszystkie komentarze »

Autor

Marcin Staniszczak

Artykuły tego autora:

Pozostałe publikacje

Kurs UML - część 5 - diagramy czynności/aktywności

Kurs UML - część 5 - diagramy czynności/aktywności

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.

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.