Differenze tra le versioni di "Discussione:Sistemi informativi"

Da WikiDsy.
 
 
Riga 1: Riga 1:
[[Categoria:Corsi]][[Categoria:Corsi Informatica]][[Categoria:Corsi Secondo Semestre]]
 
  
== News ==
 
 
=== 07/03/06: Orario ===
 
 
'''L'orario delle lezioni viene modificato in '''17:45 - 19:15'''
 
 
=== 06/04/06: Primo Compitino ===
 
 
'''Il compitino si terrà, invece del giorno <font color=red>28/04</font> come precedentemente segnalato, il <font color=red>05/05</font> in aula 200 alle 17:30'''
 
 
=== 20/04/06: Primo Compitino in data '''05/05''' ===
 
 
'''E' stato confermato dal prof. Ornaghi che il compitino sarà il <font color=red>5 maggio ore 17.30 aula 200 settore didattico Via Celoria</font>.'''
 
 
=== 04/05/06: Lezione di preparazione al compitino ===
 
 
'''Il giorno 04/05 durante il normale orario di lezione il prof si è reso disponibile a fare esercizi in preparazione al compitino.'''
 
 
=== Lezioni cancellate/spostate ===
 
==== Lezione del 27/04/2006 ====
 
 
  AVVISO: causa indisponibilita' dell'aula Beta, la lezione del '''27/04/2006''' sara' in '''via Celoria''', aula '''303'''
 
 
=== Appelli ===
 
 
*20/4/2006
 
*22/6/2006
 
*18/7/2006
 
*21/9/2006
 
*19/10/2006
 
*25/1/2007
 
 
== Anni precedenti ==
 
== Informazioni generali ==
 
=== Docenti ===
 
[[Mario Ornaghi]]
 
=== Corsi di laurea ===
 
*[[:Categoria:Corsi Informatica|Informatica]]
 
=== Modalità d'esame ===
 
* Compitini e, per chi non ha fatto o superato i compitini, orale tradizionale
 
* Orale:
 
** per chi ha fatto i compitini: verbalizzazione del voto dei compitini, con eventuali brevi domande nel caso di incertezze;
 
** per chi non ha fatto i compitini o non è soddisfatto del voto dei compitini orale dettagliato; il voto sarà determinato dall’orale.
 
=== Prerequisiti al corso ===
 
=== Orari e luogo delle lezioni ===
 
*Martedì ''17:45-19:15'' Aula Beta (218 posti, via Comelico 39)
 
*Giovedì ''17:45-19:15'' Aula Beta (218 posti, via Comelico 39)
 
*[http://www.dsi.unimi.it/occorrenza.php?z=0;id_corso=5;id_occ=975 link al corso su DSI]
 
=== Orario di ricevimento studenti ===
 
== Informazioni specifiche ==
 
=== Siti del corso ===
 
*[http://www.dsy.it/forum/forumdisplay.php?s=&forumid=85 http://www.dsy.it/forum/forumdisplay.php?s=&forumid=85 ('''hosted forum del professor Ornaghi''')]
 
=== Forum del corso, e affini ===
 
* [http://www.dsy.it/forum/forumdisplay.php?s=&forumid=237 Forum sul Dsy di Ingegneria del Software (in comune con turno 1)]
 
* [http://www.dsy.it/forum/forumdisplay.php?s=&forumid=85 http://www.dsy.it/forum/forumdisplay.php?s=&forumid=85 ('''hosted forum del professor Ornaghi''')]'''
 
  '''NOTA''': per avere la password del Forum chiedere in [http://www.dsy.it/forum/showthread.php?s=&threadid=9431 questo thread]
 
 
== Materiale didattico ==
 
=== Programma del corso ===
 
* Parte I. '''Generalità e Progettazione
 
** Introduzione all’ingegneria del software;
 
** Ciclo di vita del Software
 
** Qualità e Principi
 
** Cenni su Requisiti ed Analisi
 
** Progettazione ed Architetture
 
*Parte II. '''Analisi, Specifica e Verifica
 
** Analisi, specifica e verifica nel ciclo di vita
 
** Specifica
 
*** Operazionale vs dichiarativa
 
*** formale vs informale
 
** Verifica
 
*** Testing
 
*** Analisi
 
*** Tools
 
*Parte III. '''Analisi, Progettazione e programmazione OO (Object Oriented)
 
** Sarà interfogliata alle parti I e II, specializzandole al caso OO
 
***In particolare, Principi di OOA&P: patterns
 
** Introdurrà e userà UML
 
=== Testi ===
 
*'''Ghezzi, Jazayeri, Mandrioli: Ingegneria del Software - fondamenti e principi, 2° ed., Prentice Hall'''
 
** per la parte UML<br>''C. Larman: Applicare UML e i pattern – 3° ed., Pearson 2005
 
=== Altro materiale consigliato ===
 
*''Gamma et al: Design Patterns. Prima edizione italiana. Addison-Wesley Italia, 2002
 
*''M. Fowler. UML distilled. Prima edizione italiana. Addison Wesley Italia, 2000
 
=== Video delle lezioni ===
 
=== Appunti ===
 
* [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 '''Lucidi A.A. 2005/2006]'''
 
  (si possono scaricare solo '''dopo'' aver eseguito il login come utente Dsy e aver inserito la password)
 
