Przygotowanie do budowania algorytmu
Przed przystąpieniem do pracy nad budowaniem algorytmu najpierw należy uporządkować dane biznesowe, którymi dysponujemy.
Określenie danych wejściowych i wyjściowych algorytmu
Budując algorytm, należy zweryfikować, jakie dane będą do niego przekazywane i jakie dane algorytm będzie zwracał. W oparciu o te dane należy zbudować strukturę danych algorytmu. Tworząc strukturę danych, należy określić, jakie typy danych mają poszczególne pola (liczba, data, tekst, pole słownikowe) oraz czy w ramach struktury przekazywane są pojedyncze rekordy, czy listy.
Często projektujemy zestaw algorytmów – takie zestawy można oprzeć na jednej lub większej liczbie wspólnych struktur danych. Tę decyzję należy podjąć już na etapie projektowania – stosowanie wspólnych struktur dla grupy algorytmów umożliwi:
- łatwe wywoływanie jednych algorytmów z drugich (wygodną budowę podalgorytmów),
- łatwiejsze wywoływanie dowolnego z algorytmów grupy z zewnętrznego systemu / komponentu (bo każdy algorytm będzie bazował na takiej samej strukturze danych wejściowych i wyjściowych).
Określenie danych słownikowych do algorytmu
Budując algorytm, często zdarza się, że część danych przekazywanych lub zwracanych przez algorytm jest w postaci ustalonej, zesłownikowanej. Dobrą praktyką jest zastosowanie dla takich pól słownika, który uporządkuje i ograniczy wartości pola, na których pracuje algorytm.
Określenie, z jakich tabel konfiguracyjnych będzie korzystał algorytm
Układanie i przechowywanie zestawu danych w postaci tabelarycznej ułatwia budowanie algorytmu, pozwalając zminimalizować liczbę warunków logicznych w samym algorytmie.
W celu poprawnego zbudowania tabeli należy określić:
- jaki typ danych będzie ona przechowywała,
- jakie zestawy kluczy będą prowadziły do tych danych.
W ramach analizy należy zweryfikować, w jaki sposób z tabeli będzie korzystał tworzony algorytm (tak, by dane obecne w algorytmie zgadzały się z wymiarami tabeli).
Dzięki tabelom decyzyjnym możesz utworzyć tabele, które wyglądają analogicznie jak tabele zbudowane z narzędziach typu Word lub Excel.
Najlepszym sposobem na stworzenie tabeli jest odwzorowanie w nim tabeli wyglądającej analogicznie do dostarczonej w ramach wymagań biznesowych. Dzięki temu będzie można bezpośrednio przenieść wartości z dostarczonej dokumentacji do tabeli i trudniej będzie popełnić błąd przy budowie samej tabeli.
Więcej informacji o tym jak utworzyć tabelę i ją skonfigurować patrz: Tabele decyzyjne.
Określenie, z jakich kroków będzie składał się algorytm
Pierwszym elementem implementacji algorytmu jest analiza kroków, z jakich będzie się on składał. Należy zastanowić się, jakiego efektu oczekujemy po algorytmie. Najlepiej stworzyć na papierze wykres, graf czy rozpiskę poszczególnych elementów, w którym rozdzielimy algorytm na pojedyncze kroki do wykonania.
Można również rozrysować algorytm na proste bloczki graficzne i strzałkami oznaczyć przejścia między nimi wyznaczające kolejność poszczególnych kroków. Zalecane są wszelkiego rodzaju narzędzia służące do tworzenia schematów i diagramów pozwalające przedstawić algorytm w postaci bloczków – przy przenoszeniu z modelu biznesowego do archITekta znacznie ułatwiają pracę i pozwalają uniknąć wielu problemów na etapie projektowania.
Algorytmy, tworzone poprzez przenoszenie z diagramu na kartce lub z narzędzia graficznego, stanowią dokładniejsze, bardziej szczegółowe odwzorowanie idei zaprezentowanych w tych narzędziach. W związku z tym algorytm będzie wyglądał podobnie, jednak będzie składał się z większej ilości szczegółów.
Przy bardziej złożonych algorytmach należy zastanowić się, czy nie wydzielić pewnych ich części, które mogą być reużywane przez inne algorytmy (można ich użyć w niezmienionej formie co najmniej kilka razy) i stworzyć tak zwane podmodele (podalgorytmy). Dzięki takiemu podejściu łatwiej będzie w przyszłości dokonywać zmian oraz używać podalgorytmów w nowych algorytmach, co znacząco skróci czas ich wytwarzania. Zastosowanie podmodeli ma również tę zaletę, że upraszcza widok skomplikowanego algorytmu, dzieląc go na poszczególne bloki funkcjonalne.