Jesteś tutaj: Home >Posty otagowane: ‘programista

Debugowanie

Programowanie, czyli wykonanie projektu, stworzenie, testowanie oraz utrzymanie kodu źródłowego programu jest skomplikowaną czynnością składającą się z wielu etapów. Jednym z nich jest debugowanie, czyli ostatnia z faz programowania, która jest jednocześnie jedną z najważniejszych czynności wykonywanych przez programistę. Zdarzały się przypadki, że program trafił do użytku bez wcześniejszego testowania i użytkownicy wykryli w nim błędy. Skutkowało to reklamacją, a tym samym stratami finansowymi dla dystrybutora. Błędy popełniane w czasie powstawania programu mogę być różne. Począwszy od błędów merytorycznych, czy też użycia złego wskaźnika, kończąc na przepełnieniu bufora, które skutkować może nie tylko brakiem odpowiedniego działania programu, ale także uszkodzeniami aplikacji komputera spowodowanymi przez wcześniej wspomniany błąd.

Dlatego właśnie tak ważnym etapem programowania jest testowanie przez specjalistów aplikacji zanim trafi ona do „zwykłych” użytkowników. Słowo debugowanie pochodzi od angielskiego słowa debugging, co oznacza odrobaczanie. W praktyce jest to proces systematycznego usuwania błędów w oprogramowaniu. Mozę to być także system mikroprocesorowy. Polega on na nadzorowanym wykonaniu programu. Całą czynność kontroluje debugger, czyli program komputerowy, który dynamicznie analizuje inne programy. Celem jego działania jest odnalezienie oraz identyfikacja powstałych w czasie programowanie błędów z angielskiego nazywanych bugami, czyli robakami (robak – ang. bug). Debugowanie dzieli się zazwyczaj na kilka podstawowych etapów. Pierwszy to reprodukcja, czyli odkrycie błędu. Może tego dokonać zarówno programista jak i specjalny program komputerowy. Kolejny etap polega na wyizolowaniu źródła błędu, czyli eliminacji nieprawidłowości. Trzecia w kolejności jest identyfikacja przyczyny błędu, czyli znalezienie jego źródła. Przedostatni etap to usunięcie defektu. Polega na naprawieniu błędu poprzez usunięcie jego przyczyny oraz objawów. Na samym końcu następuje weryfikacja, która polega na sprawdzeniu czy naprawa została przeprowadzona z pozytywnym skutkiem.

 

Tagi: , ,

Konstruktor

W programowaniu obiektowym występuje specjalna metoda danej klasy zwana konstruktorem. Występuje ona podczas tworzenia jej instancji. Jej zadaniem jest przede wszystkim zainicjowanie obiektu, a w niektórych przypadkach także jego stworzenie. Jeśli zdecydujemy się na wywołanie konstruktora zainicjuje to wykonanie następujących zadań : obliczenie rozmiaru obiektu, wykonanie kodu wywołanego przez nas konstruktora, alokacja obiektu w pamięci, wpisanie do obiektu informacji, która łączyła go będzie z odpowiednią dla niego klasą, zerowanie obszaru pamięci, który zarezerwowany jest dla danego obiektu oraz w niektórych przypadkach wykonanie kodu klasy bazowej. Oprócz wykonania kodu wywołanego konstruktora wszystkie te zadania zostaną wykonane wewnętrznie. W zależności od języka programowania konstruktor oznaczany jest w różny sposób. W Pascalu jest to metoda poprzedzona słowem „constructor”, w PHP 5 „_construct”, a w C++, Javie, C#, PHP 4 oraz innych metoda zgodna z nazwą klasy. W samym języku C++ wyróżnia się kilka rodzajów konstruktorów. Pierwszy z nich to konstruktor domyślny, który wywołać jest najłatwiej, bo nie wymaga podania żadnych parametrów. Następny to konstruktor kopiujący, którego umieszczenie w sekcji prywatnej oznacza brak zgody na kopiowanie obiektu.

Trzeci konstruktor nosi nazwę konwertującego. Wywoływanie konstruktorów ma także swoją określoną kolejność. Jako pierwsze wywoływane są konstruktory klas bazowy. Ich kolejność zależy od pozycji na jakiej znajdują się w sekcji dziedziczenia w deklaracji klasy pochodnej. Jako drugie konstruktory obiektów składowych klasy. Ich chronologia zależy od kolejności w jakiej zostały zadeklarowane w ciele klasy. Na samym końcu wywoływany jest konstruktor klasy. Jeśli w klasie zadeklarowany jest konstruktor kopiujący musimy tam zadeklarować jeszcze innego konstruktora. Mozę to być konstruktor domyślny lub inny. Brak takiego działania powoduje, że nie mamy możliwości stworzenia nowego obiektu.

 

 

Tagi: , ,