Vinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.xVinaora Nivo Slider 3.x

SOFTWARE ARCHITECTURE DESIGN

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: ANNA RITA FASOLINO
TELEFONO: 081 7683906
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE): SOFTWARE ARCHITECTURE DESIGN
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): I
SEMESTRE (I, II): II
CFU: 9

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

Ingegneria del Software

Software Engineering

 

OBIETTIVI FORMATIVI

L’insegnamento si propone di introdurre il tema delle architetture software e di fornire agli studenti conoscenze e competenze specialistiche relative alla progettazione, modellazione, documentazione e sviluppo di tali architetture.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione

Lo studente deve dimostrare di conoscere e comprendere le problematiche relative alla disciplina delle architetture software ed il loro ruolo nell’ambito dei moderni processi di sviluppo software; il percorso formativo intende fornire agli studenti le conoscenze necessarie per comprendere le caratteristiche dei diversi modelli e pattern architetturali e gli strumenti metodologici necessari per progettare, documentare, e sviluppare una architettura software. Tali conoscenze e strumenti consentiranno agli studenti di comprendere le principali relazioni che sussistono fra progetto architetturale e conseguenti caratteristiche di qualità del software e di cogliere le implicazioni delle diverse scelte di progetto sui requisiti posseduti dall’architettura risultante.

Capacità di applicare conoscenza e comprensione

Lo studente deve dimostrare di saper utilizzare le conoscenze e gli strumenti metodologici appresi per riuscire a progettare, documentare ed implementare architetture software in grado di realizzare tutti i requisiti funzionali e di qualità richiesti, implementando un processo di sviluppo ispirato ai moderni processi iterativi, evolutivi ed agili.

 

PROGRAMMA-SYLLABUS

Architetture Software: concetti fondamentali.
Definizioni di Architettura Software. Architettura come insieme di Viste: Vista dei Componenti e Connettori, Vista dei Moduli, Vista di Allocazione. Ruolo dell’architettura nei processi di sviluppo software.

Qualità delle Architetture Software.
Attributi di qualità osservabili a run-time (performance, security, availability, functionality, usability), Attributi non osservabili a run-time (modifiability, portability, reusability, integrability, e testability), attributi di qualità intrinseca dell’architettura (conceptual integrity, correctness, and completeness, buildability). Specificare gli attributi di qualità attraverso la tecnica degli Scenari di qualità.

Documentare le Architetture Software.
Documentare le diverse viste di una architettura software: stili di documentazione per la vista modulare, dei componenti e connettori, per la vista di distribuzione. Documentare il Contesto, il comportamento, le decisioni di progetto e le interfacce dei componenti di una architettura. Cenni allo Standard ISO/IEC 42010 (Systems and Software Engineering- Architecture Description).

Progettazione Architetturale.
Principi di progettazione architetturale, Progettazione basata sul riuso di esperienza, attraverso Stili, Pattern e Tattiche Architetturali.

Pattern Architetturali.
I Pattern Architetturali State-logic-Display, Sense-Compute-Control e Model-View-Controller (MVC). Esempi.

Stili Architetturali
Stile procedurale e object-oriented, Stile a Livelli (Macchine Virtuali e Client-Server), Data-Flow (Batch e Pipe-and-Filter), a Memoria Condivisa (Blackboard e Rule Based), basato su Interprete (Codice Mobile), ad Invocazione Implicita (Publish-Subscribe e Event-Based), Peer to Peer (P2P), C2 (Componenti e Connettori), Stile ad Oggetti Distribuiti, Stile Service Oriented (SOA), Stile a Microservizi. Ruoli fondamentali dei Connettori in una architettura software (comunicazione, coordinamento, conversione e facilitazione) e tipi di connettori fondamentali. Esempi.

Tattiche per realizzare gli attributi di qualità di una architettura
Tattiche per l’Availability, Deployability, Modifiability, Energy Efficiency, Performance, Security, Safety, Testability, Usability.

