Ingegneria del software Flashcards

You may prefer our related Brainscape-certified 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
Q

Che tipo di diagrammi abbiamo visto?

A

Modelli statici:
-casi d’uso
-classi
-oggetti
Modelli dinamici:
-attività
-macchine a stati
-sequenze

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

Cos’è un diagramma dei casi d’uso?

A

E’ un diagramma che permette di raccogliere ed elaborare i requisiti funzionali

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

Cos’è un attore e quali sono le tipologie:

A

Un attore è un entità esterna al sistema che interagisce direttamente con questo. Ci sono 3 tipologie:
-essere umano
-altro sistema
-tempo (attore principale)

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

Cos’è un caso d’uso?

A

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)

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

Quali sono le fasi di modellazione per i casi d’uso?

A

-individuare il confine del sistema
-individuare gli attori
-individuare i casi d’uso
-individuare le relazioni attore-caso d’uso
-narrativa

30
Q

Che cos’è l’ereditarietà tra due attori?

A

L’attore 1 se eredita dall’attore 2, è coinvolto in tutti i casi d’uso del secondo attore

31
Q

Quali sono le due relazioni che abbiamo visto tra i casi d’uso?

A

-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
Q

Come è suddivisa una sequenza?

A

<numero> . <soggetto><azione><complementi>
</complementi></azione></soggetto></numero>

33
Q

Per cosa utilizziamo il diagramma delle classi?

A

Si utilizza per descrivere il dominio e per la progettazione di dettaglio

34
Q

Qual è la sintassi degli attributi e delle operazioni in diagrammi delle classi?

A

attributi: visibilità nome:tipo[molteplicità]=v_iniziale{proprietà}
operazioni: visibilità nome(lista_parametri):tipo_di_ritorno

35
Q

Cos’è una enumerazione?

A

E’ un tipo di classe etichettate da «enumeration» e che hanno il nome e la lista degli attributi

36
Q

Che tipo di relazioni abbiamo visto nei diagrammi delle classi?

A

Associazioni: classiche, aggregazioni e composizioni
Generalizzazione
Dipendenze

37
Q

Qual è la differenza tra aggregazione e composizione?

A

L’aggregazione non è una relazione forte quindi non implica dipendenza mentre la composizione si

38
Q

Qual è il rapporto tra due classi con una relazione di dipendenza in un diagramma delle classi?

A

E’ come una relazione cliente-fornitore, ovvero se avviene una modifica la fornitore ne risente anche il cliente

39
Q

Che cos’è un’attività?

A

Una attività descrive come coordinare un insieme di azioni

40
Q

Quali sono i possibili nodi che abbiamo nei diagrammi di attività?

A

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
Q

Che cos’è una macchina a stati?

A

E’ un grafo stati-transizioni che descrive il comportamento delle istanze di una classe nel tempo

42
Q

Quali sono le attività di una macchina a stati?

A

Azioni di entrata, uscita, interna e transizione interna

43
Q

Quali tipi di eventi abbiamo studiato nei diagrammi di macchina a stati?

A

Operazione o segnale: op(a:T)
Evento di variazione: when(exp)
Evento temporale: after(time)

44
Q

Quali pseudostati abbiamo visto?

A

Decisione (if dinamico), giunzione (unione di due transizioni) e history (ci permette di salvarci lo stato precedente della macchina)

45
Q

E’ preferibile usare un diagramma delle attività o un diagramma di macchina a stati?

A

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
Q

A che cosa serve un diagramma di sequenza?

A

Vengono utilizzati per descrivere interazioni, scambio di messaggi tra due oggetti in una sequenza temporale

47
Q

Da che cosa sono formati gli oggetti nei diagrammi di sequenza?

A

Da un rettangolo con il nome e una linea in verticale che indica il ciclo di vita (tratteggiata se inattivo, doppia se attivo)

48
Q

Come possono essere i messaggi nei diagrammi di sequenza?

A

Sincroni, asincroni, di return e asincroni con perdita esplicita di tempo

49
Q

Quali sono i principali frame che abbiamo analizzato?

A

Frame condizionale, frame iterativo, frame opzionale e frame parallelo

50
Q

Che cos’è l’architettura di un sistema?

A

E’ la struttura del sistema, costituita dalle parti
del sistema, dalle relazioni tra le parti e dalle loro proprietà visibili

51
Q

Quali sono gli scopi dell’architettura?

A

Scomposizione, Modificabilità, portabilità, riuso, hardware, prestazioni, sicurezza, rilascio incrementale e verifica

52
Q

Che tipi ti vista abbiamo analizzato?

A

Vista comportamentale, vista strutturale, vista logistica

53
Q

Da cosa è composta una vista comportamentale?

A

Da componenti, ovvero unità software indipendente e riusabile che esegue una specifica funzione, e dai connettori, ovvero canali tra il vari componenti

54
Q

Cosa si intende per porto di una componente?

A

Sono i punti di interazione tra le componenti e le interfacce che forniscono o richiedono

55
Q

Che stili C&C abbiamo visto?

A

Pipe and filter, client server, master slave, p2p, publish subscriber e il model view controller

56
Q

Come funziona lo stile pipe and filter?

A

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
Q

Qual è la differenza tra lo stile client-server e master-slave?

A

Lo stile master-slave è un tipo di client-server dove lo slave serve un solo master

58
Q

A che cosa serve un server stateful?

A

Un server stateful mantiene i record delle richieste dei vari client

59
Q

Quali sono le due modalità dello stile publish-subscriber?

A

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
Q

Come si suddivide lo stile MVC?

A

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
Q

Quali sono le relazioni nelle viste di tipo strutturale?

A

parte di, eredita da, dipende da e può usare

62
Q

Come si definisce uno strato?

A

E’ un insieme coeso di moduli e offre un interfaccia pubblica dei suoi servizi

63
Q

Cosa si intende per Artefatto?

A

Un artefatto è un’informazione fisica che viene utilizzata o prodotta da un processo di sviluppo software o dal funzionamento di un sistema

64
Q

Possiamo avere viste ibride?

A

Si, ad esempio dislocazione con componenti

65
Q

Quali sono i principi di progettazione?

A

Information hiding, astrazione, coesione, disaccoppiamento

66
Q

Qua l è la differenza tra information hiding e incapsulamento?

A

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
Q

Cosa si intende per coesione?

A

Pe coesione si intende la proprietà di un sistema di realizzare un solo concetto (funzionalità vicine devono stare nella stessa unità)

68
Q

Quali sono i tipi di coesione migliori?

A

Coesione funzionale, comunicativa e procedurale

69
Q

Cosa si intende per disaccoppiamento?

A

Indica il grado di legame tra un’unità e il resto dell’insieme

70
Q

Qual è il rapporto coesione-disaccoppiamento migliore?

A

E’ conveniente avere un’alta coesione e un alto disaccoppiamento