Logika funkcji
Transkrypt
Logika funkcji
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 # data odlotu # czas odlotu na TRASA # numer POZYCJA ZAM * planowany czas planowana odlotu jako obsługiwana przez z źródłem do LOTNISKO # kod * nazwa przeznaczeniem przewoźnikiem na LINIA LOTNICZA # kod * nazwa Modelowanie SI - GHJ 6 II. Uzupełnienie DOZ A. B. Opis funkcji jako uzupełnienie nazwy funkcji w języku naturalnym 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 TRASA LOT # data odlotu #czas odlotu # numer POZYCJA ZAM * planowany czas Odwołanie do LOTNISKO # kod * nazwa odlotu Żródło ≠ przeznaczenie Średnio 20 nowych/dzień LINIA LOTNICZA Odwołanie do # 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 dotycząca w # symbol * nazwa * ilość w zapasie POZYCJA ZAMÓWIENIA należąca do # numer * ilość wymagana ZAMÓWIENIE złożone z POZYCJA ZAM * data realizowana przez # numer od zamawiającym realizująca POZYCJA DOSTAWY # numer * ilość w dostawie częścią KLIENT # nazwa * status umiejscowiony w HARMONOGRAM częścią # numer * wydział składająca się z DOSTAWA # numer * data obejmujący Modelowanie SI - GHJ lokalizacją MIEJSCOWOŚĆ # kod * nazwa 12 Przykład logiki funkcji wykonany za pomocą pseudokodu SORT ORDERS BY PRIORITY FOR EACH LOCATION dla każdej lokalizacji – zakres 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 AlgoELSE rytm SET QUANTITY_FOR_DELIVERY = QUANTITY_IN_STOCK SET QUANTITY_IN_STOCK = 0 IF >0 DELIVERY_ITEMS_CREATED CREATE DELIVERY Modelowanie SI - GHJ 13