Analisi e Progettazione di architetture Object Oriented con Design Patterns.
Aspetti avanzati dell’Analisi e Progettazione O.O. I patterns della GoF: Singleton, Composite, Decorator, Proxy, Adapter, Facade, Observer, State e Strategy. Implementazioni in Java. I Pattern GRASP: Creator, Controller, Information Expert, Low Coupling,High Cohesion, Polymorphism, Repository.

Processi di Sviluppo Software Iterativi ed Incrementali.
Lo sviluppo iterativo ed Incrementale: differenze rispetto allo sviluppo waterfall. Unified Process (UP): le Fasi di Ideazione, Elaborazione, Costruzione e Transizione. Le discipline e le pratiche di UP.
Sviluppo Agile. I Principi dello Sviluppo Agile. Manifesto Agile e pratiche Agili. Il Test Driven Development (TDD) e il Refactoring. Continuous Integration (CI). Il framework SCRUM: i ruoli in Scrum, i Backlog, le pratiche di Scrum.

Processi di Gestione della Configurazione del Software
La gestione delle Versioni del software. Modello di Version Control Centralizzato e Distribuito. Il processo di Build e l’Agile Building, Continuous Integration, DevOps. I processi di gestione delle Richieste di cambiamento del Software. Gestione delle Release.

Sviluppo di architetture software mediante tecnologie open, uso di framework e librerie.

 

MATERIALE DIDATTICO

N. Taylor, N. Medvidovic, E. Dashofy. Software Architecture -foundations, theory and practice, Wiley 2010.
Len Bass, Paul Clements, Rick Kazman, Software Architecture in Practice, Fourth Edition, Addison Wesley, 2022
P. Clements, F. Bachmann, Bass, etc. Documenting Software Architectures- Views and Beyond, Addison Wesley, Second Ed., 2010.
C. Larman: Applicare UML e i pattern. Analisi e progettazione orientata agli oggetti. 4a ed. Pearson, 2016

Copia delle Slide proiettate durante le lezioni
Articoli scientifici e materiale integrativo dal Web

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

L’insegnamento verrà erogato prevalentemente attraverso lezioni frontali e sarà integrato da esercitazioni pratiche e da seminari di approfondimento. Lo sviluppo delle esercitazioni richiederà l’uso di ambienti integrati e software specialistico per la progettazione, la documentazione ed implementazione di architetture software.

Il docente utilizzerà a) lezioni frontali per circa 45 ore (pari al 62% delle ore totali), b) esercitazioni per approfondire praticamente aspetti teorici e applicare le conoscenze apprese per 15 ore (pari a circa il 21% delle ore totali) e c) seminari di approfondimento su tecnologie e metodologie da utilizzare per lo sviluppo degli elaborati per 12 ore (pari a circa il 17% delle ore totali).

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta   
 Solo orale
 Discussione di elaborato progettuale 
 Altro  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera   
 Esercizi numerici  

  

La prova orale finale tende ad accertare le conoscenze apprese nel campo delle architetture software e dei fondamentali modelli, stili e pattern architetturali. La discussione dell’elaborato progettuale finale intende verificare la capacità di applicare le metodologie di progettazione, documentazione e sviluppo architetturale atte a realizzare i requisiti richiesti ad una architettura, e di utilizzare le indicazioni dei più moderni processi di sviluppo software.

b) Modalità di valutazione:

 

IMPIANTI DI ELABORAZIONE

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: DOMENICO COTRONEO
TELEFONO: 0817683824
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE):
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): I
CFU: 9

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

Conoscenza dell’architettura di un calcolatore, dei sistemi operativi e delle reti di comunicazione.

 

OBIETTIVI FORMATIVI

