Newsletter

Grupa MagazynyInternetowe

Online: 408

Wyszukiwarka

UML

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

Asocjacja

Asocjacja jest podstawowym rodzajem związków między klasami. Oznacza ona istnienie trwałego powiązania pomiędzy nimi. Oto przykłady asocjacji

  • firma zatrudnia pracowników,
  • student studiuje na uczelni,
  • ekspedientka pracuje w sklepie,
  • itd.

Przykłady asocjacji przedstawia rysunek 7.

Rys. 7. Przykłady asocjacji Rys. 7. Przykłady asocjacji

Asocjacja może być jednokierunkowa, to znaczy można zaznaczyć jej kierunek - wiadomo, że firma zatrudnia pracowników, ale nie odwrotnie. Kierunek asocjacji zaznacza się strzałką - zobacz rysunek 8. Asocjacja taka nazywana jest nawigacją.

Rys. 8. Przykłady asocjacji jednokierunkowej Rys. 8. Przykłady asocjacji jednokierunkowej

Asocjacja n-arne

Zaprezentowana wyżej asocjacja to tak zwana asocjacja binarna - są to asocjacje, w skład których wchodzą dwie klasy. Czasami (jednak o wiele rzadziej) stosuje się asocjacje n-arne. w skład takich asocjacji może wchodzić więcej klas. Oto przykład: w sklepie oferującym części komputerowe mogą wystąpić następujące klasy połączone w asocjację n-arną: Część, Cennik, Cena. Na rysunku 9 pokazano diagram takiej właśnie asocjacji. Pamiętaj, że w jej skład może wchodzić więcej niż trzy klasy.

Rys. 9. Przykłady asocjacji n-arnej Rys. 9. Przykłady asocjacji n-arnej

Nazwy, role i liczebność asocjacji

Omawiając asocjację, trzeba wspomnieć także o ich nazwach, rolach i liczebności. Nazwa asocjacji wskazuje bezpośrednio czynność, jaka zachodzi pomiędzy klasami. Może także wskazywać kierunek - zobacz rysunek 10.

Rys. 10. Nazwa i nazwa z kierunkiem asocjacji Rys. 10. Nazwa i nazwa z kierunkiem asocjacji

Role określają, jak sama nazwa wskazuje, jaką rolę pełni dana klasa w asocjacji - zobacz rysunek 11.

Rys. 11. Role asocjacji Rys. 11. Role asocjacji

Bardziej dokładnego wyjaśnienia wymaga liczebność (mimo że w gruncie rzeczy jest ona bardzo prostą sprawą). Liczebność określa, ile obiektów jednej klasy bierze udział w asocjacji drugiej klasy.

Liczebność można określi stałą cyfrą, np.:

  • 1,
  • 2,
  • 10,
  • itd.

Można określić liczebność jako nieskończoność - *. Można także określić przedział liczebności, np.:

  • 0..3 - od 0 do 3
  • 1..5 - od 1 do 5
  • 10..100 - od 10 do 100
  • 1..* - od 1 do nieskończoności (czyli minimum 1)
  • itp.

Kolejnym sposobem jest złożone określanie liczebności:

  • 1, 3, 7..20, 23, 30,
  • 1..5, 7, 9
  • itp.

Odpowiedni przykład pokazano na rysunku 12.

Rys. 12. Liczebność asocjacji Rys. 12. Liczebność asocjacji

Generalizacja

Generalizacja odpowiada dziedziczeniu znanemu z języków programowania. Inaczej mówiąc, jest to związek pomiędzy bardziej ogólną klasą (rodzicem) a klasą bardziej szczegółową (rodzicem).

Oto przykłady generalizacji:

  • manager jest pracownikiem,
  • sklep jest firmą,
  • latarnia jest lampą, podobnie lampą jest lampka nocna,
  • kot jest zwierzęciem,
  • itd.

Przykłady generalizacji znajdują się na rys. 13.

Rys. 13. Przykłady generalizacji Rys. 13. Przykłady generalizacji

Zakończenie

I wiesz już dość dużo. W kolejnym odcinku dowiesz się czym są i jak deklarować interfejsy. Ale nie zdradzajmy wszystkiego. Tymczasem przeczytaj artykuł kilka razy i spróbuj samodzielnie przygotować różne diagramy UML.

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 czwartek, 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 środa, 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 niedziela, 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 czwartek, 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 czwartek, 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.