Istituzioni di ingegneria del software

[Lezione 3] - La Future Programming (FP)

15/02/2017


1 In questa lezione

2 La Future Programming (FP)
 2.1 La prima legge della FP
 2.2 La seconda legge della FP

***

2 La Future Programming (FP)

2.1 La prima legge della FP

La prima legge della FP
Le relazioni interne Ri di un sistema software SW sono covarianti per trasformazioni del codice sorgente P.

La figura 1 rappresenta due versioni di un sistema software SW: al tempo t’ gli elementi e1(t’) ed e2(t’), parte della release SW’ del sistema software, sono nella relazione r(t’), ossia: r(t’) è la legge che specifica il tipo e il modo della comunicazione instaurata tra e1(t’) ed e2(t’); al tempo t’’ gli elementi e1(t’’) ed e2(t’’), parte della release SW’’ del sistema software, sono nella relazione r(t’’), ossia: r(t’’) è la legge che specifica il tipo e il modo della comunicazione instaurata tra e1(t’’) ed e2(t’’) al tempo t’’. La prima legge della FP è rispettata se e solo se esiste un omomorfismo Ω tra SW’ e SW’’ tale che per ogni e1(t’) ed e2(t’) appartenenti a SW’; e per ogni e1(t’’) ed e2(t’’) appartenenti a SW’’ sia: Ω(e1(t’)r(t’)e2(t’))=Ω(e1(t’))r(t’’)Ω(e2(t’))=e1(t’’)r(t’’)e2(t’’). Ossia: la legge che specifica il tipo e il modo della comunicazione instaurata tra e1 ed e2 al tempo t’ conserva la stessa forma dopo essere stata trasformata nella legge che specifica il tipo e il modo della comunicazione instaurata tra e1 ed e2 al tempo t’’;


Figura 1 - La prima legge della FP

A esempio:
Ipotesi 1:
l’insieme P degli elementi fisici della prima release di un sistema software SW contiene gli elementi p1, p2 e p3, dove: p1 compie l’operazione di crittografia di una stringa s: p1(s)=sc; p2 compie l’operazione di decrittazione della stringa crittografata sc: p2(sc)=s; e p3 compie l’operazione di controllo della presenza della stringa crittografata in un database db: p3(sc)={1, se sc è presente in db; 0, se sc è assente in db} (Figura 2 – Esempio di FP).
Ipotesi 2:
si rende necessario l’utilizzo di un nuovo algoritmo di crittografia e di un nuovo algoritmo di decrittazione. Poste le ipotesi 1 e 2 è facile verificare che l’insieme P’ della nuova versione SW’ del sistema software conterrà gli elementi p’1, p’2 e p’3, dove: p1 è diverso da p’1, poiché p’1 utilizza il nuovo algoritmo di crittografia; p2 è diverso da p’2, poiché p’2 utilizza il nuovo algoritmo di decrittazione; e p3 è uguale a p’3, poiché il controllo della presenza della stringa crittografata sc in un database db è indipendente dagli algoritmi di crittografia e decrittazione.


Figura 2 - Esempio di FP

2.2 La seconda legge della FP

La seconda legge della FP
Sia F l’insieme delle funzioni che il sistema software SW realizza. Esiste un’applicazione ψ tra SW e F, tale che per ogni coppia di elementi logici o fisici e1 ed e2 di SW si ha che: se ψ(e1)=ψ(e2) allora e1=e2; e per ogni f di F esiste unico l’elemento logico o fisico e di SW tale che f=ψ(e).

Osservazione: La seconda legge della FP equivale a dire che ogni elemento del sistema software SW, atomico o complesso, logico o fisico, partecipa a una funzione singola (figura 3 – La seconda legge della FP). Ossia esiste un omomorfismo ∑ tra F’ e F’’ tale che:
∑(Ψ(e1(t’))s(t’)Ψ(e2(t’)))=∑(f1(t’)s(t’)f2(t’))=∑(f1(t’))s(t’’)∑(f2(t’))=f1(t’’)s(t’’)f2(t’’).


Figura 3 - La seconda legge della FP





< lezione precedente