L’obiettivo del corso di Impianti di Elaborazione è quello di fornire gli elementi metodologici per l’analisi e la valutazione quantitativa dei moderni sistemi di elaborazione. Particolare attenzione sarà data sia alle caratteristiche prestazionali sia a quelle di sicurezza e di affidabilità dei sistemi di elaborazione.
Al fine di raggiungere i suoi obiettivi in maniera efficace, il corso presenta, da una prospettiva squisitamente ingegneristica, i seguenti argomenti:
• le metodologie di analisi delle prestazioni e della sicurezza dei sistemi, come ad esempio la statistica inferenziale, l’experimental design, la simulazione e i modelli analitici con e senza stato;
• le metodologie e le tecniche di misura diretta dei sistemi di larga scala, come ad esempio i data center, con particolare enfasi alle metodologie e le tecniche di field data Analysis;
• le metodologie e gli standard per la progettazione e realizzazione dei sistemi safety critical.
La parte applicativa del corso è dedicata alla valutazione delle prestazioni e dell’affidabilità di alcuni semplici sistemi, eseguita durante le lezioni e all’analisi dei dati finalizzata alla valutazione dell’affidabilità e alla sicurezza di sistemi reali di larga scala (data center o sistemi per l’High Peformance Computing).

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Lo studente deve dimostrare di conoscere e comprendere le problematiche per l’analisi delle prestazioni e dell’affidabilità dei sistemi, con particolare riferimento alle tecniche statistiche di valutazione e di experimental design, alla tecniche di misure diretta. Lo studente deve inoltre dimostrare di conoscere i fondamenti dell’ingegneria dei sistemi safety-critical: l’analisi degli hazard; l’identificazione e la gestione dei rischi; le tecniche per l’identificazione dei fallimenti.
Capacità di applicare conoscenza e comprensione
Lo studente deve dimostrare di essere in grado di valutare le prestazioni e l’affidabilità di un sistema di elaborazione, di comparare le prestazioni e l’affidabilità di due o più sistemi, di conoscere le principale tecniche statistiche per l’analisi dei dati, provenienti da sistemi di larga scala (data center o sistemi per l’High Peformance Computing)

 

PROGRAMMA-SYLLABUS

CONTENUTI
Fondamenti di statistica Inferenziale applicata all’ingegneria dei sistemi di elaborazione. Distribuzioni campionarie. Intervalli di confidenza. Test di ipotesi. Modelli di regressione. La regressione lineare. Design Of Experiments. Simple Design. Full Fractorial Design. Fractional Factorial Design. ANOVA. Brevi cenni sui tool per elaborazione statistica dei dati: Matlab (statistical toolbox) e JMP.
Metodologie e Tecniche per l’Analisi Sperimentale. . Capacity Planning e Capacity Management. Tipologie di Workload. Application Benchmarks. Criteri per la selezione del workload. Tecniche di caratterizzazione del Workload: Averaging, Single Parameter Histograms, Multi-parameter Histograms Principal Component Analysis, Markov Models e Clustering gerarchico. Capacity Test .
Analisi delle prestazioni di un impianto di elaborazione. Modelli per la misura delle performance e modelli per la misura di attributi di affidabilità. Modelli Analitici e Modelli simulativi. Modelli markoviani a tempo discreto. Modelli markoviani a tempo continuo. Teoria delle code.. Algoritmo di Mean Value Analysis. Esercitazione su alcuni casi di studio.
Analisi dell’affidabilità di un impianto di elaborazione. Sistemi riparabili e non riparabili. Definizione di Dependability: Availability, Reliability, Safety. Misure di Dependability. Fault, Error e Failure. Tecniche di Fault avoidance e tecniche di Fault Tolerance. Duplication. N-Modular Redundancy. Hardware redundancy. Cenni sulle strategie di software Fault Tolerance (N-Version e Recovery Block). Cenni sulla sicurezza dei sistemi cyber physical.
Modelli per la valutazione dell’affidabilità. I modelli combinatoriali: Reliability Block Diagrams e Fault Trees. Modellazione e valutazione di un TMR. Esempi di modellazione di sistemi reali (es. reti di comunicazione bancarie e velivoli).
Metodi e tecniche Di Field Failure Data Analysis: FFDA nel contesto del data mining. Data Collection. Data Filtering. Data correlation and Coalescence. Failure analysis di sistemi di larga scala. Casi di studio reali.
Sistemi safety critical. Definizione di Hazard e di Rischio. Hazard Analysis. La FMEA. Risk analysis e management. Cenni sugli Standard per la Safety: IEC61508, DO178B, CENELC EN 50128.
Cenni sulla gestione di un impianto di elaborazione: La scrittura di un capitolato tecnico. Il collaudo di un impianto. Aspetti caratterizzanti la gestione di un impianto di elaborazione. Business continuity plan e Tecniche di Disaster Ricovery. Tecniche di Backup e di Restore

 

