OOAD - Modelowanie funkcjonalne

Modelowanie funkcjonalne daje perspektywę procesową modelu analizy zorientowanej obiektowo i przegląd tego, co system ma robić. Definiuje funkcje procesów wewnętrznych w systemie przy pomocy Diagramów Przepływu Danych (DFD). Przedstawia funkcjonalne wyprowadzenie wartości danych bez wskazania, w jaki sposób są one uzyskiwane podczas ich obliczania, ani dlaczego należy je obliczyć.

Diagramy przepływu danych

Modelowanie funkcjonalne jest reprezentowane przez hierarchię DFD. DFD to graficzna reprezentacja systemu, która pokazuje dane wejściowe do systemu, przetwarzanie na wejściach, wyjścia systemu, a także wewnętrzne magazyny danych. DFD ilustrują serię transformacji lub obliczeń wykonywanych na obiektach lub systemie oraz zewnętrzne elementy sterujące i obiekty, które wpływają na transformację.

Rumbaugh i in. zdefiniowali DFD jako: „Diagram przepływu danych to wykres, który pokazuje przepływ wartości danych z ich źródeł w obiektach poprzez procesy, które przekształcają je w miejsca docelowe w innych obiektach”.

Cztery główne części DFD to:

  • Processes,
  • Przepływy danych,
  • Aktorzy i
  • Magazyny danych.

Pozostałe części DFD to -

  • Ograniczenia i
  • Przepływy sterowania.

Cechy DFD

Procesy

Procesy to czynności obliczeniowe, które przekształcają wartości danych. Cały system można wizualizować jako proces wysokiego poziomu. Proces można dalej podzielić na mniejsze komponenty. Proces najniższego poziomu może być prostą funkcją.

Representation in DFD - Proces jest reprezentowany jako elipsa z wpisaną w nim nazwą i zawiera stałą liczbę wejściowych i wyjściowych wartości danych.

Example - Poniższy rysunek przedstawia proces Compute_HCF_LCM, który przyjmuje dwie liczby całkowite jako wejścia i wyjścia ich HCF (najwyższy wspólny współczynnik) i LCM (najmniejsza wspólna wielokrotność).

Przepływy danych

Przepływ danych reprezentuje przepływ danych między dwoma procesami. Może znajdować się między aktorem a procesem lub między magazynem danych a procesem. Przepływ danych oznacza wartość elementu danych w pewnym momencie obliczenia. Ta wartość nie jest zmieniana przez przepływ danych.

Representation in DFD - Przepływ danych jest reprezentowany przez skierowany łuk lub strzałkę oznaczoną nazwą przenoszonego elementu danych.

Na powyższym rysunku Integer_a i Integer_b reprezentują przepływy danych wejściowych do procesu, podczas gdy LCM i HCF są wyjściowymi przepływami danych.

Przepływ danych może zostać rozwidlony w następujących przypadkach:

  • Wartość wyjściowa jest wysyłana w kilka miejsc, jak pokazano na poniższym rysunku. Tutaj strzałki wyjściowe nie są oznaczone, ponieważ oznaczają tę samą wartość.

  • Przepływ danych zawiera zagregowaną wartość, a każdy ze składników jest wysyłany w różne miejsca, jak pokazano na poniższym rysunku. Tutaj każdy z rozwidlonych komponentów jest oznaczony.

Aktorzy

Aktorzy to aktywne obiekty, które wchodzą w interakcję z systemem poprzez wytwarzanie danych i wprowadzanie ich do systemu lub konsumpcję danych wytworzonych przez system. Innymi słowy, aktorzy służą jako źródła i zlewiska danych.

Representation in DFD- Aktor jest reprezentowany przez prostokąt. Aktorzy są podłączeni do wejść i wyjść i leżą na granicy DFD.

Example - Poniższy rysunek przedstawia aktorów, a mianowicie Customer i Sales_Clerk w systemie sprzedaży kasowej.

Magazyny danych

Magazyny danych to pasywne obiekty, które działają jako repozytorium danych. W przeciwieństwie do aktorów nie mogą wykonywać żadnych operacji. Służą do przechowywania danych i pobierania przechowywanych danych. Reprezentują strukturę danych, plik dyskowy lub tabelę w bazie danych.

