Ingegneria del software Flashcards

1
Q

Definizione di ingegneria del software secondo l’IEEE

A

L’approccio sistematico allo sviluppo, all’operatività, alla manutenzione e al ritiro del software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Come si suddivide la manutenzione di un software?

A

-Manutenzione correttiva 20% (lascio intatta la specifica)
-Manutenzione migliorativa 80%:
-Perfettiva 60% (aggiungere nuove funzionalità e migliorare il software)
-Adattiva 20% (adattare aspetti legislativi o dell’hardware)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quali sono i principali modelli di ciclo di vita?

A

Build and fix, modello a cascata, modello a V, rapid prototyping, modello incrementale, modello a spirale, unified Process, e modelli agile

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Descrivi brevemente il modello build and fix

A

E’ un modello di ciclo di vita che prevede una continua modifica al progetto finché il committente non è soddisfatto

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Descrivi brevemente il modello a cascata di Royce

A

E’ un modello lineare che prevede analisi dei requisiti di sistema e software, il coding, una fase di testing e una di messa in prova. C’è poca interazione con l’utente

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Descrivi brevemente il modello a V

A

Il modello a V prevede nel lato sinistro tutte le analisi dei design (sistema, architettura, modulo), al centro la verifica dei prodotti della colonna di sinistra (progettazione di test) e nella colonna di destra tutti i testing effettivi di questi pezzi che soddisfano le esigenze degli utenti

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Descrivi brevemente il modello Rapid Protptyping

A

E’ un modello che prevede la creazione di un prototipo che vine sistemato più volte per arrivare alle specifiche del cliente (molta interazione col cliente)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Descrivi brevemente il modello incrementale

A

Prevede la creazione di una versione incompleta per soddisfare le esigenze del cliente, se progettato male è un build and fix

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Descrivi brevemente il modello a spirale

A

E’ un modello che prevede 4 fasi:
1) determinare obiettivi e vincoli
2) valutazione dei rischi
3) sviluppo e verifica
4) pianificazione della fase successiva

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Descrivi brevemente l’Unified Process

A

Modello incentrato su casi d’uso e analisi dei rischi ma in particolare sull’architettura, lasciando dettagli superflui

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cosa sono i metodi Agile e quali sono i pro e i contro

A

Le metodologie agile inseriscono il committente al centro del processo di creazione del software.
Pro:
-Collaborazioni con i clienti al di là del contratto
-Software funzionante e documentazione precisa ma semplice da leggere
-Rilascio costante di nuove versioni
Contro:
-Non adatto a molti sviluppatori

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Che cos’è SCRUM?

A

E’ un progetto Agile incrementale iterativo che fornisce ad ogni iterazione nuove funzionalità rilasciabili

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Quali sono le fasi di SCRUM?

A

Le fasi sono 3:
-Pre game phase: definizione del sistema, dei requisiti e dell’architettura
-Development phase: sviluppo attraverso degli sprint
-Post game phase: Rilascio del prodotto e consegna della documentazione al cliente

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cos’è uno SPRINT?

A

E’ un ciclo iterativo durante lo sviluppo di un software nel quale si introducono nuove funzionalità. Si divide in:
-planning
-daily meeting
-review

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quali sono i ruoli coinvolti in uno SCRUM?

A

I ruoli sono 3:
-Product owner: gestisce tutte le figure coinvolte e si relaziona con l’utente finale
-Membro del team: Decidono gli sprint e costruiscono il prodotto
-Scrum master: figura di supporto al team per migliorare l’ambiente di di lavoro

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cos’è una SCRUM kanban

A

Lavagna fisica o virtuale dove si suddividono le attività da fare, in svolgimento o terminate. Viene posto un WIP limit ovvero un numero massimo di attività in contemporanea

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Cosa si intende per studio di fattibilità?

A

E’ quella fase preliminare all’analisi dei requisiti che determina se il progetto è fattibile oppure no. Vengono controllate le necessità utente e si fa un analisi di mercato e tecnica

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Cosa si intende per analisi dei rquisiti?

A

Analisi delle esigenze del committente e della creazione del dominio e dei requisiti di sistema

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Cosa è un dominio e cosa è importante valutare?

A

Un dominio è l’ambito o il contesto nel quale il software opera. Per eliminare l’ambiguità si costruisce un glossario, arricchito via via. Si costruiscono anche modelli statici e dinamici

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Cos’è un requisito e che tipologie abbiamo studiato?

A