MATERIALE DIDATTICO

Libri di testo:
• Raj Jain, The art of Computer systems Performance Analysis, Wiley
• Douglas C. Montgomery, George C. Runger - Applied Statistics and Probability for Engineers-Wiley
• KishorTrivedi, Andrea Bobbio Reliability and Availability Engineering, Cambridge University Press

Dispense didattiche (consultabili dal sito del corso)
Dispense e presentazioni fornite dal docente relative ad argomenti teorici e applicativi trattati al corso.

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Il corso prevede circa il 70% di lezioni frontali in cui vengono affrontati gli argomenti teorici, mentre il restante 30% è riservato a lezioni pratiche ed esercitazioni riguardanti l’applicazione delle tecniche acquisiti ai sistemi reali. La parte applicativa del corso si avvale di tool per elaborazione statistica dei dati , come Matlab, R e JMP.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta   
 Solo orale
 Discussione di elaborato progettuale 
 Altro  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera   
 Esercizi numerici  

  

b) Modalità di valutazione:

 

MACHINE LEARNING

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: CARLO SANSONE
TELEFONO: 081-7683640
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE):
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): I
CFU: 6

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

...................................................................................................................................................

 

OBIETTIVI FORMATIVI

Obiettivo del corso è presentare i principali tecniche di Machine Learning per la soluzione di problemi di classificazione, predizione numerica e clustering e le metodologie di gestione e sviluppo di un processo di Machine Learning, dalla preparazione dei dati alla valutazione dei risultati.
Il corso consentirà anche di sviluppare competenze pratiche nella soluzione di problemi reali tramite tecniche di Machine Learning, grazie ad esercitazioni svolte con tool commerciali e/o open source.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Lo studente deve conoscere i principali algoritmi di Machine Learning e Deep Learning. Lo studente deve inoltre dimostrare di essere in grado di scegliere l’algoritmo di Machine Learning più adatto a risolvere uno specifico problemi di classificazione e/o predizione numerica e/o clustering, sulla base dei requisiti del problema medesimo. Lo studente deve infine dimostrare di essere in grado di scegliere le opportune tecniche di preparazione dei dati e deve conoscere le tecniche necessarie per la valutazione delle prestazioni di algoritmi di Machine Learning e Deep Learning.


Capacità di applicare conoscenza e comprensione
Lo studente deve dimostrare di essere in grado di risolvere problemi reali di classificazione, predizione numerica o clustering utilizzando tecniche di Machine Learning. Deve anche dimostrare di saper valutare in modo corretto le prestazioni dei sistemi che realizza.

 

PROGRAMMA-SYLLABUS

Introduzione al Machine Learning (0.25 CFU)

Input ed Output (0.5 CFU)
Concetti, istanze ed attributi. Rappresentazione della conoscenza.

Metodi di base (1.25 CFU)
Modelli probabilistici, alberi di decisione, regole di classificazione, modelli lineari, instance-based e multi-instance learning, clustering.

Valutazione delle prestazioni (0.5 CFU)
Training e Testing. CV, LOO, Cost-sensitive classification. ROC. Valutazione di algoritmi di predizione numerica.

Metodi avanzati (2 CFU)
Alberi di decisione: C4.5. Regole di classificazione. Instance-based learning. Estensione dei modelli lineari: SVM. Epsilon-SVR. MLP. Predizione numerica con modelli lineari.

