h1

Obsługa wyjątków w wymaganiach

Styczeń 15, 2011

W trakcie funkcjonowania procesów biznesowych, systemów czy aplikacji komputerowych mogą wystąpić sytuacje zwane wyjątkami (ang. exceptions). Mogą one być związane bezpośrednio z czynnościami wykonywanymi przez użytkownika/uczestnika procesu, a także wynikać z problemów z funkcjonowaniem wykorzystywanych narzędzi. W szczególności możemy mówić o:

  • nieautoryzowanych żądaniach,
  • błędnie wprowadzonych danych,
  • niedostępności narzędzi, usług, baz danych,
  • czasie odpowiedzi przekraczającym ustalone parametry biznesowe,
  • awariach wydajności,
  • utracie połączenia
  • itp.

Podczas projektowania aplikacji istotne jest to, aby w wymaganiach wskazać sposób obsługi sytuacji wyjątkowych. Strategie mogą być różne – począwszy od raportowania każdego błędu do użytkownika i przenoszeniem na niego odpowiedzialności poradzenia sobie z sytuacją, poprzez wspieranie użytkownika w rozwiązywaniu problemu, po implementację mechanizmów, które automatycznie próbują rozwiązać zaistniałą sytuację.

Na diagramach przedstawionych (wskazanych) w poprzednim wpisie pojawił się element komunikacji Zarządcy z InterfejsemERP czy pośrednio z BaząProduktów. Patrząc jedynie na ten element można mówić o różnych sytuacjach.

Na powyższym diagramie (diagram sekwencji w UML) zaprezentowano dwa wyjątki: timeout i failure. W przypadku tego pierwszego można by wskazać, że ma powtarzać wywołanie na przykład 3 razy i dopiero przy kolejnej nieudanej próbie informować użytkownika i zapisywać sytuację w bazie. Obsługa wyjątków jest istotna w systemach wykorzystujących usługi lub pracujących na dużych bazach danych. Na diagramie nie wskazano WczesniejZakupione, InniKupowali oraz Promocje, aby zachować pewien poziom ogólności. Jednakże warto przypomnieć, że wskazane elementy uczestniczą w interakcji między WyszukiwarkaProduktow a BazaProduktow. Nie została również pokazana sytuacja, gdy dane pochodzące od użytkownika były błędne.

7 uwag

  1. Bardzo dobry przykład, pytanie: ten poziom to wymagania czy implementacja, w wymaganiach raczej pojawi się funkcjonalność: system powinien korzystać z danych dostępnych w ERP, wymaganie pozafuncjonalne (ograniczenie) w przypadku gdy system ERP jest niedostępny …… takie “rzeczy” jak timeout raczej przekraczają pojmowanie przeciętnego użytkownika i nie powinien on takich elementów widzieć ani tym bardziej zatwierdzać…


    • Słuszne pytanie. Dziękuję za nie. Muszę się nad tym zastanowić.


  2. [...] procesów biznesowych trochę od innej strony… « Obsługa wyjątków w wymaganiach Status – informacja dla klienta czy dostawcy? Styczeń 22, [...]


  3. Fajna strona, wracając do przykładu. Czy mi się wydaje ale w obu przypadkach będzie ten sam efekt. Jeżeli brak połączenia to timeout, jeżeli serwer leży (czyt. failure) to też system czeka x sekund -> timeout ?


    • Dziękuję. A odpowiadając na pytanie… to zależy od tego jak zostanie zaprojektowana komunikacja z serwerem.


  4. [...] o dane („DZ”). Z czynnościami opartymi o wzorzec Request-Response jest silnie związania obsługa błędów oraz [...]


  5. [...] czas, koszt realizacji. W przypadku powyższego procesu należałoby poprawić sposób działania i obsługi wyjątków, aby był realizowany szybciej. Można by, jak w przypadku niektórych sklepów internetowych, [...]



Dodaj komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Zmień )

Twitter picture

You are commenting using your Twitter account. Log Out / Zmień )

Facebook photo

You are commenting using your Facebook account. Log Out / Zmień )

Connecting to %s

Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.