logo

Klases diagramma | Vienotā modelēšanas valoda (UML)

Klašu diagrammas ir sava veida UML (Unified Modeling Language) diagramma, ko izmanto programmatūras inženierijā, lai vizuāli attēlotu sistēmas klašu struktūru un attiecības. UML ir standartizēta modelēšanas valoda, kas palīdz izstrādāt un dokumentēt programmatūras sistēmas. Tie ir programmatūras izstrādes procesa neatņemama sastāvdaļa, palīdzot gan projektēšanas, gan dokumentēšanas fāzēs.



Svarīgas tēmas klases diagrammai

Kas ir klašu diagrammas?

Klašu diagrammas ir UML (Unified Modeling Language) diagrammas veids, ko izmanto programmatūras inženierijā, lai vizuāli attēlotu klašu struktūru un attiecības sistēmā, t.i., tiek izmantotas objektorientētu sistēmu konstruēšanai un vizualizēšanai.

Šajās diagrammās klases ir attēlotas kā lodziņi, un katrā ir trīs nodalījumi klases nosaukumam, atribūtiem un metodēm. Līnijas, kas savieno klases, ilustrē asociācijas, parādot attiecības, piemēram, viens pret vienu vai viens pret daudziem.



Klašu diagrammas sniedz augsta līmeņa pārskatu par sistēmas dizainu, palīdzot sazināties un dokumentēt programmatūras struktūru. Tie ir būtisks objektorientētā dizaina rīks, un tiem ir izšķiroša nozīme programmatūras izstrādes dzīves ciklā.

Kas ir klase?

Objektorientētajā programmēšanā (OOP) klase ir projekts vai veidne objektu izveidei. Objekti ir klašu gadījumi, un katra klase definē atribūtu (datu dalībnieku) un metožu (funkciju vai procedūru) kopu, kas piemīt objektiem, kas izveidoti no šīs klases. Atribūti atspoguļo objekta īpašības vai īpašības, savukārt metodes nosaka uzvedību vai darbības, ko objekts var veikt.



UML klases apzīmējumi

klases apzīmējums ir grafisks attēlojums, ko izmanto, lai attēlotu klases un to attiecības objektorientētā modelēšanā.

centos vs redhat

  1. Klases nosaukums:
    • Klases nosaukums parasti tiek rakstīts klases lodziņa augšējā nodalījumā un ir centrēts un treknrakstā.
  2. Atribūti:
    • Atribūti, kas pazīstami arī kā rekvizīti vai lauki, apzīmē klases datu dalībniekus. Tie ir norādīti klases lodziņa otrajā nodalījumā un bieži ietver katra atribūta redzamību (piemēram, publisks, privāts) un datu tipu.
  3. Metodes:
    • Metodes, kas pazīstamas arī kā funkcijas vai operācijas, atspoguļo klases uzvedību vai funkcionalitāti. Tie ir norādīti klases lodziņa trešajā nodalījumā un ietver katras metodes redzamību (piemēram, publisks, privāts), atgriešanas veidu un parametrus.
  4. Redzamības apzīmējums:
    • Redzamības apzīmējumi norāda atribūtu un metožu piekļuves līmeni. Parastie redzamības apzīmējumi ietver:
      • +>publiskai lietošanai (redzama visām klasēm)
      • ->privātai (redzama tikai klasē)
      • #>aizsargātam (redzama apakšklasēm)
      • ~>pakotnei vai noklusējuma redzamībai (redzama klasēm tajā pašā pakotnē)

Parametru virziens

Klašu diagrammās parametru virziens attiecas uz informācijas plūsmas norādi starp klasēm, izmantojot metodes parametrus. Tas palīdz norādīt, vai parametrs ir ieeja, izvade vai abi. Šī informācija ir ļoti svarīga, lai saprastu, kā dati tiek nodoti starp objektiem metodes izsaukšanas laikā.

klases apzīmējums ar parametru virzienu

