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.
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ć.
[…] procesów biznesowych trochę od innej strony… « Obsługa wyjątków w wymaganiach Status – informacja dla klienta czy dostawcy? Styczeń 22, […]
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.
[…] o dane („DZ”). Z czynnościami opartymi o wzorzec Request-Response jest silnie związania obsługa błędów oraz […]
[…] 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, […]
[…] Pierwsze z nicj wskazuje na alternatywne działania użytkownika, a drugie na działania systemu w wyniku napotkanych problemów (wyjątków). Rozróżnienie takie jest jak najbardziej logiczne, ponieważ użytkownik często ma wiele opcji do wyboru. Każda z nich może zakończyć się poprawnie lub zostać przerwana. Przerwanie może być wynikiem błędu użytkownika, brakiem wykonania pewnych działań poza systemem lub po prostu natrafieniem przez system na wyjątek. Wyjątki mogą być różne. Przykładem dla tych drugich są wskazane powyżej sytuacje, w których system wykonując zaplanowane sprawdzenia trafia na wyjątek, co nie pozwala na prawidłowe zakończenie procesu, czyli przejście tzw. ścieżki głównej (przejście procesu bez wyjątków, do „Udostępnienia dokumentów”). Więcej o wyjątkach we wpisie „Obsługa wyjątków w wymaganiach” […]
[…] przykładowej reakcji systemu (np. na wyjątek związany z brakiem odpowiedzi z usługi). […]
[…] się jakie możliwości miał sklep przy wystąpienia tego wyjątku . Możliwe są na przykład […]