Architetture software



Похожие документы
Automazione Industriale (scheduling+mms) scheduling+mms.

7. Architetture Software

Strumenti di modellazione. Gabriella Trucco

Automazione Industriale 4- Ingegneria del Software

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

La Metodologia adottata nel Corso

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Class Discovery E.

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Protezione. Protezione. Protezione. Obiettivi della protezione

Università Politecnica delle Marche. Progetto Didattico

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Dalla progettazione concettuale alla modellazione di dominio

Base di dati e sistemi informativi

Elementi di UML (7): Diagrammi dei componenti e di deployment

IL SISTEMA INFORMATIVO

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Progettazione di Basi di Dati

Modellazione dei dati in UML

Basi di dati 9 febbraio 2010 Compito A

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Infrastruttura di produzione INFN-GRID

I sistemi distribuiti

Progettaz. e sviluppo Data Base

FONDAMENTI di INFORMATICA L. Mezzalira

Approccio stratificato

PROGETTAZIONE E SVILUPPO DI UN. Relatore: Studente: Paolo Merialdo Valerio Barbagallo

Comunicazione tra Processi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Sistemi informativi secondo prospettive combinate

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Scenario di Progettazione

Fasi di creazione di un programma

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Alessandra Raffaetà. Basi di Dati

Modello di Controllo dell Accesso basato sui ruoli (RBAC)

Per capire meglio l ambito di applicazione di un DWhouse consideriamo la piramide di Anthony, L. Direzionale. L. Manageriale. L.

Organizzazione degli archivi

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

SISTEMI E RETI 4(2) 4(2) 4(2) caratteristiche funzionali

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni

Lezione 1. Introduzione e Modellazione Concettuale

Corso di Laurea Triennale in Ingegneria Informatica. Corso di Ingegneria del software A. A Marina Mongiello

UNIVERSITÀ DEGLI STUDI DI PADOVA

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

MANUALE DELLA QUALITÀ Pag. 1 di 6

Concetti di base di ingegneria del software

Corso di Basi di Dati e Conoscenza

Diagrammi di Interazione

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A

Database. Si ringrazia Marco Bertini per le slides

Il Sistema Operativo

Cap.1 - L impresa come sistema

Ingegneria del Software. Introduzione ai pattern

STATUTO CONSORTILE. Art. 50, comma 4

PROXYMA Contrà San Silvestro, Vicenza Tel Fax

SDD System design document

Una metodologia per la specifica di software basato su componenti

B.P.S. Business Process Server ALLEGATO C10

Modellazione di sistema

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Sequence Diagram e Collaboration Diagram

Implementazione di un servizio VoIP in ambienti SOA per mobile computing

Progettazione del Software, Laurea in Ingegneria Gestionale Progettazione del Software Laurea in Ing. Gestionale

Le reti. Introduzione al concetto di rete. Classificazioni in base a

Il modello di ottimizzazione SAM

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

INFORMATICA 1 L. Mezzalira

DESIGN PATTERN ESERCITAZIONE PREPARAZIONE ALL ESAME, PARTE II INGEGNERIA DEL SOFTWARE. La soluzione corretta è la c)

INDICOD Allegato tecnico

Dispensa di Informatica I.1

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di Network design

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Informatica Documentale

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)

Progettaz. e sviluppo Data Base

AUDIT. 2. Processo di valutazione

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Esercitazione di Basi di Dati

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Reingegnerizzazione di un Content Management System verso l accessibilità secondo la normativa italiana

Транскрипт:

Corso di Laurea Magistrale in Ingegneria Informatica Corso di Ingegneria del A. A. 2013-2014 Architettura software 1 Architetture software

Sommario Definizioni 2

Architettura Definizione. L architettura di un sistema software è l insieme delle principali decisioni di progetto relative al sistema Altre definizioni: 3

Componente Definizione. Un componente software è un entità architetturale che Incapsula un sottoinsieme delle funzionalità del sistema e/o di data Restringe l accesso a quel sottoinsieme tramite un interfaccia esplicita Ha dipendenze esplicitamente definite sul contesto di esecuzione 4

Componente Le componenti hanno il compito di svolgere elaborazioni o gestire dati o entrambi. Un altro aspetto fondamentale è l interazione tra i vari building block. I moderni sistemi distribuiti sono costituti da numerose componenti complesse distribuite su numerosi host anche mobili e dinamicamente aggiornati anche nell arco di lunghi peridio di tempo. In questi sistemi assicurare interazioni appropriate tra i vari componenti è un compito notevolmente più complesso dell individuazione delle funzionalità di ciascuno. Le interazioni quindi sono il principale aspetto da prendere in considerazione nello sviluppo di sistemi a componenti. Le interazioni tra componenti sono gestite dai connettori 5

