Twitter: @grzegg
Kategoria: java, Tagi: - - .

Java [03] – Od pomysłu do działającego programu

Teraz przyszedł czas na odrobinę teorii. W skrócie opiszę jak wygląda droga od pomysłu do działającego programu.


Ta strona jest częścią materiałów do kursu “Programowanie w Javie z elementami bioinformatyki dla poczatkujących”. Pozostałe materiały znajdziesz tutaj

Program

Program to pewien zestaw instrukcji dla komputera. W programie jest zapisane co komputer powinien robić, w jakiej kolejności, jak reagować na dane, zewnętrzne wydarzenia a także zmieniające się elementy wewnętrzne, np. wartości. Tworzenie programu jest procesem wieloetapowym, każdy z nich jest ważny i wymaga uwagi.
Można go przedstawić na schematycznym rysunku:


Przeanalizuję teraz pokrótce poszczególne kroki

Pomysł/problem

Zwykle przyczyną, która skłania nas do tego, żeby zabrać się za tworzenie programu jest to, że mamy jakiś problem, który może nam pomóc rozwiązać program albo mamy genialny pomysł na wspaniały program (sprzedamy go i zarobimy miliony) albo po prostu prowadzący zajęcia zadał napisanie programu na jakiś mniej lub bardziej interesujący temat. Tak czy inaczej najpierw mamy w głowie jakiś ogólny zarys tego co powinien program robić i ewentualnie jak ma wyglądać. Następnie trzeba pomysły możliwie sprecyzować. Powinniśmy zdecydować CO program ma robić, do czego służyć i kto ma być jego użytkownikiem. Ten ostatni element jest wbrew pozorom bardzo istotny zwłaszcza jeśli chodzi o projektowanie interfejsu, dokumentację i odporność na błędy w obsłudze programu. Nieco inaczej piszemy program, który będziemy tylko i wyłącznie sami obsługiwać, inaczej jeśli będą go używać specjaliści obeznani w technikach informatycznych a jeszcze inaczej jeśli program ma być przeznaczony dla „zwykłego użytkownika”.

Algorytm

Kiedy już wiemy CO program ma robić, czas na przemyślenie tego JAK ma to zrobić. Czyli powinniśmy przemyśleć algorytm według którego będzie nasz program działał. Algorytm to przepis postępowania. W zasadzie algorytmem jest przepis kucharski, instrukcja składania szafki zakupionej w popularnej sieci sprzedającej meble albo protokół utrwalenia, krojenia i barwienia preparatów. Stworzenie właściwego algorytmu jest kluczowym etapem tworzenia programu, dlatego warto poświęcić trochę czasu na dobre przemyślenie i zaplanowanie tego jak ma działać. W projektowaniu algorytmu przydaje się zwykła kartka papieru i ołówek. Możemy narysować działanie algorytmu graficznie używając schematów blokowych, o czym jeszcze wspomnę. Można też stosować pseudokod, czyli coś pośredniego między kodem właściwym dla języka programowania a „ludzkim” językiem. Jeśli na przykład program ma obliczać stężenie procentowe roztworu, pseudokod może wyglądać tak:


pobierz od użytkownika masę roztworu
pobierz od użytkownika masę substancji rozpuszczonej
oblicz: stężenie = masa substancji * 100 / masa roztworu
wypisz: stężenie

Implementacja i kod źródłowy

Skoro już mamy zaprojektowany algorytm, czas siąść przy klawiaturze i przekształcić go w kod źródłowy. Ten proces nazywamy implementacją. Kod źródłowy jest pisany w konkretnym języku programowania ale jest jeszcze zrozumiały dla człowieka*, kod maszynowy, o którym za chwilę, jest zrozumiały już tylko dla komputera.
Języki naturalne i języki programowania mają pewne cechy wspólne. Wiele komend jest na przykład opartych o słownictwo angielskie (np. if, else, for, class), przez co są dla nas przynajmniej częściowo zrozumiałe. Ale pisanie kodu jest jednak związane z dużo większą dyscypliną niż używanie zwykłego języka. Można tu przytoczyć kilka zasad, nie zawsze oczywistych dla początkującego programisty, o których należy pamiętać:

Trzymać się składni

Przede wszystkim musimy trzymać się ściśle reguł określonych dla danego języka programowania. Jeśli w rozmowie pomylę szyk zdania, przynajmniej w języku polskim, zostanę zapewne zrozumiany. W programowaniu zazwyczaj podobny błąd skończy się niedziałającym programem.

Żadnych literówek

Niedopuszczalne są także literówki. Jeśli powiem: „Dziń dybry” popełnię błąd językowy, ale rozmówca będzie wiedział, że się witam**. Ale jeśli w programie napiszę System.out.pruntln("Witaj Świecie!") to będzie komenda całkowicie niezrozumiała dla komputera.

Kawa na ławę

Na ogół także trzeba stosować w programowaniu zasadę „kawa na ławę”, nie są zwykle możliwe (są pewne wyjątki, przynajmniej w niektórych językach programowania) niedopowiedzenia, aluzje czy też ironia. Jeśli latem powiem: „pada”, rozmówca domyśli się, że pada deszcz a nie na przykład żaby, komputer zwykle musi mieć wszystko podane na tacy.

Kompilacja i kod maszynowy

Prawidłowo napisany kod źródłowy należy „przetłumaczyć” dla język zrozumiały dla komputera. Ten proces jest nazywany kompilacją i jest przeprowadzany przez program zwany kompilatorem. W efekcie otrzymujemy pliki z treścią dla nas już całkowicie niezrozumiałą ale za to działające. Nie wchodząc w szczegóły, dodam, że w przypadku Javy, po kompilacji otrzymuje się tzw. B-kod zwany też kodem bajtowym Javy, zrozumiały dla maszyny wirtualnej Javy. Dzięki czemu wykonywalne pliki można na ogół uruchomić pod różnymi systemami operacyjnymi co jest jedną z zalet tego języka.

Debugowanie

Omawiając proces tworzenia oprogramowania nie sposób pominąć jeszcze jednego elementu – testowania programu oraz wyszukiwania i poprawiania błędów, czyli debugowania. Niemal zawsze pisząc program popełniamy jakieś błędy. Niektóre z nich są wychwytywane już przez edytor w którym piszemy kod (np. NetBeans IDE), inne przez kompilator ale wiele ujawnia się dopiero podczas działania programu. Niektóre błędy wynikają z pomyłek przy pisaniu kodu, inne wynikają np. z błędów w samym algorytmie. Te ostatnie zwykle trudniej wychwycić. Czasem błędy ujawniają się od razu a czasem ich znalezienie wymaga starannego testowania. Proces testowania programu i poprawiania błędów bywa nieraz bardzo czasochłonny i co tu kryć nudny. Ale jest niezbędnym etapem w tworzeniu oprogramowania.

* Czyli programisty
** Przynajmniej jeśli oglądał serial „Allo, Allo”

Ta strona jest częścią materiałów do kursu “Programowanie w Javie z elementami bioinformatyki dla poczatkujących”. Pozostałe materiały znajdziesz tutaj

Leave a Reply