7. Architetture Software



Documenti analoghi
7. Architetture Software

6. Architetture Software

9. Architetture di Dominio

11. Evoluzione del Software

12. Evoluzione del Software

Approccio stratificato

Ingegneria del Software. Introduzione ai pattern

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

Architetture software

Strumenti di modellazione. Gabriella Trucco

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

Automazione Industriale (scheduling+mms) scheduling+mms.

Concetti di base di ingegneria del software

La Metodologia adottata nel Corso

Generazione Automatica di Asserzioni da Modelli di Specifica

INGEGNERIA DEL SOFTWARE. Prof. Paolo Salvaneschi

SCENARIO. Personas ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

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

SDD System design document

Ingegneria del Software 12. Progettazione. Dipartimento di Informatica Università di Pisa A.A. 2014/15

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

Modellazione di sistema

1. BASI DI DATI: GENERALITÀ

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A2_3 V2.0. Processi. Scelta dei processi adeguati

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

DATABASE. A cura di Massimiliano Buschi

Progetto. Portale Turistico Regionale. Andrea Polini, Oliviero Riganelli, Massimo Troiani. Ingegneria del Software Corso di Laurea in Informatica

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

Introduzione. Il software e l ingegneria del software. Marina Mongiello Ingegneria del software 1

Specifiche Tecnico-Funzionali

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

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

ISTITUTO TECNICO ECONOMICO MOSSOTTI

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Progettazione della componente applicativa

Ciclo di vita dimensionale

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A

EXPLOit Content Management Data Base per documenti SGML/XML

Base di dati e sistemi informativi

Il modello di ottimizzazione SAM

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

FONDAMENTI di INFORMATICA L. Mezzalira

In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC

Indice. Ingegneria dei requisiti e gestione agile. User-Centered Development Esempi di artefatti. Domain Driven Design. Design for Testability

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

Ibpm è lo strumento per la gestione dei processi, dalla modellazione, all esecuzione, al monitoraggio.

Indice. pagina 2 di 10

ACQUISIZIONE DATI DI PRODUZIONE SISTEMA PDA

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

4.1 Che cos è l ideazione

lem logic enterprise manager

Organizzazione degli archivi

Piano di gestione della qualità

Coordinazione Distribuita

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

SUAP. Per gli operatori SUAP/amministratori. Per il richiedente

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

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

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

5. Requisiti del Software II

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

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ

Scenario di Progettazione

Architettura SW Definizione e Notazioni

Protezione. Protezione. Protezione. Obiettivi della protezione

Object Oriented Software Design

Sequence Diagram e Collaboration Diagram

Automazione Industriale 4- Ingegneria del Software

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Simulazione di macchina: analisi virtuale del comportamento cinematico. Elio Bergamaschi

GESTIONE AVANZATA DEI MATERIALI

Introduzione alla Virtualizzazione

PRESENTAZIONE. Chi è B-Bright

UML Component and Deployment diagram

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

CP Customer Portal. Sistema di gestione ticket unificato

UML e (R)UP (an overview)

Sistemi informativi secondo prospettive combinate

La progettazione centrata sull utente nei bandi di gara

ANALISI E MAPPATURA DEI PROCESSI AZIENDALI

Funzioni in C. Violetta Lonati

Ipertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a

ManPro.Net: Principali caratteristiche del prodotto.

Dematerializzare per Semplificare

Modellazione dei dati in UML

ISO 9001:2015 e ISO 14001:2015

Diagrammi di Interazione

Programmazione a Oggetti Modulo B

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

4.5 CONTROLLO DEI DOCUMENTI E DEI DATI

InfiXor. il programma facile e versatile per preventivi veloci e completi. il software di preventivazione per produttori e rivenditori di infissi

Strutturazione logica dei dati: i file

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

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Flessibile Altamente personalizzabile Semplice ed intuitivo Integrato con MS Office Completo e potentissimo Multiversione (Cloud, C/S e stand alone)

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE

Transcript:

7. Architetture Software progettare la struttura Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 7. Architetture Software 1 / 20

