Narzędzia do analizy i projektowania oprogramowania

Analiza i projektowanie oprogramowania obejmuje wszystkie czynności, które pomagają w przekształceniu specyfikacji wymagań w implementację. Specyfikacje wymagań określają wszystkie funkcjonalne i niefunkcjonalne oczekiwania wobec oprogramowania. Te specyfikacje wymagań mają postać czytelnych i zrozumiałych dokumentów, z którymi komputer nie ma nic wspólnego.

Analiza i projektowanie oprogramowania to etap pośredni, który pomaga przekształcić wymagania czytelne dla człowieka w rzeczywisty kod.

Przyjrzyjmy się kilku narzędziom analitycznym i projektowym używanym przez projektantów oprogramowania:

Schemat przepływu danych

Diagram przepływu danych to graficzna reprezentacja przepływu danych w systemie informacyjnym. Jest w stanie zobrazować przepływ danych przychodzących, wychodzących i przechowywanych. DFD nie wspomina nic o przepływie danych w systemie.

Istnieje wyraźna różnica między DFD a schematem blokowym. Schemat blokowy przedstawia przepływ sterowania w modułach programu. DFD obrazują przepływ danych w systemie na różnych poziomach. DFD nie zawiera żadnych elementów sterujących ani rozgałęzionych.

Rodzaje DFD

Diagramy przepływu danych są logiczne lub fizyczne.

  • Logical DFD - Ten typ DFD koncentruje się na procesie systemowym i przepływie danych w systemie, na przykład w systemie oprogramowania bankowego, na sposobie przenoszenia danych między różnymi jednostkami.
  • Physical DFD- Ten typ DFD pokazuje, jak przepływ danych jest faktycznie realizowany w systemie. Jest bardziej konkretny i bliski realizacji.

Komponenty DFD

DFD może reprezentować źródło, miejsce docelowe, przechowywanie i przepływ danych przy użyciu następującego zestawu komponentów -

  • Entities- Podmioty są źródłem i celem danych informacyjnych. Jednostki są reprezentowane przez prostokąty z ich nazwami.
  • Process - Działania i działania podjęte na danych są reprezentowane przez okrągłe lub zaokrąglone prostokąty.
  • Data Storage - Istnieją dwa warianty przechowywania danych - można je przedstawić jako prostokąt bez obu mniejszych boków lub jako prostokąt z otwartymi bokami, w którym brakuje tylko jednego boku.
  • Data Flow- Ruch danych jest pokazany za pomocą spiczastych strzałek. Ruch danych jest pokazany od podstawy strzałki jako źródła do początku strzałki jako celu.

Poziomy DFD

  • Level 0- Najwyższy poziom abstrakcji DFD jest znany jako Poziom 0 DFD, który przedstawia cały system informacyjny jako jeden diagram ukrywający wszystkie podstawowe szczegóły. DFD poziomu 0 są również znane jako DFD poziomu kontekstu.
  • Level 1- Poziom 0 DFD jest podzielony na bardziej szczegółowy poziom 1 DFD. Poziom 1 DFD przedstawia podstawowe moduły w systemie i przepływ danych pomiędzy różnymi modułami. Poziom 1 DFD wymienia również podstawowe procesy i źródła informacji.
  • Level 2 - Na tym poziomie DFD pokazuje, w jaki sposób dane przepływają wewnątrz modułów wymienionych na poziomie 1.

    DFD wyższego poziomu można przekształcić w bardziej szczegółowe DFD niższego poziomu z głębszym poziomem zrozumienia, chyba że zostanie osiągnięty pożądany poziom specyfikacji.

Wykresy strukturalne

Wykres strukturalny to wykres pochodzący z diagramu przepływu danych. Przedstawia system bardziej szczegółowo niż DFD. Rozkłada cały system na najniższe moduły funkcjonalne, opisuje funkcje i podfunkcje każdego modułu systemu bardziej szczegółowo niż DFD.

Wykres struktury przedstawia hierarchiczną strukturę modułów. Na każdej warstwie wykonywane jest określone zadanie.

Oto symbole użyte do budowy schematów konstrukcji -

  • Module- Reprezentuje proces, podprogram lub zadanie. Moduł sterujący rozgałęzia się do więcej niż jednego podmodułu. Moduły biblioteczne są wielokrotnego użytku i można je wywołać z dowolnego modułu.
  • Condition- Jest reprezentowany przez mały romb u podstawy modułu. Przedstawia on, że moduł sterujący może wybrać dowolną podprogram na podstawie pewnych warunków.
  • Jump - Wyświetlana jest strzałka skierowana do wnętrza modułu, wskazująca, że ​​układ sterowania przeskoczy na środek modułu podrzędnego.
  • Loop- Zakrzywiona strzałka reprezentuje pętlę w module. Wszystkie podmoduły objęte pętlą powtarzają wykonanie modułu.
  • Data flow - Strzałka skierowana z pustym okręgiem na końcu reprezentuje przepływ danych.
  • Control flow - Strzałka skierowana z wypełnionym kółkiem na końcu oznacza przepływ sterowania.

Diagram HIPO