* [http://www.dsy.it/forum/showthread.php?s=&threadid=18011 Lucidi A.A. 2004/2005]
 
 
=== Altro materiale in Internet ===
 
Si consiglia l'utilizzo del software free '''ARGO''', scaricabile gratuitamente da [http://argouml.tigris.org http://argouml.tigris.org]
 
 
=== Esami passati, tesine, compiti .. ===
 
 
== Diario del corso ==
 
 
=== Lezione del 07/03/2006 ===
 
 
* Introduzione al corso
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 09/03/2006 ===
 
 
* [[:it:Ingegneria del software#Storia|Nascita dell'ingegneria del software]]
 
 
* [[:it:Ingegneria del software|Ingegneria del software]]
 
** definizioni
 
 
* [[:it:Ciclo di vita del software|Ciclo di vita del software]]
 
** [[:it:Modello a cascata|modello a cascata]]: analisi dei requisiti, disegno e specifica del sistema, codifica e verifica dei moduli, integrazione e verifica del sistema, rilascio e manutenzione
 
* [[:it:Ciclo di vita del software#Modelli e metamodelli di ciclo di vita|Altri processi di sviluppo]]
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 14/03/2006 ===
 
 
* [[:it:Qualità del software|Qualità del software]]
 
** Classificazione delle qualità
 
*** Qualità [[:it:Qualità del software#Qualità interne|interna]], [[:it:Qualità del software#Parametri di qualità esterni|esterna]], del prodotto, del processo
 
** Le principali qualità
 
*** Qualità comportamentali ([[:it:Qualità del software#Robustezza|robustezza]], [[:it:Qualità del software#Affidabilità|affidabilità]], completezza, [[:it:Qualità del software#Usabilità|usabilità]])
 
*** [[:it:Qualità del software#Efficienza e prestazioni|Prestazioni]]
 
*** [[:it:Qualità del software#Manutenibilità|Manutenibilità]]
 
*** Utilizzabilità del software ([[:it:Qualità del software#Riusabilità|riusabilità]])
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 16/03/2006 ===
 
 
* [[:it:Qualità del software|Qualità del software]]
 
** Utilizzabilità
 
*** [[:it:Qualità del software#Riusabilità|Riusabilità]]
 
*** [[:it:Qualità del software#Portabilità|Portabilità]]<br><small>= capacità di un sistema software di essere adattato a piattaforme HDW e sistemi operativi o SFTW diversi</small>
 
*** Interoperabilità<br><small>= capacità di un sistema di cooperare con altri sistemi</small>
 
 
* Qualità del disegno e del codice
 
** [[:it:Qualità del software#Verificabilità|Verificabilità]]<br><small>= misura l’effettività (ai fini della verifica) di documentazione e moduli di verifica</small>
 
** Comprensibilità<br><small>= misura della chiarezza di codice, disegno, specifiche, a parità di difficoltà intrinseca dell’ambito di problema</small>
 
 
* Qualità del processo
 
** Produttività<br><small>= misura la produttività di un processo di produzione del software</small>
 
** Tempestività<br><small>= capacità del processo di rispettare i tempi previsti</small>
 
** Visibilità
 
 
* I '''Principi'''
 
** Sono orientati, in particolare, alle qualità [[:it:Qualità del software#Affidabilità|affidabilità]] e modificabilità<br>Sono:<br>rigore e formalità<br><small>seguire un procedimento disciplinato e rigoroso; usare metodi formali dove appropriato; formalizzare il problema</small>
 
** separazione (separation of concerns)<br><small>trattare separatamente problematiche diverse</small>
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 21/03/2006 ===
 
 
* I '''Principi'''
 
** modularità<br><small>decomporre un sistema in parti coese e con basso accoppiamento, dette moduli</small>
 
*** alta coesione
 
*** basso accoppiamento
 
** astrazione<br><small>astrarre dai dettagli non rilevanti rispetto allo scopo</small>
 
** anticipazione dei cambiamenti<br><small>prevedere le possibili modifiche adattive, perfettive, di riuso</small>
 
** generalità<br><small>chiedersi sempre se un problema può essere risolto come caso particolare di un problema più generale.</small>
 
** incrementalità <br><small>procedere per incrementi</small>
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 23/03/2006 ===
 
 
* La fase di disegno o progetto
 
** [[:it:Analisi dei requisiti|Analisi]] e specificazione dei requisiti
 
** La fase di disegno ([[:it:Progettazione (ingegneria del software)|progetto]])
 
***Disegno architetturale
 
***Disegno del software
 
 
* Caratteristiche di disegno
 
** Tecniche di modularizzazione
 
*** I moduli: aspetti strutturali
 
*** La relazione ''"usa"''
 
*** grado di accoppiamento
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 28/03/2006 ===
 
 
  '''Prima raccolta firme per il compitino, il foglio girerà ancora settimana prossima'''
 
 
* La Relazione ''"componente di"''<br><small>consente di ''documentare le scelte man mano fatte''<br>controllare gli ''effetti sui livelli alti di modifiche introdotte nei livelli più bassi'', al fine di mantenere la consistenza della documentazione<br>''sviluppare famiglie di prodotti''</small>
 
** Aspetti strutturali di ''usa'' e ''componente di''
 
 
* Nozione di ''modulo''
 
** [[:it:Interfaccia (informatica)|Interfaccia]]<small><br>rappresenta tutto ciò che è necessario sapere per utilizzare un modulo M, e deve essere specificata in modo preciso e rigoroso</small>
 
** [[:it:Incapsulamento (informatica)|Incapsulamento o Information hiding]]<small><br>nascondere gli aspetti implementativi</small>
 
** Pubblicazione delle interfacce
 
*** cosa pubblicare nelle interfacce<small><br>trascurare i dettagli irrilevanti e mettere solo quelli essenziali rispetto allo scopo</small>
 
*** come specificare le interfacce in modo rigoroso
 
 
* Notazioni per i moduli: requisiti essenziali
 
** alcuni esempi
 
** moduli generici
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 30/03/2006 ===
 
 
'''Seconda raccolta firme per il compitino, il foglio girerà ancora settimana prossima.<br>In ogni caso basta una sola firma.'''
 
 
* Disegno nei sistemi concorrenti e distribuiti
 
** I [[:it:Monitor (sincronizzazione)|monitor]]
 
** Guardians (tipico di [[:Wikipedia:Ada programming language|ADA]])
 
** Software distribuito
 
*** legame Modulo - Macchina
 
*** comunicazione fra moduli<small><br>chiamata procedura remota<br>messaggi</small>
 
*** duplicazione e distribuzione
 
 
* Architettura
 
** Architettura di Sistema<small><br>Struttura delle parti che compongono un’installazione completa + individuazione delle responsabilità delle parti + interconnessioni + eventualmente tecnologia</small>
 
*** Architetture generali
 
**** [[:it:Pipeline software|pipeline]]<small><br>l'uscita di un elemento è presa come ingresso dell'elemento successivo</small>
 
**** blackboard
 
**** basate su eventi<small><br>le varie componenti rispondono al verificarsi di determinati eventi</small>
 
*** Architetture orientate a domini specifici
 
**** [[:it:Modello-vista-controllore|model - view - controller]]
 
**** [[:it:Sistema client/server|client - server]]
 
** Componenti<small><br>insieme di componenti software di livello applicativo + relazioni strutturali fra essi + dipendenze che influiscono sul loro comportamento<br>in generale è una parte software riusabile in più applicazioni distinte</small>
 
*** Architettura come piattaforma per l'integrazione delle componenti<small><br>ad esempio in ambiente distribuito CORBA (vedi wikipedia [[:it:CORBA|italia]] o [[:Wikipedia:CORBA|inglese]])<br>interfacce di comunicazione definite in un linguaggio standard: [[:Wikipedia:Interface description language|IDL]]</small>
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 04/04/2006 ===
 
 
* Object Oriented Design (OOD) e [[:it:Programmazione orientata agli oggetti|Object Oriented Programming]] (OOP)
 
** caratteristiche generali
 
*** OOP per il software di qualità<small><br>facilita in particolare<br>Utilizzabilità<br>Manutenibilità<br>che derivano da [[:it:Programmazione orientata agli oggetti#Ereditarietà|eredità]], [[:it:Programmazione orientata agli oggetti#Polimorfismo|polimorfismo]], [[:it:Classe astratta|classi astratte]] ed interfacce</small>
 
*** OOP e principi
 
*** Collaborazione e responsabilità, aspetti architetturali
 
 
* [[:it:Programmazione orientata agli oggetti|OOP]] tramite [[:it:UML|UML]]
 
** UML: generalità<small><br>linguaggio di modellazione OO<br>linguaggio grafico<br>sintassi grafica organizzata a 4 livelli<br>semantica type-instance<br>formalismo aperto ad estensioni e personalizzazioni</small>
 
*** UML per il disegno: aspetti architetturali<small><br>diagrammi statici e dinamici<br>relazioni fra moduli</small>
 
**** generalizzazione
 
**** realizzazione
 
**** dipendenza
 
**** associazione
 
** Diagrammi di classe
 
*** [[:it:Object Diagram|Oggetti]] e [[:it:Class Diagram|Classi]] in UML
 
*** Semantica di istanza delle classi implementative<small><br>una classe implementativa è interpretata (nella semantica di istanza) come l’insieme delle sue istanze</small>
 
**** Identità ed uguaglianza strutturale di oggetti<small><br>un oggetto è uguale solo a sé stesso</small>
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 06/04/2006 ===
 
 
* UML
 
** Generalizzazione fra classi
 
** Stereotipi predefiniti per classi
 
*** sintassi grafica
 
* Semantica type -> instance e la generalizzazione
 
* UML
 
** Relazione di realizzazione nei diagrammi di classe
 
** Semantica delle interfacce
 
** Le associazioni
 
*** I link
 
** Diagrammi di classe
 
*** Diagrammi di oggetti e semantica dei diagrammi di classe
 
**** Semantica type -> instance dei diagrammi di classe
 
**** Associazioni, generalizzazione, ereditarietà
 
**** I livelli del modello e degli oggetti nella modellazione
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 11/04/2006 ===
 
 
''Ultima lezione valida per il compitino.<br>La prossima lezione si terrà giovedì 20/04.''
 
 
* I diagrammi di classe nella programmazione OO.
 
* Le associazioni nel disegno
 
** navigazione
 
** vincoli di molteplicità
 
** associazione di composizione
 
** associazione "parte di"
 
* Ripasso
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 20/04/2006 ===
 
 
* I diagrammi di classe nella costruzione del modello concettuale
 
* ''Preparazione per il compitino'': dettaglio ed alcuni esempi
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 27/04/2006 ===
 
 
* Diagrammi UML per il disegno di livelli più alti
 
** Diagrammi di Package
 
*** Package come moduli
 
*** import/export con i package
 
** Diagrammi di Componenti
 
** Diagrammi di Deployment
 
* ''Soluzione esercizi lezione precedente''
 
 
  (slide disponibili [http://www.dsy.it/forum/showthread.php?s=&threadid=24522 qui])
 
 
=== Lezione del 02/05/2006 ===
 
 
* Le specifiche nel processo di produzione
 

Versione attuale delle 15:53, 13 mag 2006