Klašu diagrammās tiek izmantoti trīs galvenie parametru virziena apzīmējumi:

  • Ievade (ievade):
    • Ievades parametrs ir parametrs, kas metodes izsaukšanas laikā tiek nodots no izsaucošā objekta (klienta) izsauktajam objektam (serverim).
    • To attēlo ar bultiņu, kas norāda uz saņēmēju klasi (klasi, kurai pieder metode).
  • Izeja (Izvade):
    • Izvades parametrs ir parametrs, kas pēc metodes izpildes tiek nodots no izsauktā objekta (servera) atpakaļ izsaucošajam objektam (klientam).
    • To apzīmē ar bultiņu, kas vērsta prom no saņēmējas klases.
  • In Out (ieeja un izvade):
    • InOut parametrs kalpo gan kā ievade, gan izvade. Tas pārnēsā informāciju no izsaucošā objekta uz izsaucamo objektu un otrādi.
    • To apzīmē ar bultiņu, kas norāda uz saņēmēju klasi un prom no tās.

Attiecības starp klasēm

Klašu diagrammās attiecības starp klasēm apraksta, kā klases ir saistītas vai mijiedarbojas viena ar otru sistēmā. Objektorientētajā modelēšanā ir vairāki attiecību veidi, un katrs no tiem kalpo noteiktam mērķim. Šeit ir daži izplatīti attiecību veidi klašu diagrammās:

1. Biedrība

Asociācija ir divvirzienu attiecības starp divām klasēm. Tas norāda, ka vienas klases gadījumi ir saistīti ar citas klases gadījumiem. Asociācijas parasti tiek attēlotas kā nepārtraukta līnija, kas savieno klases, ar izvēles bultiņām, kas norāda attiecību virzienu.

Sapratīsim asociāciju, izmantojot piemēru:

Apskatīsim vienkāršu bibliotēkas pārvaldības sistēmu. Šajā sistēmā mums ir divas galvenās vienības:Book>unLibrary>. KatrsLibrary>satur vairākusBooks>, un katrsBook>pieder pie konkrētaLibrary>. Šīs attiecības starpLibrary>unBook>pārstāv biedrību.

Bibliotēkas klasi var uzskatīt par avota klasi, jo tajā ir atsauce uz vairākiem grāmatas klases gadījumiem. Grāmatu klase tiktu uzskatīta par mērķa klasi, jo tā pieder noteiktai bibliotēkai.

apļa plānošanas algoritms

2. Vadītā asociācija

Virzīta asociācija UML klašu diagrammā atspoguļo attiecības starp divām klasēm, kur asociācijai ir virziens, kas norāda, ka viena klase ir saistīta ar citu noteiktā veidā.

  • Virzītā asociācijā asociācijas līnijai tiek pievienots bultiņas gals, lai norādītu attiecības virzienu. Bultiņa norāda no klases, kas uzsāk saistīšanu, uz klasi, uz kuru attiecas saistība vai kuru tā ietekmē.
  • Virzītas asociācijas tiek izmantotas, ja asociācijai ir noteikta plūsma vai virziens, piemēram, norādot, kura klase ir atbildīga par asociācijas uzsākšanu vai kura ir atkarīga no citas.

Apsveriet scenāriju, kurā skolotāju klase ir saistīta ar kursa klasi universitātes sistēmā. Novirzītā asociācijas bultiņa var norādīt no Skolotāju klases uz Kursa klasi, norādot, ka skolotājs ir saistīts ar konkrētu kursu vai māca to.

  • Avota klase ir Skolotāju klase. Skolotāju klase iniciē asociāciju, pasniedzot konkrētu kursu.
  • Mērķa klase ir kursa klase. Kursu klasi ietekmē asociācija, jo to māca konkrēts skolotājs.

3. Apkopošana

Apvienošana ir specializēta asociācijas forma, kas pārstāv veselas daļas attiecības. Tas apzīmē spēcīgākas attiecības, kad viena klase (kopums) satur vai sastāv no citas klases (daļas). Apkopojumu attēlo rombveida forma visas klases pusē. Šāda veida attiecībās bērnu klase var pastāvēt neatkarīgi no savas vecākklases.

Sapratīsim apkopošanu, izmantojot piemēru:

Uzņēmumu var uzskatīt par veselumu, savukārt darbinieki ir daļas. Darbinieki pieder uzņēmumam, un uzņēmumā var būt vairāki darbinieki. Tomēr, ja uzņēmums beidz pastāvēt, darbinieki joprojām var pastāvēt neatkarīgi.

4. Sastāvs

Sastāvs ir spēcīgāks apkopošanas veids, kas norāda uz nozīmīgākām īpašumtiesību vai atkarības attiecībām. Sastāvā daļas klase nevar pastāvēt neatkarīgi no visas klases. Kompozīciju attēlo aizpildīta rombveida forma visas klases pusē.

