---
title: "Część 2 – Analiza istniejącej aplikacji za pomocą narzędzia Altova UModel"
date: "2009-04-24"
tags: 
  - "c"
  - "java"
  - "missionkit"
  - "software-modeling"
  - "uml"
  - "uml-tool"
  - "umodel"
description: W tym artykule omówiono tworzenie diagramów przypadków użycia dla starszego systemu bankomatów, wykorzystując narzędzie Altova UModel, ze szczególnym uwzględnieniem interakcji użytkownika oraz planowanych ulepszeń.
---
Status: #blog

Tags:  #c #java #missionkit #software-modeling #uml #uml-tool #umodel

Categories: [Altova](/blog/pl/category/altova.md) 
# Część 2 – Analiza istniejącej aplikacji za pomocą narzędzia Altova UModel

W [Część 1](https://www.altova.com/blog/2009/04/analyzing-legacy-application-with.html) W ramach cyklu "Analiza starszych aplikacji" zaprezentowaliśmy naszą aplikację do symulacji bankomatów, a kod źródłowy napisany w języku Java został zaimportowany do [UModel](https://www.altova.com/pl/products/umodel/uml_tool.html) projektu oraz dopracujemy diagram klas, aby uzyskać ogólny obraz klas aplikacji i ich relacji. W tym wpisie stworzymy [diagramy przypadków użycia](https://www.altova.com/pl/features_use_case.html) Celem tego dokumentu jest opisanie aktualnych funkcjonalności naszej aplikacji do bankomatów. Dodatkowo, dołączamy diagram przypadków użycia, który pomoże nam zaplanować przyszłe ulepszenia. Jak pokazano w części 1, gdy użytkownik uruchamia naszą symulację bankomatu, jest proszony o zalogowanie się za pomocą numeru konta i kodu PIN, a następnie wyświetlane jest menu transakcji, które podsumowuje wszystkie dostępne interakcje z aplikacją: 

[![Menu transakcji symulacji bankomatu](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSDHQ4GSI/AAAAAAAAAEM/jvo19yCSOQo/transaction%20menu_thumb%5B2%5D.gif?imgmax=800 "ATM Simulation transaction menu")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSC3HfXsI/AAAAAAAAAEI/b8fsi30qDyg/s1600-h/transaction%20menu%5B4%5D.gif) 

Korzystając z menu "Transakcje" jako punktu odniesienia, możemy stworzyć diagram przypadków użycia, który dokumentuje interakcje użytkownika z symulacją bankomatu: 

[![Omówienie diagramu przypadków użycia symulacji bankomatów](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSEJlkKRI/AAAAAAAAAEU/zZp4OlbX7Ms/usecase1_thumb%5B1%5D.gif?imgmax=800 "ATM Simulation overview use case diagram")](http://lh3.ggpht.com/_REdrfeVqYdU/SfHSDuArD2I/AAAAAAAAAEQ/pb26wYjQWWA/s1600-h/usecase1%5B3%5D.gif)

Jeśli znają Państwo notację UML, być może zauważyli Państwo, że aktor w naszym diagramie nie przypomina typowej, schematycznej postaci używanej w UML. UModel umożliwia programistom tworzącym modele oprogramowania przypisywanie dowolnego pliku graficznego w formacie Windows .bmp jako reprezentację aktora w diagramie przypadków użycia. Użyliśmy okna pomocniczego "Właściwości", aby przypisać obraz z biblioteki dostarczonej wraz z programem UModel.

[![Okno właściwości modelu Altova UModel](https://lh4.ggpht.com/_REdrfeVqYdU/SfHSEq2AYoI/AAAAAAAAAEc/qDV7VjIP0p4/PropertiesWindow_thumb%5B1%5D.gif?imgmax=800 "Altova UModel Properties Window")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSEfzVyeI/AAAAAAAAAEY/1m5PRtMuCHg/s1600-h/PropertiesWindow%5B3%5D.gif) 

Diagram przypadków użycia nie jest odpowiednim miejscem do definiowania przepływu aplikacji ani klas obiektowych, ale służy jedynie do dokumentowania, w jaki sposób użytkownik (aktor w terminologii UML) wchodzi w interakcję z systemem. Możemy tworzyć dodatkowe diagramy przypadków użycia, aby przedstawić więcej szczegółów dotyczących każdej interakcji. Rozwijanie każdej interakcji w oddzielnym diagramie zwiększa czytelność, ponieważ każdy schemat jest prosty i przejrzysty, a jednocześnie pozostawia dużo miejsca na eksperymentowanie z różnymi opcjami. 

[![Szczegółowy diagram przypadków użycia dotyczący logowania użytkownika](https://lh4.ggpht.com/_REdrfeVqYdU/SfHSFKI29WI/AAAAAAAAAEk/AFJI7u3ywco/usecase2_thumb%5B1%5D.gif?imgmax=800 "Detailed user sign in use case diagram")](http://lh5.ggpht.com/_REdrfeVqYdU/SfHSE60c0kI/AAAAAAAAAEg/Lg11jQtejFM/s1600-h/usecase2%5B3%5D.gif) 

Dodaliśmy weryfikację numeru konta i kodu PIN w formie notatki, a nie w formie diagramu przypadku użycia, ponieważ użytkownik bankomatu nie jest osobą, która wykonuje ten krok. Na podstawie doświadczeń z użytkowania bankomatów (ponieważ jeszcze nie analizowaliśmy kodu), możemy przypuszczać, że wypłata zostanie anulowana, jeśli żądana kwota jest większa niż saldo konta. Jednak porównanie kwoty wypłaty i salda konta nie jest wykonywane przez użytkownika, dlatego ta czynność również nie jest przedstawiona w diagramie przypadku użycia. 

[![Diagram przypadku użycia: wypłata gotówki](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSF209eRI/AAAAAAAAAEs/eB3dPyG57PI/usecase3_thumb%5B1%5D.gif?imgmax=800 "Withdraw cash use case diagram")](http://lh5.ggpht.com/_REdrfeVqYdU/SfHSFm6llBI/AAAAAAAAAEo/xn6UYTTGn7I/s1600-h/usecase3%5B3%5D.gif) 

Strzałka znajdująca się wewnątrz przypadku użycia "Wypłata gotówki" wskazuje na hiperłącze. UModel umożliwia dodanie jednego lub więcej hiperłączy do dowolnego elementu w diagramach. Hiperłącze może odnosić się do adresu URL, zewnętrznego pliku lub innego diagramu. Okno dialogowe hiperłącza pozwala również na zdefiniowanie dodatkowego tekstu pomocniczego dla tych hiperłączy. 

[![Okno dialogowe hiperłączy w Altova UModel](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSGYeH0rI/AAAAAAAAAE0/36DgzV_Yl-0/hyperlinksdialog_thumb%5B1%5D.gif?imgmax=800 "Altova UModel hyperlinks dialog")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSGFUiWVI/AAAAAAAAAEw/ZZU8p5k9ks4/s1600-h/hyperlinksdialog%5B3%5D.gif) 

[![Tekst wyświetlany po kliknięciu hiperłącza w diagramie przypadków użycia](https://lh4.ggpht.com/_REdrfeVqYdU/SfHSHKYq3HI/AAAAAAAAAE8/fw1H_zlU6Vo/usecase4_thumb%5B1%5D.gif?imgmax=800 "Hyperlink pop-up text in use case diagram")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSGu60M4I/AAAAAAAAAE4/qrle7DV5PXw/s1600-h/usecase4%5B3%5D.gif) 

Jeśli zdefiniujesz więcej niż jeden hiperlink, tekst pomocniczy stanie się rozwijanym menu wyboru. Załóżmy, że naszym zadaniem jest zmodyfikowanie istniejącego symulatora bankomatu, aby pobierać opłatę za każdą wypłatę. Jeśli kwota wypłaty jest mniejsza niż 100 dolarów, opłata wyniesie 2 dolary. Jeśli kwota wypłaty wynosi 100 dolarów lub więcej, opłata wyniesie 4 dolary. Ponieważ bankomat nie jest zaopatrzony w banknoty o wartości jednego dolara, opłata musi być pobierana bezpośrednio z konta, a nie odejmowana od gotówki wypłacanej. Opłata zostanie wyświetlona przed wypłaceniem jakichkolwiek pieniędzy, a użytkownik będzie mógł anulować transakcję. Możemy dodać ten nowy wymóg do naszego diagramu przypadków użycia dla operacji wypłaty z bankomatu. 

[![Diagram przypadku użycia "Wypłata gotówki" (ulepszona wersja)](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSHjveWdI/AAAAAAAAAFE/etX3ZjlAsQM/usecase5b_thumb%5B1%5D.gif?imgmax=800 "Enhanced Withdraw Cash use case diagram")](http://lh3.ggpht.com/_REdrfeVqYdU/SfHSHRdwdII/AAAAAAAAAFA/3zBX6tvvOAM/s1600-h/usecase5b%5B3%5D.gif) 

Zmieniliśmy kolor owalu reprezentującego przypadek użycia "Akceptacja opłaty", aby wskazać, że jest to planowana funkcja, która jeszcze nie została zaimplementowana. Niektórzy programiści mogliby twierdzić, że notatka dołączona do owalu "Akceptacja opłaty" jest zbędna, ponieważ sama notacja "include" (zawiera) wskazuje, że "Akceptacja opłaty" jest obowiązkowym elementem procesu "Wypłata gotówki". Jednak wiele osób jest zdezorientowanych różnicą między "include" a "extend", dlatego najlepiej jest być absolutnie precyzyjnym. Możemy również wykorzystać funkcję warstw w UModel, aby umieścić wszystkie elementy związane z nową funkcją na oddzielnej warstwie.

[![Kontekstowe menu "Przypisz warstwę" w programie Altova UModel](https://lh5.ggpht.com/_REdrfeVqYdU/SfHSIi2xicI/AAAAAAAAAFM/ScNlckyeir4/layersAssign_thumb%5B1%5D.gif?imgmax=800 "Altova UModel Assign Layer context menu")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSIBpiEzI/AAAAAAAAAFI/CcWmv9OlLxs/s1600-h/layersAssign%5B3%5D.gif)

Teraz okno pomocnicze "Warstwy" umożliwia nam wyświetlanie lub ukrywanie planowanej funkcjonalności w widoku diagramu. 

[![Okno pomocnicze warstwy UModel firmy Altova](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSJdL7XKI/AAAAAAAAAFU/3N3VfK_DHpM/layersview_thumb%5B1%5D.gif?imgmax=800 "Altova UModel Layer helper window")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSI19nEtI/AAAAAAAAAFQ/uwwdU85SDgo/s1600-h/layersview%5B3%5D.gif) 

Analiza rzeczywistych transakcji w bankomatach pokazuje, że w obecnej symulacji bankomatów brakuje pewnych operacji. Menu transakcji nie oferuje możliwości przesyłania środków między kontami. Z analizy już stworzonych schematów wynika, że oryginalna konstrukcja aplikacji utrudnia implementację operacji transferu środków. Logowanie użytkownika opiera się na numerze konta, a wydaje się, że starsza wersja aplikacji nie uwzględnia koncepcji pojedynczego klienta banku, który posiada zarówno konto osobiste, jak i konto oszczędnościowe. Jeśli nasz menedżer zażąda funkcji przesyłania środków, będziemy musieli porozmawiać z architektem oprogramowania przedsiębiorstw w naszej firmie. Konieczne będzie wdrożenie identyfikatora użytkownika powiązanego z wieloma kontami nie tylko w naszej aplikacji symulującej bankomat, ale również w bazie danych banku. 

Otrzymujący nagrodę [Jolt](https://www.altova.com/pl/JOLTAward_MissionKit_031809.html) pakiet [Altova MissionKit dla architektów systemów](https://www.altova.com/pl/products/missionkit/software_architect_tools.html) to zestaw ośmiu narzędzi do pracy z XML, bazami danych i UML, przeznaczony dla architektów oprogramowania przedsiębiorstw, którzy mogą potrzebować narzędzi do modelowania UML i zarządzania bazami danych, oprócz zaawansowanych możliwości pracy z XML, usługami internetowymi i integracją danych. 

[Kliknij tutaj, aby pobrać w pełni funkcjonalną wersję próbną, dostępną przez 30 dni.](https://www.altova.com/pl/download/missionkit/software_development_tools_enterprise.html) W kolejnej części przyjrzymy się symulacji bankomatów z zupełnie innej perspektywy, przygotowując się do analizy kodu. 
