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)