Sapratīsim kompozīciju, izmantojot piemēru:

Iedomājieties digitālās kontaktu grāmatas lietojumprogrammu. Kontaktu grāmata ir veselums, un katrs kontaktpersonas ieraksts ir daļa. Katrs kontaktpersonu ieraksts pilnībā pieder kontaktpersonu grāmatai un to pārvalda. Ja kontaktu grāmata tiek dzēsta vai iznīcināta, tiek noņemti arī visi saistītie kontaktu ieraksti.

Tas ilustrē kompozīciju, jo kontaktu ierakstu esamība ir pilnībā atkarīga no kontaktu grāmatas klātbūtnes. Bez kontaktu grāmatas atsevišķie kontaktu ieraksti zaudē nozīmi un nevar pastāvēt paši.

5. Vispārināšana (mantošana)

Mantojums ir attiecības starp klasēm, kur viena klase (apakšklase vai atvasinātais) manto citas klases (virsklases vai vecāku) īpašības un uzvedību. Mantojums ir attēlots ar cietu līniju ar slēgtu, dobu bultiņu, kas norāda no apakšklases uz virsklasi.

lateksa teksta izmērs

Bankas kontu piemērā mēs varam izmantot vispārināšanu, lai attēlotu dažādu veidu kontus, piemēram, norēķinu kontus, krājkontus un kredītkontus.

Bankas kontu klase kalpo kā vispārināts visu veidu bankas kontu attēlojums, savukārt apakšklases (Norēķinu konts, Krājkonts, Kredītkonts) pārstāv specializētas versijas, kas pārmanto un paplašina bāzes klases funkcionalitāti.

6. Realizācija (saskarnes ieviešana)

Realizācija norāda, ka klase īsteno saskarnes funkcijas. To bieži izmanto gadījumos, kad klase realizē saskarnes definētās darbības. Realizācija ir attēlota ar pārtrauktu līniju ar atvērtu bultiņu, kas norāda no ieviešanas klases uz saskarni.

Apskatīsim scenāriju, kurā gan persona, gan korporācija īsteno īpašnieka saskarni.

  • Īpašnieka interfeiss: Šajā saskarnē tagad ir iekļautas tādas metodes kā iegūšana (īpašums) un atsavināšana (īpašums), lai attēlotu darbības, kas saistītas ar īpašuma iegūšanu un atsavināšanu.
  • Personu klase (realizācija): Personu klase īsteno saskarni Owner, nodrošinot konkrētas ieviešanas metodes iegūšanai (īpašums) un atsavināšanai (īpašums). Piemēram, persona var iegūt īpašumā māju vai atbrīvoties no automašīnas.
  • Korporācijas klase (realizācija): Tāpat korporācijas klase ievieš arī Owner interfeisu, piedāvājot īpašas ieviešanas metodes iegūšanai (īpašums) un atsavināšanai (īpašums). Piemēram, korporācija var iegūt īpašumtiesības uz nekustamo īpašumu vai atbrīvoties no uzņēmuma transportlīdzekļiem.

Gan Personas, gan korporācijas klases realizē saskarni Owner, kas nozīmē, ka tās nodrošina konkrētas ieviešanas saskarnē definētajām iegūšanas (īpašuma) un atsavināšanas (īpašuma) metodēm.

7. Atkarības attiecības

Atkarība pastāv starp divām klasēm, kad viena klase paļaujas uz citu, bet attiecības nav tik spēcīgas kā asociācija vai mantojums. Tas atspoguļo brīvāku saikni starp klasēm. Atkarības bieži tiek attēlotas kā pārtraukta bultiņa.

Apskatīsim scenāriju, kurā Cilvēks ir atkarīgs no Grāmatas.

  • Personu klase: Apzīmē personu, kas lasa grāmatu. Personu klase ir atkarīga no grāmatas klases, lai piekļūtu saturam un to lasītu.
  • Grāmatu klase: Apzīmē grāmatu, kurā ir saturs, kas personai jālasa. Grāmatu klase ir neatkarīga un var pastāvēt bez Personas klases.

Personu klase ir atkarīga no grāmatu klases, jo tai ir nepieciešama piekļuve grāmatai, lai lasītu tās saturu. Tomēr Grāmatu klase nav atkarīga no Personu klases; tas var pastāvēt neatkarīgi un tā funkcionalitāte nepaļaujas uz personu klasi.

8. Lietošanas (atkarības) attiecības