Scopo della fase di design Nella fase di design devono essere prese decisioni sulla struttura del software. Questo implica la scomposizione del software in elementi più semplici e lo studio della loro composizione. controllo comunicazione Molte scelte possibili...quale è quella più adatta e come sono vantaggi/svantaggi di ogni scelta? Ingegneria del Software fornisce supporto alle decisioni ma certamente la fase di design richiede una buona dose di creatività ed esperienza (Ingegneria del Software) 7. Architetture Software 2 / 20

Architettura software Le decisioni di scomposizione del sistema in sottosistemi e la definizione della struttura e paradigmi di comunicazione costituiscono quella che viene comunemente detta architettura software. Lo studio delle archietture software costituisce una disciplina emergente ancora non completamente matura. Sistema identificato come assemblaggio di: componenti connettori L insieme di questi elementi vengono composti in una configurazione (Ingegneria del Software) 7. Architetture Software 3 / 20

Documentazione e scopi Al solito la fase di specifica architetturale produrrà documentazione utile alla descrizione/compresione dell architettura. Scopi principali di tale documentazione sono: Comunicazione tra gli attori Analisi del sistema risultante Riuso (Ingegneria del Software) 7. Architetture Software 4 / 20

Architettura e QoS Le scelte architetturali sono fortemente influenzate da fattori relativi a proprietà non funzionali. Performance: localizzare elementi critici all interno di specifici componenti. Ridurre comunicazione tra questi. Security: strutturazione a strati dove gli strati più bassi forniscono supporto a quelli più alti Safety: ridurre le componenti critiche in modo da semplificare l analisi Availability: semblificare la sostituzione di elementi del software senza dover fermare il sistema e includere meccanismi di replicazione Mantainability: ridurre la dimensione dei componenti al solito sarà necessario mediare! Esperienza porta a definizione e riconoscimento di pattern architetturali che godono di particolari proprietàù (Ingegneria del Software) 7. Architetture Software 5 / 20

Rappresentazione delle architetture Uso di diagrammi schematici scatole e linee... linguaggi formali di specifica architetturale (Architectual Desciption Languages - ADL) Darwin C2 Kobra Wright... Differenti linguaggi semplificano strutturazione in accordo a differenti stili architetturali. (Ingegneria del Software) 7. Architetture Software 6 / 20

Questioni Rilevanti C è un pattern(stile) che si adatta alla richiesta e che può soddisfare i requisiti funzionali ed extra-funzionali? Distribuzione su più machine? Come le varie componenti devono essere decomposte in moduli? Quali valutazioni devono essere condotte? Come documentare la specifica architetturale? (Ingegneria del Software) 7. Architetture Software 7 / 20

Tipiche descrizioni architetturali Modello strutturale Moello dinamico dei processi Modello delle interfacce Modello di relazione Modello di deployment UML fornisce molti strumenti per rappresentare tali informazioni (Ingegneria del Software) 7. Architetture Software 8 / 20

Organizzazione dei sistemi software stili architetturali Differenti paradigmi per la definizione della struttura di interconnessione: Modello del repository Modello Cliente-Servente Modello a strati (Ingegneria del Software) 7. Architetture Software 9 / 20

Repository Il sistema è strutturato attorno ad un repository comune tra tutti i componenti del sistema (ogni componente può poi essere basato su un repository interno). Interazione tra i componenti avviene accedendo e modificando i dati nel repository. (Ingegneria del Software) 7. Architetture Software 10 / 20

Repository pro e contro Metodo semplice per scambiare grosse moli di dati tra i componenti (+) Non di meno ci deve essere un accordo sul formato dei dati. Difficile riuso (-) Possibili problemi di performance (-) Un sottosistema non si interessa di come gli altri sistemi utilizzeranno i dati. Disaccoppiamento (+) Modifiche al formato possono diventare complesse (-) Centralizzazione dei dati può creare problemi di affidabilità. Attività di gestione dei dati semplificata (+) ma poco flessibile (-) Facile integrare nuovi componenti se questi sono a conoscenza del formato distribuzione dei dati per migliorare perfomance complica gestione Repository di tipo blackboard (Ingegneria del Software) 7. Architetture Software 11 / 20

