Kompleksowy przewodnik po diagramie klas UML

Table of Contents hide

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:

 

Overview of the 14 UML Diagram Types

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

  1. Technika modelowania obiektów OMT [James Rumbaugh 1991] – była najlepsza do analizy i systemów informacyjnych intensywnie wykorzystujących dane.
  2. 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)
  3. 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”).

UML History

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):
  • Reprezentuje relację „jest-a”.
  • Nazwa klasy abstrakcyjnej jest pokazana kursywą.
  • SubClass1 i SubClass2 są specjalizacjami klasy nadrzędnej.
  • Solidna linia z pustą strzałką wskazującą od klasy podrzędnej do klasy nadrzędnej
Inheritance (or Generalization)
Prosta asocjacja:
  • Link strukturalny między dwiema klasami równorzędnymi.
  • Istnieje asocjacja między Class1 a Class2
  • Solidna linia łącząca dwie klasy
Simple association
Agregacja:

Specjalny typ asocjacji. Reprezentuje relację „część z”.

  • Class2 jest częścią Class1.
  • Wiele instancji (oznaczonych przez *) Class2 może być powiązanych z Class1.
  • Obiekty Class1 i Class2 mają oddzielne cykle życia.
  • Solidna linia z niewypełnionym rombem na końcu asocjacji połączona z klasą złożoną
Aggregation
Kompozycja:

Specjalny typ agregacji, w którym części są niszczone, gdy całość jest niszczona.

  • Obiekty Class2 żyją i umierają z Class1.
  • Class2 nie może istnieć samodzielnie.
  • Solidna linia z wypełnionym rombem na końcu asocjacji połączona z klasą złożoną
Zależność:
  • Istnieje między dwiema klasami, jeśli zmiany w definicji jednej mogą powodować zmiany w drugiej (ale nie odwrotnie).
  • Class1 zależy od Class2
  • Linia przerywana z otwartą strzałką
Dependency

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: publicznychronionyprywatny, 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)

Object Diagram

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
Aggregation Example

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.
Inheritance Example

 

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.

Class Diagram Example

 

W powyższym przykładzie:

Możemy zinterpretować znaczenie powyższego diagramu klas, czytając punkty w następujący sposób.

  1. Kształt to klasa abstrakcyjna. Jest pokazana kursywą.
  2. 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.
  3. Istnieje stowarzyszenie między DialogBox a DataController.
  4. Kształt jest częścią Okna. To jest relacja agregacji. Kształt może istnieć bez Okna.
  5. Punkt jest częścią Okręgu. To jest relacja kompozycji. Punkt nie może istnieć bez Okręgu.
  6. Okno jest zależne od Wydarzenia. Jednak Wydarzenie nie jest zależne od Okna.
  7. Atrybuty Okręgu to promień i środek. To jest klasa encji.
  8. Nazwy metod Okręgu to area(), circum(), setCenter() i setRadius().
  9. Parametr promień w Okręgu jest parametrem wejściowym typu float.
  10. Metoda area() klasy Okrąg zwraca wartość typu double.
  11. 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ń

Class Diagram Example: Order System

Przykład diagramu klas: GUI

Diagram klas może również mieć notatki dołączone do klas lub relacji.

Class Diagram Example: GUI

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.

Online Class Diagram Tool

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.

Visual Paradigm screen

Narzędzie do modelowania UML darmowe do wszelkich celów niekomercyjnych. Wspiera 13 diagramów UML 2.x

Free UML Tool with 13 UML 2.x Diagrams Supported

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.

Visual Paradigm Customers

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.

Visual Paradigm Awards

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.

Schools Using Visual Paradigm

Powód 5

Ogromna kolekcja DARMOWYCH zasobów edukacyjnych (wsparcie przez VP Community Circle)

Hundreds of UML and ERD diagram examples and templates

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.

Packed features in Visual Paradigm

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.

Visual Paradigm forum

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!

Ten post dostępny jest również w Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文

Leave a Reply

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *