Obiettivi formativi

Obiettivo formativo del corso è l’apprendimento dei metodi, tecniche e strumenti atti alla progettazione e sviluppo di sistemi software; redazione di specifiche architetturali e tecniche di procedure/sottosistemi di media complessità; utilizzo della programmazione object oriented; scrittura/lettura di diagramma delle classi UML; utilizzo delle tecniche di analisi di fattibilità.

Durata: 40 ore

Livello di accesso: Laurea

Approcci alla progettazione concettuale

  • Modello concettuale
  • Strategie di progettazione: top down, bottom up, inside out
  • Strategie pro e contro
  • Qualità di uno schema concettuale
  • Linguaggi: UML, Diagrammi E/R
  • Elementi del diagramma
  • Entità, Associazioni e attributi

Architetture software

  • Scopo dell’architettura
  • Caratteristiche: modificabilità, portabilità e interoperabilità, riuso, soddisfacimento di requisiti sull’hardware, dimensionamento e allocazione del lavoro, prestazioni, sicurezza, rilascio incrementale, verifica.
  • Descrizione di un’architettura: viste e tipi di vista. Stili.
  • Organizzazione: elementi, relazioni, proprietà, usi
  • Descrizione di un’architettura
  • Viste di tipo strutturale di un architettura sw: elementi, relazioni, proprietà, usi, notazione. Vista strutturale di decomposizione, Vista strutturale d’uso, Vista strutturale di generalizzazione, vista strutturale a strati
  • Vista comportamentale pr descrivere gli stili: condotte e filtri, dati condivisi, publish-subscribe, client-server, peer to peer
  • Viste di tipo logistico di un’architettura sw: elementi, relazioni, proprietà, usi. Vista logistica di dislocazione (deployment), vista logistica di realizzazione, vista logistica di assegnamento del lavoro
  • Viste ibride di una architettura sw: disloccazione con componenti, strutturale con componenti

Identificazione della soluzione IT

  • definizione iniziale dei requisiti,
  • proposta di soluzione,
  • identificazione delle tecnologie di prodotto e di processo,
  • scelta del ciclo di vita,
  • dimensionamenti (prodotto, processo, controllo),
  • conclusioni dello studio.

Modello Object Oriented all’analisi di sistemi

  • Modelli per l’analisi: classi di modelli, modelli come prodotto dei metodi, limiti dei metodi tradizionali, un modello per l’analisi
  • Il paradigma object-oriented: oggetti come concetti: intensione, estensione, oggetti come tipi di dato astratti: incapsulazione, information hiding, messaggi, overloading e polimorfismo, oggetti come classi: istanzazione, ereditarietà singola e multipla
  • Analisi object-oriented: definire i requisiti,attori e casi d’uso, delimitazione del contesto dell’analisi, oggetti nel dominio dell’analisi
  • Analisi object-oriented: modellare le proprietà, oggetti entità: identificatori, associazioni e attributi, vincoli strutturali e di integrità, meccanismi d’astrazione: IS-A e IS-PART-OF
  • Analisi object-oriented: modellare i comportamenti, meccanismi ECA (evento-condizione-azione) – ciclo di vita degli oggetti – diagrammi di transizione di stato, di interazione, action data flow diagram – costruzione del modello

 

Progettazione software secondo un approccio consolidato

  • Condizioni di errore
  • Eccezioni e tipi di eccezioni
  • Eccezioni controllate e non controllate
  • Segnalazione delle eccezioni
  • Eccezioni di RunTime
  • Progettare nuove eccezioni

 

Programmazione orientata agli oggetti

  • Tecniche di programmazione a confronto: programmazione non strutturata, programmazione procedurale, programmazione modulare, programmazione ad oggetti.
  • Concetti basilari di OOP:metodi e proprietà: le azioni che un oggetto è in grado di compiere; le proprietà: informazioni su cui opera un oggetto, le classi, i messaggi, relazioni tra classi, associazione, aggregazione, soecializzazione
  • I capisaldi della programmazione ad oggetti: pensare object oriented, incapsulamento, ereditarietà, polimorfismo, astrazioni e classi astratte, la visibilità, il singleton
  • Ereditarietà multipla
  • Le interface
  • Coesione ed accoppiamento
  • Processo di sviluppo oop: uml , uml class diagram, associazioni, ereditarietà e generalizzazione, aggregazione, interfacce e realizzazioni, visibilità,
  • Fondamenti di ingegneria del software (ciclo di vita del software, qualità esterne ed interne, modularità, orientazione agli oggetti)
  • Analisi del Software con UML (introduzione all’analisi del software, diagramma delle classi e degli oggetti in UML: classi e attributi, associazioni, operazioni e metodi, specifiche alternative per le operazioni, costruzione del diagramma delle classi; Diagramma degli stati (Statechart Diagram), Altri diagrammi Strumenti software per UML)
  • Progettazione del software: da UML al C++ (Realizzazione classi e oggetti, realizzazione di associazioni, realizzazione di generalizzazioni)

Compila il form per richiedere informazioni