
Obsługa wyjątków w wymaganiach
Styczeń 15, 2011W 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, [...]