Sommario
1. Introduzione all’analisi e progettazione del software .................................................................. 5
1.1 Il software oggi ...................................................................................................................... 5
1.2 Che cosa sono analisi e progettazione .................................................................................. 5
1.3 UML ....................................................................................................................................... 6
1.4 Esempio – Il Gioco del lancio dei dadi ................................................................................... 6
1.5 Studi di caso ........................................................................................................................... 7
2 Sviluppo iterativo .......................................................................................................................... 8
2.1 Processi software .................................................................................................................. 8
2.2 Processo a cascata ................................................................................................................. 8
2.3 Sviluppo evolutivo e iterativo................................................................................................ 8
2.4 Unified Process ...................................................................................................................... 9
3 Requisiti e casi d’uso ................................................................................................................... 10
3.1 Requisiti ............................................................................................................................... 10
3.2 Casi d’uso ............................................................................................................................. 11
3.3 Ulteriori elaborati per i requisiti .......................................................................................... 12
4 Modellazione di dominio (Parte 1) ............................................................................................. 13
4.1 Iterazione 1 .......................................................................................................................... 13
4.2 Verso l’analisi a oggetti ....................................................................................................... 13
4.3 Modellazione di dominio ..................................................................................................... 13
4.4 Identificare le classi ............................................................................................................. 14
5 Modellazione di dominio (Parte 2) ............................................................................................. 15
5.1 Identificare le associazioni .................................................................................................. 15
5.2 Identificare gli attributi ........................................................................................................ 16
5.3 Modello di dominio per lo studio di caso POS .................................................................... 16
6 Operazioni di Sistema e Contratti ............................................................................................... 17
6.1 Operazioni di sistema e diagrammi di sequenza di sistema ............................................... 17
6.2 Contratti delle operazioni ................................................................................................... 18
7 Verso la progettazione a oggetti ................................................................................................ 19
7.1 Architettura a strati ............................................................................................................. 19
7.2 Alcuni principi di progettazione .......................................................................................... 20
7.3 Modellazione statica e modellazione dinamica .................................................................. 21
7.4 Modellazione statica ........................................................................................................... 21
7.5 Modellazione dinamica ....................................................................................................... 21
8 Progettazione a oggetti (Parte 1) ............................................................................................... 22
8.1 Progettazione guidata dalle responsabilità ......................................................................... 22
8.2 Pattern GRASP - General Responsibility Assignment Software Patterns ............................ 23
9 Progettazione a oggetti (Parte 2) ............................................................................................... 25
9.1 Input, risultati e criteri per la progettazione ....................................................................... 25
9.2 Uno studio di caso di progettazione a oggetti ..................................................................... 26
10 Progettazione a oggetti (Parte 3) ............................................................................................ 28
10.1 Trasformare il progetto in codice .................................................................................... 28
10.2 Sviluppo guidato dai test ................................................................................................. 31
10.3 Refactoring ...................................................................................................................... 31
11 Approfondimento analisi orientata agli oggetti ..................................................................... 33
11.1 Iterazione II ...................................................................................................................... 33
11.2 Generalizzazione / Specializzazione ................................................................................ 33
11.3 Ulteriori operazioni di sistema e contratti ....................................................................... 34
12 Approfondimento progettazione orientata agli oggetti ........................................................... 35
12.1 - Ulteriori Pattern assegnazione di responsabilità .......................................................... 35
13 Progettare con i design pattern .............................................................................................. 37
13.1 Design pattern .................................................................................................................. 37
13.2 Progettare con i design pattern ........................................................................................ 38
13.3 Collegamento tra strati ..................................................................................................... 41
14 Introduzione alle Architetture Software ................................................................................. 41
14.1 Dalla progettazione OO alle architetture software .......................................................... 41
14.2 Architettura software: definizione ................................................................................... 41
14.3 Altri concetti .................................................................................................................... 43
15 Punti di vista e viste ................................................................................................................ 43
15.1 Viste architetturali ........................................................................................................... 43
15.2 Punti di vista .................................................................................................................... 44
16 Processo di definizione dell’architettura ................................................................................. 46
16.1 Definizione dell’architettura ............................................................................................ 46
16.2 Ottenere qualità ................................................................................................................ 47
16.3 Validazione dell’architettura ........................................................................................... 49
17 Tattiche architetturali .............................................................................................................. 49
17.1 Introduzione alle tattiche ................................................................................................. 49
17.2 Tattiche per le prestazioni ................................................................................................ 50
17.3 Tattiche per la modificabilità ........................................................................................... 50
17.4 Tattiche per la disponibilità ............................................................................................. 51
18 Stili architetturali (Parte 1) ...................................................................................................... 52
18.1 Introduzione agli stili architetturale ................................................................................. 52
18.2 Domain Model ................................................................................................................. 53
Domain Object
18.3 ................................................................................................................. 54
18.4 Layers ............................................................................................................................... 54
19 Stili architetturali (Parte 2) ...................................................................................................... 55
19.1 Pipes and Filters ............................................................................................................... 55
19.2 Model-View-Controller (MVC) ...................................................................................... 58
20 Stili architetturali (Parte 3) ...................................................................................................... 59
20.1 Shared repository ............................................................................................................. 59
20.2 Microkernel ...................................................................................................................... 60
20.3 Reflection ......................................................................................................................... 61
21 Connettori e Middleware ........................................................................................................ 62
21.1 Connettori ........................................................................................................................ 62
21.2 Middleware ...................................................................................................................... 63
22 Architetture dei sistemi distribuiti........................................................................................... 65
22.1 Introduzione ai sistemi distribuiti .................................................................................... 65
22.2 Stile client-server ............................................................................................................. 66
22.3 Stile peer-to-peer ............................................................................................................. 68
23 Broker...................................................................................................................................... 69
23.1 Architettura a oggetti distribuiti ....................................................................................... 69
23.2 Proxy ................................................................................................................................ 70
23.3 Broker .............................................................................................................................. 71
23.4 Semantica delle chiamate remote .................................................................................... 72
24 Messaging ............................................................................................................................... 72
24.1 Messaging ........................................................................................................................ 72
24.2 Pattern per il messaging ................................................................................................... 74
25 Architettura a componenti ....................................................................................................... 77
25.1 Componenti ...................................................................................................................... 77
25.2 Un esempio di tecnologia a componenti: Java Enterprise Edition (JEE) ........................ 78
26 Architettura a componenti (Parte 2) ........................................................................................ 81
26.1 Contenitori ....................................................................................................................... 81
26.2 Contenitori e cluster ......................................................................................................... 83
27 Architettura orientata ai servizi (Parte 1) ................................................................................ 85
27.1 Introduzione ai servizi ..................................................................................................... 85
27.2 Web Services SOAP ........................................................................................................ 86
28 Architettura orientata ai servizi (Parte 2) ................................................................................ 89
28.1 Introduzione alla SOA ..................................................................................................... 89
28.2 Architettura orientata ai servizi ....................................................................................... 90
28.3 SOA e cloud computing ................................................................................................... 92
1. Introduzione all’analisi e progettazione del software
1.1 Il software oggi
Il software oggi è ubiquo, sempre più rilevante e complesso, motivo per cui la realizzazione di un sistema
software oggi pone obiettivi elevatissimi. Un sistema software ha lo scopo di
fornire un insieme di funzionalità e gestire alcune tipologie di informazioni (es. utenti, relazioni
· tra di essi)
avere opportune caratteristiche/attributi di qualità, scalabilità, sicurezza, affidabilità,
· correttezza, integrità, disponibilità, prestazioni.
La progettazione del software è un’attività di decomposizione del sistema software al fine di individuare
l’insieme che verranno composti e le tra essi a diversi livelli di granularità
di elementi software relazioni
1.2 Analisi e progettazione
Analisi e progettazione sono attività distinte ma correlate, fondamentali nella realizzazione di un software.
- è orientata all’investigazione di un problema e ai requisiti del sistema di interesse, quindi al
L’analisi “cosa
identificando le funzionalità che il sistema eroga, quali informazioni tratta e in che modo è
deve fare”,
utiilizzato, costituendo l’insieme di REQUISITI, INFORMAZIONI, PROCESSI, OGGETTI.
L’analisi è interessata a capire il problema indipendentemente dalle possibili implementazioni software.
- La è interessata al trovando una soluzione ottimale in in linea con i
progettazione “come deve fare”,
requisiti del sistema, definendo la composizione interna del sistema, le interazioni fra le varie componenti
e abbraccia anche la progettazione dell’UX/UI, della base dati.
Analisi e progettazione sono oggi realizzate prevalentemente secondo il paradigma Object Oriented Analysis
basato sulla in grado di esprimere una rappresentazione semplificata della realtà,
(OOA) creazione di modelli
attraverso oggetti focalizzati solo aspetti cruciali del dominio di interesse e
non di dettagli secondari. Semplifcando, è possibile dire che l’OOA si basa
principalmente sull’identificazione dei concetti nel dominio del problema nel
mondo reale e su una loro descrizione a oggetti.
Analogamente, la conseguente (OOD) si
progettazione orientata agli oggetti
basa principalmente sull’identificazione e la specifica di una comunità di
oggetti software che collaborano per soddisfare i requisiti; non serve
individuare oggetti del mondo reale ma solo oggetti software che
parteciperanno alla soluzione
Utilizziamo l’esempio dell’oggetto per distinguere una da
Aereo classe concettuale
una la prima è una rappresentazione UML delle informazioni del
classe software;
mondo reale che il sistema, mentre la seconda è una rappresentazione UML perché
che richiamano oggetti del mondo reale e oggetti software.
attributi metodi,
Infine, l’implementazione delle classi scelte durante la fase di è realizzata
OOD
attraverso la (OOP) usando appositi linguaggi di programmazione ad
programmazione orientata agli oggetti
oggetti.
È evidente la relazione fra e
analisi dei requisiti, progettazione a oggetti
ed è necessario comprenderne a fondo i
programmazione a oggetti
meccanismi per realizzare un buon sistema software secondo opportuni
criteri
SPUNTI DI RIFLESSIONE: Qual è la differenza fra analisi e progettazione? Quali sono gli scopi
dell’analisi a oggetti e della progettazione a oggetti?
1.3 UML
La è un’attività fondamentale nello sviluppo del software che ha il preciso scopo di creare
modellazione
modelli che siano semplificazioni della realtà, astrazioni che descrivono completamente un sistema da un
particolare punto di vista senza necessariamente rappresentare aspetti o dettagli del mondo non rilevanti
per lo sviluppo del sistema software. Nell’esempio della progettazione di un sistema di ticketing
aeroportuale, di un aereo intessa il numero di coda che identifica l’aereo, il numero di posti o il modello ma
non il colore dei sedili o delle pareti interne, dato irrilevante nella fase di progettazione e sviluppo.
Uno strumento fondamentale nell&rsquo
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Riassunti Progettazione del Software
-
Progettazione del Software
-
Progettazione del software
-
Progettazione software, esercizi