Estratto del documento

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

Anteprima
Vedrai una selezione di 20 pagine su 91
Progettazione del software Pag. 1 Progettazione del software Pag. 2
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 6
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 11
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 16
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 21
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 26
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 31
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 36
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 41
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 46
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 51
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 56
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 61
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 66
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 71
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 76
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 81
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 86
Anteprima di 20 pagg. su 91.
Scarica il documento per vederlo tutto.
Progettazione del software Pag. 91
1 su 91
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher c.dipietro1987 di informazioni apprese con la frequenza delle lezioni di Analisi e progettazione del software e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università telematica internazionale UNINETTUNO di Roma o del prof Cabibbo Luca.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community