Lezione 18 – Tecniche di descrizione architetturale Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 3 - Modelli di fase d’analisi Ernesto Damiani Università degli Studi di Milano Rendere comprensibili le descrizioni di architetture software (1) Introduzione (1) • L’architettura software descrive un sistema software • Le descrizioni architetturali sono informali e diagrammatiche • Spesso si usano box e linee: ambiguità – Per un sistema possono significare filtri e pipe – Per un altro sistema box oggetti e linee o tipi di dati astratti chiamate di procedura Rendere comprensibili le descrizioni di architetture software (2) Introduzione (2) • Convenzioni grafiche diverse usate per descrivere più di un tipo di componente o connessione in un singolo sistema • Stereotipi usati in tutte le descrizioni architetturali Come usare gli stereotipi • Definire il modello semantico • Discutere la sintassi concreta per facilitare la leggibilità delle descrizioni sintattiche • Definire la corrispondenza (mapping) dalla sintassi astratta al modello semantico • Rendere espliciti i vincoli sulla sintassi Sintassi astratta di architetture software (1) • Componente – Il rapporto astratto tra il componente e il suo ambiente è definito come un insieme di porte o punti d’interazione: [PORT, COMPDESC] Sintassi astratta di architetture software (2) • Connettori – Il connettore ha un’interfaccia che consiste in un insieme di ruoli: [ROLE, CONNDESC] Sintassi astratta di architetture software (3) • Le istanze di componenti e connettori sono identificate denominando elementi dalla classe sintattica – [COMPNAME, CONNNAME] – PortInst == COMPNAME x PORT – RoleInst == CONNNAME x ROLE Fase 1 (1) Definire il modello semantico Fase 1 (2) Definire il modello semantico Fase 2 Definire la sintassi concreta Fase 3 Mapping dalla sintassi astratta al modello semantico Fase 4 Evidenziare i vincoli sulla sintassi Vantaggi • Fornisce un modello per formalizzare nuovi stili architetturali in modo uniforme • Fornisce criteri uniformi per dimostrare che i vincoli notazionali su uno stile siano sufficienti per fornire significati per tutti i sistemi descritti • Rende possibile una base semantica unificata attraverso cui interpretazioni stilistiche diverse possono essere confrontate FINE