Zunifikowany język modelowania (UML) jest ogólnym, rozwojowym językiem modelowania w dziedzinie inżynierii oprogramowania, zaprojektowanym w celu zapewnienia standardowego podejścia do wizualizacji projektowania systemów. Pierwotną motywacją do stworzenia UML było pragnienie ujednolicenia różnych systemów notacji i metod projektowania oprogramowania. W UML diagram klas jest jednym z sześciu typów diagramów strukturalnych. Diagramy klas są podstawą procesu modelowania obiektów i modelują statyczną strukturę systemu.
Diagramy strukturalne pokazują statyczną strukturę systemu i jego części na różnych poziomach abstrakcji i implementacji oraz jak są ze sobą powiązane. Elementy w diagramie strukturalnym reprezentują znaczące koncepcje systemu i mogą obejmować koncepcje abstrakcyjne, rzeczywiste i implementacyjne, istnieje siedem typów diagramów strukturalnych, jak poniżej:
- Diagram klas
- Diagram komponentów
- Diagram wdrożenia
- Diagram obiektów
- Diagram pakietów
- Diagram struktury złożonej
- Diagram profilu
Czym jest diagram klas?
Diagram klas w Zunifikowanym Języku Modelowania (UML) jest diagramem strukturalnym, który opisuje strukturę systemu, pokazując jego klasy, atrybuty, operacje (lub metody) oraz relacje między obiektami.Diagram klas jest planem systemu lub podsystemu. Możesz używać diagramów klas do modelowania obiektów, które tworzą system, pokazywania relacji między obiektami oraz opisywania ról tych obiektów i usług, które świadczą.
Pochodzenie UML
Celem UML jest zapewnienie standardowej notacji, która może być używana przez wszystkie metody obiektowe oraz wybranie i zintegrowanie najlepszych elementów wcześniejszych notacji. UML został zaprojektowany dla szerokiego zakresu zastosowań. Dlatego zapewnia konstrukcje dla szerokiego zakresu systemów i działań (np. systemy rozproszone, analiza, projektowanie systemów i wdrożenie).
UML jest notacją, która powstała w wyniku unifikacji OMT z
- Technika modelowania obiektów OMT [James Rumbaugh 1991] – była najlepsza do analizy i systemów informacyjnych intensywnie wykorzystujących dane.
- Booch [Grady Booch 1994] – był doskonały do projektowania i implementacji. Grady Booch pracował intensywnie z Ada językiem i był głównym graczem w rozwoju technik obiektowych dla tego języka. Chociaż metoda Boocha była silna, notacja była mniej dobrze przyjęta (wiele chmur dominowało w jego modelach – nie bardzo schludne)
- OOSE (Inżynieria oprogramowania obiektowego [Ivar Jacobson 1992]) – zawierał model znany jako przypadki użycia. Przypadki użycia to potężna technika zrozumienia zachowania całego systemu (obszar, w którym OO tradycyjnie był słaby).
W 1994 roku Jim Rumbaugh, twórca OMT, zszokował świat oprogramowania, gdy opuścił General Electric i dołączył do Grady’ego Boocha w Rational Corp. Celem partnerstwa było połączenie ich pomysłów w jedną, zjednoczoną metodę (roboczy tytuł metody brzmiał rzeczywiście „Zunifikowana Metoda”).
Cel diagramu klas
Diagramy klas są przydatne w wielu fazach projektowania systemu. W fazie analizy diagramy klas mogą pomóc zrozumieć wymagania obszaru problemowego i zidentyfikować jego komponenty. W projektach oprogramowania obiektowego diagram klas stworzony we wczesnych etapach projektu zawiera klasy, które często są przekształcane w rzeczywiste klasy i obiekty oprogramowania podczas pisania kodu.
Później możesz udoskonalić wczesne analizy i modele koncepcyjne w diagramy klas, aby pokazać konkretne części systemu, interfejsy użytkownika, implementacje logiki itd.
Diagramy klas są szeroko stosowane w modelowaniu systemów obiektowych, ponieważ są jedynymi diagramami UML, które można bezpośrednio odwzorować na języki obiektowe. W fazie implementacji cyklu rozwoju oprogramowania możesz używać diagramów klas do przekształcania modeli w kod i kodu w modele.
Przykład klasy
Pies ma stany – kolor, imię, rasę oraz zachowania – machanie, szczekanie, jedzenie. Obiekt jest instancją klasy.
Notacja klas UML
Klasa reprezentuje koncepcję, która enkapsuluje stan (atrybuty) i zachowanie (operacje). Każdy atrybut ma typ. Każda operacja has a sygnaturę. Nazwa klasy jest jedyną obowiązkową informacją.
Nazwa klasy:
- Nazwa klasy pojawia się w pierwszej sekcji.
Atrybuty klasy:
- Atrybuty są pokazane w drugiej sekcji.
- Typ atrybutu jest pokazany po dwukropku.
- Atrybuty odpowiadają zmiennym członkowskim (danym członkowskim) w kodzie.
Operacje klasy (metody):
- Operacje są pokazane w trzeciej sekcji. Są to usługi, które klasa świadczy.
- Typ zwracany metody jest pokazany po dwukropku na końcu sygnatury metody.
- Typ zwracany parametrów metody jest pokazany po dwukropku po nazwie parametru. Operacje odpowiadają metodom klasy w kodzie.
Relacje klas
Klasa może być zaangażowana w jedną lub więcej relacji z innymi klasami. Relacja może być jednym z następujących typów: (Zobacz rysunek po prawej stronie dla graficznej reprezentacji relacji).
Typ relacji | Reprezentacja graficzna |
---|---|
Dziedziczenie (lub generalizacja):
|
![]() |
Prosta asocjacja:
|
![]() |
Agregacja:
Specjalny typ asocjacji. Reprezentuje relację „część z”.
|
![]() |
Kompozycja:
Specjalny typ agregacji, w którym części są niszczone, gdy całość jest niszczona.
|
![]() |
Zależność:
|
![]() |
Nazwy relacji
- Nazwy relacji są zapisane w środku linii asocjacji.
- Dobre nazwy relacji mają sens, gdy się je głośno czyta:
- „Każdy arkusz kalkulacyjny zawiera pewną liczbę komórek”,
- „wyrażenie ocenia się na wartość”
- Często mają małą strzałkę, aby pokazać kierunek w którym kierunku czytać relację, np. wyrażenia oceniają się na wartości, ale wartości nie oceniają się na wyrażenia.
Relacja – Role
- Rola to kierunkowy cel stowarzyszenia.
- Role są zapisane na końcach linii stowarzyszenia i opisują cel, jaki ta klasa odgrywa w relacji.
- Np. Komórka jest związana z wyrażeniem. Natura relacji polega na tym, że wyrażenie jest formułą komórki.
Widoczność atrybutów i operacji klasy
W projektowaniu obiektowym istnieje notacja widoczności dla atrybutów i operacji. UML identyfikuje cztery typy widoczności: publiczny, chroniony, prywatny, oraz pakiet.
Symbole +, -, # i ~ przed nazwą atrybutu i operacji w klasie oznaczają widoczność atrybutu i operacji.
- + oznacza publiczne atrybuty lub operacje
- – oznacza prywatne atrybuty lub operacje
- # oznacza chronione atrybuty lub operacje
- ~ oznacza atrybuty lub operacje pakietu
Przykład widoczności klasy
W powyższym przykładzie:
- atrybut1 i op1 klasy MyClassName są publiczne
- atrybut3 i op3 są chronione.
- atrybut2 i op2 są prywatne.
Dostęp dla każdego z tych typów widoczności jest pokazany poniżej dla członków różnych klas.
Prawo dostępu | publiczny (+) | prywatny (-) | chroniony (#) | Pakiet (~) |
---|---|---|---|---|
Członkowie tej samej klasy | tak | tak | tak | tak |
Członkowie klas pochodnych | tak | nie | tak | tak |
Członkowie jakiejkolwiek innej klasy | tak | nie | nie | w tym samym pakiecie |
Wielokrotność
Ile obiektów każdej klasy bierze udział w relacjach, a wielokrotność można wyrazić jako:
- Dokładnie jeden – 1
- Zero lub jeden – 0..1
- Wiele – 0..* lub *
- Jeden lub więcej – 1..*
- Dokładna liczba – np. 3..4 lub 6
- Lub złożona relacja – np. 0..1, 3..4, 6.* oznaczałaby dowolną liczbę obiektów, z wyjątkiem 2 lub 5
Przykład wielokrotności
- Wymaganie: Student może brać udział w wielu kursach, a wielu studentów może być zapisanych na jeden kurs.
- W poniższym przykładzie, diagram klas (po lewej), opisuje treść wymagania powyżej dla modelu statycznego, podczas gdy diagram obiektowy (po prawej) pokazuje migawkę (instancję diagramu klas) rejestracji kursów dla kursów Inżynieria Oprogramowania i Zarządzanie Bazami Danych odpowiednio)
Przykład agregacji – Komputer i części
- Agregacja to szczególny przypadek stowarzyszenia oznaczający hierarchię „składa się z”
- Agregat to klasa nadrzędna, a komponenty to klasy podrzędne

