TECNICA DI PROGRAMMAZIONE

Prof. Carlo Tasso

Finalità del corso: Introdurre alle tematiche dei sistemi basati sulla conoscenza e dell'ingegneria del software. In particolare quindi vengono introdotti i meccanismi di rappresentazione della conoscenza e gli algoritmi di ragionamento, le tecniche di modellizzazione concettuale e di acquisizione della conoscenza, e vengono altresì esaminate alcune applicazioni significative, quali le interfacce intelligenti, i sistemi diagnostici, e i sistemi tutoriali intelligenti. Per quanto riguarda l'ingegneria del software, vengono illustrati i concetti fonadamentali su cui si basa il processo di produzione industriale di software, e viene quindi trattata in dettaglio una metodologia per lo sviluppo dei sistemi basati sulla conoscenza.

Elenco strutturato di tematiche:

Introduzione alle problematiche dell'Intelligenza Artificiale. Definizione di Sistema Basato sulla Conoscenza. Rappresentazione della Conoscenza e Algoritmi di ragionamento. Le reti semantiche. I frame. Le regole di produzione. Grafi Concettuali. Sistemi per il Ragionamento Non Monotono. ATMS. JTMS. Architetture a Blackboard. Tecniche di modellizzazione concettuale. Classificazione Euristica e Task Generici. Acquisizione della Conoscenza. Sistemi di Rappresentazione Basati sull'Uso di Conoscenza Profonda. Fisica e Simulazione Qualitative. QSIM. Tecniche di Diagnosi Basata su Modello. GDE. Interfacce Intelligenti e Modellizzazione dell'Utente nei Sistemi di Reperimento dell'Informazione: i Progetti FIRE, UMT e IFT. Sistemi Tutoriali Intelligenti: il Progetto ET. Rappresentazione Multimodello dei Sistemi Fisici. Il sistema DYNAMIS.

Ingegneria del Software. Modello dei processi per la realizzazioine e l'uso del software, processi primari, di supporto e di gestione. Modello a cascata e a spirale. Metodologie di sviluppo: organizzazione, attività e metodi. Processi per lo Sviluppo dei Sistemi Basati sulla Conoscenza. La metodologia KLIC. Processi primari di analisi. Analisi di opportunità. Studio di plausibilità. Processi primari di sviluppo. Sviluppo del dimostratore. Sviluppo del prototipo. Implementazione, installazione ed avvio del sistema finale. Processi primari operativi: manutenzione ed estensione. Processi di supporto e di gestione. Controllo di qualità. Verifica e validazione. Documentazione. Gestione di un progetto di sviluppo di un SBC: gruppo di lavoro, pianificazione del progetto, regole di gestione. Training.

Testo consigliato:

Guida, G., Tasso, C. Design and Development of Knowledge-Based Systems: From Life Cycle to Methodology. John Wiley & Sons, Chichester, UK, 1994.