Acasa mai departe
Hronicul cu trei picioare

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.

 

 

Acasa Mai departe