Client-Server Funzionalità del sistema distribuite logicamente all interno di un insieme di componenti serventi. Definizione di componenti clienti che sono quei componenti che hanno invece necessità di accedere ai servizi. Non necessariamete clienti e serventi si trovano su macchine differenti...certamente paradigma particolarmente adatto in ambito distribuito (+). Modifiche ad un servente possono portare a revisioni importanti dei cliente (-) particolarmenti difficoltose in caso di distribuzione. (Ingegneria del Software) 7. Architetture Software 12 / 20

Modello stratificato Sistema strutturato a livelli. Ogni livello fornisce un servizio più astratto ai livelli superiori. Stratificazione favorisce sviluppo incrementale ed evoluzione. Modifiche as uno strato risultano localizzate se non vengono modificate le interfacce. Altrimenti in generale propagazione al solo livello superiore. Non è sempre semplice definire struttura a strati per un sistema (Ingegneria del Software) 7. Architetture Software 13 / 20

Decomposizione modulare Sottosistemi vengono strutturati in moduli. Distinzione tra modulo e sottosistema? Due approcci fondamentali alla decomposizione in moduli: decomposizione orientata agli oggetti - il sottosistema viene strutturato come un insieme di oggetti interagenti decomposizione orientata alle funzioni (pipelining) - le attività del sottosistema vengono strutturate secondo un insieme di funzionalità da eseguire in sequenza. (Ingegneria del Software) 7. Architetture Software 14 / 20

Decomposizione object-oriented Oggetti e definizione di precise interfacce. Classici vantaggi del paradigma OO localizzazione delle modifiche (incapsulamento ed interfacce stabili) mapping su concetti reali semplice possibilità di riuso Problemi sono principalmente legati alla necessità di riferire esplicitamente gli oggetti utilizzati. Modifiche ad interfacce diventano difficilmente gestibili. (Ingegneria del Software) 7. Architetture Software 15 / 20

Pipelining Il sottosistema viene strutturato come un insieme di attività da eseguire in sequenza. Tipicamente adatta a comutazione che implica successive manipolazioni di un flusso di dati I vantaggi principali riguardano: funzioni possono essere facilmente riutilizzate corrisponde spesso a come le persone strutturano o pensano alle loro attività aggiungere una funzionalità diventa piuttosto semplice possibilità di avere concorrenza può essere semplificata Gli svantaggi rigurdano la difficoltà di implementare sistemi interattivi, e la necessità di stabilire un formato di interazione tra i difersi elementi del pipeline. (Ingegneria del Software) 7. Architetture Software 16 / 20

Stili di Controllo Il controllo si riferisce a come il il flusso del controllo si propaga tra i vari sottosistemi di un sistema software. Principalemente si può optare tra due stili principali: Controllo centralizzato - esiste un sottosistema che controlla gli altri ed ha anche il compito di far partire ed arrestare il sistema. Controllo basato su eventi - ogni sottosistema è capace di rispondere indipendentemente ad eventi esterni. (Ingegneria del Software) 7. Architetture Software 17 / 20

Controllo centralizzato Si distingue tipicamente tra due tipologie fondamentali: modelli call-return - il sistema parte con una routine principale (main) che passa il controllo alle altre routine le quali potranno fare lo stesso. Ogni routine si aspetta comunque di riavere il controllo indietro e dovrà dunque restituirlo. (No concorrenza) modelli del manager - esiste un sottosistema (manager) che può far partire concorrentemente più attività che possono procedere in parallelo. (Ingegneria del Software) 7. Architetture Software 18 / 20

Controllo centralizzato Struttura del controllo è piuttosto semplice e semplifica la fase di analisi Diventa difficile inserire comportamente eccezionali al sistema che si possono verificare ad esempio come conseguenza di eventi esterni. (Ingegneria del Software) 7. Architetture Software 19 / 20

Controllo basato su eventi L andamento del sistema e del Processo è guidato da eventi generati esternamente (Sistemi guidati da eventi). Certamente particolarmente adatto nel caso di sistemi interattivi, dove gli eventi esterni scatenano l esecuzione di particolari procedure. Tipicamente diversi modelli possono essere pensati per gestiti gli eventi: Modelli Broadcast Modelli Publish/Subscribe (Ingegneria del Software) 7. Architetture Software 20 / 20