16.07.2014 Views

Programowanie. Teoria i praktyka z wykorzystaniem C++

Programowanie. Teoria i praktyka z wykorzystaniem C++

Programowanie. Teoria i praktyka z wykorzystaniem C++

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6.2. PRZEMYLENIE PROBLEMU 177<br />

nawet lepszym ni napisanie ich. Papier (lub komputer) nie bdzie z Tob dyskutowa i krytycznie<br />

ocenia Twoich pogldów. Idealny etap projektowania to taki, który przeprowadza si<br />

w towarzystwie.<br />

Niestety nie ma takiej ogólnej strategii rozwizywania problemów, która odpowiadaaby<br />

wszystkim ludziom i pozwalaa rozwiza kady problem. Istnieje mnóstwo ksiek, których<br />

autorzy twierdz, e pomog Ci efektywniej rozwizywa problemy, oraz caa masa publikacji<br />

na temat projektowania programów. Nasza droga nie wiedzie poprzez nie. W zamian opiszemy<br />

gar ogólnych wskazówek, które mog by pomocne w rozwizywaniu mniejszych problemów.<br />

Nastpnie szybko przejdziemy do wypróbowywania tych sugestii na naszym maym kalkulatorze.<br />

Czytajc tre naszych rozwaa na temat kalkulatora, oceniaj to, co widzisz, bardzo sceptycznym<br />

okiem. Aby zachowa realizm, przedstawimy ewolucj naszego programu poprzez<br />

szereg wersji. Opiszemy argumenty, które doprowadziy nas do powstania kadej z nich. Oczywicie<br />

znaczna cz tej argumentacji musi by niekompletna lub bdna, inaczej szybko bymy<br />

skoczyli ten rozdzia. Naszym celem jest pokazanie przykadowych problemów i procesów<br />

mylowych charakterystycznych dla procesu projektowania i implementowania programu.<br />

Wersja, z której jestemy ostatecznie zadowoleni, zostanie przedstawiona dopiero na kocu<br />

nastpnego rozdziau.<br />

Pamitaj, e w tym i nastpnym rozdziale proces dochodzenia do finalnej wersji programu<br />

— droga wiodca przez niepene rozwizania, pomysy i bdy — jest co najmniej tak<br />

samo wany, jak wersja ostateczna i waniejszy ni narzdzia techniczne jzyka programowania,<br />

których bdziemy uywa (wrócimy do nich póniej).<br />

6.2.1. Etapy rozwoju oprogramowania<br />

Poniej przedstawimy nieco terminologii zwizanej z tworzeniem oprogramowania. Pracujc<br />

nad rozwizaniem problemu, wielokrotnie powtarza si nastpujce fazy:<br />

Analiza — przemyl, co masz zrobi, i opisz, jak to aktualnie rozumiesz. Taki opis nazywa<br />

si zestawem wymaga lub specyfikacj. Nie bdziemy szczegóowo opisywa technik<br />

opracowywania i opisywania takich wymogów. Temat tej ksiki tego nie obejmuje, ale<br />

naley pamita, e w miar zwikszania si rozmiaru problemu techniki te nabieraj<br />

wagi.<br />

Projektowanie — utworzenie ogólnej struktury systemu i podjcie decyzji, na jakie<br />

czci podzieli implementacj oraz jak powinny si one ze sob komunikowa. W ramach<br />

projektowania zastanów si jakie narzdzia — np. biblioteki — moesz wykorzysta<br />

do opracowania struktury programu.<br />

Implementacja — napisz kod, usu bdy oraz sprawd za pomoc testów, czy robi to,<br />

co powinien.<br />

6.2.2. Strategia<br />

Oto gar wskazówek, które — jeli zostan zastosowane z rozwag i wyobrani — bd pomocne<br />

w wielu projektach programistycznych:<br />

Jaki problem jest do rozwizania? Przede wszystkim naley stara si dokadnie opisa,<br />

co chce si zrobi. Najczciej oznacza to sporzdzenie opisu problemu lub, jeli kto

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!