Anteprima
Vedrai una selezione di 7 pagine su 27
Riassunto Ingegneria del SW Pag. 1 Riassunto Ingegneria del SW Pag. 2
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Riassunto Ingegneria del SW Pag. 6
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Riassunto Ingegneria del SW Pag. 11
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Riassunto Ingegneria del SW Pag. 16
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Riassunto Ingegneria del SW Pag. 21
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Riassunto Ingegneria del SW Pag. 26
1 su 27
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

DIAGRAMMA DELLE CLASSI

Grafico che fornisce una vista strutturale del sistema in termini di classi, attributi, operazioni e

relazioni tra classi. Una classe è rappresentata da un rettangolo

con tre settori separati da una linea continua.

Il primo settore, in alto, visualizza il nome

della classe ed eventualmente lo stereotipo, il

secondo, nel mezzo, una lista di attributi (con

l'opzione di indicare una lista di attributi e di

valori), il terzo, in fondo, una lista di

operazioni (per ognuna delle quali è opzionale

indicare i parametri di ingresso i tipi di dati

restituiti).

Un oggetto è rappresentato con lo stesso

simbolo usato per rappresentare le classi con

la precisazione che il nome della classe è

sottolineato ed è preceduto dal simbolo ':' per

indicare che si tratta di un oggetto; è

opzionale indicare il nome dell’oggetto

Le principali relazioni sono:

- Associazione: indica dei legami relazionali tra istanze di classi. E’ sempre bidirezionale e coinvolge

due o più classi.

- Molteplicità: indica quante istanze di una classe possono essere associate con un istanza di

un’altra classe.

NOTAZIONE CON RUOLI

Nelle associazioni molti a molti si fa uso di una classe associativa che contiene un riferimento ad

ognuno degli oggetti in relazione (doppia navigabilità).

- Aggregazione: definisce una relazione tra un “tutto” ed un insieme di parti di cui il “tutto” è

costituito. A run-time un oggetto contenuto sopravvive all’oggetto contenitore. E’ necessario

definire degli attributi privati del tipo delle classi aggregate ed ottenere i riferimenti delle istanze

con costruttori e metodi add.

- Composizione: relazione in cui gli oggetti contenuti non hanno vita propria ma esistono in quanto

parte della classe contenente. E’ necessario definire degli attributi privati del tipo delle classi

componenti ed istanziare le classi componenti mediante costruttori e metodi add.

ESEMPI GENERALIZZAZIONE CLASSI

- Dipendenza: connessione semantica tra due classi in cui una delle due è dipendente dall’altra.

Relazioni di dipendenza per applicazioni web: <<link>>, <<build>>, <<submit>>, <<redirect>>,

<<include>>…

- Classe astratta: rappresenta una classe base in una realizzazione di generalizzazione contenente

uno o più metodi astratti che non può essere istanziata. (in UML disegnata in corsivo).

6. DIAGRAMMI DI SEQUENZA

Grafico che mostra un’insieme di interazioni tra due o più oggetti mediante una sequenza

temporale di azioni. E’ anche la rappresentazione grafica di uno scenario di un caso d’uso. Mostra

la sequenza di instanziazione degli oggetti, l’ordine di invocazione delle operazioni e le relazioni tra

gli oggetti definite a run-time.

 Elementi di un diagramma di sequenza sono: tempo, oggetti, periodo di vita degli oggetti

(lifeline), istanziazione e distruzione dell’oggetto, messaggi (da un oggetto verso un altro o

verso se stesso (auto-delega)), valore restituito, iterazione.

 Frame di interazione: area di un diagramma costituita da un operatore (opt, alt, loop, break),

uno o più operandi e zero o più condizioni di guardia che stabiliscono se i loro operatori

devono essere eseguiti.

 Operatori: opt = if..then; alt = switch..case;

loop = while = for each; break (se condizione di guardia è vera).

MESSAGGIO

AUTO-DELEGA

VALORE RESTITUITO

DISTRUZIONE DI UN OGGETTO

ITERAZIONE

DIAGRAMMA DELLE COMPONENTI

Grafico che mostra le componenti e le relazioni di dipendenza tra esse.

Una componente è una parte del sistema che è sostituibile e modulare, incapsula

l’implementazione ed espone un insieme di interfacce. Solitamente diverse classi costituiscono una

componente.

DIAGRAMMA DI DEPLOYMENT

Grafico che mostra l’hardware fisico su cui sarà eseguito il sistema software.

Formato da nodi che rappresentano una

risorsa computazionale dove i manufatti

possono essere dislocati per l’esecuzione,

ed archi che rappresentano una

comunicazione tra nodi indicando una

relazione di utilizzo.

Stereotipi:

- Periferica: periferica fisica (server, pc…).

- Ambiente esecutivo: tipo di ambiente

software di esecuzione (Apache, EJB…).

Manufatti

Rappresenta un’entità concreta del mondo reale, ad esempio:

 File di codice sorgente

 File eseguibili

 Script

 Tabelle di database

 Documenti

 Output del processo di sviluppo (es. modello UML)

7. SPECIFICHE DEL SOFTWARE

Descrizione rigorosa o formale di un accordo tra Analista e Progettista (Specifica dei Requisiti) o tra

Progettista e Programmatore (Specifica di progetto e dei Moduli).

Esse riguardano vari aspetti (interessi) del sistema (utente, interfacce, tracciabilità, ecc)

Qualità delle specifiche

- Chiarezza: significato privo di ambiguità

- Comprensibilità: esprimere univocamente il comportamento del software.

- Coerenza: due affermazioni non devono essere in contraddizione tra loro.

- Completezza: concetti specificati esaurientemente, devono contenere tutti i concetti necessari.

