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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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!