Connettore Definizione. Un connettore software è un elemento architetturale che consente di effettuare e regolare le interazioni tra componenti Esempi di connettori: Procedure call Shared data access RPC Adaptor 6

Notazione componente connettore componente 7

Esempio Nelle applicazioni tradizionali i connettori sono generalmente semplici procedure calla o shared data access, considerate generalmente come elementi non esplicitamente raffigurati nel modello dell architettura. In un tipico digramma boxes-and-linesle boxes sono i componenti mentre i connettori sono relegati ad un ruolo minore e rappresentati come linee senza una propria identità e senza importanti proprietà ed attributi. 8

Connettori Si tratta in questo caso di semplici connettori usati per rappresentare l interazione tra coppie di componenti. Per sistemi software più complessi, invece è necessario rappresentare i connettori come elementi a se stanti aventi una propria identità, ruoli ed un copro a livello di codice di implementazione, nonché la possibilità di servire molti componenti 9

Procedure call È il tipo più semplice di connettore: Direttamente implementato dal linguaggio di programmazione Consentono lo scambio sincrono di dati e controllo tra coppie di componenti 10

Shared data access Variabili non locali o memoria condivisa. Connettori di questo tipo consentono a componenti multiple di interagire leggendo da e scrivendo sull area condivisa. L interazione è asincrona: non vi è dipendenza temporale, né altro vincolo di spazio o tempo. 11

Distribution connectors Nei moderni sistemi distribuiti si trova questa classe di connettori. Incapsulano generalmente librerie di APIs per consentire a componenti diverse di interagire. Un distribution connector è generalmente accoppiato con un connettore più semplice che ha il compito di isolare le componenti interagenti dai dettagli del sistema distribuito. Ad esempio una RPC unisce un supporto distribuito con una procedure calls. 12

Adaptor Molti sistemi distribuiti sono costituiti da componenti software preesistenti che possono anche non essere immediatamente integrabili nel sistema in considerazione. In questi casi può essere necessario che le componenti siano integrate ed interagiscano reciprocamente. Il connettore adaptor è utilizzato per ottenere questo scopo. A secondo delle caratteristiche e del contesto in cui viene utilizzato wrappers e glue code sono due tipi di connettori adaptor molto comuni. 13

Componenti - Connettori Le componenti sono generalmente servizi applicationspecific mentre i connettori sono applicationindependent. Publish-subscribe, procedure call, asyncronous event notification hanno caratteristiche e semantica indipendente dal contesto per cui sono utilizzati, sono connettori costruiti senza un particolare obiettivo che possono poi essere applicati in applicazioni anche ripetutamente. 14

Configurazione Definizione. Una configurazione architetturale è un insieme di associazioni specifiche tra i componenti e i connettori dell architettura di un sistema software Può essere rappresentata come un grafo i nodi rappresentano le componenti e i connettori e gli archi le relative associazioni (topologie o interconnessioni). 15

Stile architetturale Definizione. Uno stile architetturale è una collezione di: decisioni di progetto architetturale applicabile in un determinato contesto di sviluppo Vincoli di progetto architetturale che sono specifici ad un particolare sistema in quel contesto Conseguenti attributi di qualità nel sistema risultante 16

Pattern architetturale Definizione. Un pattern architetturale è una collezione di decisioni di progetto architetturale applicabili ad un problema ricorrente, parametrizzate per differenti contesti di sviluppo software in cui quel problema si verifica 17

Connettori I connettori forniscono generalmente servizi quali persistenza, invocation, messaging transaction, indipendenti dal componetene per cui forniscono interazione ad altri componenti. Sono quindi considerati come «facilities components» in middleware molto diffusi come Corba RMI, ecc. Individuando queste facilities come connettori migliora e facilitò la comprensione dell architettura. Considerandolo cioè come connettori più che come componenti facilita anche il loro riutilizzo in quanto garantiscono la «separazione degli interessi» 18

Caratteristiche dei connettori Gli elementi fondamentali alla base di un connettore sono le primitive per gestire il flow of control and flow of data. Mantengono uno o più canali «ducts» utilizzati per collegare le componenti interagenti e supportare il control flow a ed il data flow tra di esse. Un duct è necessario per realizzare un connettore ma non fornisce funzionalità aggiuntive 19

Caratteristiche generali Connettori semplici sono implementati in molti linguaggi di programmazione Connettori complessi possono essere realizzati componenti numerosi connettori elementari e sono forniti da librerie e framework. La classificazione dei connettori è basata su una struttura di grafo aciclico in termini di: categorie tipi dimensioni Subdimensioni Le istanze di ciascun connettore rappresentano la specie che può appartenere anche a tipi diversi. 20

Ruolo dei connettori Ruoli forniti da un connettore: Comunicazione Coordinamento Conversione Semplificazione 21