Pattern Architetturali e Analisi Architetturale
|
|
- Enrichetta Biondi
- 5 anni fa
- Visualizzazioni
Transcript
1 Pattern Architetturali e Analisi Architetturale Ingegneria dei Sistemi Software (parte II) Andrea Bei
2 Pattern Architetturali Pattern Architetturale Descrive il modello organizzativo strutturale un sistema software in termini Sottosistemi e loro responsabilità Linee guida per organizzare le relazioni tra tali sottosistemi Si trova al massimo livello astrazione in un sistema che comprende design pattern più specializzati (es: Grasp, Gof, J2EE Pattern ) La selezione un pattern architetturale è una decisione fondamentale nella progettazione un sistema software
3 Pattern Architetturali Categorie pattern architetturali (*) From Mud to Structure Aiutano ad evitare sorganizzate strutture oggetti Supportano nella decomposizione un sistema in sottosistemi Contiene i pattern: Layers, Pipes and Filters e Blackboard Interactive Systems Supportano la progettazione dell interazione uomo-macchina Contiene i pattern: Model View Controller (MVC) e Presentation Abstraction Control (PAC) Distributed Systems Contiene il pattern Broker Adaptable Systems Supportano l estenbilità per evoluzione tecnologica o cambiamento dei requisiti funzionali Contiene i pattern: Reflection e Microkernel. (*) Riportata in Pattern-Oriented Software Architecture - A System of Patterns Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal Wiley and Sons Ltd.
4 From Mud to Structure - Layer Il pattern Layer aiuta a strutturare applicazioni le cui funzioni possono essere decomposte in gruppi sottoattività con responsabilità a versi livelli astrazione
5 From Mud to Structure - Layer Problema Minimizzare l impatto dei cambiamenti Massimizzare l intercambiabilità alcune parti Dare la possibilità costruire altri sistemi con le stesse caratteristiche basso livello Massimizzare la coesione delle responsabilità per aumentare manutenibilità e comprensibilità Soluzione Strutturare il sistema in un appropriato numero layer posti l uno sull altro. Il livello al più basso livello astrazione è il Layer 1 ed è la base del sistema A partire da questo sono posti gli altri Layer a livelli astrazione via via più alti fino ad arrivare al Layer N che espone le funzionalità del sistema
6 From Mud to Structure - Layer Scheda CRC e Struttura
7 From Mud to Structure - Layer Scenari comunicazione tra livelli 1. Comunicazione top-down: Un Client inoltra una request al Layer N, questo la inoltra al Layer N-1, e via seguito fino al Layer 1. Una request a Layer i può produrre più request a Layer i-1 2. Comunicazione bottom-up: Un device driver a Layer 1 riceve un input, lo formatta (notification) e lo inoltra al Layer 2, e via seguito fino al Layer N 3. Comunicazione top-down: Le request possono viaggiare attraverso un sottinsieme Layer senza arrivare al Layer 1 (es: Layer N-1 è una cache) 4. Comunicazione bottom-up: Le notification possono viaggiare attraverso un sottoinsieme Layer senza arrivare al Layer N (es: re-send notification nei protocolli comunicazione) 5. Protocolli comunicazione a stack
8 From Mud to Structure - Pipes and Filters Il Pattern Pipes and Filters ( Condotti e filtri ) fornisce una architettura per sistemi che processano stream dati. Ogni step precessamento dello stream è incapsulato in un componente filter I dati passano attraverso pipes tra filter aacenti. E possibile ottenere verse applicazioni ricombinando i componenti filter Esempio: il processo interpretazione un linguaggio inpendente dalla piattaforma (tipo Java) in una forma intermea (tipo bytecode Java)
9 From Mud to Structure - Pipes and Filters Problema Realizzare un sistema per il processamento uno stream dati Forze Il task generale può essere natualmente decomposto in versi step processamento Il processo può cambiare (mofica o ricombinazione degli step) Step processamento più piccoli sono più facili da riusare Comunicano tra loro solo step processamento aacenti Esistono più sorgenti input (data source) e destinazioni output (data sink) Sono possibili configurazioni esecuzione parallela step processamento Soluzione Ogni step processamento è incapsulato in un componente filter Ogni filter consuma e produce dati in maniera incrementale (invece consumare tutto l input per produrre in seguito tutto l output) L input è un data source, l ouptut è un datasink data source, filter e data sink sono connessi da pipe Ogni pipe implementa il flusso dati tra step aacenti L insieme filter e pipe è chiamato pipeline processamento
10 From Mud to Structure - Pipes and Filters Schede CRC
11 From Mud to Structure - Pipes and Filters Scenari Scenario 1: push pipeline. L esecuzione parte dall arrivo un dato dal data source. Scenario 2: pull pipeline. L esecuzione parte dalla lettura del dato dal data sink Scenario 3:push & pull pipeline
12 From Mud to Structure - Blackboard Il pattern Blackboard è utile in problemi per cui non esistono stretegie risoluzione deterministiche. Il pattern prevede versi sottosistemi specializzati che usano la loro conoscenza per costruire insieme una soluzione parziale o approssimata Esempio: speech to text (traduzione del parlato in scritto)
13 From Mud to Structure - Blackboard Problema: Trasformazione un dato grezzo in strutture dati ad un più alto livello astrazione come agrammi, tabelle, frasi in linguaggio naturale. I campi utilizzo possono essere: Vision, Image Recognition, Speech Recognition Forze: Non praticabile una ricerca completa nello spazio delle soluzioni Il dominio è immaturo, è necessario sperimentare più algoritmi Ogni algortimo lavora sul risultato altri algoritmi Il nome del pattern deriva dalla attività umana problem solving esercitata da un gruppo esperti versi aspetti un problema complesso. Gli esperti usano una lavagna per comunicare e convidere idee. Ognuno a partire da quanto scritto sulla lavagna può avanzare nuove ipotesi, sostenere o invalidare ipotesi presenti. Tutto questo con l obiettivo convergere verso una soluzione.
14 From Mud to Structure - Blackboard Soluzione: Creare programmi inpendenti che cooperano su una struttura dati comune Ogni programma è specializzato per risolvere una parte del task I programmi non si chiamano a vicenda e non vengono chiamati con una sequenza predefinita Di volta in volta un componente centrale valuta lo stato corrente e decide quale programma chiamare (approccio opportunistic problem solving) Durante il processo problem-solving il sistema lavora con soluzioni parziali che possono essere Combinate, Cambiate, Rifiutate
15 From Mud to Structure - Blackboard Schede CRC e Struttura
16 From Mud to Structure - Blackboard
17 Interactive Systems- MVC Model-View-Controller (MVC) vide una applicazione interattiva in 3 componenti Il Model contiene funzionalità e dati Le Views mostrano le informazioni all utente I Controller gestiscono l input utente e la comunicazione Model-View La consistenza tra UI e Model è garantita da un meccanismo propagazione dei cambiamenti
18 Interactive Systems- MVC Problema Realizzare una applicazione interattiva Forze La stessa informazione è presentata in modo verso (es: bar o pie chart). Le mofiche della UI devono poter essere eseguite semplicemente La possibilità supportare versi standard 'look and feel' o la necessità effettuare un porting della UI non dovrebbe aver impatto nel core della applicazione Soluzione Dividere l applicazione in Componenti Model: incapsulano data e funzionalità e sono inpendenti dalla specifica rappresentazione dell output o dal comportamento input Componenti View: mostrano le informazioni all utente. Una View ottiene I dati dal Model. (possono esserci più View uno stesso Model) Ogni View ha associato un componente Controller. I componenti Controller ricevono l input che solito cofica un evento come il movimento del mouse o un input da tastiera Gli eventi sono tradotti in service request per il Model Il meccanismo propagazione dei cambiamenti è basato sul pattern Observer
19 Interactive Systems- MVC Schede CRC e Struttura
20 Interactive Systems- MVC Scenario 1: un input mofica il modello e innesca il meccanismo propagazione dei cambiamenti Il Controller accetta un input utente coficato come evento e lo traduce in una service request inoltrata al Model Il Model esegue la service request che provoca un cambiamento nei dati Il Model notifica tutte le View che sono registrate meante il meccanismo propagazione degli eventi (Observer) invocando il loro metodo update Ogni View richiede un aggiornamento dei dati che mostra Ogni Controller registrato esegue il retrieve dei dati per abilitare/sabilitare alcune funzioni utente (per esempio abilitare la funzione Save può essere una conseguenza del fatto che idati sono cambiati) Il Controller originale guadagna nuovamente il controllo
21 Interactive Systems- MVC Scenario 2: inizializzazione dell MVC Il Model viene creato Una View viene creata prendendo come parametro il Model La View esegue un subscribe al meccanismo propagazione dei cambiamenti invocando la funzione attach La View prosegue la sua inizializzazione creando un Controller a cui passa se stessa e il Model Il Controller esegue un subscribe al meccanismo propagazione dei cambiamenti invocando la funzione attach L applicazione inizia a processare gli eventi
22 Analisi Architetturale Obiettivo: progettare l architettura applicativa ciclo development sviluppo cycle UP iterazione iteration phase fase inc. ide costruzione construction transizione transition elaborazione milestone release incremento release finale Fase: prima iterazione della fase elaborazione (UP), inizio fase progettazione (waterfall). In ogni caso prima iniziare lo sviluppo Deliverable: Documento della architettura applicativa SAD (Software Architecture E la fine An iteration una endpoint when cui si some ed subset eseguibile of the del final (delta) tra due between the sistema At this point, viene the Un A sottoinsieme stable executable stabile The La fference fferenza Document) contenente: A questo punto il iterazione Tabelle fattori architetturali verifica significant una decisione decision prodotto product. finale. The end of releases iterazioni of 2 rilasciato system ise released Promemoria tecnici che descrivono le decisioni importante evaluation o una Rappresenta each iteration una is a subsequent architetturali successive consegnato for production ai use. valutazione occurs. significativa release minor minore release. iterations. clienti
23 Analisi Architetturale E una specializzazione della analisi dei requisiti. Il focus è sui requisiti che hanno un influenza maggiore sulla architettura (es: sicurezza, manutenibilità,..) Esistono versi approcci < specificare > Le principali attività sono: Identificare i fattori architetturali (o guide architetturali). Sono i requisiti non funzionali che influenzano l architettura. (es: tempo risposta) Identifcare per ciascuno priorità, variabilità, rischi e scenari qualità che rendano misurabile il fattore con affermazioni tipo <stimolo>,<risposta misurabile>. (es: click, tempo risposta < 3 sec) Risolvere i fattori architetturali. Identificare le soluzioni alternative e descriverle in promemoria tecnici. Le soluzioni possono comprendere ad esempio: Soluzioni ad-hoc Adozione pattern (architetturali o design), Adozione framework o librerie terze parti o open source
24 Analisi Architetturale Identificare i fattori architetturali Creare una tabella dei fattori architetturali: Gerarchia priorità Vincoli e normative (es: politica fiscale nel caso stuo POS) Obiettivi business (es: data consegna) Altri: (es: estenbilità, manutenibilità,..)
25 Analisi Architetturale Risolvere i fattori architetturali Principi base Si applicano su larga scala (a livello architetturale sottosistemi) gli stessi principi descritti dai pattern GRASP e vali su piccola scala (a livello oggetti) Low Coupling High Cohesion Protected Variation (Inrezioni, Interfacce, Adapter,..) Adottare Separation Of Concers (Separazione degli interessi) Massimizzare la modularità: progettare l architettura in modo modulare facendo si che ogni sottosistema sia focalizzato solo su una specifica responsabilità (es: persistenza, sicurezza, ). E un modo per ottenere high cohesion & low coupling Usare i Decorator per aggiungere responsabilità ad un sottosistema Usare la programmazione orientata agli aspetti Usare i Pattern Architetturali Usare Framework Commerciali o Open Source Nei punti variazione/evoluzione nella logica business Usare meccanismi per rendere inseribili algoritmi e strategie (es: IoC, Strategy Pattern, approcci Data Driven, ) trovare il giusto equilibrio tra ingegnerizzazione insufficiente ed eccessiva
26 Analisi Architetturale I Promemoria Tecnici (o Schede dei problemi, Documenti degli approcci architetturali) contengono: Problema, Riepilogo della soluzione, Fattori, Soluzione, Motivazione, Problemi irrisolti,, Alternative considerate Promemoria Promemoria tecnico: tecnico: Adattabilità Adattabilità Servizi Servizi Terze Terze Parti Parti Riepilogo Riepilogo dela dela soluzione: soluzione: Sostenere Sostenere Protected Protected Variation Variation usando usando il il pattern pattern Adapter Adapter per per rendere rendere il il sistema sistema adattabili adattabili a a servizi servizi terze terze parti parti variabili variabili Fattori: Fattori: Adattabilità Adattabilità a a servizi servizi terze terze parti parti variabili variabili (calcolatori (calcolatori imposte, imposte, autorizzazione autorizzazione creto, creto, inventario, ) inventario, ) Soluzione: Soluzione: Ottenere Ottenere Protected Protected Variation Variation nel nel modo modo seguente: seguente: Analizzare Analizzare versi versi calcolatori calcolatori delle delle imposte imposte commerciali commerciali e e creare creare una una interfacce interfacce comuni comuni per per le le funzionalità funzionalità minime minime comuni. comuni. Applicare Applicare Inrection Inrection utilizzando utilizzando il il pattern pattern Adpater Adpater Motivazione Motivazione Semplice Semplice ed ed economico. economico. Garantisce Garantisce una una comunicazione comunicazione puù puù veloce veloce rispetto rispetto ad ad un un servizio servizio messaging. messaging. Quest ultimo Quest ultimo non non potrebbe potrebbe essere essere utilizzato utilizzato per per il il servizio servizio autorizzazione autorizzazione del del creto creto Problemi Problemi non non risolti risolti Creare Creare un un interfaccia interfaccia comune comune per per i i servizi servizi comuni comuni potrebbe potrebbe limitare limitare l adattabilità l adattabilità Alternative Alternative considerate considerate Applicare Applicare Inrection Inrection usando usando un un sistema sistema messaging messaging basato basato sul sul meccanismo meccanismo publish publish subscribe subscribe (es: (es: code code JMS) JMS) E E costoso costoso e e garantisce garantisce una una affidabilità affidabilità nella nella consegna consegna dei dei messaggi messaggi maggiore maggiore quanto quanto non non sia sia necessaria. necessaria.
Pattern Architetturali e Analisi Architetturale
Pattern Architetturali e Analisi Architetturale Ingegneria del Software parte II Andrea Bei Pattern Architetturali Pattern Architetturale Descrive il modello organizzativo strutturale di un sistema software
DettagliPattern. Corso di ingegneria del software
Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Pattern Corso di ingegneria del software Definizione Pattern software la descrizione strutturata di una soluzione esemplare ad
DettagliModel-View- Controller
Model-View- Controller A. FERRARI MVC Il Model-View-Controller è un pattern architetturale molto diffuso nello sviluppo di sistemi software, in particolare nell'ambito della programmazione orientata agli
DettagliLa fase di Progettazione
Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software La fase di Progettazione Giulio Destri Ing. del Sw: Progettazione - 1 Scopo del modulo
Dettaglisoftware Progettazione software IS Corso di Ingegneria del Software 1 Contenuti Progettare prima di produrre Dall analisi alla progettazione
Contenuti Progettazione software 2001 Corso di Ingegneria del Software V. Ambriola, G.A. Cignoni C. Montangero, L. Semini La progettazione Approfondimento: viste multiple Dipartimento di Informatica, Università
DettagliSOMMARIO DESIGN PATTERN
INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 rcardin@math.unipd.it 2 DESIGN PATTERN
DettagliAnalisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.
tesi di laurea Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit. Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ing. Luca Anniciello candidato Gianluca
DettagliSOMMARIO DESIGN PATTERN INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE. Introduzione. Cos è un design pattern. Cos è un design pattern
INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica, A.A. 2011 2012 2 rcardin@math.unipd.it DESIGN PATTERN
DettagliConcetti fondamentali. Laboratorio di Ingegneria del Software Andrea Bei
Concetti fondamentali Laboratorio di Ingegneria del Software Andrea Bei Analisi e Progettazione Analisi E una investigazione dei requisiti. Risponde alla domanda cosa deve fare il sistema? es: Analisi
DettagliModel View Controller
Model View Controller in breve Design Patterns Una scelta cruciale, programmando OO, è decidere quali classi definire e che responsabilità abbiano. I Design Pattern (schemi progettuali, pattern è usato
DettagliAscotWeb - mediatore Versione dicembre 2015
AscotWeb - mediatore Versione 1.0.1 21 dicembre 2015 Approvazioni Il presente documento è stato approvato da: 20/05/16 12.17 2 Storia delle Modifiche Versione Data Descrizione 1.0 19/05/2016 Prima versione
DettagliLez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
Dettaglioggetti, permettono di ridurre i costi di sviluppo, poiché cercano di riusare insiemi di classi e di produrre sistemi più facili da evolvere.
Lo sviluppo di sistemi orientati agli oggetti mira a descrivere un software nelle sue diverse fasi (analisi, progettazione, codifica) in termini di classi. Tali sistemi sono documentati focalizzando sulle
DettagliModello a oggetti. Il modello MVC. Laboratorio di Sistemi Interattivi. Lezione 3: Ancora su MVC e altro
Laboratorio di Lezione 3: Ancora su MVC e altro 1 Modello a oggetti Approccio monolitico vs. approccio a componenti Interfaccia Utente come collezione di oggetti di interazione (widgets) Utente manipola
Dettagli[POSA] Pattern-Oriented Software Architecture A System of Patterns
Luca Cabibbo Architetture Software Dispensa AS 11 ottobre 2008 1 -Fonti [SSA] Chapter 11, Using Styles and Patterns [GoF] Design Patterns Elementi per il riuso di software a oggetti [POSA] Pattern-Oriented
DettagliUML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13
UML Introduzione a UML Linguaggio di Modellazione Unificato Corso di Ingegneria del Software Anno Accademico 2012/13 1 Che cosa è UML? UML (Unified Modeling Language) è un linguaggio grafico per: specificare
DettagliProgettazione software
Contenuti Progettazione software 2001-4 Corso di Ingegneria del Software V. Ambriola, G.A. Cignoni C. Montangero, L. Semini Con aggiornamenti di: T. Vardanega La progettazione Qualità della progettazione
DettagliINGEGNERIA DEL SOFTWARE
DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea magistrale in Ingegneria informatica Anno accademico 2016/2017-1 anno INGEGNERIA DEL SOFTWARE 9 CFU - 1 semestre Docente titolare
DettagliLez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1
Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli
DettagliAlgoritmi e soluzione di problemi
Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)
DettagliIntroduzione. Sommario. Il software. Definizione di Ingegneria del software
Sommario Introduzione Leggere Cap. 1 Ghezzi et al. Definizione Nascita dell ingegneria del software Ruolo Relazione con altre discipline Introduzione 2 Il software Il software e` definito come: i programmi,
DettagliSecondo Anno: Informatica Economico-Turistico
Secondo Anno: Informatica Economico-Turistico Competenze ASSE DEI LINGUAGGI (1) Utilizzare e produrre testi multimediali (1.1) Comprendere i prodotti della comunicazione audiovisiva Elaborare prodotti
DettagliIntegrazione di applicazioni
Luca Cabibbo Architettura dei Sistemi Software dispensa asw447 marzo 2017 We believe that asynchronous messaging will play an increasingly important role in enterprise software development, particularly
DettagliIngegneria del Software
Ingegneria del Software Progettazione OO Agenda Astrazione e classificazione Generalizzazione e Refactoring Riuso Interfacce e classi di utilità Patterns di progettazione GRASP Obiettivi Ottenere dei modelli
DettagliPattern POSA: Introduzione
Luca Cabibbo Architettura dei Sistemi Software Pattern POSA: Introduzione dispensa asw320 marzo 2018 If the design, or some central part of it, does not map to the domain model, that model is of little
DettagliProcessi iterativi. Marina Zanella - Ingegneria del Software RUP 1
Processi iterativi L inizio delle iterazioni è quasi sempre preceduto da una fase esplorativa di definizione dei requisiti globali del sistema a un livello di astrazione molto elevato: questo passo è necessario
DettagliLaboratorio di Progettazione di Sistemi Software Design Patterns
TITLE Laboratorio di Progettazione di Sistemi Software Design Patterns Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Tipi di Design Patterns Creazionali Strutturali Comportamentali
DettagliIl Software programmabili programma algoritmo
Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia
DettagliAXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori
AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli
DettagliPattern POSA: Layers
Luca Cabibbo Architettura dei Sistemi Software Pattern POSA: Layers dispensa asw330 marzo 2018 Ogres are like onions. Onions have layers. Ogres have layers. You get it? We both have layers. Shrek 1 - Fonti
DettagliCorso di Ingegneria del Software
Corso di Ingegneria del Software Paolo Bottoni Principi dell Ingegneria del Software Lucidi tradotti e adattati a partire dalla versione in inglese presente a http://www.prenhall.com/ghezzi/ Obiettivi
DettagliCorso di Ingegneria del Software. La architettura software
Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it Il concetto e il ruolo della architettura Sommario 1. Il concetto e il ruolo della architettura 2. Tipi di architettura
DettagliModel View Controller (MVC)
(MVC) in sintesi è una applicazione del pattern alle interfaccie utente (GUI ma non necessariamente) lunga tradizione in smalltalk non è propriamente un design patter ma un architectural pattern perché
DettagliUML. Il linguaggio UML e ArgoUML. Ingegneria dei sistemi software 2009/ /09/2009
UML Il linguaggio UML e ArgoUML 30/09/2009 Ingegneria dei sistemi software 2009/2010 manuel.comparetti@iet.unipi.it UML Unified Modeling Language una famiglia di notazioni grafiche standardizzate* orientata
DettagliPRIMO MODULO. DURATA: 80 ore CONTENUTI
0 PRIMO MODULO DURATA: 80 ore CONTENUTI 1. Introduzione alla programmazione a. Cosa è la programmazione strutturata b. Strutture dati c. Come si affronta una problematica da risolvere d. Quali sono i passi
DettagliUnified Modeling Language (UML)
Unified Modeling Language (UML) È una famiglia di notazioni grafiche che si basano su un singolo meta-modello Serve per definire, progettare, realizzare e documentare sistemi sw (in particolare quelli
DettagliRedazione e Presentazione di Progetti Informatici
Redazione e Presentazione di Progetti Informatici Corso di Laurea in Informatica Massimo Ruffolo E-mail: ruffolo@icar.cnr.it Web: http://www.icar.cnr.it/ruffolo Istituto di CAlcolo e Reti ad alte prestazioni
DettagliPattern POSA: Altri pattern
Luca Cabibbo Architettura dei Sistemi Software Pattern POSA: Altri pattern dispensa asw350 marzo 2018 If I speak of myself in different ways, that is because I look at myself in different ways. Michel
DettagliIn passato, occuparsi di informatica era sinonimo di programmare computer
Programmare =? In passato, occuparsi di informatica era sinonimo di programmare computer attività poco stimolante, atto finale di un processo dove le fasi creative - analisi e progetto - sono già avvenute
DettagliEsercizi design patterns. Angelo Di Iorio,
Esercizi design patterns Angelo Di Iorio, diiorio@cs.unibo.it Esercizio 1 Una parete, che contiene porte e finestre, deve essere dipinta con una vernice. Ogni barattolo contiene una data quantità di vernice,
Dettagli7. Architetture Software
7. Architetture Software definire la struttura Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 7. Architetture Software 1 / 18 Design Nella fase di design
DettagliARCHITECTING AND DESIGNING J2EE APPLICATIONS
ARCHITECTING AND DESIGNING J2EE APPLICATIONS [cod. S301] UN BUON MOTIVO PER Il corso fornisce le competenze richieste per utilizzare la piattaforma J2EE (Java 2 Platform, Enterprise Edition) per creare
DettagliIntroduzione alla OOP Object Oriented Programming. Programmazione Orientata agli Oggetti
Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali
DettagliLinguaggi, Traduttori e le Basi della Programmazione
Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi
DettagliMarco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate
Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Astrazione e Macchine Virtuali parte 2: in un tipico calcolatore I livelli nei moderni calcolatori 6. Livello delle applicazioni
DettagliIntroduzione alla OOP Object Oriented Programming
Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali
DettagliCorso di Ingegneria del Software. Modelli di produzione del software
Corso di Ingegneria del Software a.a. 2009/2010 Mario Vacca mario.vacca1@istruzione.it 1. Concetti di base Sommario 2. 2.1 Modello a cascata 2.2 Modelli incrementali 2.3 Modelli evolutivi 2.4 Modelli agili
DettagliApplicazioni distribuite e sistemi ad oggetti distribuiti. RPC RMI - Web Services 1
Applicazioni distribuite e sistemi ad oggetti distribuiti RPC RMI - Web Services 1 Complessità delle applicazioni distribuite La scrittura di applicazioni distribuite basate sull utilizzo di protocolli
DettagliApplicazioni distribuite e sistemi ad oggetti distribuiti
Applicazioni distribuite e sistemi ad oggetti distribuiti Complessità delle applicazioni distribuite La scrittura di applicazioni distribuite basate sull utilizzo di protocolli di comunicazione asincroni
DettagliLezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.
Lezione 1 Sistemi operativi 4 marzo 2014 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 14 1.1 Di cosa parliamo in questa lezione? È una introduzione generale ai sistemi
DettagliProblema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
DettagliSome reasoned reflections on the real difference between OO and structured development stuff derived from a class on OO testing
Ingegneria del SW - ottobre 2013 Some reasoned reflections on the real difference between OO and structured development stuff derived from a class on OO testing Enrico Vicario Dipartimento di Ingegneria
DettagliUNITÀ DI GOVERNO. Architettura funzionale. Ambiente di programmazione. Architettura hardware
UNITÀ DI GOVERNO Architettura funzionale Ambiente di programmazione Architettura hardware ARCHITETTURA FUNZIONALE Unità di governo abilità di muovere oggetti fisici nell ambiente di lavoro, (capacità di
DettagliPIANO DI STUDIO DELLA DISCIPLINA DISCIPLINA: Tecnologia e Progettazione di Sistemi Informatici e di Telecomunicazioni
Tel. 0331 635718 fax 0331 679586 info@isisfacchinetti.gov.it www.isisfacchinetti.gov.it ISIS C. Facchinetti Sede: via Azimonti, 5-21053 Castellanza PIANO DI STUDIO DELLA DISCIPLINA Rev. 1 del 3/11/16 PIANO
DettagliCORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION
CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION 0 DURATA 200 ore CONTENUTI Oracle PL/SQL Introduzione al PL/SQL Cenni su SQL con utilizzo di SQL*PLUS Configurazione ambiente Developer DB Classi,
DettagliLe aree dell informatica
Fondamenti di Informatica per la Sicurezza a.a. 2006/07 Le aree dell informatica Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
DettagliBroker. [POSA1] Pattern-Oriented Software Architecture (Volume 1): A System of Patterns. Wiley, 1996.
Luca Cabibbo Architettura dei Sistemi Software dispensa asw440 marzo 2018 Intelligence is not the ability to store information, but to know where to find it. Albert Einstein 1 - Fonti [POSA1] Pattern-Oriented
DettagliSETA Selection Tool del Sistema ARTIST
Selection Tool del Sistema ARTIST L incarico è stato affidato al RTI composta da: Kayser Italia S.r.l. Daxo con capogruppo Kayser Italia s.r.l. SETA () Espandibilità e flessibilità Delocalizzazione istallazione
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
DettagliIntroduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
DettagliRDD 2. Laboratorio di Ingegneria del Software. Andrea Bei
Laboratorio di Ingegneria del Software Andrea Bei Altri pattern GRASP Altri pattern GRASP Polymorphism Pure Fabrication, Indirection Protected Variations 2 Polymorphism Problema: Come gestire alternative
DettagliPROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE QUINTA
PROGRAMMAZIONE DISCIPLINARE PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE QUINTA 1. Competenze: le specifiche competenze di base disciplinari previste dalla
DettagliPratiche di XP [Beck] Extreme Programming (XP) Story Card. Gioco di pianificazione
Extreme Programming (XP) Pratiche di XP [Beck] Principi di XP Avere feedback rapidamente Assumere la semplicità Cambiamenti incrementali Supportare i cambiamenti Produrre lavoro di qualità Gioco di pianificazione
DettagliIntroduzione ai Calcolatori Elettronici
Introduzione ai Calcolatori Elettronici Elementi di Base dell ICT Information and Communication Technology Concetti Introduttivi A.A. 2013/2014 Domenica Sileo Università degli Studi della Basilicata Elementi
Dettagli1. UML 2 ed il Processo Unificato
1. UML 2 ed il Processo Unificato Andrea Polini Laboratorio di Ingegneria del Software Corso di Laurea in Informatica (Laboratorio di Ingegneria del Software) 1. UML 2 ed il Processo Unificato 1 / 25 Sommario
DettagliIntroduzione al Calcolo Scientifico
Introduzione al Calcolo Scientifico Francesca Mazzia Dipartimento di Matematica Università di Bari Francesca Mazzia (Univ. Bari) Introduzione al Calcolo Scientifico 1 / 14 Calcolo Scientifico Insieme degli
DettagliArchitettura SW Definizione e Notazioni
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000
DettagliINGEGNERIA DEI SISTEMI SOFTWARE E DEI SERVIZI DI RETE PROGETTO GQM + STRATEGIES. Luca Mastrogiovanni Marco Vasselli 16 Dicembre 2013
INGEGNERIA DEI SISTEMI SOFTWARE E DEI SERVIZI DI RETE PROGETTO GQM + STRATEGIES Luca Mastrogiovanni Marco Vasselli 16 Dicembre 2013 Agenda Struttura del progetto o o Organizzazione in Eclipse File di configurazione
DettagliProgettazione software
Contenuti Progettazione software 2001-6 Corso di Ingegneria del Software V. Ambriola, G.A. Cignoni C. Montangero, L. Semini Con aggiornamenti di: T. Vardanega (UniPD) La progettazione Qualità della progettazione
Dettagli02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1)
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1) Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
DettagliPattern software. [SAP] Chapter 13, Architectural Tactics and Patterns
Luca Cabibbo Architettura dei Sistemi Software dispensa asw310 marzo 2018 Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution
DettagliProcedure e funzioni A. Ferrari
Procedure e funzioni A. Ferrari Procedura Una procedura può essere rappresentata come una macchina in grado di eseguire un certo compito quando attivata. In un primo tempo la macchina deve essere costruita:
DettagliStruttura dei Sistemi Operativi
STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione
DettagliCorso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a
Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma
DettagliLinguaggi di Programmazione
Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio
DettagliUniversità degli studi dell Aquila. Sistemi di elaborazione delle informazioni
Università degli studi dell Aquila Corsi di studio: I2E, I2I Sistemi di elaborazione delle informazioni 9 C.F.U. Ing. Gaetanino Paolone Architetture Software (richiami) Stile architetturale. Cos'è un'architettura
DettagliArchitetture dei sistemi distribuiti. Mariagrazia Fugini Impianti Como 08-09
Architetture dei sistemi distribuiti Mariagrazia Fugini Impianti Como 08-09 Sommario Sistemi centralizzati e distribuiti Meccanismi per sistemi distribuiti RPC Client-server Middleware Distributed object
DettagliIl PROCESSO UNIFICATO
Corsi di laurea triennale in Ingegneria Informatica Corso di Ingegneria del software Il PROCESSO UNIFICATO Modellazione ed Implementazione di un Sistema Software per la gestione informatizzata di un ristorante
DettagliPattern POSA: Pipes and Filters
Luca Cabibbo Architettura dei Sistemi Software Pattern POSA: Pipes and Filters dispensa asw340 marzo 2017 Sam had a strange feeling as the slow gurgling stream slipped by: his old life lay behind in the
DettagliIntroduzione ai casi d uso
Introduzione ai casi d uso versione 16 marzo 2009 http://www.analisi-disegno.com Introduzione ai casi d uso Pag. 1 Obiettivo di questa introduzione fornire elementi di base sui casi d uso fornire indicazioni
DettagliELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
DettagliLaboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring
TITLE Laboratorio di Progettazione di Sistemi Software UML per Design Patterns e Refactoring Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Introduzione alla notazione UML I diagrammi
DettagliL infrastruttura STIL. Presentazione dei risultati finali del progetto Alessandro Ricci Università di Bologna DEIS Bologna / Cesena
L infrastruttura STIL Presentazione dei risultati finali del progetto Alessandro Ricci Università di Bologna DEIS Bologna / Cesena Ruolo Infrastruttura ICT Fornire modelli, architetture e tecnologie informatiche
DettagliCome scrivere bene codice? (1 di 1)
DIAGRMMI DI FLUSSO Come scrivere bene codice? (1 di 1) Prima di iniziare a scrivere un programma: Acquisire profonda comprensione del problema; Progettare un approccio per la risoluzione del problema.
DettagliEUROPEAN COMPUTER DRIVING LICENCE. Computing. Syllabus
EUROPEAN COMPUTER DRIVING LICENCE Computing Syllabus Scopo Questo documento presenta il syllabus di ECDL Computing. Il syllabus descrive, attraverso i risultati del processo di apprendimento, la conoscenza
DettagliScrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica
FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano
DettagliInformatica Problema Algoritmo Programma
Informatica Problema Algoritmo Programma 2^ PARTE I linguaggi di programmazione I linguaggi di programmazione si possono suddividere fondamentalmente in tre categorie: 1. Linguaggio Macchina 2. Linguaggio
DettagliModulo 2 Architetture dei SD Lezione 1
Modulo 2 Architetture dei SD Lezione 1 Corso Sistemi Distribuiti (6 CFU) Docente: Prof. Marcello Castellano Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano Table of Contents
DettagliDisciplina: INFORMATICA
Indirizzo AFM Articolazione SIA Anno scolastico 2017/2018 Classe 3S Docenti Vito Colafemmina - Rosangela Pazienza Disciplina: INFORMATICA Con riferimento alle linee guida degli Istituti Tecnici Settore
DettagliCorso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.
Corso integrato di Sistemi di Elaborazione Modulo I Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Basi di dati: introduzione 2 Introduzione Gestione delle informazioni Basi di dati / DBMS Modello dei
DettagliCHAPTER 2: Introduction to Systems Concepts and Systems Architecture
CHAPTER 2: Introduction to Systems Concepts and Systems Architecture The Architecture of Computer Hardware, Systems Software & Networking: An Information Technology Approach 4th Edition, Irv Englander
DettagliI livelli dei linguaggi. Introduzione alla OOP Object Oriented Programming. La programmazione procedurale separa il calcolo dalla memoria
Introduzione alla OOP Object Oriented Programming Programmazione Orientata agli Oggetti I livelli dei linguaggi livelli di tensione porte logiche codice binario linguaggio assembler linguaggi procedurali
DettagliSistemi informativi secondo prospettive combinate
Sistemi informativi secondo prospettive combinate direz acquisti direz produz. direz vendite processo acquisti produzione vendite INTEGRAZIONE TRA PROSPETTIVE Informazioni e attività sono condivise da
DettagliMacchina Astratta: struttura e realizzazione.
Macchina Astratta: struttura e realizzazione. Sommario Macchina Astratta e l interprete di Macchina Hight e Low Level Languages Implementazione di un Linguaggio Macchina Intermedia Gerarchia di Macchine
DettagliMATERIALI PER LA DISCUSSIONE
SETTORE TECNOLOGICO MATERIALI PER LA DISCUSSIONE ISTITUTO TECNICO INDIRIZZO ARTICOLAZIONE TELECOMUNICAZIONI INFORMATICA E TELECOMUNICAZIONI ESITI DI APPRENDIMENTO Regolamento, Art. 5 comma 1 Nota: Le Competenze,
DettagliTECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE
UNITA CAPITALIZZABILI PER LA FIGURA PROFESSIONALE TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE 73 74 ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE UNITÀ CAPITALIZZABILE
Dettagli