Representation in DFD- Składnica danych jest reprezentowana przez dwie równoległe linie zawierające nazwę magazynu danych. Każdy magazyn danych jest połączony z co najmniej jednym procesem. Strzałki wejściowe zawierają informacje umożliwiające modyfikację zawartości magazynu danych, natomiast strzałki wyjściowe zawierają informacje pobrane z magazynu danych. Kiedy część informacji ma zostać pobrana, strzałka wyjścia jest oznaczona etykietą. Strzałka bez etykiety oznacza pełne pobranie danych. Strzałka dwukierunkowa oznacza zarówno pobieranie, jak i aktualizację.

Example- Poniższy rysunek przedstawia magazyn danych Sales_Record, który przechowuje szczegóły wszystkich sprzedaży. Dane wejściowe do magazynu danych obejmują szczegóły sprzedaży, takie jak pozycja, kwota faktury, data itp. Aby znaleźć średnią sprzedaż, proces pobiera rekordy sprzedaży i oblicza średnią.

Ograniczenia

Ograniczenia określają warunki lub ograniczenia, które muszą być spełnione w czasie. Pozwalają dodawać nowe reguły lub modyfikować istniejące. Wiązania mogą pojawić się we wszystkich trzech modelach analizy obiektowej.

  • W modelowaniu obiektów więzy definiują relacje między obiektami. Mogą również określać relacje między różnymi wartościami, które obiekt może przyjmować w różnym czasie.

  • W modelowaniu dynamicznym więzy definiują relacje między stanami i zdarzeniami różnych obiektów.

  • W modelowaniu funkcjonalnym ograniczenia definiują ograniczenia dotyczące przekształceń i obliczeń.

Representation - Ograniczenie jest renderowane jako ciąg w nawiasach.

Example- Poniższy rysunek przedstawia część DFD do obliczania wynagrodzeń pracowników firmy, która zdecydowała się wprowadzić zachęty dla wszystkich pracowników działu sprzedaży i podwyższyć wynagrodzenie wszystkich pracowników działu HR. Można zauważyć, że ograniczenie {Dział: Sprzedaż} powoduje obliczenie zachęty tylko wtedy, gdy działem jest dział sprzedaży, a ograniczenie {Dział: HR} powoduje, że przyrost jest obliczany tylko wtedy, gdy działem jest dział HR.

Przepływy sterowania

Proces może być powiązany z pewną wartością logiczną i jest oceniany tylko wtedy, gdy wartość jest prawdziwa, chociaż nie jest bezpośrednim wejściem do procesu. Te wartości logiczne nazywane są przepływami sterowania.

Representation in DFD - Przepływy sterowania są reprezentowane przez przerywany łuk od procesu wytwarzającego wartość logiczną do procesu przez nie sterowanego.

Example- Poniższy rysunek przedstawia DFD dla dzielenia arytmetycznego. Dzielnik jest testowany pod kątem wartości niezerowej. Jeśli nie jest to zero, przepływ sterowania OK ma wartość True, a następnie proces dzielenia oblicza iloraz i resztę.

Opracowanie modelu DFD systemu

W celu opracowania modelu DFD systemu budowana jest hierarchia DFD. DFD najwyższego poziomu składa się z pojedynczego procesu i współdziałających z nim aktorów.

Na każdym kolejnym niższym poziomie stopniowo wprowadzane są dalsze szczegóły. Proces jest rozkładany na podprocesy, identyfikowane są przepływy danych między podprocesami, określane są przepływy sterowania i definiowane są magazyny danych. Podczas dekompozycji procesu przepływ danych do lub z procesu powinien odpowiadać przepływowi danych na następnym poziomie DFD.

Example- Rozważmy system oprogramowania Wholesaler Software, który automatyzuje transakcje w hurtowni. Sklep sprzedaje w dużych ilościach i ma klientów składających się z kupców i właścicieli sklepów detalicznych. Każdy klient proszony jest o zarejestrowanie się ze swoimi danymi i otrzymuje unikalny kod klienta C_Code. Po zakończeniu sprzedaży sklep rejestruje swoje dane i wysyła towar do wysyłki. Każdego roku sklep rozdaje klientom prezenty świąteczne, na które składają się srebrna lub złota moneta, w zależności od wielkości sprzedaży i decyzji właściciela.

Model funkcjonalny oprogramowania hurtowego podano poniżej. Poniższy rysunek przedstawia najwyższy poziom DFD. Pokazuje oprogramowanie jako pojedynczy proces i aktorów, którzy z nim współdziałają.

Aktorzy w systemie to -

  • Customers
  • Salesperson
  • Proprietor

