Home page

Curriculum

Corsi
-
Windows
-
Modello COM
-
Fabbrica del SW
|
Architettura dei sistemi Windows
|
|
Programma
- Introduzione
- Inquadramento storico
- Descrizione generale dei sistemi Windows
- Librerie ad aggancio dinamico (DLL)
- Concetti di base
- Modalità di uso delle DLL: caricamento automatico e caricamento su richiesta
- Confronto con concetti analoghi in altri sistemi (Linux)
- Le DLL di sistema e l’API di Windows (WinAPI)
- Il modello ad eventi
- Concetti di base
- I messaggi Windows
- L’idea di callback
- Finestre, classi di finestre e dispatching dei messaggi
- Struttura di un’applicazione Windows con esempi
- Modello ad eventi e pseudo-multitasking
- Confronto con applicazioni XWindows/GNOME
- Da Win16 a Win32
- Differenze fra ambiente a 16 bit e ambienti a 32 bit
- Multitasking effettivo in Win32: processi e threads
- Strumenti di sincronizzazione
Materiale
-
Lucidi in formato PowerPoint e HTML:
-
WIN.PPT,
WIN.HTML
-
Sorgenti degli esempi in C:
- HELLOWIN.C,
HELLOBTN.C,
TESTDLL.C,
HELLODLL.C,
HELLODL2.C
-
Esempio di framework C++ per Windows:
- IFC.ZIP,
IFCTEST.ZIP
|
|
Il modello COM
|
|
Programma
- Introduzione
- “Crisi” ed evoluzione del modello WinAPI
- Razionalizzazione dei servizi di sistema operativo
- Indipendenza dei servizi dalla collocazione fisica
- “Componentizzazione” del software
- Concetti di base
- Tecniche di implementazione degli oggetti nei linguaggi ibridi
- DLL e programmazione ad oggetti
- Interfacce: il fondamento del modello COM
- IUnknown e l’ereditarietà delle interfacce
- Identificazione di classi e interfacce: GUID
- Il supporto runtime
- Creazione e distruzione degli oggetti
- Ereditarietà e aggregazione
- L’indipendenza dalla collocazione fisica
- Registry di sistema, GUID e servizi di naming
- COM come modello client-server: classificazione dei server COM
- Chiamate di procedura remota (RPC) e di marshaling
- L’implementazione di COM: proxy, canale e stub
- Interfacce standard e interfacce custom: uso di IDL
- L’interfaccia universale IDispatch e l’auto-marshaling
- Dual-interfaces
- DCOM: estensione distribuita di COM
- Panoramica delle tecnologie basate su COM
- Da OLE ad ActiveX
- Documenti composti
- Structured Storage
- Uniform data transfer
- OLE Automation
- Componenti software
- Il concetto di componente software
- Componenti e produzione industriale del software
- Modello PME: proprietà, metodi ed eventi
- Introspezione e serializzazione
- OCX/ActiveX: il modello di componenti basato su COM
- Proprietà, metodi ed eventi: uso di IDispatch
- Introspezione: type libraries
- Serializzazione: structured storage
- Confronto fra ActiveX e JavaBeans
- COM e tecnologie Web
- Active scripting
- Lato client: Internet Explorer
- Lato server: IIS, ISAPI e ASP
Materiale
-
Lucidi in formato PowerPoint:
-
INTROCOM.PPT,
MODCOM.PPT,
IMPLCOM.PPT
- 
AUTOCOM.PPT,
OCXCOM.PPT,
WEBCOM.PPT
-
Esempi:
-
OBJDLL.ZIP,
INTDLL.DLL,
COMDLL.ZIP
|
|
La fabbrica del software
|
|
Programma
- Introduzione
- Origini dell'ingegneria del software (la "crisi del software")
- Caratteristiche generali della produzione del software
- Confronto fra processo di produzione del SW e altri processi
- Gestione del progetto
- Stime di costi e tempi
- Pianificazione, organizzazione delle attività e schedulazione
- Analisi, progetto e scrittura
- Definizione delle problematiche e distinzione fra le fasi
- Obiettivi e strategie di analisi
- Obiettivi e strategie di progetto ("design for change" ,"design for reuse"...)
- Metodologie tradizionali e metodologie object-oriented
- Vantaggi delle metodologie object-oriented: uniformità del processo
- Limiti di applicabilità delle metodologie ad oggetti nei sistemi embedded e nell'automazione
- Notazioni e metodologie: lo standard UML (Unified model language)
- Tecniche avanzate (pattern e riuso del design, "design by contract", antipattern)
- La scrittura del software: linguaggi procedurali e linguaggi ad oggetti
- Validazione
- Strategie e metodi di collaudo
- L'evoluzione
- La manutenzione: analisi di una problematica spesso sottovalutata
- Problematiche di "deployment" e di gestione delle configurazioni
- Trent'anni di ingegneria del software: un bilancio
- Esiste ancora una crisi del software?
- "No silver bullet":limiti dell'ingegneria del software
- Verso una produzione industriale?
- Produzione industriale e divisione del lavoro
- I componenti software
- Componenti e "application builders"
- Problematiche legate all'utilizzo dei componenti: decisioni "make or buy", "second source", "escrow" ecc.
|
|
|