Logika funkcji precyzyjne i niedwuznaczne definiowanie szczegółów funkcji stosowana w tych przypadkach, w których funkcja jest złożona lub wymaga arbitralnego algorytmu Celem - zrozumienie przez projektanta rezultatu działania funkcji i zaprojektowania sposobu jej realizacji Celem nie jest uzyskanie opisu dla prostego przekształcenia w procedurę programową (przykład na końcu) Modelowanie SI - GHJ 1
Struktura logiki funkcji Prezentuje trzy aspekty użycia informacji nawigację (kierunek poszukiwań informacji) pochodzenie nowych wartości (algorytm) zakres (jakiej części zbioru informacji dotyczy przetwarzanie) Modelowanie SI - GHJ 2
Zmienność formuły W przypadku dużej zmienności reguł, lepiej jest tylko nazwać formułę, która może być zastąpiona konkretną regułą Formuły i ich warunki użycia mogą być modelowane jako obiekty - pamiętane jako dane w bazie danych Modelowanie SI - GHJ 3
Metody formułowania logiki A. Uproszczona logika funkcji I. opis lingwistyczny na podstawie perspektywy przedsiębiorstwa II. opis lingwistyczny jako uzupełnienie modelu struktury informacyjnej (DOZ) Perspektywa przedsiębiorstwa: często używany podzbiór informacji utworzony na podstawie DOZ B. Szczegółowa logika funkcji III. Konstrukcja zdania wyrażającego trzy aspekty logiki: wyszukiwanie algorytm zakres Modelowanie SI - GHJ 4
I. Perspektywa przedsiębiorstwa Perspektywa LOT REJSOWY jest oparta na obiektach: LOT, TRASA, LINIA LOTNICZA, LOTNISKO. Niektóre nazwy w opisie są inne niż na modelu. Nazwa funkcji: Utwórz lot rejsowy Opis funkcji Na żądanie utwórz wystąpienie LOT REJSOWY, przy użyciu danych: planowana data, numeru lotu, czas odlotu, linia, miejsce przeznaczenia i źródła, gdzie miejsce przeznaczenia jest różne od źródła Modelowanie SI - GHJ 5
Fragment modelu DOZ Rezerwacja i loty LOT TRASA # data odlotu # czas odlotu na planowana jako * planowany czas odlotu POZYCJA ZAM obsługiwana przez z źródłem do przeznaczeniem LOTNISKO # kod * nazwa LINIA LOTNICZA # kod * nazwa przewoźnikiem na Modelowanie SI - GHJ 6
II. Uzupełnienie DOZ A. Opis funkcji jako uzupełnienie nazwy funkcji w języku naturalnym B. Wprowadzenie nieformalnych uzupełnień na odpowiednim fragmencie DOZ oznaczenie używanych obiektów i związków (inny kolor linii), określenie sposobu ich użycia (komentarz), określenie warunku (komentarz) podanie wyniku funkcji, np. wynik obliczeń (nieformalne wyróżnienie używanych atrybutów, związków) dodatkowe informacje (komentarz) Modelowanie SI - GHJ 7
Przykład funkcji dla metody uzupełnienia DOZ Nazwa funkcji Utwórz lot rejsowy Opis funkcji Utworzenie na żądanie wystąpienia obiektu LOT o ustalonej dacie odlotu, dla wyznaczonej przez numer lotu TRASIE z obiektu LOTNISKO o określonej nazwie do obiektu LOTNISKO o określonej nazwie, obsługiwanej przez LINIĘ LOTNICZĄ identyfikowaną za pomocą kodu, gdzie nazwa LOTNISKA będącego źródłem TRASY nie jest równa nazwie LOTNISKA będącego przeznaczeniem TRASY Modelowanie SI - GHJ 8
Fragment modelu DOZ Rezerwacja i loty z uzupełnieniem Tworzenie Odwołanie do Odwołanie do LOT TRASA # data odlotu #czas odlotu * planowany czas odlotu POZYCJA ZAM LOTNISKO # kod * nazwa Średnio 20 nowych/dzień Żródło przeznaczenie Odwołanie do LINIA LOTNICZA # kod np. ORBIS * nazwa Modelowanie SI - GHJ 9
III. Szczegółowa logika funkcji Wyszukiwanie: Wyszukaj <lista atrybutów> z <nazwa obiektu>, jeżeli <zdanie kwalifikujące> Algorytm działania: opis obliczania nowych wartości za pomocą standardowej terminologii matematycznej z nazwami atrybutów i obiektów jako zmiennymi Zakres: Konstrukcja zdania zawierająca... gdy <warunek >. Modelowanie SI - GHJ 10
Przykład Ustalenie dostaw realizujących zamówienia wg harmonogramu Uporządkuj zamówienia w kolejności priorytetu (wynika ze statusu klienta, miejscowości, daty złożenia zamówienia i innych subiektywnych decyzji) idąc w dół listy POZYCJI ZAMÓWIEŃ utwórz dla każdej POZYCJI ZAMÓWIENIA realizującą POZYCJĘ DOSTAWY ustalaj ilość w dostawie (jeśli istnieje ilość w zapasie) równą liczbie mniejszej spośród ilości wymaganej i ilości w zapasie, aż ilość w zapasie będzie równa zero lub wszystkie POZYCJE ZAMÓWIENIA zostaną zrealizowane utwórz planowaną DOSTAWĘ, jako część HARMONOGRAMU, do której wchodzą POZYCJE DOSTAWY kierowane do tej samej LOKALIZACJI Modelowanie SI - GHJ 11
PRODUKT # symbol * nazwa * ilość w zapasie dotycząca w POZYCJA ZAMÓWIENIA należąca do ZAMÓWIENIE * ilość wymagana realizowana przez * ilość w dostawie częścią realizująca POZYCJA DOSTAWY złożone z * data POZYCJA ZAM od KLIENT # nazwa * status zamawiającym HARMONOGRAM * wydział częścią obejmujący DOSTAWA * data składająca się z umiejscowiony w MIEJSCOWOŚĆ # kod * nazwa Modelowanie SI - GHJ 12 lokalizacją
Przykład logiki funkcji wykonany za pomocą pseudokodu SORT ORDERS BY PRIORITY FOR EACH LOCATION dla każdej lokalizacji zakres Algorytm FOR EACH ORDER IFOR EACH ORDER ITEM ON THIS ORDER nawigacja przez związek IF STOCK_LEFT FOR REQUIRED_PRODUCT CREATE DELIVERY ITEM IF QUANTITY_REQUIRED <= QUANTITY_IN_STOCK SET QUANTITY_FOR_DELIVERY = QUANTITY_REQUIRED SET QUANTITY_IN_STOCK = QUANTITY_IN_STOCK - QUANTITY_REQUIRED ELSE SET QUANTITY_FOR_DELIVERY = QUANTITY_IN_STOCK SET QUANTITY_IN_STOCK = 0 IF >0 DELIVERY_ITEMS_CREATED CREATE DELIVERY Modelowanie SI - GHJ 13