IV. OPIS NARZDZI ANALIZY STRUKTURALNEJ Modele analityczne, to w przeważającej części papierowe modele przyszłego systemu, tzn. abstrakcyjne reprezentacje, które pózniej staną się kombinacjami sprzętu i oprogramowania. Najpierw wyjaśnię do czego w ogóle potrzebne nam są modele. Modele można konstruować w ten sposób aby uwypuklić pewne istotne cechy systemu, pomijając jednocześnie inne jego aspekty. Pozwala to na łatwiejszą komunikację z użytkownikiem, ponieważ skupiamy się na aspektach ważnych w danej chwili. Jeśli okaże się, że wymagania użytkownika zostały błędnie zinterpretowane, można zbudować nowy model. W przypadku budowy całego systemu po początkowych rozmowach z użytkownikiem ryzykujemy, że powstały system nie jest tym czego oczekiwał użytkownik, a jego zmiana jest bardzo kosztowna. Jednym słowem mówiąc model, to tania kopia systemu, który będziemy badać. Błędne założenia, czy po prostu niedopracowany projekt systemu są przyczyną ponad 80% występujących błędów. Natomiast koszt naprawy w tej ąytuacji stanowi około 95% wszystkich kosztów związanych z naprawą występujących ni eprawidłowo ści. Narzędzia modelowania używa się głównie do: skoncentrowania się na istotnych w danej chwili aspektach; modyfikowania wymagań użytkownika przy minimalnych kosztach i ryzyku; upewnienia się, że wymagania zostały poprawnie zinterpretowane, tak by programiści mogli zbudować poprawnie działający system. Istnieje wiele różnych modeli, które moglibyśmy przestawić użytkownikowi: narracyjne, prototypowe czy graficzne1. Dla różnych użytkowników mogą być konieczne różne narzędzia modelowania, na przykład ze względu na ich dotychczasowe doświadczenie. Większość systemów wymaga wielu modeli, poneważ każdy z nich i koncentruje się na pewnej ograniczonej liczbie aspektów. Wiele systemów ma 1 Mogą to być diagramy przepływu sterowania, diagramy HIPO, tablice decyzyjne, diagramy przepływu danych, systemowe diagramy przepływu, diagramy sieci przejść, drzewa decyzyjne, diagramy związków encji, Ferstla, Hamiltona-Zeldina, PAD i niezliczona liczba innych diagramów, tablic i grafów, które można pokazać użytkownikowi. 23 złożoną charakterystykę funkcjonalną, złożone struktury danych oraz złożone zależności czasowe. Istnieje coś takiego jak koncepcja zintegrowanych modeli, czyli modeli, które wspierają się nawzajem. Jedne z ważniejszych narzędzi modelowania, to: diagram przepływu danych, diagram związków encji oraz diagram sieci przejść. Narzędzia te składają się z grafiki i uzupełniającej części tekstowej. Jak mówią znane powiedzenia: obrazek wart jest tysiąca słów", ale słowa potrafią więcej zakryć niż odsłonić". Dlatego też grafika dostarcza czytelnego dla użytkownika przedstawienia głównych składników modelu wraz z powiązaniami między nimi, a tekst tylko uzupełnia te narzędzia o precyzyjne zdefiniowanie znaczenia składników i powiązań. Tak też powinny wyglądać dokumenty, do których sięga użytkownik, aby zrozumieć system. Kolejną cechą dobrego narzędzia jest możliwość odwzorowania sytemu metodą zstępujących podziałów. Nie ma to znaczenia jedynie dla niewielkich systemów. Narzędzia modelowania musza umożliwiać osobne odwzorowanie poszczególnych części systemu, wraz z prostym sposobem przechodzenia od jednej części modelu do innej. Dobre narzędzie cechuje również minimalna nadmiarowość. Modele stanowią reprezentację pewnych systemów, które mogą być dynamiczne, czyli zmieniać się. Jeżeli system ulegnie zmianie, to musimy wprowadzić zmiany do modelów. W wielu modelach jednak istnieje pewna nadmiarowość. Im więcej nadmiarowości zawiera model, tym trudniej jest go pielęgnować, gdyż zmiany, które nastąpiły powinny być uwzględnione często w więcej niż jednym miejscu. Poza tym dobre narzędzie powinno pomagać czytelnikowi przewidzieć zachowanie systemu oraz być dla niego przejrzyste i czytelne. Abyśmy wiedzieli z czym mamy do czynienia i jakie narzędzia do budowy systemu obsługi sprzedaży zostaną wykorzystane w pracy, poniżej przedstawię skrótowy opis poszczególnych narzędzi analizy strukturalnej. 24 1. DIAGRAM PRZEPAYWU DANYCH Diagram przepływu danych jest podstawowym narzędziem w strukturalnej analizie systemów. Stanowi on model funkcjonalny systemu. Na diagramie tym przedstawia się wszystkie procesy zachodzące w analizowanym systemie, inaczej mówiąc przedstawia on funkcje, które musi realizować system. Funkcje te mogą być wykonywane ręcznie lub automatycznie. Ponadto na diagramie tym przedstawia się przepływy informacji pomiędzy procesami, miejsca składowania danych oraz zródła i miejsca odbierania informacji. Jest to narzędzie do opisywania transformacji wejść na wyjścia. Diagram przepływu danych zwiera cztery podstawowe składniki: procesy, magazyny danych, przepływy i terminatory. To, że do sporządzenia diagramu używa się tylko czterech prostych symboli ma znaczenie nie tylko dla projektanta. Także użytkownikowi o wiele łatwiej jest zorientować się, co rysunek przedstawia, jeżeli nie musi się zastanawiać nad każdym elementem, a znaczenie niektórych elementów, na przykład strzałek oznaczających kierunek przepływu danych, jest prawie oczywiste. A oto krótkie objaśnienie tych składników [1][6]. Proces)' przedstawione są na diagramie za pomocą kółek (Rys.3). Reprezentują one pojedyncze funkcje, które realizuje system. Funkcje te operują na danych przekształcając wejścia na wyjścia. Proces może być programem komputerowym lub procedurą, ale może to być również czynność wykonywana ręcznie. Dla większości modelów nazwa procesów opisuje co robi ten proces. Czasami proces opisuje kto lub co go wykonuje. Przepływy przedstawione są za pomocą zakrzywionych strzałek. Służą one do tworzenia związków pomiędzy procesami. Opisują strumienie danych o określonej zawartości przepływające pomiędzy dwoma obiektami. Strzałki określają kierunek przesyłania informacji. Najczęściej linie są skierowane jednostronnie. W zależności od kierunku strzałki reprezentują informację wejściową lub wyjściową, która jest wymagana lub generowana przez proces. Przepływ z dwoma grotami, który możemy zobaczyć 25 na rys.2, to dialog. W tym przypadku pakiety danych na obu końcach strzałki musza być nazwane. Przepływy mogą się schodzić lub rozchodzić2. Magazyny danych przedstawione będą na diagramie za pomocą dwóch równoległych linii. Przedstawiają one zbiory danych, które system powinien przechowywać przez pewien czas. Reprezentują one miejsca, gdzie dane są przechowywane pomiędzy procesami, które na nich operują, jeśli może wystąpić przesunięcie w czasie miedzy tymi procesami. Magazyny są połączone z procesami za pomocą przepływów3. Dla programisty lub projektanta stają się one pózniej plikami lub bazami danych. Terminatory przedstawione są za pomocą prostokątów. Przedstawiają obiekty zewnętrzne, z którymi komunikuje się system. Reprezentują zródła lub miejsca przeznaczenia informacji, które są zewnętrzne w stosunku do systemu. Dostarczają informacji, która powoduje wykonanie pewnych procesów w systemie, względnie odbierają informacje produkowane przez system. Są to na przykład inne działy, inne firmy, zewnętrzne systemy komputerowe korzystające z informacji produkowanych przez system, kierownik odbierający raporty o sprzedaży, klient składający zamówienie. Przepływy łączące terminatory z procesami lub magazynami systemu stanowią interfejs między systemem a otaczającym światem. Związki między terminatorami z definicji nie wchodzą do systemu, dlatego też nie są one pokazywane na diagramie. Jeżeli obiekt zewnętrzny lub magazyn danych występuje na diagramie dwa razy, dla przejrzystości rysunku powtórzony obiekt jest zaznaczony ukośną kreską w lewej górnej części. Diagram przepływu danych może również zawierać przepływy sterujące oraz magazyny sterujące. Poza przedstawieniem głównych składowych funkcjonalnych systemu, diagramy przepływu danych nie dostarczają nam żadnych szczegółowych informacji; dostarczają tylko jednego spojrzenia na system - spojrzenia funkcyjnego. Jeżeli przepływ jest rozbieżny, oznacza przesyłanie kopii pakietu danych do różnych części systemu lub rozdzielenie złożonego pakietu danych na kilka elementarnych, z których każdy jest przesyłany do innej części systemu. W przypadku pakietów zbieżnych, kilka elementarnych pakietów danych łączy się w bardziej złożone pakiety danych [1]. 3 Co reprezentuje przepływ (czy pojedynczy pakiet, wiele pakietów, fragment pakietu czy fragmenty pakietów) można powiedzieć na podstawie etykiety przepływu. Brak etykiety lub jeśli etykieta przepływu jest taka sama jak magazynu oznacza, że jest pobierany kompletny pakiet informacji. Jeśli etykieta jest inna pobiera się jeden lub więcej fragmentów jednego lub więcej pakietów. Przepływ z magazynu interpretuje się zwykle jako odczyt, zaś przepływ do magazynu opisuje się często jako zapis, aktualizację lub być może usuwanie [1]. 26 Notacja diagramu przepływu danych jest prosta i intuicyjnie oczywista. Jest ona zupełnie czytelna dla osób nie zajmujących się zupełnie informatyką. o Rys.2 Notacja diagramów DFD Podstawowym celem techniki modelowania procesów jest ich graficzna reprezentacja umożliwiająca lepsze i głębsze zrozumienie natury i specyfiki tych procesów oraz odpowiednie ich zmodyfikowanie w zależności od stawianych systemowi wymagań. Jest to w pewnym sensie mapa" procesów ukazująca przepływ danych między procesami w systemie oraz między światem zewnętrznym a systemem Przedstawienie całego systemu za pomocą jednego diagramu mogłoby jednak być zbyt nieczytelne. Dlatego też diagram należy budować poziomami. Procesy specyfikuje się zaczynając od wyszczególnienia podstawowych funkcji. Przykładem takich funkcji w prezentowanym systemie obsługi sprzedaży są: obsługa zamówień i obsługa zwrotów. Następnie zstępujące dokonuje się uszczegółowienia każdego procesu, rozbijając go na podprocesy. Podprocesy obsługi zwrotów, to na przykład: sprawdzenie przyjmowanego produktu, sprawdzenie limitu zwrotów, wystawienie faktury zwrotu itd. Jeśli procesu nie da się rozbić na podprocesy, to precyzyjnie i jednoznacznie opisujemy go używając równań matematycznych, tabel lub specjalnego języka. W opisie takim należy podać reguły przekształcania danych wejściowych w wyjściowe lub reguły generowania danych [6]. 27 Diagram przepływu najwyższego poziomu składa się z jednego procesu reprezentującego cały system. Ten specjalny DFD się diagramem kontekstowym. Diagram przepływu danych zerowego poziomu przedstawia główne funkcje systemu. Nazywamy go diagramem ogólnym systemu, diagramy niższych poziomów zaś to diagramy szczegółowe. Nie wszystkie części systemu musza być do tego samego poziomu. Niektóre części systemu mogą być bardziej złożone niż inne. Jeśli jednak jedne procesy są elementarne, a inne wymagają wielu poziomów, to ogólny model systemu jest prawdopodobnie zle zorganizowany. Dla zapewnienia zgodności każdego diagramu z diagramem nadrzędnym stosuje się prosta regułę: przepływy danych wchodzące i wychodzące z procesu na danym poziomie powinny odpowiadać przepływom danych wchodzących i wychodzących z całego diagramu niższego poziomu opisującego ten proces [1]. Postępowanie to nazywamy równoważeniem poziomów. DFD należy prezentować użytkownikom od góry, czyli poczynając od diagramu kontekstowego. W praktyce jednak podejście zstępujące może okazać się bardzo niewygodne. Dlatego też lepszym rozwiązaniem jest zidentyfikowanie najpierw zdarzeń zewnętrznych, na które system ma odpowiadać i zbudować wstępny DFD. Taki diagram może być pózniej rozwijany zarówno w górę jak i w dół. Podejście to nosi nazwę podziału według procesów. Tworzenie diagramów przepływu danych tworzy się w tym podejściu w oparciu o model środowiskowy, który omówiłam w rozdziale trzecim (pkt. 1). W celu skonstruowania poprawnych i przejrzystych diagramów DFD należy pamiętać o kilku sprawach. Po pierwsze należy wybierać znaczące nazwy dla procesów, przepływów, magazynów i terminatorów. Procesy należy etykietować w taki sposób, aby określić funkcje, które realizuje system. Dobra nazwa dla procesu zwykle stanowi frazę czasownik-dopełnienie (np. PRZYJMIJ ZAMÓWIENIE albo WYSTAW FAKTUR). Po drugie należy numerować procesy. Ułatwia to odwoływanie się do nich na diagramie, a poza tym liczby te stanowią podstawę schematu hierarchicznego numerowania przy modelowaniu wielopoziomowym4. Choć niektórzy użytkownicy 4 Dla przykładu: proces 3, występujący na Diagramie O, związany jest z diagramem niższego poziomu oznaczonym Diagram 3. Procesy wewnątrz tego diagramu numeruje się następująco: 28 mogą uznać, że implikuje to kolejność ich wykonywania, należy pamiętać, że model DFD to sieć komunikujących się asynchronicznych procesów. Ponieważ model ten ma być czytany i oglądany nie tylko przez autorów, ale także przez użytkowników, musi być on zrozumiały, czytelny i przyjemny dla oka. Dlatego też należy przerysowywać diagramy DFD, jeśli tylko jest to konieczne z przyczyn estetycznych. Poza tym należy unikać nadmiernie złożonych diagramów. Najprostszym ograniczeniem jest to, że pojedynczy DFD powinien się swobodnie mieścić na kartce papieru formatu A43. Kolejną ważną rzeczą jest sprawdzenie czy diagram jest logicznie wewnętrznie niesprzeczny. W tym celu należy sprawdzić czy nie występują tzw. nieskończone studnie" lub inaczej czarne dziury" (są to procesy mające same wejścia i żadnych wyjść)oraz czy nie ma procesów spontanicznej generacji (są to procesy mające jedynie wyjścia bez żadnych wejść). Ponadto należy sprawdzić występujące magazyny tylko-do-zapisu albo tylko-do-odczytu oraz nieetykietowane przepływy i procesy. Niestety na podstawie DFD nie da się stwierdzić w jakiej kolejności przychodzą pakiety danych i w jakiej kolejności są generowane przez pakiety wynikowe. Nie wiadomo również czy jednemu zestawowi pakietów wejściowych odpowiada dokładnie jeden zestaw pakietów wyjściowych. Diagram przepływu danych nie odnosi się do takich zagadnień. Jeśli aspekty te są dla danego systemu istotne, wówczas należy posłużyć się innymi narzędziami modelowania, na przykład diagramem przepływu sterowania. Natomiast, aby pokazać jaka informacja jest przedstawiana i w jaki sposób, potrzebne jest użycie tekstowych narzędzi modelowania, jakimi są: słownik danych i specyfikacja procesu. 2. SAOWNIK DANYCH Słownik danych jest to uporządkowany wykaz wszystkich elementów danych, który zawiera dokładne definicje wszystkich elementów każdego z diagramów. Jest on 3.1, 3.2, 3.3 itd. Jeśli proces 3.1 jest związany z diagramem niższego poziomu, to diagram ten oznaczamy przez Diagram 3.1, a procesy na nim występujące "numerujemy poprze 3.1.1, 3.1.2, 3.1.3 itd. 5 W artykule George Millera zamieszczonym w 1956r. w Psychology Review występuje wskazówka, że nie powinno się znalezć nie więcej niż sześć procesów. 29 niezbędnym uzupełnieniem każdego z modeli systemu reprezentowanego przez omawiane diagramy. Zawiera on definicję wszystkich struktur danych (obiekty, atrybuty, powiązania), procesów, jednostek komunikacji z użytkownikiem, danych dotyczących zarządzania przedsięwzięciem (wersje, prawa dostępu, osoby odpowiedzialne). Słownik danych definiuje swoje elementy w następujący sposób [6]: oprócz identyfikatora, unikatowego dla każdego z elementów i nazwy (etykiety), każdy element jest zaopatrzony w krótkie wyjaśnienie znaczenia; - każdy złożony element ma dokładną definicję swoich elementów składowych (np.atrybuty złożone, struktury rekordów, przepływy danych, magazyny danych, obiekty); magazyny danych, przepływ danych maja zawsze zdefiniowaną zawartość; wszystkie dane elementarne maja zdefiniowane zakresy wartości, jakie mogą przyjmować (ciągłe lub dyskretne), jednostki miary; powiązanie między obiektami jest dokładnie scharakteryzowane; - wszystkie powiązania między poszczególnymi elementami każdego modelu są dokładnie opisane (np. kolejne rozwinięcia diagramu DFD, zródło i znaczenie każdego przepływu). Ogólnie każdy element na różnych diagramach ma pewien, zapisany w słowniku danych, zestaw atrybutów, które go zgodnie z definicja każdego modelu charakteryzują. A oto najczęściej używana notacja słownika danych. Symbol Znaczenie = jest złożony z (następujących elementów) + i O opcjonalność (element może być obecny lub nie) { } iteracja elementu (element może się powtórzyć) [] selekcja (jeden z podanych elementów może zostać wybrany) i oddzielanie alternatywnych elementów w konstrukcji [ ] * * komentarz @ identyfikator - klucz obiektu ii (.<. literał 30 Przy definiowaniu elementów występuje zjawisko nadawania wielu nazw dla danego elementu (zwłaszcza, gdy projekt jest tworzony przez wiele osób). Na dodatek nazwy wykorzystywane przez użytkowników systemu różnią się od nazw tych samych elementów używanych przez analityków czy projektantów. Wszystkie te nazwy powinny się znalezć w słowniku danych, a oznaczamy je słowem synonim" lub alias". Istnieją terminy samodefmiujące, których znaczenie jest jednakowe we wszystkich systemach informatycznych lub dla których analityk uzna, że dalsze szczegóły są zbędne. Gdy element danych nie wymaga definicji, wielu analityków używa notacji ** w celu wskazania pustego komentarza". Sformalizowana specyfikacja w postaci diagramów przepływu danych i precyzyjnej definicji danych w specjalnym słowniku zwanym repozytorium nosi nazwę specyfikacji strukturalnej i zastępuje stosowane niejednoznaczne i obszerne opisy tekstowe, stanowiąc istotę podejścia strukturalnego. 3. SPECYFIKACJA PROCESU Specyfikacja procesu jest opisem tego, co dzieje się wewnątrz każdego elementarnego procesu na najniższym poziomie diagramu przepływu danych. Definiuje ona, co należy zrobić w celu przekształcenia wejść w wyjścia. Do stworzenia specyfikacji procesu można na użyć wielu narzędzi: tablic decyzyjnych, strukturalnego języka polskiego, warunków początkowych i końcowych, diagramów przepływu sterowania, diagramów Nassi-Shneidera. Specyfikacja musi mieć taka postać, aby możliwa była jej weryfikacja przez użytkownika i analityka. Dlatego też unika się stosowania języka polskiego, który jest wieloznaczny. Może być zapisana w rachunku predykatów, w Pascalu albo też za pomocą formalnego podejścia diagramowania. Specyfikacje procesów sporządza się jedynie dla procesów najniższego poziomu w zrównoważonym zbiorze diagramów przepływu danych. Wszystkie procesy wyższego poziomu definiuje się sieciami procesów bezpośredniego niższego poziomu. Specyfikacja procesów przedstawiona przeze mnie została stworzona w strukturalnym języku polskim. Jest to podzbiór języka polskiego z istotnymi 31 ograniczeniami na postać używanych zdań i sposób ich łączenia. Jego celem jest osiągnięcie rozsądnego kompromisu pomiędzy precyzją formalnego języka a swobodą i czytelnością języka polskiego. Zdanie w strukturalnym języku polskim może być równaniem algebraicznym lub prostym zdaniem rozkazującym, składającym się z czasownika i dopełnienia. Zdania opisujące obliczenia mogą być poprzedzane czasownikami: POBIERZ, OBLICZ, DODAJ, USUC, ZNAJDy itp. Przykład: X = (Y * Z) / (Q + 14) Obiekty, występujące w dopełnieniach prostych zdań rozkazujących, powinny składać się z elementów danych zdefiniowanych w słowniku danych lub powinny być terminami lokalnymi6. Strukturalny język polski pozwala łączyć zdania tylko w ograniczony sposób; stosowane metody zaczerpnięto ze znanych języków programowania. Konstrukcja IF-THEN-ELSE (IF ELSE) służy do opisania alternatywnych zdań, których wykonanie zależy od binarnej decyzji. Konstrukcja CASE służy do opisywania zdań wykonywanych zależnie od wyniku decyzji wielowarstwowej ( w odróżnieniu od binarnej decyzji podejmowanej w konstrukcji IF-THEN). Konstrukcja DO-WItLE służy do zdania które ma być wykonywane dopóty, dopóki jest spełniony pewien warunek logiczny. Sprawdzenie warunku następuje przed wykonaniem instrukcji. Konstrukcja REPEAT-UNTIL działa na tej samej zasadzie, ale wykonuje ona instrukcję co najmniej raz przed sprawdzeniem czy należy j ą po wtórzy ć. Aby stworzyć dobrą specyfikację należy trzymać się trzech zaleceń. Pierwsze z nich mówi o ograniczeniu strukturalnych specyfikacji procesów w języku polskim do pojedynczej strony tekstu. Jeśli zajmuje ona jednak więcej niż jedną stronę, analityk powinien rozważyć inny sposób opisania reguły działania. Drugie zaleceni dotyczy poziomów zagnieżdżania. Nie należy stosować więcej niż trzech poziomów (zwłaszcza w przypadku instrukcji IF-ELSE), gdyż jest to mało czytelne. Trzecie zalecenie związane jest również z zagnieżdżaniem, gdyż mówi o stosowaniu wcięć dla uniknięcia pomyłek w interpretacji zagnieżdżania. 5 Terminy lokalne definiuje się w specyfikacjach procesów, w których występują, a nie w słowniku danych. Często są one wyprowadzane z terminów się tam znajdujących. 32 4. DIAGRAM ZWIZKÓW ENCJI Diagram związków encji służy nam do pokazania związków występujących pomiędzy zbiorami danych czyli magazynami[l]. Podstawowymi pojęciami tego modelu są obiekt (inaczej encja), związek oraz atrybut. Encja/obiekt jest terminem niedefmiowalnym; jest to coś co istnieje i jest odróżnialne. Encjami mogą być przedmioty materialne lub niematerialne; obiekty rzeczywiste lub pojęcia abstrakcyjne. Obiekty mają swoje własności zwane atrybutami. Obiekty mające te same atrybuty łączy się w typy obiektów. Typy obiektów przedstawione są na diagramie za pomocą prostokątów. Reprezentuje on zbiór rzeczy ze świata rzeczywistego, które mogą być jednoznacznie zidentyfikowane i opisane przez jeden lub więcej atrybutów. Związki pomiędzy obiektami przedstawiają powiązania w świecie rzeczywistym. Są one przedstawione na diagramie za pomocą rombów. Reprezentują one zbiór powiązań między typami obiektów połączonymi liniami ze związkiem. Graficzną reprezentacją modelu danych ER jest diagram ERD. Spotyka go się w graficznie różnych postaciach7. Charakter powiązań między obiektami określaj ą[ 16]: - to czy dany obiekt jest powiązany z jednym, czy z wieloma obiektami; jest to tak zwana arność związku, czyli liczba obiektów biorących udział w związku; liczebność związku (kardynalność), gdzie określa się powiązania między obiektami typu 1:1 (jeden do jeden), 1:N (jeden do wielu), M:N (wiele do wielu). Pomiędzy typami encji może wystąpić jeden z trzech rodzajów związków: binarny, unarny i n-arny. Związki binarne. Większość problemów baz danych może zostać zamodelowana przy użyciu binarnych związków w formie A fraza czasownikowa B, gdzie A i B są typami encji a fraza czasownikowa jest tekstem opisującym związek pomiędzy nimi. 7 Najczęściej spotykane notacje, to notacja Chena stosująca w diagramach etykiety ' l', 'N', oraz 'M', a także notacja Rock-Evans zwana u nas notacją wronich łapek". Opis obydwu notacji można znalezć w pozycji [2] umieszconej w literaturze. 33 Dla związków, A fraza czasownikowa B, kardynalność związku opisuje maksymalną i minimalną liczbę wartości A które mogą istnieć dla każdej wartości B w związku i na odwrót. Kardynalneści związku są również nazywane minimalnymi i maksymalnymi kardynalnościami (licznościami) odwzorowania. Kardynalność związku reprezentowana jest przez dwie pary liczb, jedna para dla każdego powiązanego typu encji. Niech będzie dany związek A fraza czasownikowa B. Oznaczmy jego kardynalności przez {(cci, PO, (cc2, (32)}, wówczas: a i oznacza minimalną liczbę powiązań w których występuje obiekt wymieniony w związku jako pierwszy; 0,2 oznacza minimalną liczbę powiązań w których występuje obiekt wymieniony w związku jako drugi; 31 oznacza maksymalną liczbę powiązań w których występuje obiekt wymieniony w związku jako pierwszy; $2 oznacza maksymalną liczbę powiązań w których występuje obiekt wymieniony w związku jako pierwszy. Jeżeli na przykład wszystkie wartości A mogą mieć od jednego do wielu (reprezentowanych przez '*') odpowiadających im wartości B, wtedy kardynalności związku dla A są (l, *). Jeśli każda wartość B ma jeden i tylko jeden odpowiednik w wartościach A, to kardynalności dla B są (l, 1). Przykład: Zamówienie zawiera Pozycje zamówień a*) o,i) Interpretacja: Zamówienie może mieć wiele pozycji zamówień, ale musi zawierać przynajmniej jedną pozycję zamówień (nie przyjmuje się zamówień bez wymienionych produktów). Natomiast pojedyncza pozycja tyczy się tylko jednego zamówienia. Bardzo charakterystycznym związkiem w modelu E-R jest związek jest związek 'is-a' mający kardynalności <(0, 1), (l, 1)>. Przykładem takiego związku w projekcie zaprezentowanym w ostatniej części pracy jest Reklamacjami Zwrotem. 34 Związki mianie. Związek typu Z fraza czasownikowa Z jest określany jako unarny. Przykładem takiego związku w projekcie jest sytuacja, w której Dystrybutor staje się sponsorem innego Dystrybutora. Związki N-arm. Takim pojęciem określa się związki, w które są zaangażowane przynajmniej trzy typy encji. W przedstawionym projekcie nie występują takie sytuacje. Związki, tak jak encje, mogą posiadać atrybuty. Jednak w odróżnieniu od encji tylko niektóre typy związków mogą je posiadać (zwykle atrybuty posiadają związki wiele-do-wiele). Niektóre związki mogą być potraktowane jako typy encji. Tworzenie związku składa się zatem z trzech etapów: identyfikacja związku; wyznaczenie kardynalności związku; - jeśli trzeba, wyznaczenie atrybutów związku. Diagram DFD przedstawiał funkcjonalny model systemu, odpowiadał więc na podstawowe pytanie co system ma robić. Model danych w systemie przedstawiony za pomocą ERD służy do zilustrowania statycznej struktury danych w systemie w sposób niezależny od konkretnego systemu zarządzania bazą danych. Diagramy ERD, na pierwszy rzut oka skomplikowane i tajemnicze, okazują się bardzo pomocne przy projektowaniu struktury bazy danych dużych systemów informatycznych. Po krótkim okresie Używania stają się bardziej czytelne niż słowne opisy rekordów i zależności pomiędzy nimi. Ze względu na wygodę w reprezentacji model ERD jest często używany jako narzędzie do komunikacji pomiędzy projektantem a końcowym użytkownikiem bazy danych,. Obiekty i relacje wywołują wrażenie jak gdyby były naturalnymi pojęciami modelowania Dla każdego systemu z wieloma magazynami i złożonymi strukturami danych ERD stanowi wartościowe narzędzie. 35 5. DIAGRAM SIECI PRZEJŚĆ (STATE TRANSMISION DIAGRAM) Diagram sieci przejść służy do przedstawiania zachowania w czasie systemów złożonych, a chodzi tu konkretnie o kolejność dostępu do danych i wykonywania funkcji. W wielu systemach występują skomplikowane zależności czasowe, które wymagają równie precyzyjnego modelowania jak funkcje i związki między danymi. Do niedawna modele zachowania systemu w czasie były istotne tylko dla specjalnej kategorii systemów zwanych systemami czasu rzeczywistego. Wiele z nich, to systemy bierne w tym sensie, że nie sterują one otaczającym je środowiskiem, lecz jedynie reagują na nie i gromadzą o nim informacje. Dla systemów handlowych zagadnienie to nie jest w zasadzie istotne, ponieważ kolejność wykonywania funkcji jest trywialna. Na przykład wykonanie pewnej funkcji nie jest możliwe dopóki nie otrzyma ona danych, które z kolei są wynikami innej funkcji. Dlatego też narzędzia tego nie będę szczegółowo omawiać. 36 V. SPECYFIKACJA SYSTEMU W OPARCIU O NARZDZIA ANALIZY STRUKTURALNE J Będziemy koncentrować się na systemie, który będzie zautomatyzowanym systemem informatycznym i który będzie częścią większego systemu. Będzie on współpracował z systemem księgowości, systemem magazynowania i kasą oddziału. Systemy z reguły są częścią innych większych systemów, ale zawsze też mogą być rozbite na mniejsze systemy. Aby dobrze zbudować nasz system, musimy rozumieć systemy, z którymi on współpracuje. Musimy dobrze się zastanowić co będzie wchodziło w skład systemu, a co nie. W fazie analizy systemu podstawowym celem jest określenie, czego użytkownik oczekuje od systemu, ze zwracaniem niewielkiej lub żadnej uwagi na technologię informatyczną, która będzie użyta do implementacji tych wymagań. Potrzeba do tego DFD, na którym będzie pokazany podział wymagań na oddzielne funkcje i interfejsy między funkcjami. Potrzeba też ERD do pokazania obiektów występujących jako dane pamiętane w systemie i związków między obiektami. Ponadto korzysta się ze słownika danych do gromadzenia definicji wszystkich elementów danych w systemie oraz jakiejś postaci tekstowego opisu formalnych reguł działania dla każdej z funkcji najniższego poziomu. Kluczową sprawą jest to aby wszystkie te modele były ze sobą zgodne. Jeśli DFD odwołuje się do elementu danych, którego nie ma w słowniku danych, to coś jest zle. Jeśli słownik danych definiuje elementy danych, które nie pojawiają się w żadnym innym modelu, to również coś jest zle. Jeśli DFD zawiera magazyny danych nie zdefiniowane na ERD, znowu mamy sprzeczność. Podobnie jest, jeśli ERD zawiera obiekty, które nie występują w słowniku danych ł nie są pokazane na DFD. System ten będzie systemem interakcyjnym. W związku z tym, dodatkowym zadaniem analityka jest dokładne wymodelowanie wszystkich możliwych komunikatów, których może udzielić system, a także przewidzenie wszystkich możliwych reakcji użytkownika na pytania komputera". 37 1. Faza rozpoznania Fazę analizy poprzedza faza rozpoznania. W ramach tej fazy mamy pierwszą styczność z działalnością firmy, dla której budujemy projekt. Dowiadujemy się na czym polega ta działalność i jak orientacyjnie wygląda praca w takiej firmie. Poza sprawą tematyki i ogólnych potrzeb nowego systemu, robimy rozpoznanie co do obecnej sytuacji. Mianowicie oceniamy poziom komputeryzacji w firmie. Badamy czy istnieje już jakiś system, i wówczas będziemy tworzyć nowy - ulepszony, czy też będziemy tworzyć zupełnie nowy system dla danej firmy. Ogólny opis działalności firmy System ma wspomagać obsługę firmy kosmetycznej, która rozprowadza swoje produkty za pośrednictwem sieci dystrybutorów. Zadaniem dystrybutorów jest znalezienie klientów, którzy będą zainteresowani kupnem kosmetyków. Jeżeli z jakiegoś powodu produkt nie przypadnie do gustu klientowi, to może go zwrócić dystrybutorowi w ciągu dziesięciu dni, natomiast dystrybutor może ten produkt zwrócić bez podania przyczyny w ciągu trzydziestu dni. Jednak jest ograniczenie co do ilości zwracanych produktów w ramach jednego zamówienia. Oprócz wspomnianych wyżej zwrotów można normalnie składać reklamacje na produkty w terminie do trzech miesięcy; nie wchodzą one oczywiście w skład liczby produktów dozwolonych do zwykłych zwrotów. Dystrybutor składa w firmie zamówienie na produkty, które wybrali jego klienci. Za każdy otrzymuje określoną ilość punktów. Dostaje on kosmetyki na kredyt, a należność za nie musi uregulować w ciągu trzydziestu dni. Następne zamówienie może być złożone dopiero po zapłaceniu ostatniego zamówienia. Przy dużych zamówieniach dystrybutor otrzymuje procentowe rabaty, w zależności od ilości sprzedanego towaru. Dystrybutor może prowadzić także inny rodzaj działalności w firmie: mianowicie rozbudowywać sieć dystrybutorów firmy poprzez werbowanie nowych członków (których to zostaje sponsorem). W zależności od pewnych kryteriów dotyczących wielkości własnej sieci i ilości sprzedanych produktów nadawany jest dystrybutorowi określony tytuł, oraz przyznawane są nagrody i przywileje. 38 Co pewien czas firma ponawia swoją ofertę (jest to tzw. kampania); to znaczy wprowadza nowe produkty, wycofuje mało atrakcyjne, zmienia ceny lub organizuje promocje. 2. Faza analizy Jak już wspomnieliśmy faza analizy zakłada zbudowanie modelu zasadniczego, który składa się z dwóch części: modelu środowiska i modelu zachowań. Elementami składowymi modelu środowiska są: określenie celu, diagram kontekstowy i lista zdarzeń. Model zachowania składa się natomiast z wstępnego modelowania zachowania według podziału na procesy oraz z wygładzania modelu zachowania poprzez równoważenie DFD. 2.1. MODEL ŚRODOWISKOWY 2.1.1. Określenie celu Celem systemu informatycznego jest obsługa sprzedaży produktów firmy kosmetycznej dystrybutorom. Obejmuje to: gromadzenie i przechowywanie informacji o dystrybutorach; wprowadzanie zamówień; - wystawianie faktur; przyjmowanie zwrotów i reklamacji; - pobieranie opłat członkowskich; deaktualłzację dystrybutorów; drukowanie różnego rodzaju zestawień dotyczących działalności firmy. 39 2.1.2. Diagram kontekstowy DISTRYBUTORZY KSIGOWOŚĆ dane dystrybutor ów, zamówienia, SYSTEM informac WSPOMAGA je o NIA ł i Informac Ż je o d kt zestawien ia, raport zestawie nowe nia, ceny, raporty o produkty d , f MARKETING System komunikuje się z sześcioma obiektami zewnętrznymi. Jak widać na diagramie są to dystrybutorzy, system księgowości, kasa, magazyny, a także zarząd i dział marketingu. Dystrybutorzy składają w firmie zamówienia, odbierają produkty, płacą za nie, zwracają produkty, składają reklamacje. Księgowość kontaktuje się ze światem zewnętrznym, jeśli chodzi o wszystkie sprawy finansowe firmy, dlatego też przesyłane są do niej wszystkie rodzaje faktur. Aby dystrybutorzy mogli składać kolejne zamówienie, musi być uiszczona opłata za poprzednie. Płatność jest dokonywana w kasie, a zamówienia są przyjmowane w zupełnie innym miejscu, dlatego konieczne jest przekazanie jak najszybciej tej informacji, żeby dystrybutor zaraz po zapłaceniu mógł złożyć kolejne zamówienie. 40 Magazyny dostarczają informacji o produktach, które są w danej chwili dostępne (na stanie). Natomiast zarząd i dział marketingu potrzebują do podejmowania różnych decyzji wielu różnych zestawień na temat sprzedaży. Zarząd podejmuje też decyzje o wprowadzaniu i wycofywaniu poszczególnych produktów oraz ustala ceny. 2.1.3. Lista zdarzeń Lista zdarzeń obejmuje 21 zdarzeń. Większość z nich to zdarzenia sterowane przepływem, ale są tez zdarzenia temporalne. Litera T po opisie zdarzenia oznacza zdarzenie temporalne. 1. Zgłasza się nowy dystrybutor. 2. Dystrybutor składa zamówienie. 3. Dystrybutor dokonuje zwrotu produktów. 4. Dystrybutor składa reklamacje na produkty. 5. Dystrybutor informuje o zmianie danych (adresu, nazwiska, telefonu). 6. Rozliczenia dokonywane w kasie firmowej. 7. Księgowość potrzebuje zestawienia wszystkich dystrybutorów, którzy maja nieuregulowane płatności w obowiązującym terminie. (T) 8. Wysłanie zamówienia do realizacji. 9. Wystawienie faktury zamówienia. 10. Zarząd wprowadza nowe ceny dla produktów. 11. Zarząd wprowadza nowe produkty. 12. Zarząd wycofuje produkty. 13. Zarząd ustala nowe limity dla dystrybutorów. 14. Zarząd i marketing potrzebuj ą zestawienia. (T) 15. Dezaktualizacja dystrybutorów. (T) 16. Zerowanie ilości punktów za sieć na koniec miesiąca. (T) 17. Nadanie dystrybutorom tytułów. (T) 18. Marketing prosi o nalepki adresowe z bazy danych o klientach. 41 2.2. MODEL ZACHOWANIA 2.2.1. Podział według procesów Zdarzenie l : Zgłasza się nowy dystrybutor DYSTYBUT dane OR dystrybutora, rachunek umowa PRZYJMIJ NOWEGO DYSTRYBUTORA Do firmy przychodzi osoba z wyrażeniem chęci stania się dystrybutorem. Wypełnia ona formularz danych osobowych. Po zgodzie pracownika firmy na przyjęcie danej osoby płaci ona opłatę rejestracyjną w kasie, a następnie podpisuje umowę. Po ustaleniu tych formalności wprowadzane są dane nowego dystrybutora. Oczywiście przyszły dystrybutor dostaje w kasie rachunek za uiszczoną opłatę, ale oba te obiekty są zewnętrzne w stosunku do modelowanego systemu, dlatego nie jest to pokazana na diagramie. 42 Zdarzenie 2 : Dystrybutor składa zamówienie informacj a o zamówienie 2. PRZYJMI J Ó POZYCJE ZAMÓWIE Dystrybutor składa formularz zamówienia z pozycjami produktów w ilości jaką chciałby zamówić i innymi potrzebnymi informacjami. Przed przyjęciem zamówienia sprawdzana jest odpłatność za poprzednie zamówienie. Jeśli dystrybutor dokonał wpłaty w kasie, to wiadomość ta znajduje się już w systemie, jeśli natomiast przynosi dowód wpłaty, której dokonał na przykład w urzędzie pocztowym, to należy wprowadzić informacje o zapłaceniu zamówienia. Następnie wprowadzane są informacje dotyczące przyjmowanego zamówienia. 43 Zdarzenie 3 : Dystrybutor dokonuje zwrotu produktów FAKTURY DOSTARCZON E POZYCJE ZAMÓWIENI ilość A dostarczone go produktu nazwa produktu PRODUKT ilość już zwrócony Y ch REKLAMAC JE FAKTU RY Żeby zwrot został przyjęty, musi być na to zgoda pracownika przyjmującego zwracany(e) produkt(y) - sprawdza je on pod względem jakości i ilości zużytego produktu. Jeśli pracownik wyrazi zgodę, musi on sprawdzić fakturę, z którą przyszedł dystrybutor (czy zgadza się numer). Następnie należy sprawdzić czy nie został już przekroczony limit zwrotów i czy produkt ten nie był już wcześniej zwracany z tego zamówienia, czy były jakieś reklamacje. Jeśli wszystko się zgadza wprowadzany jest zwrot i wystawiana jest faktura dla tego zwrotu (dla niej to pobierane są dane o dystrybutorze i nazwa produktu). 44 Zdarzenie 4 : Dystrybutor składa reklamacje na produkty DYSTRYBUTOR DOSTARCZO nume r NE faktura POZYCJE zamówie ilość faktu dostarczone ra go nazwa 4. PRODUKTY produk PRZYJMI J ilość już zwrócony DYSTRYBUTORZY ilość już REKLAMACJE zwrócony FAKTU RY Pracownik podejmuje decyzję czy przyjąć reklamację na dany produkt. Jeśli pracownik wyrazi zgodę, musi on sprawdzić fakturę, z którą przyszedł dystrybutor (czy zgadza się numer). Następnie należy sprawdzić czy cała ilość danego produktu nie została już zwrócona poprzez zwroty dopuszczalne lub reklamacje. Jeśli wszystko się zgadza reklamacja jest wprowadzana i wystawiana jest faktura taka sama jak dla zwykłych zwrotów. 45 Zdarzenie 5 : Dystrybutor informuje o zmianie danych (adresu, nazwiska, telefonu) DYSTRYBUTOR AKTUALIZ UJ DANE DYSTRYBUTO RZY \ ID dystrybutora + nazwisko / adres / telefon Informacje o dystrybutorach są bardzo istotne, gdyż umożliwiają różnego rodzaju kontakt z nim. Takie dane istotne są dla marketingu, który pobiera je z budowanego systemu, na przykład w celu wysłania nowych katalogów, bezpłatnych magazynów na temat działalności firmy, zaproszeń na spotkania, szkolenia itp. 46 Zdarzenie 6 : Rozliczenia dokonywane w kasie firmowej Dystrybutor może dokonać płatności w kasie lub za pośrednictwem innych instytucji, takich jak bank czy urząd pocztowy. Jeśli płatności dokonuje on w kasie, to fakt ten dostarcza do systemu informacji dotyczących faktury takich jak data i rodzaj płatności, w przeciwnym razie zostają one wprowadzone przy okazji przyjęcia zamówienia. Drugi aspekt rozliczeń dotyczy zwrotu należności za produkty, które zostały zwrócone lub na które zostały złożone reklamacje. Można tego dokonać dopiero przy pierwszej okazji płacenia za kolejne zamówienie. 47 Zdarzenie 7 : Księgowość potrzebuje zestawienia wszystkich dystrybutorów, którzy maja nieuregulowane płatności w obowiązującym terminie. Faktury przechowują dane dotyczące ich wystawiania, ale także i płatności za nie. Zarząd potrzebuje wykaz dystrybutorów, którzy maja nieuregulowane płatności, żeby móc ewentualnie je egzekwować. 48 Zdarzenie 8 : Wysłanie zamówienia do realizacji Zamówienie jest przygotowywane w magazynie, dlatego też musi on otrzymać informacje o zamawianych przez dystrybutora produktach. W magazynie dopiero okazuje się jakie produkty są w danej chwili na składzie i w jakich ilościach mogą być dostarczone dla danego dystrybutora. Poza tym potrzebne są dane dystrybutora do wydrukowania nalepki na przygotowana paczkę. Dodatkową czynnością tego procesu jest wyszukanie pozycji ostatniego zamówienia i sprawdzenia czy zostały dostarczone pozycje, które proszono ponowić przy następnym zamówieniu (w razie chwilowych braków).; jeśli nie, to należy dołączyć je do tego zamówienia. Sprawdzamy czy przygotowywane produkty mieszczą się w limicie kredytowym. 49 Zdarzenie 9 : Wystawienie faktury zamówienia Wystawienie faktury jest najbardziej skomplikowanym procesem w całym systemie. Podczas równoważenia DFD na pewno można będzie ten proces rozłożyć na kilka poziomów w dół. Wystawiając fakturę należy wziąć pod uwagę oczywiście cenę i ilość produktów. Należy również policzyć punkty za obecne zamówienie i dodać do nich punkty, które zarobiła cała sieć danego dystrybutora. Na podstawie tych punktów można odnalezć wielkość rabatu, który również trzeba uwzględnić. Na koniec należy odnalezć sponsora, któremu należy dodać punkty za zamówienie, na które to jest wystawiana faktura oraz każdego sponsora nad nim. 50 Zdarzenie 10 : Zarząd wprowadza nowe ceny dla produktów Co jakiś czas zarząd wprowadza nowe ceny produktów. Czasami są to tylko chwilowe promocje. Ważne jest, żeby system przechowywał te ceny, na przykład dla odliczenia zwrotów lub reklamacji. Zdarzenie 11 : Zarząd wprowadza nowe produkty. Oprócz nazw i cen, może zaistnieć potrzeba wprowadzenia produktów do serii. 51 Zdarzenie 12 : Zarząd wycofuje produkty Produkt może zostać wycofany z oferty nagle z powodu odgórnego zarządzenia, ale zwykle informacja taka przychodzi z magazynu, w którym skończyły się pewne produkty, a kontynuacja ich produkcji jest wstrzymana. Produkty nie są usuwane z systemu. System przechowuje informacje o wszystkich produktach, które kiedykolwiek były w sprzedaż. Czyni je po prostu nieaktualnymi. Zdarzenie 13 : Zarząd ustala nowe limity dla klientów Każdy dystrybutor ma przyznany tytuł. Z tytułem związany jest przyznawany limit kredytowy dzięki, któremu dystrybutor może otrzymać produkty na wydłużony termin płatności. 52 Zdarzenie 14 : Zarząd i marketing potrzebują zestawienia Zarząd prosi o zestawienia statystyczne dotyczące sprzedaży, na podstawie których może kontrolować kondycję firmy. Marketing potrzebuje takich zestawień do śledzenia zapotrzebowania rynku. Dzięki zestawieniom tym wyłapuje się" produkty, które często są zwracane lub te, na które składanych jest wiele reklamacji. 53 Zdarzenie 15 : Dezaktualizacja dystrybutora (po roku) Dezaktualizacja może być wykonana z dwóch powodów. Pierwsza sytuacja, to taka, gdy dystrybutor nie złożył, żadnego zamówienia przez ostatni okrągły rok. Druga natomiast, to rezygnacja dystrybutora. Zdarzenie 16 : Zerowanie ilości punktów za siec na koniec miesiąca Punkty premiowe za sieć przyznawane są tylko wtedy, gdy w ciągu miesiąca została zebrana odpowiednia ich ilość. Wobec tego pod koniec miesiąca zostaje ona resetowana. 54 Zdarzenie 17 : Nadanie dystrybutorom tytułów Dystrybutor dzięki tytułom posiada pewne przywileje, większe limity kredytowe itp. Jednak, żeby dostać oraz utrzymać nadany tytuł należy spełniać pewne wymogi związane z ilością, zamawianych produktów oraz wielkością rozbudowanej sieci. Zdarzenie 18 : Marketing prosi o nalepki adresowe dla dystrybutorów Marketing potrzebuje nalepki adresowe do wysyłania różnego rodzaju informacji o szkoleniach, ofertach, promocjach i nagrodach. Rozsyła je do różnych grup dystrybutorów. 55 2.2.2. Równoważenie DFD Diagramy procesów przedstawione w poprzednim punkcie przedstawiają pojedynczy poziom DFD. Niestety przedstawienie ich na pojedynczym diagramie stwarza zbyt skomplikowany obraz. Dlatego też należy utworzyć przynajmniej jeden wyższy poziom. Najpierw należy pogrupować procesy według pewnego kryterium. Tym sposobem otrzymaliśmy sześć procesów, które pojawia się na diagramie poziomu zerowego. Diagram O przedstawiony jest na następnej stronie. Ze względu na jego złożoność nie występują na nim wejścia i wyjścia procesów. Niektóre magazyny zostały powtórzone dla przejrzystości. Są one oznaczone ukośna kreską. Procesy zawarte w diagramie poziomu zerowego to: 1. Obsłuż dystrybutora - proces ten obejmuje wszystkie procesy, które komunikują się z Dystrybutorami. Są to procesy pobierające wszelkie informacje wejściowe dotyczące dystrybutorów, przejmujące od nich produkty, które zwraca lub na które dokonuje on reklamacji, jak również przyjmuje on rezygnację dystrybutora z dalszej działalności w firmie. 2. Realizuj zamówienie - proces ten obejmuje działanie dotyczące przygotowanie zamówienia, łącznie z pozycjami, które należy ponowić z ostatniego zamówienia, wysłanie takiego zamówienia do magazynu i odebranie gotowych produktów. 3. Wystaw fakturę - ten proces obejmuje wszystkie czynności związane z zestawieniem produktów gotowych do odebrania, wyliczenia rabatów za całą dla której dany dystrybutor jest sponsorem, sprawdzenia czy produkty te nie wychodzą poza przyznany limit kredytowy, odliczenia wartości zwróconych produktów i ostatecznie wystawienie całkowitej faktury. 4.Wykonaj operacje miesięczne - co miesiąc dokonuje się pewnych aktualizacji, które obejmują, dezaktualizację dystrybutorów, resetowanie punktów za sieć, nadawanie nowych tytułów, a także wykonuje się zestawienie dystrybutorów, którzy mają niezapłacone faktury w podanym terminie. S.Współpracuj z kierownictwem -jak wynika z nazwy procesu, aktualizuje on system zgodnie z ustalonymi przez kierownictwo zarządzeniami, jak również przygotowuje dla niego i dla marketingu zestawienia ułatwiającego kontrolę nad sytuacją w firmie i nie tylko. 6. Wprowadz płatność - proces ten jest procesem elementarnym. Przekazuje on do systemu informację o zapłaceniu faktury w firmowej kasie. 57 Zrównoważony diagram O 58 59 Diagram LI. (Proces L L Przyjmij nowego dystrybutora) Diagram 1.3. (Proces 1.3. Przyjmij zamówienie) 60 Diagram 1.4. (Proces 1.4. Przyjmy zwrot) Diagram 1.5. (Proces 1.5. Przyjmij reklamację) Diagram 2. (Proces 2. Realizuj zamówienie) Diagram 2.1. (Proces 2.1. Przygotuj zamówienie) 62 Diagram 3. (Proces 3. Wystaw fakturę) Diagram 4. (Proces 4. Wykonaj operacje miesięczne) 63 Diagram 5. (Proces 5. Współpracuj z kierownictwem) Diagram 6. (Proces 6. Wprowadz płatność) 64 2.3. SAOWNIK DANYCH 65 66 67 68 69 70 2.4. SPECYFIKACJE PROCESÓW Proces 1.4.3. BEGIN WCZYTAJ id_produktu (id_p), który dystrybutor chce zwrócić WCZYTAJ numer Jaktury (id_f), której dotyczy zwrot produktu WYSZUKAJ id_zamówenia (id_z), dla tej faktury JX)WHILE WYSZUKAJ takąpoz_zamówienia, dla tego zamówienia, dla której id_prodnktu=id_p IF znaleziono THEN ZNAJDy dla tej pozycji dostjozycją ODCZYTAJ ilość_dost (A) ENDIF ENDDO WYSZUKAJ id_zamówienia (id_z2) poprzedzającego zamówienie id_z DOWfflLE WYSZUKAJ \akapoz_zamo-wiema, dla zamówienia id_z2, dla której (id_produktu=id_p AND dla której wartość czy_ponowić = 'TAK' AND (dla której istnieje dost_pozycja,, dla której numer_faktury=id_f)) IF znaleziono THEN ODCZYTAJ ilość_dost (B) END IF ENDDO DODAJ A+ B (D) Z = 0 DOWHAE WYSZUKAJ numer faktury_zwrotu, dla której (numerJ~aktury=iA_f AND id_prodiiktu=id_p) IF znaleziono THEN ODCZYTAJ ilość_zwrac (X) END IF IF jest to zwrot THEN Z = Z + X ELSER = R+XENDIF ENDDO OBLICZ wszystkie zwrócone produkty na fakturę id_f (WZ) MAX= maksymalna ilość produktów, które można zwrócić IF (WZ = MAX) THEN WYŚWIETL Oddano maks. ilość zwrotów na fakturę" ELSE IF (R + D = D) THEN WYŚWIETL Zwrócono wszystkie produkty o tym numerze na to zamówienie" ELSE IF (R + Z < D) THEN S = minimum {MAX-WZ, D-(R+Z)} WYŚWIETL Można zwrócić (S) produktów o podanym numerze" ENDIF END 71 Proces 1.5.3. BEGIN WCZYTAJ idjroduktu (idjp), który dystrybutor chce zwrócić WCZYTAJ numer Jaktury (id_f), której dotyczy składana reklamacja WYSZUKAJ id_zamówienia (id_z), dla tej faktury DOWHTLE WYSZUKAJ takąpozjzamówienia, dla tego zamówienia, dla której id_produktu=i&_$ JJF znaleziono THEN ZNAJDy dla tej pozycji dost_pozycję ODCZYTAJ ilość_dost (A) ENDIF ENDDO WYSZUKAJ id_zamó\vienia (id_z2) poprzedzającego zamówienie id_z DOWHILE WYSZUKAJ takąpozjzamówienia, dla zamówienia id_z2, dla której (id_produktu=id_p AND dla której wartość czy_pono-wić = 'TAK' AND (dla której istnieje dost_pozycja,, dla której numer_faktury=id_f)) IF znaleziono THEN ODCZYTAJ ilość_dost (B) END IF ENDDO DODAJ A + B (D) ZR = 0 DOWHILE WYSZUKAJ numer Jaktury_zwrotu, dla której (numerJaktury = id_f AND idjroduktu = id_p) IF znaleziono THEN ODCZYTAJ ilość_zwrac (X) ZR = ZR + X ENDIF ENDDO ELSE IF (ZR = D) THEN WYŚWIETL Zwrócono wszystkie produkty o tym numerze na tę fakturę" ELSEIF(ZRN S = D-ZR WYŚWIETL Można przyjąć reklamację w ilości (S) produktów o podanym numerze" ENDIF END 72 2.5. DIAGRAM ZWIZKÓW ENCJI 73 Objaśnienia do poszczególnych związków Większość osób staje się dystrybutorami poprzez wprowadzenie do firmy poprzez innego dystrybutora. Taki dystrybutor staje się sponsorem osoby, którą wprowadził. Nie wszystkie jednak osoby muszą mieć swojego sponsora, ponieważ są i takie, które zgłosiły się same do firmy. Dystrybutorom są nadawane tytuły, które są związane z różnymi przywilejami, większymi limitami kredytowymi. Dlatego też dystrybutor już w chwili rejestracji otrzymuje najniższy rangą tytuł. Mogą istnieć tytuły, których jeszcze nikomu nie przydzielono, na przykład nikt nie doszedł do najwyższego szczebla. Tytuły dla dystrybutorów mogą się zmieniać na koniec każdego miesiąca, kiedy to sprawdzana jest działalność każdego z nich i przydzielane są mu coraz wyższe tytuły lub jest on degradowany do niższego stopnia. Dlatego też pojedynczy dystrybutor może posiadać wiele tytułów, a aktualny odszukiwany jest po dacie nadania. Encja TyiufJDysfr jtsi nadaniem tytułu dystrybutorowi. 74 Dystrybutor po rejestracji nie ma jeszcze na koncie żadnego zamówienia, ale w trakcie działalności może ich uzbierać się bardzo dużo. Za to zamówienie jest ściśle związane z dystrybutorem. Może ono być wystawione tylko dla jednego dystrybutora. Zamówienie składa się z pozycji zamówień, żeby w ogóle było zamówienie musi być przynajmniej jedna taka pozycja. Dana pozycja może się odnosić tylko do konkretnego zamówienia. Pozycja zamówienia zawiera tylko jeden produkt, ale z kolei nie wszystkie produkty są zamawiane; na przykład produktu, który dopiero został wprowadzony, nikt jeszcze nie zamówił. 75 Każdy produkt ma określoną cenę. Cena produktu zmienia się dlatego aktualną cenę można rozpoznać i wyszukać po najpózniej szej dacie. Cena dotyczy tylko jednego produktu. Niektóre produkty wchodzą w skład serii. Żeby taka seria powstała musi być przynajmniej jeden produkt. Dany produkt zaś może należeć tylko do jednej serii. 76 Pozycje zamówienia są podstawą do przygotowania zamówienia. Jeśli dany produkt jest w danej chwili na składzie, to wejdzie on w skład dostarczanych produktów. Może jednak zmienić się jego ilość. Jeśli nie ma produktu na składzie, pozycja ta jest pozycją nie dostarczoną. Zwrot jest związany z konkretną dostawą. Żeby oddać jakiś produkt, musimy dokładnie wskazać, skąd on pochodzi (z jakiej dostawy), żeby zidentyfikować, że na pewno został dostarczony, a nie tylko zamówiony. Na daną dostawę może nie być żadnych zwrotów, a może też się zdarzyć, że dokonano ich kilka. Mamy tu do czynienia ze związkiem typu 'is-a'. Reklamacja ma wszystkie pola identyczne jak zamówienie, ale oprócz tego ma jedno dodatkowe pole, w którym można przechowywać uwagi na temat reklamacji. 77 Faktura zwrotu jest tworzona, gdy zwracane są jakieś produkty. Na jednej fakturze możemy umieścić kilka różnych zwrotów, ale oczywiście jeden zwrot może się znalezć tylko na jednej fakturze zwrotu. Faktura dotyczy tylko jednej dostawy. Przy wystawianiu faktury zawsze bierze się pod uwagę przysługujący rabat, jeden dla każdej faktury. Natomiast niektóre rabaty mogą nie być jeszcze w ogóle uwzględniane. 78