Stili di specifiche

- Informali: scritti in linguaggio naturale.

- Semiformali: scritti in forma testuale rispettando una sintassi formale.

(Textual Design Notation e Graphical Design Notation).

- Formali: scritti utilizzando formalismi.

- Comportamentali: descrivono il sistema dal punto di vista del comportamento. (UML, Data Flow

Diagrams e Reti di Petri).

- Descrittive: descrivono il sistema dal punto di vista delle proprietà desiderate. (Entità Relazioni,

Teoria del primo ordine).

Verifica delle specifiche

- Ispezione: condotta da uomini con procedure predefinite.

- Prototipi e osservazioni: prototipi funzionanti utilizzati per verificare se il comportamento del

sistema è quello desiderato.

- Prototipi e simulazioni: prototipi funzionanti sottoposti a verifiche automatiche.

8. PROGETTO SOFTWARE

Il progetto software comprende la progettazione e il prodotto della progettazione.

Pratiche della progettazione

- Modularità: decomporre il sistema in moduli indipendenti tra loro.

- Generalità: risolvere il problema più generale in modo da rendere il modulo riusabile grazie alla

parametrizzazione.

- Incapsulamento ed information hiding: raccogliere in un’unica componente decisioni e dettagli di

un’astrazione in maniera tale da poter cambiare il comportamento di una componente senza

modificarne altre.

- Sufficienza, completezza e ricerca di primitive. Assicurare che un modulo software catturi tutte e

sole le caratteristiche primitive di un’astrazione.

Strategia dell’information Hiding

Rendere possibile il cambiamento del comportamento di una componente senza conoscere il

comportamento delle altre componenti e senza modificarlo.

- Le decisioni vengono suddivise tra le varie componenti, cercando di avere meno relazioni possibili

tra loro, soprattutto quelle contenenti dettagli instabili.

- I dettagli indipendenti tra loro devono essere nascosti in componenti separate.

- Le interfacce tra le componenti devono essere stabili anche quando cambiano le implementazioni

dei moduli.

Linee guida per l’Information Hiding

- Componente HW/SW Hiding: devono essere modificate quando e solo quando è cambiata la

macchina virtuale (tratta accesso ai dati, dispositivi I/O, sottosistema di comunicazione )

- Componente Behavior Hiding: devono essere cambiate quando si modificano le specifiche del

sistema (interfaccia uomo-macchina, regole di produzione dei dati)

- Componente Decision Hiding: devono essere modificate quando cambiano le decisioni sulle

tecniche utilizzate e sulle caratteristiche SW richieste (politiche di implementazione, funzioni di

base, parametri del sistema)

Manufatti Principali

 Architettura: descrive come il sistema è decomposto ed organizzato in componenti

 Progetto Dettagliato: descrive il comportamento delle componenti e come realizzano la

collaborazione tra esse

Strategie

 Generali: dividi-e-conquista; raffinamento per passi; topdown vs bottom-up; astrazione;

information hiding; euristiche, pattern; incrementi successivi

 Funzionali: basato sulla individuazione delle funzioni principali. Progettazione strutturata

(Structure Chart)

 Orientata agli Oggetti: basato sui dati ed i metodi che ne sono proprietari. Ereditarietà;

Polimorfismo; Metadati e Riflessione.

ARCHITETTURA

Il progetto di un sistema si esprime attraverso l’architettura software che comprende le

componenti e le loro proprietà e relazioni tra loro.

Per produrre l’architettura si:

divide il problema → individuano le componenti che risolvono i problemi → decide la soluzione.

Il sistema è rappresentato come un insieme di componenti (oggetti) ognuna contenente dati e

metodi per operare.

Stile Object Oriented

Una connessione tra due componenti deve utilizzare un’interfaccia I, prodotta da una delle

componenti ed usata dall’altra. Ad ogni interfaccia è associata un insieme di metodi messi a

disposizione dalla componente che la produce e utilizzati da altre componenti. Così facendo ogni

componente nasconde la propria implementazione agli altri (favorisce incapsulamento e

modularità).

9. STEREOTIPI UML

Uno stereotipo estende un elemento UML esistente

Approccio BCE: modellazione a oggetti basata sulla ripartizione delle classi in 3 categorie

(boundary-control-entity).

- Classi Boundary: descrivono gli oggetti che rappresentano l’interfaccia tra attore e sistema.

Isolano il sistema dai cambiamenti dell’ambiente esterno. Mettono in comunicazione Attori con

Control.

- Classi Control: descrivono gli oggetti che percepiscono gli eventi generati dall’utente, coordinano

il comportamento delle classi entity e ne usano i contenuti. Mettono in comunicazione le Boundary

con Entity. Sono indipendenti dall’ambiente esterno.

- Classi Entity: descrivono gli oggetti che rappresentano l’entità del dominio applicativo.

Sono classi passive. Mettono in comunicazione Control con Database.

Approccio BCDE: Per migliorare l’information Hiding delle classi Entity si utilizzano le Classi

DBInterface che fungono da interfaccia tra le Entity e il Database. Esempi sono la Classi CRUD,

Connection, Schema.

Stereotipi & Architettura a 3 Livelli

 Presentazione

o Classi Boundary

o Classi Control (per la gestione della logica di presentazione)

 Dominio

o Classi Entity

o Classi Control (per la gestione della logica di business)

 Sorgente Dati

o Classi DBInterface

10. PROGETTAZIONE DEL DATABASE

Normalizzazione: è un processo di progettazione di un database

Dettagli
Publisher
A.A. 2017-2018
27 pagine
1 download
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Tonetto393 di informazioni apprese con la frequenza delle lezioni di Ingegneria 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 di Bari o del prof Caivano Danilo.