Diagram HIPO (Hierarchical Input Process Output) to połączenie dwóch zorganizowanych metod analizy systemu i zapewnienia środków dokumentacji. Model HIPO został opracowany przez IBM w 1970 roku.

Diagram HIPO przedstawia hierarchię modułów w systemie oprogramowania. Analityk używa diagramu HIPO w celu uzyskania wysokiego poziomu wglądu w funkcje systemu. Rozkłada funkcje na pod-funkcje w sposób hierarchiczny. Przedstawia funkcje wykonywane przez system.

Diagramy HIPO są dobre do celów dokumentacyjnych. Ich graficzne przedstawienie ułatwia projektantom i menedżerom uzyskanie obrazowego wyobrażenia o strukturze systemu.

W przeciwieństwie do diagramu IPO (Input Process Output), który przedstawia przepływ sterowania i danych w module, HIPO nie dostarcza żadnych informacji o przepływie danych ani o przepływie sterowania.

Przykład

Obie części diagramu HIPO, prezentacji hierarchicznej i wykresu IPO służą do projektowania struktury programu oraz jego dokumentacji.

Strukturalny angielski

Większość programistów nie zdaje sobie sprawy z szerokiego obrazu oprogramowania, więc polegają tylko na tym, co każą im ich menedżerowie. Obowiązkiem wyższego kierownictwa oprogramowania jest dostarczanie programistom dokładnych informacji w celu opracowania dokładnego, ale szybkiego kodu.

Inne formy metod, które wykorzystują wykresy lub diagramy, mogą być czasami różnie interpretowane przez różnych ludzi.

Dlatego analitycy i projektanci oprogramowania wymyślają narzędzia takie jak Structured English. To nic innego jak opis tego, co jest potrzebne do zakodowania i jak to zakodować. Ustrukturyzowany angielski pomaga programiście pisać bezbłędny kod.

Inne formy metod, które wykorzystują wykresy lub diagramy, mogą być czasami różnie interpretowane przez różnych ludzi. Tutaj zarówno angielski strukturalny, jak i pseudokod próbują złagodzić tę lukę w rozumieniu.

Strukturalny angielski to użycie prostych angielskich słów w paradygmacie programowania strukturalnego. Nie jest to ostateczny kod, ale rodzaj opisu, co jest potrzebne do zakodowania i jak to zakodować. Poniżej przedstawiono niektóre tokeny programowania strukturalnego.

IF-THEN-ELSE,  
DO-WHILE-UNTIL

Analityk używa tej samej zmiennej i nazwy danych, które są przechowywane w Data Dictionary, co znacznie upraszcza pisanie i rozumienie kodu.

Przykład

Bierzemy ten sam przykład uwierzytelniania klienta w środowisku zakupów online. Ta procedura uwierzytelniania klienta może być napisana w ustrukturyzowanym języku angielskim jako:

Enter Customer_Name
SEEK Customer_Name in Customer_Name_DB file
IF Customer_Name found THEN
   Call procedure USER_PASSWORD_AUTHENTICATE()
ELSE
   PRINT error message
   Call procedure NEW_CUSTOMER_REQUEST()
ENDIF

Kod napisany w ustrukturyzowanym języku angielskim jest bardziej podobny do używanego na co dzień angielskiego. Nie można go zaimplementować bezpośrednio jako kod oprogramowania. Angielski strukturalny jest niezależny od języka programowania.

Pseudo kod

Pseudokod jest napisany bliżej języka programowania. Można go uznać za rozszerzony język programowania, pełen komentarzy i opisów.

Pseudo kod unika deklaracji zmiennych, ale są one napisane przy użyciu rzeczywistych konstrukcji języka programowania, takich jak C, Fortran, Pascal itp.

Pseudo kod zawiera więcej szczegółów programistycznych niż angielski strukturalny. Zapewnia metodę wykonywania zadania, tak jakby komputer wykonywał kod.

Przykład

Program do drukowania Fibonacciego do n liczb.

void function Fibonacci
Get value of n;
Set value of a to 1;
Set value of b to 1;
Initialize I to 0
for (i=0; i< n; i++)
{
   if a greater than b 
   {
      Increase b by a;
      Print b;
   } 
   else if b greater than a
   {
      increase a by b;
      print a;
   }
}

Tabele decyzyjne

Tabela decyzyjna przedstawia warunki i odpowiednie działania, które należy podjąć w celu ich rozwiązania, w uporządkowanym formacie tabelarycznym.

Jest to potężne narzędzie do debugowania i zapobiegania błędom. Pomaga zgrupować podobne informacje w jednej tabeli, a łącząc tabele, zapewnia łatwe i wygodne podejmowanie decyzji.

Tworzenie tabeli decyzyjnej

Aby utworzyć tabelę decyzyjną, deweloper musi wykonać cztery podstawowe kroki:

  • Zidentyfikuj wszystkie możliwe warunki, którymi należy się zająć
  • Określ działania dla wszystkich zidentyfikowanych warunków
  • Utwórz maksymalnie możliwe reguły
  • Zdefiniuj akcję dla każdej reguły

