Informatica ecologica/Interazione degli Opposti
L'obbiettivo di questo capitolo è definire un concetto generale che chiamiamo "Interazione degli Opposti".
Osservazione Naturale
modificaIn Natura i sistemi non sono isolati ma interagiscono con l'Ambiente mantenendo un equilibrio dinamico.
Relativo significato
modificaUn sistema cambia nel tempo ripristinando sempre un equilibrio con il contesto su cui agisce.
Sua Enunciazione
modifica- Un sistema dipende dal contesto su cui opera e dall'interazione con lo stesso e si adegua ai suoi cambiamenti.
La definizione qui esposta è diversa da quelle a cui siamo abituati. Qui non viene definito qualcosa, ma bensì si definisce un procedimento per ottenere diverse cose.
Faccio un esempio, se dovessi definire che cosa sia una "frase" in grammatica italiana normalmente direi:
- La frase o proposizione è l'unità minima di comunicazione dotata di senso compiuto
(Serianni[1989, pag.85])
Ma potrei invece dire:
- La frase si ottiene componendo un Soggetto un Verbo e un Complemento Oggetto
Quindi tramite la seconda definizione non sappiamo effettivamente cosa sia una frase ma solo come realizzarla o meglio il procedimento necessario per realizzarla.
Nel nostro caso non ci interessa definire "Intereazione degli Opposti", ma sapere che questo è il procedimento di funzionamento dei sistemi.
Corrispondenza in Informatica
modificaUna visione Informatica del principio potrebbe essere la seguente:
- L'Informazione esiste se e solo se esiste l'entità che la genera e l'entità che ne usufruisce.
In termini fisici si potrebbe dire che un sistema esiste se è in grado d'informare il contesto della sua esistenza.
Una visione più adeguata ai nostri scopi potrebbe essere:
- Un Modello Informatico (teoria o analisi) esiste se ne esiste una sua Implementazione (pratica o implementazione) e un modo per realizzarla (progettazione).
Quindi perché il nostro modello rispetti il nostro principio potrebbe essere strutturato come segue:
- Analisi
- Progettazione
- Implementazione
Diremo inoltre che la progettazione deve essere fatta in modo da adeguarsi all'implemetazione, ovvero:
- Un software deve adeguarsi al contesto in cui viene eseguito.
Questo non significa come spesso si dice tra gli addetti ai lavori (informatici), un software indipendente dal contesto... !
Qui viene evidenziato che il software dipende e come dal contesto e da come interagisce con esso, ma si deve adeguare ad un suo cambiamento.
Quindi un software non deve avere un comportamento e un'interfaccia rigida e assoluta, ma deve essere configurabile in base al contesto su cui verrà eseguito.
Per coloro che hanno dimestichezza con i termini informatici potremmo sintetizzare dicendo che il software deve essere:
- Modulare (Object Oriented)
- Distribuito (eseguibile su diverse macchine)
- Con Standard aperti (definizioni di interfacciamento)
- Definibile tramite contratto tipo WSDL (Web Services Description Language)
- Altamente configurabile IOC (Inversion of control) e AOP (Aspect Oriented Programming)
Note
modifica