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) .. image:: images/konyvtar.png :scale: 100% :alt: Egy könyvtár usecase diagramja :align: center .. code-block:: console @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. .. code-block:: console 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. .. image:: images/smtp.png :scale: 100% :alt: Az SMTP protokoll egyszerűsített diagramja :align: center .. code-block:: console @startuml Client -> Server: Establishing connection Server --> Client: 220 Client -> Server: EHLO Server --> Client: 250: List of available protocols Client -> Server: MAIL FROM: Server --> Client: 250 OK Client -> Server: RCPT TO: 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= Client -> Server: quit Server --> Client: 221 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. .. image:: images/network.png :scale: 100% :alt: Network diagram :align: center .. code-block:: console @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. .. figure:: images/uml_process.png :alt: User-Frontend-Backend kapcsolatok :align: center :width: 80% User-Frontend-Backend kapcsolatok .. code-block:: console @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: ---------- #. Keressen egy tetszőleges RFC-t és ábrázolja a folyamatot vagy egy részét! (Pl. pop3 protokoll authentikációját.) #. 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! #. Választani egy tetszőleges eszközt (pl. kávéautomata) és definiálja a használati eseteit! #. Ábrázoljon egy tetszőleges számítógépes hálózatot! #. Tervezzen jogosultsági rendszert egy alkalmazáshoz és készítse el a használati eseteinek diagramját!