Tabele decyzyjne powinny być weryfikowane przez użytkowników końcowych, a ostatnio można je uprościć, eliminując powielające się zasady i działania.

Przykład

Weźmy prosty przykład codziennych problemów z łącznością internetową. Rozpoczynamy od zidentyfikowania wszystkich problemów, które mogą się pojawić podczas uruchamiania Internetu i ich możliwych rozwiązań.

Wymieniamy wszystkie możliwe problemy w warunkach kolumny, a potencjalne działania w kolumnie Działania.

Warunki / działania Zasady
Warunki Pokazuje połączone N N N N Y Y Y Y
Ping działa N N Y Y N N Y Y
Otwiera witrynę Y N Y N Y N Y N
działania Sprawdź kabel sieciowy X
Sprawdź router internetowy X X X X
Uruchom ponownie przeglądarkę internetową X
Skontaktuj się z dostawcą usług X X X X X X
Nie podejmuj żadnych działań
Tabela: Tabela decyzyjna - wewnętrzne rozwiązywanie problemów z Internetem

Model relacji encji

Model encja-relacja to typ modelu bazy danych oparty na pojęciu bytów świata rzeczywistego i relacji między nimi. Możemy odwzorować rzeczywisty scenariusz na model bazy danych ER. Model ER tworzy zbiór encji wraz z ich atrybutami, zbiorem ograniczeń i relacji między nimi.

Model ER najlepiej nadaje się do projektowania koncepcyjnego bazy danych. Model ER można przedstawić w następujący sposób:

  • Entity - Jednostka w modelu ER to istota ze świata rzeczywistego, która ma pewne właściwości zwane attributes. Każdy atrybut jest zdefiniowany przez odpowiadający mu zestaw wartości, tzwdomain.

    Na przykład Rozważmy szkolną bazę danych. Tutaj student jest bytem. Uczeń ma różne atrybuty, takie jak imię i nazwisko, identyfikator, wiek i klasa itp.

  • Relationship - Nazywa się logiczne powiązanie między jednostkami relationship. Relacje są mapowane z jednostkami na różne sposoby. Liczebności mapowania określają liczbę skojarzeń między dwoma podmiotami.

    Odwzorowywanie liczebności:

    • Jeden na jednego
    • jeden za dużo
    • wiele do jednego
    • wiele do wielu

Słownik danych

Słownik danych to scentralizowany zbiór informacji o danych. Przechowuje znaczenie i pochodzenie danych, ich związek z innymi danymi, format danych do użycia itp. Słownik danych zawiera rygorystyczne definicje wszystkich nazw w celu ułatwienia użytkownikom i projektantom oprogramowania.

Słownik danych jest często określany jako repozytorium metadanych (danych o danych). Jest tworzony wraz z modelem programu DFD (Data Flow Diagram) i oczekuje się, że będzie aktualizowany za każdym razem, gdy DFD zostanie zmieniony lub zaktualizowany.

Wymóg słownika danych

Do danych odwołuje się słownik danych podczas projektowania i wdrażania oprogramowania. Słownik danych usuwa wszelkie możliwości niejednoznaczności. Pomaga w utrzymywaniu synchronizacji pracy programistów i projektantów podczas korzystania z tych samych odniesień do obiektów w całym programie.

Słownik danych umożliwia dokumentację całego systemu bazodanowego w jednym miejscu. Walidacja DFD jest przeprowadzana za pomocą słownika danych.

Zawartość

Słownik danych powinien zawierać następujące informacje

  • Przepływ danych
  • Struktura danych
  • Elementy danych
  • Magazyny danych
  • Przetwarzanie danych

Przepływ danych jest opisany za pomocą DFD, jak zbadano wcześniej i przedstawiony w formie algebraicznej, jak opisano.

= Złożony z
{} Powtórzenie
() Opcjonalny
+ I
[/] Lub

Przykład

Adres = numer domu + (ulica / obszar) + miasto + stan

Identyfikator kursu = numer kursu + nazwa kursu + poziom + oceny kursu

Elementy danych

Elementy danych składają się z nazwy i opisów elementów danych i kontroli, wewnętrznych lub zewnętrznych magazynów danych itp. Z następującymi szczegółami:

  • Nazwa podstawowa
  • Imię i nazwisko (alias)
  • Zastosowanie (jak i gdzie używać)
  • Opis treści (notacja itp.)
  • Informacje dodatkowe (wartości zadane, ograniczenia itp.)

Magazyn danych

Przechowuje informacje, skąd dane wchodzą do systemu i istnieją poza systemem. Magazyn danych może obejmować -

  • Files
    • Wewnętrzne dla oprogramowania.
    • Zewnętrzny do oprogramowania, ale na tym samym komputerze.
    • Zewnętrzne do oprogramowania i systemu, zlokalizowane na innej maszynie.
  • Tables
    • Konwencja nazewnictwa
    • Właściwość indeksowania

Przetwarzanie danych

Istnieją dwa rodzaje przetwarzania danych:

  • Logical: Tak jak widzi to użytkownik
  • Physical: Tak, jak widzi to oprogramowanie