Estratto del documento

Sommario

Modello “Waterfall” .......................................................................................................................................... 3

Studio di fattibilità ......................................................................................................................................... 3

Analisi e specificazione dei requisiti .............................................................................................................. 3

Design ............................................................................................................................................................ 4

Codifica e test ................................................................................................................................................ 4

Integrazione e test nel sistema...................................................................................................................... 4

Distribuzione, installazione e settaggio ......................................................................................................... 4

Manutenzione e mantenimento ................................................................................................................... 4

In generale ..................................................................................................................................................... 5

Lo standard ISO 9126 ......................................................................................................................................... 5

Funzionalità ................................................................................................................................................... 5

Affidabilità ..................................................................................................................................................... 6

Usabilità ......................................................................................................................................................... 6

Efficienza

........................................................................................................................................................ 6

Manutenibilità ............................................................................................................................................... 6

Portabilità ...................................................................................................................................................... 6

Classi e oggetti ................................................................................................................................................... 6

Modificatori di visibilità ................................................................................................................................. 7

public ......................................................................................................................................................... 7

protected ................................................................................................................................................... 7

Amichevole ................................................................................................................................................ 7

private ........................................................................................................................................................ 7

Categorie di metodi membro ........................................................................................................................ 8

Costruttori ..................................................................................................................................................... 8

Finalizzatori .................................................................................................................................................... 8

this ................................................................................................................................................................. 8

Assegnamento e uguaglianza ........................................................................................................................ 9

Dati e metodi membro static......................................................................................................................... 9

Ereditarietà .................................................................................................................................................... 9

Metodi e classi final ................................................................................................................................. 10

Metodi e classi abstract ........................................................................................................................... 10

Interfacce ..................................................................................................................................................... 11

Polimorfismo ............................................................................................................................................... 11

Introduzione al software design ...................................................................................................................... 12

Moduli ......................................................................................................................................................... 12

Relazioni tra moduli ..................................................................................................................................... 13

USES ......................................................................................................................................................... 13

IS_COMPONENT_OF ................................................................................................................................ 13

INHERITS .................................................................................................................................................. 14

Contratti ...................................................................................................................................................... 14

Stili ............................................................................................................................................................... 15

Architettura funzionale ........................................................................................................................... 15

Sistema a strati ........................................................................................................................................ 15

Tubi e filtri................................................................................................................................................ 15

Sistemi basati su eventi ........................................................................................................................... 15

Sistemi basati su repository ..................................................................................................................... 15

UML ................................................................................................................................................................. 15

Introduzione a UML ..................................................................................................................................... 17

Viste di UML ................................................................................................................................................ 17

Vista dei casi d’uso .................................................................................................................................. 17

Vista strutturale ....................................................................................................................................... 17

Vista comportamentale ........................................................................................................................... 18

Vista implementativa ............................................................................................................................... 18

Vista ambientale ...................................................................................................................................... 18

Use Case Diagram ........................................................................................................................................ 18

Relazioni tra use case .............................................................................................................................. 20

Class Diagram .............................................................................................................................................. 21

Relazioni tra class diagram ...................................................................................................................... 21

Object Diagram ............................................................................................................................................ 23

Package Diagram ......................................................................................................................................... 23

Relazioni nel package diagram ................................................................................................................ 24

Modello “Waterfall”

Il modello tradizionale “Waterfall”:

 Identificare le fasi e le attività

 Forzare la successione lineare tra una fase e la successiva

 Nessun ritorno (sono dannosi)

o Miglior controllo e pianificazione

 Output (artefatti) standardizzato per ogni fase

Software come una produzione industriale.

Il modello “Waterfall” si divide in due fasi:

 Prime fasi

o Studio di fattibilità

o Analisi e specificazione dei requisiti

o Design

 Fasi finali

o Codifica e test

o Integrazione e test nel sistema

o Distribuzione, installazione e settaggio

o Manutenzione e mantenimento

Studio di fattibilità

Lo studio di fattibilità consiste in:

 Analisi dei costi e dei benefici

 Determinare se il progetto deve partire, possibili alternative e risorse necessarie

 Produzione del documento degli studi di fattibilità

