|
A fost o
data ca niciodata intr-o imparatie nu chiar asa de departe de aici un
imparat care si-a chemat doi dintre sfetnici ca sa-i puna la incercare.
Le-a aratat amandurora o stralucitoare cutie de metal cu doua gauri deasupra,
un buton, si un maner. "Ce ziceti de asta?" i-a intrebat el.
Unul dintre
sfetnici, hardist de felu-i, a dat primul raspunsul. "E un prajitor de
paine, maria ta" a spus el. Si imparatul a l-a intrebat:"Cum ai proiecta
un calculator care sa controleze chestia asta?"
Iar sfetnicul,
dupa putina vreme a raspuns: "Folosind un controler pe 4 biti, as scrie
un program simplu care sa citeasca 16 nuante de gri de la alb ca zapada
la negru precum carbunele. Programul pe care-l voi folosi acest nivel
de gri ca sa indexeze tabela de 16 elemente folosindu-l pe primul ca valoare
initiala a timer-ului. Apoi pornim elementii de incalzire si pornim timer-ul
cu valoarea initiala aleasa din tabel. La sfarsit va opri caldura si va
scoate afara painea prajita. Saptamana viitoare va pot arata un prototip,
daca maria sa doreste."
Al doilea
sfetnic, softist de felul sau, si-a dat seama imediat de pericolul unei
asemenea gandiri simple asa ca a spus: "Prajitoarele nu sunt facute doar
ca sa transforme painea in paine prajita, ele pot fi folosite si ca sa
incalzesti chifle sau sa dezgheti paine congelata. Cum supusii mariei
voastre sdevin din ce in ce mai sofisticati ei vor dori sa aiba din ce
in ce mai multe posibilitati. Vor avea nevoie de un cuptor pentru micul
dejun care sa poata face si carnati, si omleta si sunculita prajita. Un
prajitor care sa prajeasca doar va fi in curand fara nici un folos. Daca
nu gandim lucurile cu bataie lunga va trebui sa transformam prajitorul
in numai cativa ani.
Avand acestea
in vedere m-am gandit ca o solutie inteligenta ar fi sa cream o clasa
de mancaruri pentru micul dejun, apoi sa o spargem in mai multe subclase
ca de pilda: carne, legume, pui. Procesul de specializare va trebui repetat
si la un nivel inferior; astfel subclasa "pui" se imparte in oua fierte,
omlete si oua moi, carnea in carnaciori, sunca, precum si variate clase
de slaninute.
Clasele
suncilor si a omletei cu branza merita o atentie deosebita pentru ca ele
mostenesc caracteristici atat de la carne cat si de la pui si lactate.
Vedem astfel cum problema nu poate fi rezolvata fara o teorie a mostenirii
multiple. La rulare programul trebuie sa-si creeze obiectul de care are
nevoie si sa-i trimita un mesaj obiectului spunandu-i "coace-te". Semantica
acestui mesaj depinde bineinteles de caracteristicile specifice obiectului
astfel incat el va avea un inteles diferita daca avem de-a face cu o bucata
de paine prajita sau cu o omleta.
Revenind
asupra procesului descris pana aici, vedem ca faza de analiza a revelat
posibilitatea de a coace orice drept o cerinta primara. In faza de design
vedem cateva cerinte derivate ca de exemplu necesitatea unui limbaj orientat
obiect care sa beneficieze de mostenire multipla. Si desigur nu vrem ca
ouale sa se raceasca pana sa se faca sunculita asa ca avem nevoie de procese
concurente.
Nu trebuie
lasata la o parte nici interfata cu utilizatorul. Manerul care seschide
aparatul si butonul sunt neclare. Cumparatorii nu vor da anii pe ceva
neclar si neprietenos. De exemplu cand cuptorul de mic dejun este in priza
utlizatorii ar trebui sa vada o cizma cu pinteni pe ecran si cand clicheaza
pe ea sa li se infatiseze mesajul "UNIX v.8.3 booteaza" ( o sa iasa si
UNIX 8.3 pana sa ajunga produsul nostru pe piata). Utilizatorul apoi poate
apasa pe un menu in care sa-si aleaga elementele din care vor sa-si gateasca
micul dejun.
Alegand
sotul de care avem nevoie in mod intelept in faza de design putem acum
sa ne alegem platforma hardware adecvata pentru faza de implementare.
Un Pentium Intel cu 48 MB, cu un HDD de 1.2 GB si un monitor SVGS probabil
ne vor fi suficiente, iar daca alegem un limbaj multitasking, orienat
obiect, care suporta mostenire multipla, scrierea programului va merge
cat ai clipi din ochi. "
Iar imparatul
atunci, cuprins de intelepciune, porunci ca sfetnicului sau softist sa
i se taie capul si toti au trait fericiti pana la adanci batranete.
|