Rozwój systemu Jacksona

Jackson System Development ( JSD ) to liniowa metodologia tworzenia oprogramowania opracowana przez Michaela A. Jacksona i Johna Camerona w latach 80. XX wieku.

Historia

JSD został po raz pierwszy przedstawiony przez Michaela A. Jacksona w 1982 roku w artykule zatytułowanym „Metoda rozwoju systemu”. aw 1983 r. w rozwoju systemu . Jackson System Development (JSD) to metoda rozwoju systemu, która obejmuje cykl życia oprogramowania bezpośrednio lub poprzez zapewnienie struktury, w której można zmieścić bardziej wyspecjalizowane techniki. Jackson System Development można rozpocząć od etapu projektu, na którym istnieje tylko ogólne zestawienie wymagań. Jednak wiele projektów, w których wykorzystano Jackson System Development, faktycznie rozpoczęło się nieco później w cyklu życia, wykonując pierwsze kroki głównie na podstawie istniejących dokumentów, a nie bezpośrednio z użytkownikami. Późniejsze kroki JSD tworzą kod ostatecznego systemu. Pierwsza metoda Jacksona, Jackson Structured Programming (JSP), jest używana do tworzenia końcowego kodu. Wynikiem wcześniejszych kroków JSD jest zestaw problemów projektowych programu, których projektowanie jest przedmiotem JSP. Konserwacja jest również rozwiązywana poprzez przeróbkę dowolnego z wcześniejszych kroków, które są odpowiednie.

JSD nadal ewoluował, a do metody wprowadzono kilka nowych funkcji. Zostały one opisane w zbiorze artykułów Johna Camerona, JSP i JSD z 1989 r . oraz w wersji 1992 (wersja 2) podręcznika LBMS JSD.

Rozwój metody JSD dobiegł końca na początku lat 90. XX wieku, gdy myślenie Jacksona przekształciło się w podejście ram problemów wraz z publikacją Wymagania i specyfikacje oprogramowania (1995) oraz Ramy problemów: analiza i struktura problemów rozwoju oprogramowania (2000).

Zasady działania

Trzy podstawowe zasady działania JSD to:

  • Rozwój musi zaczynać się od opisu i modelowania świata rzeczywistego, a nie od określania czy strukturyzacji funkcji pełnionych przez system. System wykonany metodą JSD przeprowadza symulację świata rzeczywistego, zanim zostanie zwrócona bezpośrednia uwaga na funkcję lub przeznaczenie systemu.
  • Adekwatny model świata uporządkowanego w czasie sam musi być uporządkowany w czasie. Głównym celem jest mapowanie postępu w świecie rzeczywistym na postęp w systemie, który go modeluje.
  • Sposób wdrożenia systemu opiera się na przekształceniu specyfikacji w wydajny zbiór procesów. Procesy te powinny być zaprojektowane w taki sposób, aby możliwe było ich uruchomienie na dostępnym oprogramowaniu i sprzęcie.

kroki JSD

Kiedy została pierwotnie zaprezentowana przez Jacksona w 1982 roku, metoda składała się z sześciu kroków:

  1. Krok encji/działania
  2. Początkowy krok modelu
  3. Interaktywny krok funkcji
  4. Krok funkcji informacyjnej
  5. Krok taktowania systemu
  6. Etap wdrożenia systemu

Później niektóre kroki połączono, aby stworzyć metodę składającą się tylko z trzech kroków.

  1. Etap modelowania (analiza): z etapem encja/działanie i etapem struktury encji .
  2. Etap sieci (projekt): z początkowym krokiem modelu , krokiem funkcji i krokiem taktowania systemu .
  3. Etap wdrożenia (realizacja): etap wdrożenia.

Etap modelowania

Na etapie modelowania projektant tworzy zbiór diagramów struktury bytów i identyfikuje byty w systemie, czynności, które wykonują, uporządkowanie czasowe akcji w życiu bytów oraz atrybuty akcji i bytów. Diagramy struktury encji wykorzystują notację diagramów diagramów strukturalnych programowania strukturalnego Jacksona . Celem tych diagramów jest stworzenie pełnego opisu aspektów systemu i organizacji. Deweloperzy muszą zdecydować, które rzeczy są ważne, a które nie. Bardzo ważna jest dobra komunikacja pomiędzy deweloperami a użytkownikami nowego systemu.

Ten etap jest połączeniem poprzedniego etapu encji/działania i kroku struktur encji.

Etap sieciowy