Il documento degli studi di fattibilità ha le seguenti parti:

 Descrizione preliminare del problema

 Gli scenari che descrivono le possibili soluzioni

 Costi e pianificazione delle diverse alternative

In pratica lo studio di fattibilità è soggetto a costi in termini di tempo e denaro, infatti non si è sicuri che il

cliente accetterà il l’offerta. Ciò comporta che le alternative potrebbero non essere considerate e che i rischi

possano essere sottovalutati.

Analisi e specificazione dei requisiti

L’analisi e la specifica dei requisiti consiste in:

 Analisi del dominio in cui l’applicazione lavorerà

 Identificazione dei requisiti

 Derivare le specifiche del software

 Produzione del documento di analisi e specifica dei requisiti (RASD)

La derivazione delle specifica comporta un interazione con gli utenti e la comprensione delle proprietà del

dominio.

Importante per questa fase è rispondere a queste domande:

 Chi userà il sistema?

 Perché va sviluppato?

 Perché gli utenti lo useranno?

 Che cosa fornirà?

 Dove verrà usato, su quale infrastruttura?

 Quanto e quanto a lungo verrà usato?

Il RASD vede essere:

 Preciso

 Completo

 Consistente

 Comprensibile

 Modificabile

Esso potrebbe includere un manuale preliminare per l’utente e la pianificazione di test di sistema.

Il RASD specifica i requisiti funzionali, i requisiti non funzionali e requisiti sul processo di sviluppo e

manutenzione.

Design

Il design definisce l’architettura del software:

 I componenti (moduli)

 Le relazioni tra componenti

 Le interazioni tra componenti

L’obiettivo del design è supportare lo sviluppo concorrente e separare le responsabilità.

Alla fine viene prodotto il documento di design.

Codifica e test

Ogni modulo viene implementato con un linguaggio di programmazione scelto.

Ogni modulo viene testato isolatamente dallo sviluppatore dello stesso.

Il codice deve essere documentato e commentato.

Integrazione e test nel sistema

I moduli sono integrati col sistema/sottosistema e i sistemi/sottosistemi integrati sono testati.

Questa fase e la precedente possono essere integrate in un piano di implementazione incrementale.

Il test dell’intero sistema è necessario per verificare le proprietà complessive.

A volte si possono avere degli alpha test e dei beta test.

Distribuzione, installazione e settaggio

L'obiettivo è quello di distribuire l'applicazione e gestire le diverse installazioni e configurazioni nei sistemi

dei clienti.

Manutenzione e mantenimento

Esso comprende tutte lo modifiche apportate dopo il rilascio del software. Il software non si “consuma”,

quindi se ci sono errori, essi sono sempre stati presenti e mai identificati nei test.

Esso include tipi diversi di cambiamenti: correttivi e evolutivi. In generale ci sono tre tipi di modifiche:

 I cambiamenti correttivi (bug fix)

 I cambiamenti adattivi per adattare il sistema a cambi di ambiente o cambio di dettagli

 I cambiamenti perfettivi per l’aggiunta di nuove funzionalità

In generale

Alcune attività sono svolte durante l’intero ciclo di vita della progettazione:

 Documentazione

 Verifica e test

 Gestione

Test ricorrenti e una tecnica di ispezione sistematica può scovare molti errori. Moduli con codici complessi

presentano più errori. I codici rilasciati presentano sempre una minima parte di bug. Errori fatti in fasi

precedenti comportano un maggiore sforzo per la rimozione. Sistemi vecchi e già ritoccati sono più difficili

da debuggare.

Le modifiche evolutive sono dettate da modifiche del mondo reale (o del dominio di lavoro). Molte delle

possibili modifiche possono e andrebbero prevenute. Uno dei principali obiettivi della progettazione del

software è quello di scrivere applicativi che possano essere modificati in futuro in modo affidabile, facile ed

economico.

Le specifiche sono spesso incomplete e ambigue. Ciò causa problemi perché le specifiche sono spesso parte

di un contratto tra sviluppatore e cliente.

