15.06.2013 Views

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

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.

Carnielli Efrem: Programmazione a componenti<br />

Def<strong>in</strong>izione ed uso <strong>di</strong> classi, oggetti ed <strong>in</strong>terfacce<br />

domanda “make or buy?” e, <strong>in</strong><strong>di</strong>pendentemente dalla risposta, ci saranno dei pregi<br />

e dei <strong>di</strong>fetti riguardo alla scelta effettuata. Nel caso del make, avremo un sistema<br />

<strong>in</strong>formativo perfettamente aderente alle metodologie e alle esigenze dell’azienda.<br />

Per realizzare un software <strong>di</strong> questo tipo le conoscenze richieste sono elevate nel<br />

caso <strong>di</strong> progetti <strong>di</strong> un certo livello, <strong>in</strong>oltre bisogna tenere <strong>in</strong> considerazione il<br />

tempo necessario per la realizzazione <strong>di</strong> software. Se la scelta cade sul make si ha<br />

un notevole risparmio sia <strong>in</strong> term<strong>in</strong>i <strong>di</strong> tempo sia <strong>di</strong> denaro, però è necessario<br />

uniformarsi alle metodologie <strong>di</strong> produzione aziendale standard dovendo<br />

r<strong>in</strong>unciare alla propria specificità e adottando un’applicazione che non sod<strong>di</strong>sfa<br />

pienamente le nostre esigenze. La soluzione migliore si trova comb<strong>in</strong>ando le due<br />

modalità: il software verrà creato unendo e facendo cooperare varie parti già<br />

presenti sul mercato e il quale funzionamento è già stato collaudato. Queste parti<br />

vengono chiamate componenti. Il lavoro, perciò, consiste nel far cooperare le varie<br />

componenti e nello sviluppare quelle che eventualmente non esistono. La<br />

caratteristica fondamentale <strong>di</strong> una componente è il fatto che,una volta creata, può<br />

essere riutilizzata <strong>in</strong> <strong>di</strong>verse situazioni.<br />

Queste sono le caratteristiche <strong>di</strong> una componente:<br />

• è un’unità <strong>di</strong> <strong>di</strong>stribuzione <strong>in</strong><strong>di</strong>pendente: deve essere ben separata<br />

dall’ambiente <strong>in</strong> cui viene utilizzata. Incapsula le caratteristiche che la<br />

costituiscono. Viene def<strong>in</strong>ita come unità nel senso <strong>di</strong> unicità: non può<br />

essere <strong>di</strong>stribuita “a pezzi”.<br />

• è un’unità <strong>di</strong> composizione con terzi: potrebbe non servire a niente da<br />

sola ma deve essere utilizzata <strong>in</strong>sieme ad altre componenti. Il suo uso<br />

da solo <strong>in</strong> certi casi è consentito e <strong>di</strong>pende dalla sua granularità. Per<br />

comporsi, due componenti non devono conoscere le parti costituenti<br />

dell’altra componente. Perciò, sono necessarie delle specifiche che<br />

accompagn<strong>in</strong>o la componente per poterla utilizzare. L’unica cosa che si<br />

deve conoscere per poter utilizzare una componente è la sua<br />

<strong>in</strong>terfaccia.<br />

• non deve avere uno stato persistente: la componente viene chiamata<br />

immutable plan perché se ci sono due componenti uguali, non ci deve<br />

essere uno stato che permetta <strong>di</strong> <strong>di</strong>st<strong>in</strong>guere la prima dalla seconda.<br />

Cerchiamo <strong>di</strong> chiarire la def<strong>in</strong>izione <strong>di</strong> componente con degli esempi.<br />

Penso ad un componente come alla classe Str<strong>in</strong>g, un’istanza della classe può essere<br />

“ciao”. Ma la classe Str<strong>in</strong>g non è cambiata è sempre la stessa. Prendo l’istanza<br />

“notte”, ho due istanze <strong>di</strong>verse <strong>di</strong> uno stesso componente.<br />

Il componente è un programma statico ed immutabile.<br />

La libreria C math.h è una componente mentre il programma che usa la libreria con<br />

l’istruzione #<strong>in</strong>clude math.h, crea un’istanza della componente. Nella macch<strong>in</strong>a<br />

164

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!