Un requisito è una proprietà che deve essere garantita dal sistema per soddisfare una richiesta utente.
Esistono:
-funzionali: funzionalità del sistema
-non funzionali: affidabilità, interfaccia utente, usabilità, sicurezza

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Come possono essere definiti i requisiti?

A

Attraverso il linguaggio naturale nel documento dei requisiti, attraverso grafici UML nei diagrammi dei casi d’uso o attraverso le user stories (foglietti di carta che possono essere compilati da chiunque)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Quante sono le fasi dell’analisi dei requisiti?

A

Sono 5: Acquisizione, Elaborazione, Convalida, Negoziazione e Gestione

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Che cos’è la tecnica MoScoW?

A

E’ una tecnica di negoziazione che prevede la suddivisione dei requisiti in obbligatori, desiderabili, opzionali e postponibili

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Che cos’è un modello?

A

Astrazione del sistema (o del dominio) usato per specificarne struttura e il comportamento

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Che tipo di diagrammi abbiamo visto?
Modelli statici: -casi d'uso -classi -oggetti Modelli dinamici: -attività -macchine a stati -sequenze
26
Cos'è un diagramma dei casi d'uso?
E' un diagramma che permette di raccogliere ed elaborare i requisiti funzionali
27
Cos'è un attore e quali sono le tipologie:
Un attore è un entità esterna al sistema che interagisce direttamente con questo. Ci sono 3 tipologie: -essere umano -altro sistema -tempo (attore principale)
28
Cos'è un caso d'uso?
E' un compito che un attore può svolgere con l’aiuto del sistema e viene espresso come un insieme di scenari (ovvero istanze del caso d'uso)
29
Quali sono le fasi di modellazione per i casi d'uso?
-individuare il confine del sistema -individuare gli attori -individuare i casi d'uso -individuare le relazioni attore-caso d'uso -narrativa
30
Che cos'è l'ereditarietà tra due attori?
L'attore 1 se eredita dall'attore 2, è coinvolto in tutti i casi d'uso del secondo attore
31
Quali sono le due relazioni che abbiamo visto tra i casi d'uso?
-Include: (-->) il caso d'uso 1 incorpora il secondo caso d'uso. Il primo non può essere eseguito indipendentemente mentre il secondo si -extend: (<--) il caso d'uso 1 può in qualche caso invocare l'esecuzione del secondo caso d'uso ed entrambi sono totalmente indipendenti
32
Come è suddivisa una sequenza?
.
33
Per cosa utilizziamo il diagramma delle classi?
Si utilizza per descrivere il dominio e per la progettazione di dettaglio
34
Qual è la sintassi degli attributi e delle operazioni in diagrammi delle classi?
attributi: visibilità nome:tipo[molteplicità]=v_iniziale{proprietà} operazioni: visibilità nome(lista_parametri):tipo_di_ritorno
35
Cos'è una enumerazione?
E' un tipo di classe etichettate da <> e che hanno il nome e la lista degli attributi
36
Che tipo di relazioni abbiamo visto nei diagrammi delle classi?
Associazioni: classiche, aggregazioni e composizioni Generalizzazione Dipendenze
37
Qual è la differenza tra aggregazione e composizione?
L'aggregazione non è una relazione forte quindi non implica dipendenza mentre la composizione si
38
Qual è il rapporto tra due classi con una relazione di dipendenza in un diagramma delle classi?
E' come una relazione cliente-fornitore, ovvero se avviene una modifica la fornitore ne risente anche il cliente
39
Che cos'è un'attività?
Una attività descrive come coordinare un insieme di azioni
40
Quali sono i possibili nodi che abbiamo nei diagrammi di attività?
Nodo iniziale, nodo terminale, nodo di fine flusso (break), nodo decisionale, nodo fusione, fork e join, accettazione dell'evento, inviare un segnale e accettazione di un evento temporale
41
Che cos'è una macchina a stati?
E' un grafo stati-transizioni che descrive il comportamento delle istanze di una classe nel tempo
42
Quali sono le attività di una macchina a stati?
Azioni di entrata, uscita, interna e transizione interna
43
Quali tipi di eventi abbiamo studiato nei diagrammi di macchina a stati?
Operazione o segnale: op(a:T) Evento di variazione: when(exp) Evento temporale: after(time)
44
Quali pseudostati abbiamo visto?
Decisione (if dinamico), giunzione (unione di due transizioni) e history (ci permette di salvarci lo stato precedente della macchina)
45
E' preferibile usare un diagramma delle attività o un diagramma di macchina a stati?
Dobbiamo utilizzare quello che cattura più informazioni (usarli insieme è raro). Se abbiamo un insieme di azioni da svolgere utilizziamo quello delle attività, se abbiamo l'evoluzione di un oggetto utilizziamo la macchina a stati
46
A che cosa serve un diagramma di sequenza?
Vengono utilizzati per descrivere interazioni, scambio di messaggi tra due oggetti in una sequenza temporale
47
Da che cosa sono formati gli oggetti nei diagrammi di sequenza?
Da un rettangolo con il nome e una linea in verticale che indica il ciclo di vita (tratteggiata se inattivo, doppia se attivo)
48
Come possono essere i messaggi nei diagrammi di sequenza?
Sincroni, asincroni, di return e asincroni con perdita esplicita di tempo
49
Quali sono i principali frame che abbiamo analizzato?
Frame condizionale, frame iterativo, frame opzionale e frame parallelo
50
Che cos'è l'architettura di un sistema?
E' la struttura del sistema, costituita dalle parti del sistema, dalle relazioni tra le parti e dalle loro proprietà visibili
51
Quali sono gli scopi dell'architettura?
Scomposizione, Modificabilità, portabilità, riuso, hardware, prestazioni, sicurezza, rilascio incrementale e verifica
52
Che tipi ti vista abbiamo analizzato?
Vista comportamentale, vista strutturale, vista logistica
53
Da cosa è composta una vista comportamentale?
Da componenti, ovvero unità software indipendente e riusabile che esegue una specifica funzione, e dai connettori, ovvero canali tra il vari componenti
54
Cosa si intende per porto di una componente?
Sono i punti di interazione tra le componenti e le interfacce che forniscono o richiedono
55
Che stili C&C abbiamo visto?
Pipe and filter, client server, master slave, p2p, publish subscriber e il model view controller
56
Come funziona lo stile pipe and filter?
Le componenti sono connesse tra di loro da delle pipe (una sorta di buffer) e ad ogni passaggio vengono filtrate le informazioni. Posso anche utilizzare biforcazione e merge
57
Qual è la differenza tra lo stile client-server e master-slave?
Lo stile master-slave è un tipo di client-server dove lo slave serve un solo master
58
A che cosa serve un server stateful?
Un server stateful mantiene i record delle richieste dei vari client
59
Quali sono le due modalità dello stile publish-subscriber?
Modalità push, il mittente si interfaccia con un broker che a sua volta si interfaccia con i destinatari (NB: destinatari e mittenti non si conoscono). La modalità Pull invece permette all'utente un dialogo diretto col mittente, riducendo il carico sul broker ma possibili problemi di attesa
60
Come si suddivide lo stile MVC?
Si suddivide in View, sezione che prende le richieste dell'utente e le gira al controller, che una volta analizzate, le passa al model che altera il suo stato e invia una notifica di cambio di stato al view
61
Quali sono le relazioni nelle viste di tipo strutturale?
parte di, eredita da, dipende da e può usare
62
Come si definisce uno strato?
E' un insieme coeso di moduli e offre un interfaccia pubblica dei suoi servizi
63
Cosa si intende per Artefatto?
Un artefatto è un’informazione fisica che viene utilizzata o prodotta da un processo di sviluppo software o dal funzionamento di un sistema
64
Possiamo avere viste ibride?
Si, ad esempio dislocazione con componenti
65
Quali sono i principi di progettazione?
Information hiding, astrazione, coesione, disaccoppiamento
66
Qua l è la differenza tra information hiding e incapsulamento?
Per information hiding si intende l'utilizzo di interfacce che mascherano il corpo della funzione al loro interno per migliorare leggibilità e manutenibilità. L'incapsulamento è la proprietà di un oggetto di mantenere al loro interno sia attributi che metodi. L'incapsulamento permette l'information hiding ma non lo garantisce
67
Cosa si intende per coesione?
Pe coesione si intende la proprietà di un sistema di realizzare un solo concetto (funzionalità vicine devono stare nella stessa unità)
68
Quali sono i tipi di coesione migliori?
Coesione funzionale, comunicativa e procedurale
69
Cosa si intende per disaccoppiamento?
Indica il grado di legame tra un'unità e il resto dell'insieme
70
Qual è il rapporto coesione-disaccoppiamento migliore?
E' conveniente avere un'alta coesione e un alto disaccoppiamento