Na etapie sieci tworzony jest model systemu jako całości i przedstawiany jako diagram specyfikacji systemu (SSD) (znany również jako diagram sieci ). Diagramy sieciowe przedstawiają procesy (prostokąty) i sposób, w jaki komunikują się one ze sobą, za pośrednictwem wektorów stanu (romby) lub połączeń strumienia danych (kółka). Na tym etapie definiowana jest funkcjonalność systemu. Każda jednostka staje się procesem lub programem na diagramie sieciowym. Zewnętrzne programy są później dodawane do schematów sieciowych. Celem tych programów jest przetwarzanie danych wejściowych, obliczanie danych wyjściowych i utrzymywanie aktualności procesów jednostki. Cały system jest opisany za pomocą tych schematów sieciowych i jest uzupełniony opisami danych i połączeń między procesami i programami.

Początkowy krok modelu określa symulację świata rzeczywistego. Krok funkcyjny dodaje do tej symulacji dalsze wykonywane operacje i procesy potrzebne do wytworzenia danych wyjściowych systemu. Krok synchronizacji systemu zapewnia synchronizację między procesami, wprowadza ograniczenia. Ten etap jest połączeniem poprzedniego kroku „Model początkowy”, kroku „funkcji” i kroku „chronometrażu systemowego”.

Etap realizacji

Na etapie implementacji abstrakcyjny model sieciowy rozwiązania jest przekształcany w system fizyczny, reprezentowany w postaci diagramu implementacji systemu (SID). Identyfikator SID przedstawia system jako programu planującego , który wywołuje moduły implementujące procesy. Strumienie danych są reprezentowane jako wywołania procesów odwróconych. Symbole bazy danych reprezentują kolekcje wektorów stanu jednostek i istnieją specjalne symbole buforów plików (które muszą być zaimplementowane, gdy procesy mają być uruchamiane w różnych odstępach czasu).

Głównym zadaniem etapu wdrożenia jest optymalizacja systemu. Konieczne jest zmniejszenie liczby procesów, ponieważ nie jest możliwe zapewnienie każdemu procesowi zawartemu w specyfikacji własnego procesora wirtualnego. Za pomocą transformacji procesy są łączone w celu ograniczenia ich liczby do liczby procesorów.

Projektowanie diagramów

Diagram struktury jednostki (ESD)

Diagram pokazuje, w jaki sposób podmioty akcji współpracują z systemem. Notacje diagramu struktury jednostki (ESD):

  • Jednostka : jednostka jest obiektem używanym w systemie i przez system.
  • Akcja : Działania wykonywane przez podmioty i działania, które wpływają na inne podmioty.
  • Sekwencja konstrukcji : konstrukcja JSD jest identyczna z konstrukcją historii życia jednostki SSADM. Użyj SequenceConstruct, aby zilustrować akcje, które są stosowane od lewej do prawej.
  • Wybór konstrukcji : Aby odzwierciedlić wybór między dwoma lub więcej działaniami. Zaznacz opcje w prawym górnym rogu za pomocą „o” (opcja).
  • Konstrukt powtarzający się : Kiedy akcja się powtarza, umieść małą gwiazdkę (*) w prawym górnym rogu.

Normalnie pod RecurringConstruct byłaby tylko jedna akcja.

  • Składnik zerowy : Składnik zerowy może zapewnić, że nic się nie wydarzy w instrukcji IF-ELSE.
Schemat sieci (ND)

Diagramy sieciowe przedstawiają interakcje między procesami. Czasami są one określane jako diagramy specyfikacji systemu (SSD). Oznaczenia schematu sieci (ND):

  • Proces : Procesy reprezentują funkcje systemowe. Model procesu reprezentuje podstawowe funkcje systemu. Zwykle ma związek z podmiotem zewnętrznym za pośrednictwem strumienia danych.
  • Połączenie strumienia danych : W połączeniu strumienia danych proces A (jednostka, która zapisuje strumień danych) aktywnie wysyła informacje do innego procesu B.
  • Inspekcja wektora stanu : W przypadku połączenia wektora stanu proces B (jednostka, która odczytuje informacje o wektorze stanu) odczytuje informacje o wektorze stanu innej jednostki A.

Różnica między połączeniem wektora stanu a połączeniem strumienia danych polega na tym, który proces jest aktywny. W połączeniu ze strumieniem danych proces z informacją A jest procesem aktywnym; aktywnie wysyła wiadomość do czytnika strumienia danych B w czasie, który on (A, nadawca) wybierze. W inspekcji wektorów stanu proces z informacją A jest pasywny; nie robi nic poza umożliwieniem czytnikowi procesu B sprawdzenia jego wektora stanu (A). B, proces dokonujący inspekcji, jest procesem aktywnym; decyduje, kiedy odczyta informacje z A. Z grubsza mówiąc, połączenie strumienia danych jest abstrakcją przekazywania wiadomości, podczas gdy inspekcja wektora stanu jest abstrakcją dla odpytywania (i pobierania bazy danych).

Dalsza lektura

Linki zewnętrzne