Na kolejnym poziomie DFD, jak pokazano na poniższym rysunku, identyfikuje się główne procesy systemu, definiuje się magazyny danych i tworzy interakcję procesów z aktorami oraz tworzy się magazyny danych.

W systemie można zidentyfikować trzy procesy, którymi są:

  • Zarejestruj klientów
  • Sprzedaż procesowa
  • Pewne prezenty

Wymagane magazyny danych to:

  • Szczegóły klienta
  • Szczegóły sprzedaży
  • Szczegóły prezentu

Poniższy rysunek przedstawia szczegóły procesu Zarejestruj klienta. Są w nim trzy procesy: Weryfikuj szczegóły, Generuj kod C_Code i Aktualizuj szczegóły klienta. Po wprowadzeniu danych klienta są one weryfikowane. Jeśli dane są poprawne, generowany jest kod C_Code i aktualizowany jest magazyn danych Customer Details.

Poniższy rysunek przedstawia rozszerzenie procesu ustalania prezentów. Ma w sobie dwa procesy, Znajdź całkowitą sprzedaż i Zdecyduj o rodzaju monety upominkowej. Proces Znajdź łączną sprzedaż oblicza roczną sprzedaż całkowitą odpowiadającą każdemu klientowi i rejestruje dane. Biorąc ten rekord i decyzję właściciela jako dane wejściowe, monety podarunkowe są przydzielane w procesie Decide Type of Gift Coin.

Zalety i wady DFD

Zalety Niedogodności
DFD przedstawiają granice systemu, a tym samym są pomocne w przedstawianiu relacji między obiektami zewnętrznymi a procesami w systemie. Tworzenie DFD zajmuje dużo czasu, co może nie być wykonalne ze względów praktycznych.
Pomagają użytkownikom w zdobyciu wiedzy o systemie. DFD nie dostarczają żadnych informacji o zachowaniu zależnym od czasu, tj. Nie określają, kiedy transformacje są wykonywane.
Graficzna reprezentacja służy jako plan dla programistów do opracowania systemu. Nie rzucają one światła na częstotliwość wykonywania obliczeń ani na powody ich wykonywania.
DFD dostarczają szczegółowych informacji o procesach systemowych. Przygotowanie DFD to złożony proces wymagający dużej wiedzy specjalistycznej. Trudno jest to również zrozumieć osobie nietechnicznej.
Są używane jako część dokumentacji systemu. Metoda przygotowania jest subiektywna i pozostawia wiele miejsca na nieprecyzyjne.

Relacja między modelami obiektowymi, dynamicznymi i funkcjonalnymi

Model obiektowy, model dynamiczny i model funkcjonalny uzupełniają się wzajemnie, zapewniając pełną analizę zorientowaną obiektowo.

  • Modelowanie obiektowe rozwija statyczną strukturę systemu oprogramowania w kategoriach obiektów. W ten sposób ukazuje „wykonawców” systemu.

  • Modelowanie dynamiczne rozwija czasowe zachowanie obiektów w odpowiedzi na zdarzenia zewnętrzne. Pokazuje sekwencje operacji wykonywanych na obiektach.

  • Model funkcjonalny daje przegląd tego, co system powinien robić.

Model funkcjonalny i model obiektowy

Cztery główne części modelu funkcjonalnego pod względem modelu obiektowego to:

  • Process - Procesy implikują metody obiektów, które mają zostać wdrożone.

  • Actors - Aktorzy to obiekty w modelu obiektowym.

  • Data Stores - Są to obiekty w modelu obiektowym lub atrybuty obiektów.

  • Data Flows- Przepływy danych do lub od aktorów reprezentują operacje na obiektach lub przy ich pomocy. Przepływy danych do lub z magazynów danych reprezentują zapytania lub aktualizacje.

Model funkcjonalny i model dynamiczny

Model dynamiczny określa, kiedy operacje są wykonywane, podczas gdy model funkcjonalny określa, jak są one wykonywane i jakie argumenty są potrzebne. Ponieważ aktorzy są obiektami aktywnymi, model dynamiczny musi określać, kiedy działa. Magazyny danych są obiektami pasywnymi i odpowiadają tylko na aktualizacje i zapytania; dlatego model dynamiczny nie musi określać, kiedy działają.

Model obiektowy i model dynamiczny

Model dynamiczny pokazuje stan obiektów i operacje wykonywane na wystąpieniach zdarzeń i późniejsze zmiany stanów. Stan obiektu w wyniku zmian jest pokazany w modelu obiektu.