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