UML

Usecases (használati esetek)

A gyakorlatokat a PlantUML on-line felületén végezzük el.

1. Könyvtár

Készítsük el egy könyvtár használati eseteit! Mivel nem ismerjük a feladatot teljes mélységében, ezért az alábbiakra koncentrálunk:

  1. Olvasó beiratkozik.

  2. Olvasó kilép.

  3. Könyv kölcsönzése.

  4. Késedelmi dík kiszabása.

  5. Késedelmi díj befizetése.

  6. Könyvek beszerzése (nem kell kidolgozni)

  7. Könyvek selejtezése (nem kell kidolgozni)

Egy könyvtár usecase diagramja
@startuml
skinparam actorStyle Hollow
left to right direction

actor Kölcsönző as Kölcsönző
actor Pénztáros as Pénztáros
actor Adminisztrátor as Adminisztrátor
actor Könyvtáros as Könyvtáros
actor Anyaggazdálkodó as Anyaggazdálkodó

rectangle "Késedelmi díj" {
  Adminisztrátor -- (Késedelmi díj megállapítása)
  (Késedelmi díj megállapítása) .> (Befizetés)
  Kölcsönző -- (Befizetés)
  (Befizetés) -- Pénztáros
}

rectangle "Kölcsönzés" {
  Kölcsönző -- (Kölcsönzés)
  (Kölcsönzés) -- Könyvtáros
  Kölcsönző -- (Könyv leadás)
  (Könyv leadás) -- Könyvtáros
}

rectangle "Ügyfélkezelés" {
  (Feltételek ellenőrzése) .> (Kilépés)
  (Kilépés kezdeményezése) .> (Feltételek ellenőrzése)
  Kölcsönző -- (Kilépés kezdeményezése)
  (Kilépés kezdeményezése) -- Könyvtáros

  Kölcsönző -- (Beiratkozás)
  (Beiratkozás) -- Könyvtáros
}

rectangle "Anyaggazdálkodás" {
  Anyaggazdálkodó -- (Leltározás)
  (Leltározás) -- Könyvtáros
  Anyaggazdálkodó -- (Beszerzés)
  (Selejtezés) -- Anyaggazdálkodó
}

Könyvtáros -- (Katalogizálás)

@enduml

Folyamatok

Írjuk le az SMTP protokollban egy levél küldésének folyamatát! (Az egyszerűség kedvéért a hibák kezelésétől most eltekintünk.) Az SMTP protokoll folyamatát az alábbi kommunikációs folyamat szemlélteti.

root@backup4.linux-szerver.hu:~#  telnet 212.92.23.213 25
Trying 212.92.23.213...
Connected to 212.92.23.213.
Escape character is '^]'.
220 ns.linux-szerver.hu Thu, 22 Sep 2022 12:39:07 +0200
EHLO alma.hu
250-ns.linux-szerver.hu Hello kf215.uni-eszterhazy.hu [193.225.35.215]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH LOGIN PLAIN
250-STARTTLS
250 HELP
mail from: batman@gotham.com
250 OK
rcpt to: info@linux-szerver.hu
250 Accepted
data
354 Enter message, ending with "." on a line by itself
Subject: Hello
Hello, ez egy proba level.
.
250 OK id=1obJfI-0000bb-Pp
quit
221 ns.linux-szerver.hu closing connection
Connection closed by foreign host.
Az SMTP protokoll egyszerűsített diagramja
@startuml
Client -> Server: Establishing connection
Server --> Client: 220 <server> <Date>

Client -> Server: EHLO <client name>
Server --> Client: 250: List of available protocols

Client -> Server: MAIL FROM: <sender address>
Server --> Client: 250 OK

Client -> Server: RCPT TO: <recipient address>
Server --> Client: 250 Accepted

Client -> Server: DATA
Server --> Client: 354 Enter message, ending with "." on a line by itself

Client -> Server: Sending mail body
Server --> Client: 250 OK id=<message-id>

Client -> Server: quit
Server --> Client: 221 <server> closing connection

@enduml

Fizikai struktúrák

Készítsük el egy számítógépes hálózat fizikai struktúra tervét UML-ben! A hálózat az alábbi ábra szerint tartalmazzon egy publikus internet elérést, melyet egy tűzfal válasszon le a DMZ-től, illetve a belső hálózattól (internal). A DMZ-ben egy webszerver, egy vpn szerver és egy adatbázis szerver szerepeljen. A belső hálózatban egy fájlszerver és a munkaállomások kapnak helyet. Az adatbázis szerver a DMZ mellett a belső hálózathoz is kapcsolódjon.

Network diagram
@startuml
nwdiag {
  network internet {
    firewall [address="dhcp"];
    color = "red"
  }
  network dmz {
    address = "192.168.10.0/24";
    firewall [address="192.168.10.1"];
    webserver [address="192.168.10.2"];
    vpnserver [address="192.168.10.3"];
    dbserver [ address="192.168.10.2, shape = database ]
    color = "yellow"
  }
  network internal {
    address = "192.168.12.0/24";
    firewall [address="192.168.12.1"];
    fileserver [address="192.168.12.2"];
    dbserver [ address="192.168.12.2, shape = database ]
    client1 [address="192.168.12.10"];
    client2 [address="192.168.12.11"];
    client3 [address="192.168.12.12"];
    client4 [address="192.168.12.13"];
    color = "green"
  }
}
@enduml

Frontend-Backend

Az alábbi UML diagramban a felhasználó, a frontend és a backend kapcsolát írjuk le egy webshopban. Az ábra a bejelentkezés, ey termék kiválasztása és kosárba helyezését írja le.

User-Frontend-Backend kapcsolatok

User-Frontend-Backend kapcsolatok

@startuml
actor User
participant Frontend
participant Backend

User -> Frontend : Login Attempt
Frontend -> Backend : Authentication
Backend -> Frontend : Result of Authentication
Frontend -> User: User logged

User -> Frontend : List products
Frontend -> Backend: Find Products
Backend -> Frontend: Provides Products
Frontend -> User: Show the list of products

User -> Frontend : Show details of a product
Frontend -> Backend: Get product's data
Backend -> Frontend: Provides data
Frontend -> User: Show details of the selected product

User -> Frontend : Put product to basket
Frontend -> Backend: Add a product to the basket
Backend -> Frontend: Product added
Frontend -> User: Show the state of the basket

@enduml

Feladatok:

  1. Keressen egy tetszőleges RFC-t és ábrázolja a folyamatot vagy egy részét! (Pl. pop3 protokoll authentikációját.)

  2. Amennyiben a szakdolgozati témája már lehetővé teszi, készítse el a kifejlesztésre kerülő szoftver használati eset diagramját!

  3. Választani egy tetszőleges eszközt (pl. kávéautomata) és definiálja a használati eseteit!

  4. Ábrázoljon egy tetszőleges számítógépes hálózatot!

  5. Tervezzen jogosultsági rendszert egy alkalmazáshoz és készítse el a használati eseteinek diagramját!