150 likes | 337 Views
Specifiche Algebriche. Gianna Reggio reggio@disi.unige.it. Indice. Introduzione Logica del prim’ordine, many-sorted, parziale con uguaglianza Segnatura many-sorted del prim’ordine Algebra many-sorted parziali del prim’ordine Formule Interpretazione e validità. Specifiche 1.
E N D
Specifiche Algebriche Gianna Reggio reggio@disi.unige.it
Indice • Introduzione • Logica del prim’ordine, many-sorted, parziale con uguaglianza • Segnatura many-sorted del prim’ordine • Algebra many-sorted parziali del prim’ordine • Formule • Interpretazione e validità
Specifiche 1 • Il processo di sviluppo di un sistema software (o di una sua parte) consiste essenzialmente nel produrre una serie di elaborati (artifacts) che • descrivono tale sistema a diversi livelli di astrazione • requisiti dal punto di vista dell’utilizzatore del sistema • progetto (design) di massima • progetto (design) dettagliato • pseudo codice • ... • descrivono particolari aspetti di tale sistema • prestazioni (Quality Of Service) • tolleranza ai guasti • dominio su cui opera il sistema • ...
Specifiche 2 • occorre produrre • descrizioni di (particolari aspetti) (parti di) sistemi software, dette • specifiche oppure modelli • quale linguaggio/notazione utilizzare per tali descrizioni • più comune: linguaggio naturale, magari con diagrammi/disegnini, completamente libero [informale] • abbastanza espressivo • non necessita di addestramento, • ambiguo • non adatto a manipolazioni per mezzo di strumenti informatici
Specifiche 3 • diagrammi/testo aventi una forma molto precisa, ma il cui significato è presentato informalmente uusando il linguaggio naturale, es. UML,[semi-formale] • espressivo • necessita di istruzione, ma non di particolari consocenze teoriche • possibilmente ambiguo • adatto a manipolazioni a livello sintattico per mezzo di strumenti informatici • notazione basate su una precisa teoria matematiche (es. logica del prim’ordine) [formale] • poco espressivo • necessita di istruzione, e della consocenza della teoria sottostante • non ambiguo (corredato di semantica formale) • adatto a manipolazioni a livello del contenuto per mezzo di strumenti informatici
* Item rationale * sem Specification FormalModel * * Metodo di specifica (formale) • Itemgli elementi specificati (descritti) [programmi funzionali] • FormalModelstrutture matematiche che corispondono agli item specificati [funzioni I/O] • rationalecome i formal model corrispondono agli item [….] • semsemantica delle specifiche (ogni specifica individua un insieme di formal models)
Esercizi • Esercizio 0:elencate delle notazioni/tecniche di specifiche che avete utilizzato prima di ora, classificandole rispetto alla loro formalità ed agli item che considerano.
sig Item * rationale * 1 * * sem m-over Specification Signature FormalModel 1 interpretation * * 1 * holds f-over BasicSpecification formulae * * satisfies prop: set(Formula) Formula Specifiche logico-algebriche 1
Specifiche logico-algebriche 2 • Signaturei formal models sono classificati rispetto alla loro “struttura statica” [funzioni classificate dal loro tipo] • m-overcollega un formal model con la signature che descrive la sua struttura • interpretationcollega una signature con tutti i formal model aventi tale struttura • Formuladescrizione di proprietà di interesse riguardanti i formal models • f-overogni formula è costruita su una signature • holds\satisfiesquando una formula vale su un formal model\un formal model soddisfa una formula
Specifiche logico-algebriche 3 • BasicSpecification • la forma più semplice di specifica logico-algebrico,esistono anche, per esempio, specifiche strutturate • consiste essenzialmente di una segnatura e di un insieme di formule, chiaramente su tale segnatura • sem in questo caso la semantica è definita come l’insieme dei modelli formali sulla segnatura della specifica che soddisfano tutte le formule della specifica stessa
In questo corso • specifiche basate su una logica • many-sorted • del prim’ordine • parziale • con uguaglianza • Item • strutture dati • moduli funzionali • aspetti funzionali di • programmi imperativi • moduli imperativi (componenti) • dominio applicativo • frequentemente inclusa come sottoparte in molte notazioni (anche semi-formali, es., UML)
Formal models • Algebre many-sorted parziali con predicati • estensione di quelle viste ad Algebra • classificate da segnature many-sorted del prim’ordine (viste a logica??)
Segnatura many-sorted del prim’ordine • Una segnatura S = (S,F,P) consiste di • un insieme S di nomi dei tipi, o sort • una famiglia F di simboli di funzioni, indiciata su S*S • se f Fs1…sn,s indicheremo f: s1…sns • una famiglia P di simboli di predicati, indiciata su S* • se p Ps1…sn indicheremo p: s1…sn
Esempio: Slist • segnatura per le liste di interi • S = { int, list } • F consiste di • 0: int [zerario, costante] • S: int int • empty: list • push: int list list • pop: list list • top: listint • P consiste di • isempty: list • isIn: int list • Esercizio 1:definire Slistaaggiungendo a Slistla concatenazione di liste e l’operazione che ritorna l’insieme degli elementi di una lista
FINE Lezione 1 Lunedì 28 Ottobre 15-16