Una buona pratica di ingegneria modificare prima il design, quindi modifica l'implementazione e applicare in

modo consistente i cambiamenti in tutti i documenti.

Il modello “Waterfall” richiede che il dominio sia compreso e i requisiti siano conosciuti e stabili. Ciò accade

molto di rado. Però ha il vantaggio che la trasparenza di progettazione consente il controllo anticipato e la

modifica tramite feedback. Ciò sostiene la flessibilità.

Lo standard ISO 9126

La qualità è definita in termini di sei caratteristiche:

 Funzionalità

 Affidabilità

 Usabilità

 Efficienza

 Manutenibilità

 Portabilità

Ogni caratteristica è poi definita in termini di sotto-caratteristiche.

Funzionalità

Definizione: la funzionalità è l’insieme di attributi che riguardano l’esistenza di un complesso di funzioni e

delle specifiche proprietà. Le funzioni sono quelle che soddisfano i requisiti stabiliti o impliciti.

Nella prima versione dello standard questa caratteristica si chiamava correttezza. Riguarda il che cosa deve

fare un’applicazione: requisiti funzionali.

Le altre 5 caratteristiche riguardano il come un’applicazione deve fare le cose: requisiti non funzionali.

Affidabilità

Definizione: l’affidabilità è l’insieme di attributi che riguardano la capacità del prodotto software di

mantenere il livello di prestazioni con condizioni e limiti di tempo fissati.

Differenza con affidabilità dei sistemi fisici: il software non si logora.

La frequenza dei guasti dipende dal prodotto software e dal modo in cui il prodotto software viene utilizzato.

Usabilità

Definizione: l’usabilità è l’insieme di attributi che riguardano lo sforzo necessario all’uso del prodotto e alla

valutazione individuale di tale uso relativamente a un insieme di utenti prefissato o implicito.

Esistono diverse categorie di utenti quali: utenti finali, operatori, installatori…

Efficienza

Definizione: l’efficienza è l’insieme di attributi che riguardano la relazione esistente tra il livello delle

prestazioni del prodotto software e la quantità di risorse necessarie nell’ambito di condizioni fissate.

Le risorse tipiche sono: il tempo, la memoria usata e l’occupazione di banda.

Manutenibilità

Definizione: la manutenibilità è l’insieme di attributi che riguardano lo sforzo necessario ad eseguire

modifiche.

La manutenzione può essere di tre tipi: correttiva, perfettiva e adattativa.

Portabilità

Definizione: la portabilità è l’insieme di attributi che riguardano la capacità del prodotto software di essere

trasferito da un ambiente all’altro.

Le principali differenze tra gli ambienti sono: organizzative, software e hardware.

Classi e oggetti

Una classe definisce un tipo, ossia:

 L'insieme dei valori di dati

 L'insieme delle operazioni ammesse su quei dati

 La dimensione di quei dati

Una classe fornisce servizi ai clienti della classe, ovvero modalità per la definizione e l'uso dei dati membro.

Un oggetto è una variabile il cui tipo è una classe.

In Java, la dichiarazione identificatore_classe identificatore è la dichiarazione di un riferimento, non di un

oggetto. Gli oggetti devono essere creati (operatore new). Un oggetto è anche detto una istanza (= un

esemplare) di una classe, anche se non tutte le classi vengono poi effettivamente istanziate in oggetti e non

tutte le classi possono essere istanziate in oggetti (classi astratte).

Classi e oggetti contengono come elementi:

 Dati, dett

Anteprima
Vedrai una selezione di 6 pagine su 24
Progettazione del Software - parte 1 Pag. 1 Progettazione del Software - parte 1 Pag. 2
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Progettazione del Software - parte 1 Pag. 6
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Progettazione del Software - parte 1 Pag. 11
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Progettazione del Software - parte 1 Pag. 16
Anteprima di 6 pagg. su 24.
Scarica il documento per vederlo tutto.
Progettazione del Software - parte 1 Pag. 21
1 su 24
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher tovy97 di informazioni apprese con la frequenza delle lezioni di 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à degli Studi dell' Insubria o del prof Morasca Sandro.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community