Programowanie. Teoria i praktyka z wykorzystaniem C++
Programowanie. Teoria i praktyka z wykorzystaniem C++
Programowanie. Teoria i praktyka z wykorzystaniem C++
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