[ Pobierz całość w formacie PDF ]
.Po uzyskaniu pozy-tywnej oceny ukÅ‚adu elementów należy ten prototyp wyrzucić i od nowa zaim-plementować odpowiednie rozwiÄ…zanie, tym razem z uwzglÄ™dnieniem odpo-wiedniej logiki biznesowej i w docelowym jÄ™zyku programowania.Podobnie,możemy zdecydować siÄ™ na opracowanie prototypów wielu algorytmów odpo-wiedzialnych za wÅ‚aÅ›ciwe rozmieszczanie paczek w kontenerze.Testy funk-cjonalne można zakodować na wysokim poziomie, korzystajÄ…c z takich jÄ™zykówjak Perl, natomiast niskopoziomowe testy wydajnoÅ›ciowe warto zaimplemento-wać w jÄ™zyku bliższym instrukcji maszynowych.W każdym przypadku po podjÄ™-ciu dotyczÄ…cej prototypu decyzji należy przystÄ…pić do ponownego kodowaniaodpowiednich atrybutów w ich Å›rodowisku docelowym, gdzie bÄ™dÄ… narażonena oddziaÅ‚ywanie nieco innych czynników.WÅ‚aÅ›nie na tym polega tworzenieprototypów.72 uð RozdziaÅ‚ 2.Postawa pragmatycznaModel z kodem smugowym ma na celu rozwiÄ…zywanie nieco innego problemu.TworzÄ…c kod smugowy, chcemy dowiedzieć siÄ™, jak nasza aplikacja bÄ™dzie funk-cjonowaÅ‚a jako caÅ‚ość.Chcemy pokazać naszym użytkownikom, jak opisywaneinterakcje bÄ™dÄ… wyglÄ…daÅ‚y w praktyce.Chcemy też udostÄ™pnić programistomszkielet architektury, w ramach którego bÄ™dÄ… implementowali swój kod.W tymprzypadku moglibyÅ›my skonstruować kod smugowy skÅ‚adajÄ…cy siÄ™ na przykÅ‚adz uproszczonego algorytmu rozmieszczenia przesyÅ‚ek (być może w kolejnoÅ›cidodawania do kontenera) oraz prostym, ale dziaÅ‚ajÄ…cym interfejsem użytkownika.Po poÅ‚Ä…czeniu wszystkich komponentów aplikacji w jednÄ… caÅ‚ość dysponujemyframeworkiem, który możemy prezentować zarówno użytkownikom, jak i pro-gramistom zaangażowanym w projekt.Z czasem uzupeÅ‚niamy ten frameworko nowe funkcje oraz wypeÅ‚niamy stosowane wczeÅ›niej namiastki procedur.Warto jednak pamiÄ™tać, że sam framework pozostaje niezmieniony, zatemmożemy być pewni, że system bÄ™dzie zachowywaÅ‚ siÄ™ tak jak w momencie ukoÅ„-czenia prac nad pierwszym kodem smugowym.Wspomniane rozróżnienie jest na tyle ważne, że warto je powtórzyć.W wynikutworzenia prototypu powstaje tymczasowy, jednorazowy kod.Kod smugowy jestuproszczony, ale kompletny, zatem stanowi fragment szkieletu docelowego sys-temu.Tworzenie prototypów jest jak rozpoznanie, próba zebrania cennych da-nych wywiadowczych przed wystrzeleniem pierwszego pocisku smugowego.Pokrewne podrozdziaÅ‚ylð Odpowiednio dobre oprogramowanie w rozdziale 1.lð Prototypy i karteczki samoprzylepne w rozdziale 2.lð PuÅ‚apka specyfikacji w rozdziale 7.lð Wielkie oczekiwania w rozdziale 8.11 Prototypy i karteczki samoprzylepneWiele różnych branż używa prototypów do sprawdzania przyszÅ‚ych rozwiÄ…zaÅ„w najróżniejszych obszarach; tworzenie prototypów jest nieporównanie taÅ„szeod produkcji w peÅ‚nej skali.Na przykÅ‚ad producenci samochodów nierzadkobudujÄ… wiele odmiennych prototypów przed wyborem ostatecznego projektunowego modelu.Każdy prototyp jest projektowany z myÅ›lÄ… o przetestowaniukonkretnego aspektu samochodu parametrów aerodynamicznych, stylistyki,wÅ‚aÅ›ciwoÅ›ci konstrukcyjnych itd.Model z gliny być może jest budowany z myÅ›lÄ…o testach w tunelu aerodynamicznym, natomiast model z drewna balsy i mocnejtaÅ›my samoprzylepnej ma trafić do dziaÅ‚u stylistyki itd.Niektórzy producencisamochodów idÄ… jeszcze krok dalej i ograniczajÄ… siÄ™ do modelowania swoich autw komputerze, dodatkowo ograniczajÄ…c koszty.W ten sposób ryzykowne lubniesprawdzone elementy można Å‚atwo wypróbować bez koniecznoÅ›ci konstru-owania wÅ‚aÅ›ciwego produktu.Prototypy i karteczki samoprzylepne tð 73Prototypy oprogramowania buduje siÄ™ w ten sam sposób i z tych samych po-wodów z myÅ›lÄ… o analizie i ujawnieniu czynników ryzyka oraz o stworzeniudodatkowej szansy wprowadzenia korekt znacznie mniejszym kosztem.Tak jakproducenci samochodów możemy stworzyć prototyp z myÅ›lÄ… o przetestowaniujednego lub wielu konkretnych aspektów realizowanego projektu.TechnikÄ™ tworzenia prototypów zwykle utożsamiamy z pisaniem jakiegoÅ› kodu,jednak prototypy nie zawsze muszÄ… mieć postać programów.Tak jak producencisamochodów możemy konstruować swoje prototypy z różnych materiałów.NaprzykÅ‚ad karteczki samoprzylepne doskonale sprawdzajÄ… siÄ™ w roli budulcaprototypów tak dynamicznych aspektów jak przepÅ‚yw pracy czy logika aplikacji.Prototyp interfejsu użytkownika można narysować na tablicy, opracować w pro-gramie graficznym jako pozbawiony funkcji szkic lub zbudować przy użyciuprogramu do konstruowania interfejsów.Prototypy projektuje siÄ™ z myÅ›lÄ… o uzyskiwaniu odpowiedzi na zaledwie kilkapytaÅ„, zatem z natury rzeczy sÄ… taÅ„sze i szybsze w tworzeniu niż aplikacjetrafiajÄ…ce do Å›rodowiska produkcyjnego.Kod może ignorować nieistotne szcze-góły (nieważne w danej chwili, ale być może bardzo ważne dla użytkownikawÅ‚aÅ›ciwego produktu w przyszÅ‚oÅ›ci).JeÅ›li na przykÅ‚ad tworzymy prototyp gra-ficznego interfejsu użytkownika, możemy caÅ‚kowicie pominąć problem niepra-widÅ‚owych wyników czy danych.JeÅ›li jednak przedmiotem analizy sÄ… aspektyobliczeniowe i wydajnoÅ›ciowe, możemy zrezygnować z atrakcyjnego graficznegointerfejsu użytkownika (a być może nawet z jakiegokolwiek interfejsu tego typu).JeÅ›li znajdujemy siÄ™ w Å›rodowisku, w którym nie możemy ani na momentpominąć żadnego szczegółu, powinniÅ›my odpowiedzieć sobie na pytanie, czykonstruowanie prototypu w ogóle ma sens.W takim przypadku być może lep-szym rozwiÄ…zaniem bÄ™dzie przyjÄ™cie modelu programowania analogicznego dopocisków smugowych (patrz podrozdziaÅ‚ Pociski smugowe we wczeÅ›niejszejczęści tego rozdziaÅ‚u).Co może być przedmiotem prototypuJakiego rodzaju aspekty warto wybierać do zbadania przy użyciu prototypu?Wszystko, z czym wiąże siÄ™ jakieÅ› ryzyko.Wszystko, czego wczeÅ›niej nie pró-bowano lub co ma krytyczne znaczenie dla ostatecznego systemu.Wszystko, cojest niedowiedzione, eksperymentalne lub wÄ…tpliwe.Wszystko, co budzi naszdyskomfort
[ Pobierz całość w formacie PDF ]