Ogólnie

 

Projektowanie, nie programowanie. Na programowaniu musimy się oprzeć, żeby dojść do projektowania w tym paradygmacie.

Paradygmat programowania strukturalnego

 

Programowanie strukturalne to paradygmat programowania zalecający hierarchiczne dzielenie kodu na bloki, z jednym punktem wejścia i jednym lub wieloma punktami wyjścia. Chodzi przede wszystkim o nieużywanie (lub ograniczenie) instrukcji skoku (goto). Dobrymi strukturami są np. instrukcja warunkowe (if, if...else), pętle (while, repeat), wyboru (case, ale nie switch z C i potomnych). Strukturalność zakłócają instrukcje typu: break, continue, switch (w C itp.), które jednak w niektórych przypadkach znacząco podnoszą czytelność kodu.

W projektowaniu programu można zastosować dwie metody:

  • analityczną, czyli podejście "z góry na dół" (ang. top-down)
  • syntetyczną, czyli podejście "z dołu do góry" (ang. bottom-up)
Metoda analityczna polega na podziale zadania na pod zadania, które z kolei można podzielić na prostsze zadania niższego rzędu, itd. aż kolejne pod zadania staną się tak proste, że ich realizacja będzie prosta i oczywista.

Metoda syntetyczna polega na dokładnie odwrotnym postępowaniu niż w metodzie analitycznej. Najpierw zajmujemy się realizacją pod zadań elementarnych i w następnych krokach budujemy zadania bardziej złożone składające się z zadań elementarnych aż dojdziemy do realizacji całego programu.

Jeżeli chodzi o projektowanie w takim środowisku to musimy cały projekt rozpisać na bloki. Do bloku zawsze jest jedno wejście, i może być kilka wyjść. W zależności od metody, analitycznej (musimy myśleć, co chcemy uzyskać na końcu i potem rozkładać na rzeczy potrzebne coraz niżej (Galaktyka, Układ słoneczny, Planeta)), czy syntetycznej (najpierw myślimy o szczegółach a potem budujemy ogół (Planeta, Uklad słoneczny, Galaktyka) ustalamy sposób postępowania projektu.

Paradygmat projektowania obiektowego

 

Programowanie obiektowe (ang. object-oriented programming) — paradygmat programowania, w którym programy definiuje się za pomocą obiektów — elementów łączących stan (czyli dane, nazywane najczęściej polami) i zachowanie (czyli procedury, tu: metody). Obiektowy program komputerowy wyrażony jest jako zbiór takich obiektów, komunikujących się pomiędzy sobą w celu wykonywania zadań.
Podejście to różni się od tradycyjnego programowania proceduralnego, gdzie dane i procedury nie są ze sobą bezpośrednio związane. Programowanie obiektowe ma ułatwić pisanie, konserwację i wielokrotne użycie programów lub ich fragmentów.

Największym atutem programowania, projektowania oraz analizy obiektowej jest zgodność takiego podejścia z rzeczywistością - mózg ludzki jest w naturalny sposób najlepiej przystosowany do takiego podejścia przy przetwarzaniu informacji. Już Platon postulował dwoistość: "byt" - "idea (wzorzec) bytu", np. książka jako idea ogólna - w terminologii platońskiej: doskonała (choć niedookreślona), i książka konkretna np. zbiór baśni leżący na piątej półce. Podobnie, choć później Arystoteles analizując rzeczywistość wprowadził pojęcia formy i materii (to tak apropo dziedziczenia).

Projektując obiektowo, zaczynamy o zaprojektowania obiektów. Atut jest taki, że obiekty mogą pokrywać się z tymi istniejącymi w rzeczywistości. Obiekt, jak wiadomo, składa się z pól i metod. Więc tworzymy sobie taką lampę z polem kolor i metodami; wyłącz, włącz. Problem tkwi w obiektach abstrakcyjnych, nierzeczywistych, typu - przesył danych. Kolejnym problem jest hierarchia klas wraz z dziedziczeniem. Dobrze rozpisane potrafią dramatycznie przyspieszyć działanie programu i poprawić jego czytelność.