Trasformare i dati (0.25 CFU)
Selezione degli attributi, PCA, Discretizzazione, Campionamento. One-class classification.

Metodi probabilistici (0.25 CFU)
Reti bayesiane. Probability Density Estimation e Clustering. Modelli sequenziali e temporali (cenni).

Deep Learning (0.5 CFU)
Addestramento e valutazione delle prestazioni di reti deep, Convolutional Neural Networks, Autoencoders. Reti Neurali ricorrenti e GAN (cenni).

Oltre l'apprendimento supervisionato e non-supervisionato (0.25 CFU)
Semi-supervised learning. Multi-instance learning.

Ensemble Learning (0.25 CFU)
Bagging, Randomization, Boosting, Stacking, ECOC.

 

MATERIALE DIDATTICO

Data mining: practical machine learning tools and techniques. —4th ed. / Ian H. Witten, Eibe Frank, Mark A. Hall, Christopher J. Pal. —The Morgan Kaufmann, 2017.

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Il docente utilizzerà: a) lezioni frontali per circa il 60% delle ore totali, b) esercitazioni per approfondire praticamente aspetti teorici per circa il 35% delle ore totali, c) seminari per circa il 5% delle ore totali.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta   
 Solo orale  
 Discussione di elaborato progettuale   
 Altro  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera   
 Esercizi numerici  

  

Ciascuno studente dovrà sviluppare durante il corso 3 progetti, che, in caso di valutazione positiva, lo esonerano dallo sviluppo dell’elaborato progettuale finale. In sede di esame, ciascuno studente discuterà uno dei 3 progetti sviluppati durante il corso o l’elaborato progettuale finale, prima della prova orale.

 

b) Modalità di valutazione:

La discussione dell’elaborato progettuale pesa per 1/10, mentre la prova orale per 9/10.

 

REAL TIME INDUSTRIAL SYSTEM

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: MARCELLO CINQUE
TELEFONO: 081-7683874
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE):
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): I
CFU: 6

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

Conoscenze base di sistemi operativi e programmazione, acquisite alla laurea triennale.

 

OBIETTIVI FORMATIVI

Il corso fornisce conoscenze avanzate sui sistemi in tempo reale e sul loro impiego in diversi ambiti industriali, con particolare riferimento ai sistemi mission critical e safety critical. Fornisce inoltre le competenze necessarie alla progettazione e realizzazione di sistemi software in tempo reale a criticità mista, adoperando sistemi operativi e piattaforme di virtualizzazione per sistemi real-time embedded, incluse le architetture ibride ad alte prestazioni, con attenzione sia alle prescrizioni imposte dagli standard di certificazione nei diversi contesti industriali, come automotive, ferroviario, e avionico, sia alle iniziative di ricerca su tematiche affini quali l’Industrial Internet of Things e Industria 4.0.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Lo studente deve dimostrare: di comprendere i problemi teorici alla base dell’elaborazione in tempo reale, di conoscere gli algoritmi di scheduling e di gestione delle risorse per la loro risoluzione, di saper illustrare i principi e le tecniche di virtualizzazione utili alla realizzazione di sistemi a criticità mista nel rispetto delle proprietà di isolamento, di riconoscere i principali ambiti industriali in cui tali sistemi sono impiegati ed i vincoli imposti dalle normative.

Capacità di applicare conoscenza e comprensione
Lo studente deve dimostrare: di saper applicare gli strumenti metodologici acquisiti per l’analisi di fattibilità e il dimensionamento di sistemi real-time su sistemi di calcolo single-core, multi-core e/o piattaforme asimmetriche/ibride, di saper analizzare le problematiche teoriche e pratiche inerenti l’utilizzo di sistemi operativi e piattaforme di virtualizzazione in contesti embedded ed industriali, di saper progettare e implementare sistemi real-time complessi e a criticità mista con riferimento a processi e tecnologie conformi ai principali standard industriali.

 

PROGRAMMA-SYLLABUS