Przykład dziedziczenia – Taksonomia komórek
- Dziedziczenie to kolejny szczególny przypadek stowarzyszenia oznaczający hierarchię „rodzaj”
- Dziedziczenie upraszcza model analizy poprzez wprowadzenie taksonomii
- Klasy podrzędne dziedziczą atrybuty i operacje klasy nadrzędnej.

Diagram klas – Przykład narzędzia diagramowego
Diagram klas może również mieć notatki dołączone do klas lub relacji. Notatki są pokazane na szaro.

W powyższym przykładzie:
Możemy zinterpretować znaczenie powyższego diagramu klas, czytając punkty w następujący sposób.
- Kształt to klasa abstrakcyjna. Jest pokazana kursywą.
- Kształt to klasa nadrzędna. Okrąg, prostokąt i wielokąt pochodzą z Kształtu. Innymi słowy, Okrąg jest Kształtem. To jest relacja uogólnienia / dziedziczenia.
- Istnieje stowarzyszenie między DialogBox a DataController.
- Kształt jest częścią Okna. To jest relacja agregacji. Kształt może istnieć bez Okna.
- Punkt jest częścią Okręgu. To jest relacja kompozycji. Punkt nie może istnieć bez Okręgu.
- Okno jest zależne od Wydarzenia. Jednak Wydarzenie nie jest zależne od Okna.
- Atrybuty Okręgu to promień i środek. To jest klasa encji.
- Nazwy metod Okręgu to area(), circum(), setCenter() i setRadius().
- Parametr promień w Okręgu jest parametrem wejściowym typu float.
- Metoda area() klasy Okrąg zwraca wartość typu double.
- Atrybuty i nazwy metod Prostokąta są ukryte. Niektóre inne klasy w diagramie również mają swoje atrybuty i nazwy metod ukryte.
Przykład diagramu klas: System zamówień
Przykład diagramu klas: GUI
Diagram klas może również mieć notatki dołączone do klas lub relacji.
Radzenie sobie z złożonym systemem – wiele czy jeden diagram klas?
Niezbędnie, jeśli modelujesz duży system lub dużą dziedzinę biznesową, będzie wiele podmiotów, które musisz wziąć pod uwagę. Czy powinniśmy używać wielu czy jednego diagramu klas do modelowania problemu? Odpowiedź brzmi:
- Zamiast modelować każdy podmiot i jego relacje na jednym diagramie klas, lepiej jest używać wielu diagramów klas.
- Podział systemu na wiele diagramów klas ułatwia zrozumienie systemu, szczególnie jeśli każdy diagram jest graficzną reprezentacją konkretnej części systemu.
Perspektywy diagramu klas w cyklu życia rozwoju oprogramowania
Możemy używać diagramów klas w różnych fazach rozwoju cyklu życia rozwoju oprogramowania i zazwyczaj modelując diagramy klas w trzech różnych perspektywach (poziomach szczegółowości) w miarę postępu:
Perspektywa koncepcyjna: Diagramy są interpretowane jako opisujące rzeczywistość. Zatem, jeśli przyjmiesz perspektywę koncepcyjną, rysujesz diagram, który reprezentuje koncepcje w badanym obszarze. Te koncepcje będą naturalnie odnosić się do klas, które je implementują. Perspektywa koncepcyjna jest uznawana za niezależną od języka.
Perspektywa specyfikacji: Diagramy są interpretowane jako opisujące abstrakcje lub komponenty oprogramowania z specyfikacjami i interfejsami, ale bez zobowiązania do konkretnej implementacji. Zatem, jeśli przyjmiesz perspektywę specyfikacji, my patrzymy na interfejsy oprogramowania, a nie na implementację.
Perspektywa implementacji: Diagramy są interpretowane jako opisujące implementacje oprogramowania w konkretnej technologii i języku. Zatem, jeśli przyjmiesz perspektywę implementacji, my patrzymy na implementację oprogramowania.
Szukasz darmowego narzędzia do rysowania diagramów klas?
Visual Paradigm Online (VP Online) Edycja Darmowa to darmowe oprogramowanie do rysowania online, które wspiera diagramy klas, inne diagramy UML, narzędzia ERD oraz narzędzia do tworzenia schematów organizacyjnych. Posiada prosty, ale potężny edytor, który pozwala szybko i łatwo tworzyć diagramy klas. Ten darmowy edytor UML nie ma reklam, nie ma terminów dostępu i nie ma ograniczeń, na przykład, co do liczby diagramów, liczby kształtów itp. Posiadasz diagramy, które tworzysz do celów osobistych i niekomercyjnych.
Szukasz bardziej formalnego modelowania UML na swoim komputerze?
Visual Paradigm Edycja Społecznościowa została uruchomiona w 2004 roku, aby zapewnić darmowe oprogramowanie UMLdo wyłącznych celów niekomercyjnych, wspierając użytkowników, którzy stawiali swoje pierwsze kroki w modelowaniu UML i którzy potrzebują darmowego i wieloplatformowego oprogramowania do modelowania UML do użytku osobistego, na przykład do zastosowania UML w projektach studenckich.
Narzędzie do modelowania UML darmowe do wszelkich celów niekomercyjnych. Wspiera 13 diagramów UML 2.x
Zostało przyjęte przez ponad 1 milion instalacji na całym świecie i wciąż rośnie. Wiele osób korzysta z płatnych edycji Visual Paradigm, aby rysować profesjonalne diagramy UML i ERD do projektowania i analizy systemów oraz baz danych na co dzień.
Powód 2
Zaufanie profesjonalistów IT i dużych organizacji
Wiele renomowanych organizacji, firm IT, konsultantów, uniwersytetów, NGO i jednostek rządowych na całym świecie przyjęło Visual Paradigm (płatne edycje). Poniższy rysunek przedstawia niektórych naszych płatnych klientów.
Powód 3
Wysoka jakość – nagradzana
Nie tylko cieszy się zaufaniem najbardziej znanych przedsiębiorstw na całym świecie, ale także branży. Visual Paradigm jest wielokrotnym laureatem międzynarodowych nagród.
Powód 4
Najczęściej używana platforma modelowania w akademii
Najczęściej używane narzędzie UML w akademii, przyjęte przez tysiące uniwersytetów i szkół wyższych.
Powód 5
Ogromna kolekcja DARMOWYCH zasobów edukacyjnych (wsparcie przez VP Community Circle)
Setki przykładów UML i ERDgotowe do zaimportowania do Visual Paradigm do natychmiastowego eksperymentu lub aby rozpocząć własny model UML. Wszystko za DARMO.
Powód 6
Ścieżka aktualizacji do edycji komercyjnych dla szerokiego spektrum zastosowań i możliwości
Łatwa aktualizacja do ogromnego zestawu dodatkowych funkcji (na przykład, wsparcie BPMN i współpracy zespołowej) oraz do użytku komercyjnego, zaczynając od 6 USD / miesiąc.
Powód 7
Aktywne forum użytkowników, aby uzyskać pomoc i wymieniać się pomysłami i doświadczeniami
Wsparcie, dzielenie się i wymiana pomysłów z innymi ludźmi w aktywnym forum użytkowników.
Powód 8
Wieloplatformowa, przyjazna dla użytkownika, szybka i responsywna aplikacja
Visual Paradigm może działać na różnych platformach, takich jak Windows, Linux i Mac. Jego intuicyjny interfejs i potężne funkcje modelowania sprawiają, że modelowanie jest szybkie i łatwe!
Referencje
- Czym jest UML?
- Dlaczego modelowanie UML?
- Przegląd 14 typów diagramów UML
- Czym jest diagram klas?
- Czym jest diagram komponentów?
- Czym jest diagram wdrożenia?
- Czym jest diagram obiektów?
- Czym jest diagram pakietów?
- Czym jest diagram struktury złożonej?
- Czym jest diagram profilu?
- Czym jest diagram przypadków użycia?
- Czym jest diagram aktywności?
- Czym jest diagram maszyny stanowej?
- Czym jest diagram sekwencji?
- Czym jest diagram komunikacji?
- Czym jest diagram przeglądu interakcji?
- Czym jest diagram czasowy
Ten post dostępny jest również w Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文