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

UML - Diagrammi di sequenza

Le realizzazioni dei casi d'uso mostrano come le istanze delle classi di analisi interagiscono tra loro per realizzare la funzionalità del sistema e fanno parte della vista dinamica del sistema. Gli elementi della realizzazione dei casi d'uso sono:

  • Diagramma delle classi di analisi che mostra le classi di analisi che interagiscono per realizzare il caso d'uso.
  • Diagramma di interazione che mostra le collaborazioni e le iterazioni tra istanze specifiche che realizzano il caso d'uso.
  • Requisiti speciali che serve a formulare i requisiti specifici del caso d'uso eventualmente emersi durante il processo di realizzazione dei casi d'uso.
  • Raffinamento del caso d'uso che serve ad aggiornare il caso d'uso originario qualora si ottengano nuove informazioni durante la sua realizzazione.

Page 19 of 24

Le interazioni sono unità di comportamento di un classificatore o classificatore di

Contesto che appunto fornisce il contesto per l'interazione. Nella realizzino del caso d'uso il classificatore di contesto è un caso d'uso e il comportamento del caso d'uso si realizza con le istanze delle linee di vita classificatori o classi di analisi dette linee di vita che si scambiano messaggi. La rappresenta un singolo partecipante ad un'iterazione cioè come un'istanza di uno specifico classificatore partecipa all'interazione. Ogni linea di vita ha:

  • Nome opzionale che identifica linea di vita nell'interazione.
  • Tipo che è il nome del classificatore di cui una linea di vita è un'istanza.
  • Selettore che è opzionale che è una condizione booleana usata per selezionare una singola istanza che soddisfi la condizione. Se è omessa, l'iterazione si riferisce all'istanza generica.

Messaggi

Un messaggio rappresenta un tipo specifico di comunicazione tra due linee di vita di un'iterazione.

Può implicare:

  • Messaggio di chiamata che è la chiamata di un'operazione cioè alla linea di vita che lo riceve viene chiesta l'invocazione di una operazione che ha la stesa segnatura del messaggio.
  • Messaggio di creazione o distruzione di un'istanza.
  • Invio di segnale.

Quando una linea di vita sta eseguendo un messaggio si dice che ha il focus di controllo o di attivazione e nel tempo, l'iterazione sposta il focus di attivazione tra linee di vita secondo il flusso di controllo.

Diagramma di sequenza è un grafico che mostra un'interazione o un insieme di interazioni tra due o più oggetti mediante una sequenza temporale di azioni ed è la rappresentazione grafica di uno scenario di un caso d'uso. Esso mostra e specifica gli oggetti, la sequenza di istanziazione degli oggetti, l'ordine di invocazione delle operazioni e le relazioni definite a runtime tra oggetti.

Lo scenario base viene modellato da un

Un singolo diagramma di sequenza può modellare gli scenari alternativi oppure possono essere rappresentati all'interno del diagramma di sequenza dello scenario base.

Gli elementi di un diagramma di sequenza sono:

  • Tempo
  • Oggetti
  • Periodo di vita degli oggetti o lifeline
  • Istanziazione dell'oggetto
  • Distruzione dell'oggetto
  • Messaggi e le sue direzioni (verso un altro oggetto, verso se stesso o il messaggio di restituzione)
  • Iterazione

Un messaggio rappresenta una comunicazione tra oggetti e include il nome del messaggio, la lista degli argomenti e le informazioni di controllo. L'ordine con il quale si presentano i messaggi è mostrato dall'alto verso il basso. Un oggetto può anche inviare un messaggio a se stesso, che viene mostrato da una freccia che ritorna verso la lifeline dello stesso oggetto. È inoltre possibile indicare il valore restituito da un messaggio, mostrato da una linea tratteggiata.

Ladistruzione di un oggetto viene fatta mediante un messaggio e essa si indica con una X odestruction marker.

L'iterazione è indicata dal simbolo * e la condizione di iterazione è indicata tra parentesi quadre.

Un messaggio ricevuto può provocare un cambiamento di stato dell'istanza ma non tutti i messaggi ne provocano uno. È infatti possibile mostrare lo stato delle istanze sulle linee di vita tramite gli invariati di stato.

Frammenti combinati:

I diagrammi di sequenza possono essere suddivisi in aree chiamate e ogni frammento ha:

  • Un operatore cioè come vengono eseguiti i suoi operandi
  • Uno o più operandi
  • Zero o più condizioni di guardia cioè se gli operandi devono essere eseguiti.

Gli operatori più utilizzati sono:

  • Opt: il suo unico operando è eseguito se e solo se la condizione di guardia è vera.
  • Alt: per scegliere tra più alternative.
  • Loop per
eseguire il suo blocco più volte se la condizione è vera.
  • Break: se la condizione di guardia è vera, esegui l'operando e non il resto dell'interazione. Può essere utilizzato per indicare in quale condizione il loop viene interrotto e che cosa accade in seguito. Ha una sola condizione di guardia e se questa è vera, viene eseguito il corpo di break e il loop termina.