Introduzione ai sistemi real-time. Proprietà fondamentali. Hard e soft real-time. Il concetto di safety e sistemi safety-critical. Scheduling di task periodici: cyclic exceutive, rate monotonic (RM), earliest deadline first (EDF). Server aperiodici: polling server, deferrable server, sporadic server, total bandwidth server, hard constant bandwidth server. Gestione delle risorse: non-preemptive protocol, highest locker priority, priority inheritance e priority ceiling. Test di schedulabilità: test basati su upper bound e su response time analysis.
Architetture dei kernel real-time. I sistemi operativi real-time. Sorgenti di latenza nei sistemi di calcolo. Real-time executive. Kernel monolitici. Microkernel e famiglia L4. Dual kernel: gli esempi RTAI e Xenomai. Preemptable kernel. La patch PREEMPT_RT per il kernel Linux.
Programmazione di task real-time in ambiente Linux. Lo standard RT-POSIX. Primitive per la gestione del tempo, per la gestione dei task e per la gestione delle risorse con priority inheritance e priority ceiling. Programmazione di task periodici con RM (SCHED_FIFO) e EDF (SCHED_DEADLINE). Esempi pratici di utilizzo.
Monitoraggio di sistemi real-time. Metodologie di monitoraggio: embedded constraint e monitored constraint. Fault tolerance e gestione dei timing failure. Rule-based logging. Analisi della propagazione degli errori.
Real-time multiprocessing. Utilizzo di sistemi di calcolo multiprocessore per elaborazione real-time. Modelli di task e limiti teorici. Piattaforme multiprocessore simmetriche e asimmetriche. Scheduling partizionato di task sporadici con EDF e RM. Allocazione con Bin packing. Scheduling globale: l’algoritmo pfair, EDF globale, effetto Dhall, pfEDF, RM-light e RM-US. Limiti di fattibilità. Problematiche di interferenza e isolamento nei multiprocessore dovute alle gerarchie di memoria.
Sistemi a criticità mista. Il modello di Vestal. Response time analysis multi-criticality. Metodo di Audsley. Sheduling gerarchico: open system architecture, sistemi gerarchici a priorità fissa, constant bandwidth server gerarchico. L’utilizzo di piattaforme asimmetriche ibride e multi-processor systems on chip per la realizzazione di sistemi a criticità mista. OpenAMP: RemoteProc, RPMsg ed esempi di utilizzo su piattaforma Zync Ultrascale+.
Virtualizzazione real-time. Introduzione alla virtualizzazione: virtualizzazione della CPU, della memoria, del I/O. Problematiche di virtualizzazione nei sistemi real-time. Tipologie di hypervisor. Esempi di hypervisor real-time: XEN con gli scheduler null e RTDS, Jailhouse, ed esempi pratici di utilizzo. Real-time cloud e container real-time: alternative architetturali ed esempi di realizzazione/utilizzo in ambiente dual kernel.
Ambiti applicativi industriali. Il contesto automotive: lo standard ISO 26262, ASIL e processo di sviluppo, coding rules e MISRA-C, il concetto di SEooC, lo standard OSEK, lo standard AUROSAR, il protocollo CAN, sistemi operativi e hypervisor adottati in ambito automotive. Il contesto avionico: lo standard DO 178B, lo standard ARINC 653, Architettura IMA e interfaccia APEX, reti real-time in ambito avionico, sistemi operativi e hypervisor adottati in ambito avionico. Il contesto ferroviario: lo standard CENELEC EN 50128. La Industrial Internet of Things: terminologia, architettura, cenni a iniziative di standardizzazione e protocolli di comunicazione.

 

MATERIALE DIDATTICO

• Libri di testo:
o Giorgio Buttazzo: “Hard real-time computing systems: Predictable Scheduling Algorithms and Applications”, Third Edition, Springer, 2011.
o S. Baruah, M. Bertogna, G. Buttazzo. “Multiprocessor Scheduling for Real- Time Systems”, Springer, 2015
• Trasparenze delle lezioni, dispense ed articoli scientifici di approfondimento disponibili sul sito web docente

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

