Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 3 - Modelli di fase d’analisi Ernesto Damiani Università degli Studi di Milano Lezione 6 – Complementi sugli automi (2)
Un esempio (1) Questa macchina rimane intrappolata nel tratto BC. Non è sufficiente ampliare l’alfabeto dei simboli O in modo da includere la svolta a sinistra (s) – O = { p, d, s, a } A B
Un esempio (2) Nessuna macchina del suo tipo ce la può fare: quando la macchina trova un ostacolo (input o), come fa a decidere se svoltare a destra a sinistra?
Memoria interna (1) Ad un simbolo di input o corrispondono ora due simboli di output d e s, quindi non è più utilizzabile una macchina basata su un modello di funzione che fa corrispondere ad ogni elemento di input uno ed un solo elemento di output. – Quello che manca alla macchina è la capacità di ricordare il passato.
Memoria interna (2) Una possibilità sarebbe quella di far memorizzare alla macchina il fatto di aver già effettuato (o di non aver ancora effettuato) la svolta a destra e far dipendere la decisione dell’output da questa informazione.
Stati interni Dobbiamo dotare la macchina di una memoria interna. In questo caso, la memoria sarà costituita da da due stati interni – n (svolta a destra non ancora effettuata) – m (svolta a destra già effettuata) L’insieme degli stati interni è S = { n, m } A B C D
Funzione di uscita (1) Dobbiamo fare in modo che la macchina tenga conto sia dell’input sia dello stato interno mediante una nuova funzione di uscita – G: S x I O
Funzione di uscita (2) Tabella che definisce la funzione di uscita
Funzione di transizione (1) Dobbiamo fare in modo anche che la macchina sia in grado di aggiornare lo stato interno in base all’input ricevuto, nel nostro caso la funzione adeguata – f: S x I S
Funzione di transizione (2) Tabella che definisce la funzione di transizione
Grafo della macchina a stati Grafo che definisce la funzione di transizione nm v vp p f a f a o d so FINE