La progettazione Per l'IEEE il progetto software comprende:
  • La progettazione che è il processo di definizione dell'architettura, delle componenti, delle interfacce ed altre caratteristiche di un sistema o di una parte di esso.
  • Il progetto dell'Applicazione che è il prodotto della progettazione.
Le pratiche che fanno parte dei principi dell'ingegneria del software sono:
  • Decomposizione e modularità che consiste nel decomporre un grande sistema in tanti moduli e, per quanto possibile, indipendenti tra loro. Ogni modulo deve

contenere specifiche funzionalità o responsabilità inoltre i moduli devono avere una alta coesione interna e un basso accoppiamento.

  • Generalizzazione che consiste nel risolvere il problema più generale che comprende quello da risolvere ed altri similari in modo che il modulo che si sviluppa sia riutilizzabile. Ogni modulo deve essere in grado di soddisfare requisiti con diverse specializzazioni e per specializzare il modulo per una particolare applicazione i meccanismi sono la parametrizzazione e la specificazione dei parametri che consentono di generalizzare le procedure, i dati e il controllo.
  • Incapsulamento ed informazioni hiding in cui decisioni e dettagli interni di un'astrazione sono raggruppati in una componente dell'applicazione e sono inaccessibili da altre parti dello stesso sistema. Qualunque esigenza di cambiamento deve essere localizzata in una componente e i cambiamenti iniettati in essa devono ripercuotersi in pochi altri. Questa è una
pratica chesintetizza i principi di separazione degli interessi e di astrazione infatti induce a localizzare inparti specifiche del sistema l'astrazione di specifico interessi. Questo permette ancheall'anticipazione dei cambiamenti cioè la predisposizione ad accogliere cambiamenti, generatida una qualsiasi causa, tempestivamente e con poco impegno uomo e con basso rischio.
  • Sufficienza, completezza e ricerca di primitive cioè la sicurezza che un modulo software catturitutte e sole le caratteristiche primitive di un'astrazione. Questa pratica migliora il riuso deimoduli e inoltre la ricerca dei moduli primitivi è graduale e un possibile strumento di supporto èla Fabbrica della componenti.
Modularizzazione

Moduli e Relazioni

Un modulo è una componente software che contiene specifiche funzionalità o capacità, in generechiamati servizi e pertanto esso è un fornitore di servizi. A livello di astrazione più

Un sistema software è un insieme di moduli S = { M M M ... M }1, 2, 3, 4

Relazione USES (A USES B)

Perché A operi correttamente è necessario che B operi correttamente, in quanto A accede ai servizi esportati da B attraverso la sua interfaccia. Quindi A dipende da B per fornire i suoi servizi.

A è un client di B e quindi B è un server di A. Questo tipo di relazione è indipendente dalla gerarchia di esecuzione del software. È preferibile che questo tipo di relazione sia, cioè, un grafo orientato aciclico, per rendere il software più semplice da comprendere, produrre un sistema più rapidamente grazie al riuso e alla minore complessità dei moduli, essere più semplice da validare perché ogni modulo ha una limitata semantica ed un insieme di relazioni circoscrivibili e inoltre produrre un sistema più rapido e affidabile da mantenere perché ogni modulo ha limitate responsabilità e le sue modifiche.

hanno un impatto chiaramente circoscritto. Se esse non sono gerarchiche allora si può incorrere in un sistema in cui niente funziona fino a quando tutto funziona. Page 21 of 24

Facendo riferimento al grafo della relazione USES si dicono:

  • Fan-in il numero di archi entranti in un modulo
  • Fan-out il numero di archi uscenti da un modulo

Per una buona struttura si preferisce avere un fan-in alto che significa che il modulo ha un alto riuso interno al sistema e un fan-out basso cioè che il modulo dipende da pochi moduli quindi può essere impattato da molte modifiche al sistema.

In questa relazione il client importa le risorse che sono esportate dal server che le implementa. Quest'ultima è nascosta al modulo client e questa è una pratica del principio di separazione degli interessi.

Relazione Is-Component-Of e Comprise

Questa relazione è usata per descrivere un modulo di livello di astrazione più bassa. A is-component-of B e B comprise A

Sono reciproche. Information Hiding

L'obbiettivo dell'information hiding è quello di rendere possibile il cambiamento del comportamento di una componente senza conoscere il comportamento delle altre componenti e senza modificarlo. Le strategie da assumere in un progetto devono essere singolarmente nascoste in un modulo e i dettagli instabili devono essere nascosti in componenti specifiche, inoltre i dettagli indipendenti tra loro devono essere nascosti in componenti separate. Le interfacce tra le componenti devono essere stabili, cioè anche quando cambiano le implementazioni dei moduli devono rimanere invariate le interfacce.

Per applicare l'information hiding bisogna individuare i seguenti componenti:

  • HW/SW hiding che devono essere modificate quando e solo quando è cambiata la macchina virtuale. I segreti nascosti sono l'accesso ai dati, ai dispositivi di I/O o un sottosistema di comunicazione.
Dettagli
Publisher
A.A. 2020-2021
24 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/03 Telecomunicazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher vitAndreA 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 Piccinno Antonio.