Lietojuma atkarības attiecības UML klašu diagrammā norāda, ka viena klase (klients) izmanto vai ir atkarīga no citas klases (piegādātāja), lai veiktu noteiktus uzdevumus vai piekļūtu noteiktai funkcionalitātei. Klientu klase paļaujas uz piegādātāju klases sniegtajiem pakalpojumiem, bet tai nepieder vai neveido tās gadījumus.

  • Lietošanas atkarības ir atkarības veids, kurā viena klase ir atkarīga no citas klases, lai izpildītu īpašu vajadzību vai prasību.
  • Klientu klasei ir nepieciešama piekļuve konkrētām funkcijām vai pakalpojumiem, ko nodrošina piegādātāja klase.
  • UML klašu diagrammās lietošanas atkarības parasti tiek attēlotas ar pārtrauktu bultiņu līniju, kas norāda no klienta klases uz piegādātāja klasi.
  • Bultiņa norāda atkarības virzienu, norādot, ka klienta klase ir atkarīga no piegādātāja klases sniegtajiem pakalpojumiem.

Apsveriet scenāriju, kurā automašīnas klase ir atkarīga no FuelTank klases, lai pārvaldītu degvielas patēriņu.

  • Auto klasei var būt nepieciešams piekļūt FuelTank klases metodēm vai atribūtiem, lai pārbaudītu degvielas līmeni, uzpildītu degvielu vai uzraudzītu degvielas patēriņu.
  • Šajā gadījumā Auto klasei ir izmantošanas atkarība no FuelTank klases, jo tā izmanto savus pakalpojumus noteiktu ar degvielas pārvaldību saistītu uzdevumu veikšanai.

kā pārbaudīt monitora ekrāna izmēru

Klašu diagrammu mērķis

Klašu diagrammu izmantošanas galvenais mērķis ir:

  • Šis ir vienīgais UML, kas var atbilstoši attēlot dažādus OOP koncepcijas aspektus.
  • Pareiza lietojumprogrammu izstrāde un analīze var būt ātrāka un efektīvāka.
  • Tas ir pamats izvietošanai un komponentu diagrammai.
  • Tas ietver priekšējo un atpakaļgaitas inženieriju.

Klases diagrammu priekšrocības

  • Modelēšanas klases struktūra:
    • Klašu diagrammas palīdz modelēt sistēmas struktūru, attēlojot klases un to atribūtus, metodes un attiecības.
    • Tas nodrošina skaidru un sakārtotu priekšstatu par sistēmas arhitektūru.
  • Izpratne par attiecībām:
    • Klašu diagrammas attēlo attiecības starp klasēm, piemēram, asociācijas, apkopojumus, kompozīcijas, mantojumu un atkarības.
    • Tas palīdz ieinteresētajām personām, tostarp izstrādātājiem, dizaineriem un biznesa analītiķiem, saprast, kā ir savienoti dažādi sistēmas komponenti.
  • Saziņa:
    • Klašu diagrammas kalpo kā saziņas rīks starp komandas locekļiem un ieinteresētajām personām. Tie nodrošina vizuālu un standartizētu attēlojumu, ko var viegli saprast gan tehniska, gan netehniska auditorija.
  • Ieviešanas plāns:
    • Klašu diagrammas kalpo kā programmatūras ieviešanas projekts. Tie palīdz izstrādātājiem rakstīt kodu, ilustrējot klases, to atribūtus, metodes un attiecības starp tām.
    • Tas var palīdzēt nodrošināt konsekvenci starp dizainu un faktisko ieviešanu.
  • Koda ģenerēšana:
    • Daži programmatūras izstrādes rīki un ietvari atbalsta koda ģenerēšanu no klašu diagrammām.
    • Izstrādātāji var ģenerēt ievērojamu koda daļu no vizuālā attēlojuma, samazinot manuālo kļūdu iespējamību un ietaupot izstrādes laiku.
  • Abstrakciju un iekapsulēšanas identificēšana:
    • Klašu diagrammas veicina abstrakcijas identificēšanu un datu un uzvedības iekapsulēšanu klasēs.
    • Tas atbalsta objektorientētā dizaina principus, piemēram, modularitāti un informācijas slēpšanu.

Kā uzzīmēt klašu diagrammas

