Ingegneria del software Turno 2/2005-2006

Da WikiDsy.
Versione del 21 mar 2006 alle 19:04 di 87.9.148.105 (discussione) (Lezione del 21/03/2006)


News

 07/03/06: L'orario delle lezioni viene modificato in 17:45 - 19:15

Lezioni cancellate/spostate

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

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)
  • link al corso su DSI

Orario di ricevimento studenti

Informazioni specifiche

Siti del corso

Forum del corso, e affini

 NOTA: per avere la password del Forum chiedere in 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
      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

 (si possono scaricare solo 'dopo aver eseguito il login come utente Dsy e aver inserito la password)

Altro materiale in Internet

Si consiglia l'utilizzo del software free ARGO, scaricabile gratuitamente da http://argouml.tigris.org

Esami passati, tesine, compiti ..

Diario del corso

Lezione del 07/03/2006

  • Introduzione al corso
 (slide disponibili qui)

Lezione del 09/03/2006

 (slide disponibili qui)

Lezione del 14/03/2006

 (slide disponibili qui)

Lezione del 16/03/2006

  • Qualità del software
    • Utilizzabilità
      • Riusabilità
      • Portabilità
        = capacità di un sistema software di essere adattato a piattaforme HDW e sistemi operativi o SFTW diversi
      • Interoperabilità
        = capacità di un sistema di cooperare con altri sistemi
  • Qualità del disegno e del codice
    • Verificabilità
      = misura l’effettività (ai fini della verifica) di documentazione e moduli di verifica
    • Comprensibilità
      = misura della chiarezza di codice, disegno, specifiche, a parità di difficoltà intrinseca dell’ambito di problema
  • Qualità del processo
    • Produttività
      = misura la produttività di un processo di produzione del software
    • Tempestività
      = capacità del processo di rispettare i tempi previsti
    • Visibilità
  • I Principi
    • Sono orientati, in particolare, alle qualità affidabilità e modificabilità
      Sono:
      rigore e formalità
      seguire un procedimento disciplinato e rigoroso; usare metodi formali dove appropriato; formalizzare il problema
    • separazione (separation of concerns)
      trattare separatamente problematiche diverse

Lezione del 21/03/2006

  • I Principi
    • modularità
      decomporre un sistema in parti coese e con basso accoppiamento, dette moduli
      • alta coesione
      • basso accoppiamento
    • astrazione
      astrarre dai dettagli non rilevanti rispetto allo scopo
    • anticipazione dei cambiamenti
      prevedere le possibili modifiche adattive, perfettive, di riuso
    • generalità
      chiedersi sempre se un problema può essere risolto come caso particolare di un problema più generale.
    • incrementalità
      procedere per incrementi
 (slide disponibili qui)