Specifiche Algebriche Introduzione Versione 1.0 Gianna Reggio
Versione 1.0 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...
Versione 1.0 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
Versione 1.0 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
Versione 1.0 Metodo di specifica (formale) FormalModel ItemSpecification * sem * rationale * * Item gli elementi specificati (descritti) [programmi funzionali] FormalModel strutture matematiche che corispondono agli item specificati [funzioni I/O] rationale come i formal model corrispondono agli item [….] sem semantica delle specifiche (ogni specifica individua un insieme di formal models)
Versione 1.0 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.
Versione 1.0 Specifiche logico-algebriche 1 interpretation 1 * m-over f-over 1 formulae * BasicSpecification prop: set(Formula) Formula Signature FormalModel Item rationale * * Specification * sem * * holds satisfies * sig 1 *
Versione 1.0 Specifiche logico-algebriche 2 Signature i formal models sono classificati rispetto alla loro “struttura statica” [funzioni classificate dal loro tipo] m-over collega un formal model con la signature che descrive la sua struttura interpretation collega una signature con tutti i formal model aventi tale struttura Formula descrizione di proprietà di interesse riguardanti i formal models f-over ogni formula è costruita su una signature holds\satisfies quando una formula vale su un formal model\ un formal model soddisfa una formula
Versione 1.0 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
Versione 1.0 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)
Versione 1.0 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??)