Klašu diagrammu zīmēšana ietver sistēmas struktūras vizualizāciju, tostarp klases, to atribūtus, metodes un attiecības. Tālāk ir norādītas klašu diagrammu zīmēšanas darbības.

  1. Identificējiet klases:
    • Sāciet, identificējot klases savā sistēmā. Klase attēlo objektu projektu, un tai jāiekapsulē saistītie atribūti un metodes.
  2. Atribūtu un metožu saraksts:
    • Katrai klasei uzskaitiet tās atribūtus (rekvizīti, lauki) un metodes (funkcijas, darbības). Iekļaujiet tādu informāciju kā datu veidi un redzamība (publisks, privāts, aizsargāts).
  3. Nosakiet attiecības:
    • Nosakiet attiecības starp klasēm. Kopīgās attiecības ietver asociācijas, apkopojumus, kompozīcijas, mantojumu un atkarības. Izprotiet šo attiecību būtību un daudzveidību.
  4. Izveidojiet klases lodziņus:
    • Katrai identificētajai klasei uzzīmējiet taisnstūri (klases lodziņu). Ievietojiet klases nosaukumu lodziņa augšējā nodalījumā. Sadaliet lodziņu atribūtu un metožu nodalījumos.
  5. Pievienojiet atribūtus un metodes:
    • Katrā klases lodziņā uzskaitiet atribūtus un metodes to attiecīgajos nodalījumos. Izmantojiet redzamības apzīmējumus (+ publiskajam, – privātajam, # aizsargātajam, ~ pakotnei/noklusējumam).
  6. Zīmēt attiecības:
    • Zīmējiet līnijas, lai attēlotu attiecības starp klasēm. Izmantojiet bultiņas, lai norādītu asociāciju vai atkarību virzienu. Dažādām attiecībām var izmantot dažādus līniju veidus vai apzīmējumus.
  7. Iezīmju attiecības:
    • Ja nepieciešams, apzīmējiet attiecības ar daudzveidību un lomu nosaukumiem. Daudzveidība norāda attiecībās iesaistīto gadījumu skaitu, un lomu nosaukumi precizē katras klases lomu attiecībās.
  8. Pārskatiet un precizējiet:
    • Pārskatiet savu klases diagrammu, lai pārliecinātos, ka tā precīzi atspoguļo sistēmas struktūru un attiecības. Ja nepieciešams, precizējiet diagrammu, pamatojoties uz atsauksmēm un prasībām.
  9. Izmantojiet rīkus digitālajai zīmēšanai:
    • Lai gan jūs varat zīmēt klašu diagrammas uz papīra, digitālo rīku izmantošana var nodrošināt lielāku elastību un vieglu modifikāciju. Var būt noderīgi UML modelēšanas rīki, zīmēšanas programmatūra vai pat specializēti diagrammu veidošanas rīki.

Klases diagrammu lietošanas gadījumi

  • Sistēmas dizains:
    • Sistēmas projektēšanas posmā tiek izmantotas klašu diagrammas, lai modelētu programmatūras sistēmas statisko struktūru. Tie palīdz vizualizēt un organizēt nodarbības, to atribūtus, metodes un attiecības, nodrošinot sistēmas ieviešanas plānu.
  • Komunikācija un sadarbība:
    • Klases diagrammas kalpo kā vizuālas saziņas rīks starp ieinteresētajām personām, tostarp izstrādātājiem, dizaineriem, projektu vadītājiem un klientiem. Tie veicina diskusijas par sistēmas struktūru un dizainu, veicinot kopīgu izpratni starp komandas locekļiem.
  • Koda ģenerēšana:
    • Dažas programmatūras izstrādes vides un rīki atbalsta koda ģenerēšanu, pamatojoties uz klašu diagrammām. Izstrādātāji var ģenerēt koda skeletus, samazinot manuālās kodēšanas centienus un nodrošinot konsekvenci starp dizainu un ieviešanu.
  • Testēšana un testu plānošana:
    • Testētāji izmanto klašu diagrammas, lai izprastu attiecības starp klasēm un attiecīgi plānotu pārbaudes gadījumus. Klases struktūru vizuālais attēlojums palīdz identificēt jomas, kurām nepieciešama rūpīga pārbaude.
  • Reversā inženierija:
    • Klašu diagrammas var izmantot reversajai inženierijai, kur izstrādātāji analizē esošo kodu, lai izveidotu programmatūras struktūras vizuālus attēlojumus. Tas ir īpaši noderīgi, ja dokumentācija ir ierobežota vai novecojusi.