La didattica è erogata a) per il 75% con lezioni frontali, b) per il 20% con esercitazioni guidate in aula per approfondire praticamente gli aspetti relativi alla programmazione di task real-time e all’utilizzo di piattaforme di virtualizzazione e architetture ibride e c) per il 5% con seminari sulle tematiche relative a standard industriali o specifici approfondimenti.
Gli argomenti delle lezioni frontali e dei seminari sono esposti con l’ausilio di trasparenze dettagliate, messe a disposizione dello studente nel materiale didattico tramite il sito web ufficiale del docente.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta   
 Solo orale
 Discussione di elaborato progettuale 
 Altro  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera   
 Esercizi numerici  

  

L’esame si articola in una sola prova orale comprendente la presentazione di un elaborato progettuale assegnato durante il corso e tre domande su altrettanti problemi, algoritmi e soluzioni teoriche e tecnologiche esposte al corso. L’elaborato può essere svolto in gruppi di massimo tre studenti.

  

INFORMATION SYSTEMS AND BUSINESS INTELLIGENCE

SCHEDA DELL'INSEGNAMENTO (SI)
SSD ING-INF/05

 

LAUREA MAGISTRALE IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO: 2022-2023

 

INFORMAZIONI GENERALI - DOCENTE

DOCENTE: VINCENZO MOSCATO
TELEFONO: 0817683835
EMAIL: Questo indirizzo email è protetto dagli spambots. È necessario abilitare JavaScript per vederlo.

 

INFORMAZIONI GENERALI - ATTIVITÀ

INSEGNAMENTO INTEGRATO (EVENTUALE):
MODULO (EVENTUALE):
CANALE (EVENTUALE):
ANNO DI CORSO (I, II, III): II
SEMESTRE (I, II): II
CFU: 6

 

INSEGNAMENTI PROPEDEUTICI

(se previsti dall'Ordinamento del CdS)

...................................................................................................................................................

 

EVENTUALI PREREQUISITI

...................................................................................................................................................

 

OBIETTIVI FORMATIVI

Il corso si pone l’obiettivo di fornire le competenze specialistiche per la progettazione e gestione delle moderne infrastrutture di Business Intelligence (BI) a supporto dei Sistemi Informativi di tipo direzionale e viste sia come strumento al servizio del raggiungimento degli obiettivi aziendali, sia come catalizzatore dell'innovazione organizzativa e strategica. In particolare, verranno analizzate alcune delle suite open-source e commerciali più diffuse per la BI ed approfondite le metodologie e tecniche di Data Mining per l’estrazione di informazioni e conoscenza utili ai processi decisionali. In aggiunta, saranno dettagliate anche le moderne tecnologie ERP/CRM a supporto dei processi di business di tipo operativo, e analizzate come queste siano una delle principali sorgenti dati in un sistema di BI. Vengono infine affrontati i principi metodologici di alcune fasi del ciclo di vita di un Sistema Informativo, con riferimento non solo agli aspetti tecnologici, ma anche a quelli che richiedono attenzione al contesto organizzativo ed economico, nonché le relative problematiche di assessment e benchmarking.

 

RISULTATI DI APPRENDIMENTO ATTESI

(Descrittori di Dublino)

Conoscenza e capacità di comprensione
Il percorso formativo intende fornire agli studenti le conoscenze specialistiche e tutti gli strumenti metodologici e tecnologici a supporto sia dei Sistemi Informativi Direzionali sia di quelli Operativi, con particolare riferimento alle principali suite software ERP/CRM e di Business Intelligence (BI) sia commerciali sia open-source. In particolare, tali strumenti consentiranno agli studenti, da un lato, di sapere utilizzare quelle che sono le “best practices” più adeguate alla messa a norma e reingegnerizzazione dei processi di business di natura operativa, dall’altro, di sapere implementare in maniera efficiente ed efficace i processi direzionali/decisionali di una data organizzazione.

Capacità di applicare conoscenza e comprensione
Il percorso formativo è orientato a trasmettere le capacità e gli strumenti metodologici ed operativi necessari ad applicare concretamente le conoscenze relative alla progettazione e manutenzione dei Sistemi Informativi Aziendali sia Direzionali sia Operativi. In particolare, lo studente deve dimostrare di essere in grado di reingegnerizzare attraverso l’introduzione delle tecnologie informatiche ERP/CRM quelli che sono i tipici processi di business operativi di un’azienda, e di supportare con i tool di Business Intelligence (BI) quelli che sono invece i processi direzionali/decisionali.

 

PROGRAMMA-SYLLABUS

1. I Sistemi Informativi Aziendali: Introduzione ai Sistemi Informativi Aziendali. Il modello organizzativo, funzionale ed informatico di un Sistema Informativo. Sistemi Informativi Operativi vs Sistemi Informativi Direzionali.
2. I Processi Gestionali nei Sistemi Informativi: Tipologie di classificazione dei processi. Identificazione, descrizione e scomposizione dei processi. Cenni alla Modellazione ed al Workflow dei Processi. Prestazioni dei Processi Gestionali. Business Process Reengineering (BPR).
3. Le Tecnologie Informatiche alla base dei Sistemi Informativi Operativi: Architettura dei moderni Sistemi Informativi. Sistemi ERP. Sistemi CRM. Architetture SOA. Integrazione di Sistemi Informativi.
4. Sistemi Informativi Direzionali e Business Intelligence: Definizione di Business Intelligence (BI). Il processo di BI. Principali tool commerciali e open-source. Tecniche di Data Mining a supporto della BI.
5. Ciclo di Vita dei Sistemi Informativi: Pianificazione. Assessment e Benchmarking. Reingegnerizzazione e Studio di Fattibilità. Progettazione, Realizzazione e Manutenzione. Gestione e Conduzione. Cenni al Project Management.
6. Esempi di Sistemi Informativi: Sistemi Informativi per la Logistica e la Produzione. Sistemi Informativi per i Trasporti. Sistemi informativi Sanitari. Sistemi Informativi per la Pubblica Amministrazione. Sistemi Informativi Territoriali.

 

MATERIALE DIDATTICO

- Appunti del docente, Lucidi.
- Manuali dei vari tools presentati.
- Libri di testo consigliati:
    1. Bracchi, Francalanci, Motta, “Sistemi informativi per l’industria digitale”, Mc Graw Hill 2010.
    2. Rezzani, “Business intelligence. Progessi, metodi, utilizzo in azienda”, Apogeo, 2012.

 

MODALITÀ DI SVOLGIMENTO DELL'INSEGNAMENTO

Il docente utilizzerà lezioni frontali per circa il 60% delle ore totali, ed in aggiunta esercitazioni al calcolatore, sia assistite sia personali, per approfondire praticamente gli aspetti teorici ed i tool (software specialistico) introdotti, e seminari di approfondimento per le rimanenti ore. Il tutto sarà supportato da materiale didattico multimediale disponibile on-line.

 

VERIFICA DI APPRENDIMENTO E CRITERI DI VALUTAZIONE

a) Modalità di esame:

L'esame si articola in prova:
 Scritta e orale  
 Solo scritta   
 Solo orale
 Discussione di elaborato progettuale 
 Altro  

 

In caso di prova scritta i quesiti sono (*):
 A risposta multipla  
 A risposta libera   
 Esercizi numerici  

  

Ogni studente dovrà sviluppare durante il corso 2 Homeworks, in aggiunta all’elaborato progettuale finale, comprendenti l’uso delle tecniche e de tools presentati.

 

b) Modalità di valutazione:
Durante la discussione dell’elaborato progettuale saranno richiesti approfondimenti teorici relativi a parti dell’elaborato stesso, ed il tutto concorrerà alla valutazione finale.

  

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.