ingegneria software Flashcards

1
Q

Nell’ambito della produzione del software, si descrivano le caratteristiche dei MODELLI EVOLUTIVI

A

I sistemi software evolvono nel tempo e i loro requisiti cambiano durante lo sviluppo, a volte il cliente riesce a definire solo obiettivi generali per il software ma non riesce a identificare requisiti dettagliati.I modelli evolutivi sono iterativi e caratterizzati in modo tale da consentire lo sviluppo di versioni sempre più complete del software.

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

POLIMORFISMO?descrivendone i VANTAGGI in abbinamento all’istanziamento dinamico (late binding)

A

Si parla di polimorfismo per creare metodi con lo stesso nome ma implementazioni differenti.
Il polimorfismo, abbinato all’istanziamento dinamico (late binding), permette a ciascun oggetto di rispondere a uno stesso messaggio in modo appropriato a seconda della classe da cui deriva.

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

Nell’ambito della progettazione di interfaccia utente (GUI), si spieghi cosa si intende per PROJECT STANDARD riportando alcuni esempi

A

Definisce degli standard per: Terminologia, metafore e icone, caratteristiche delle finestre.
Il project standard ha l’obiettivo di agevolare l’utilizzo da parte dell’utente.
Alcune priorità consigliate, ad esempio, sono:
-allargare i bottoni della window
-allargare solo un bottone
-usare un simbolo al posto del testo
-inserire la scelta nel menu

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

Si spieghi (indicando anche alcuni esempi) la differenza tra le fonti di costo ed i fattori di costo nell’ambito della MISURAZIONE DEL SOFTWARE

A

Le finti di costo sono i costi delle risorse per lo sviluppo del software: costo del personale tecnico, costo del personale di supporto, costo delle risorse informatiche e costi generali della struttura.
I fattori di costo sono: numero di istruzioni da codificare, capacità motivazione e coordinamento degli addetti allo sviluppo, complessità del programma e caratteristiche dell’ambiente di sviluppo.

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

Si elenchino i MECCANISMI DI ASTRAZIONE utilizzati durante il processo di analisi

A

I principali meccanismi di astrazione sono classificazione, generalizzazione, aggregazione e associazione.
- classificazione permette di raggruppare in classi a seconda delle proprietà.
- generalizzazione si fa alla relazione is-a che permette di astrarre le caratteristiche comuni fra più classi definendo superclassi.
- aggregazione esprime la relazione part-of.
- associazioni permettono di stabilire una connessione tra classi, tipicamente bidirezionale.

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

Nell’ambito della misurazione del software, si elenchino i principali fattori che ne determinano il COSTO DEL SOFTWARE

A

Nel ciclo di vita del software la misurazione serve a prevedere o stimare tempi di consegna, costo di lavorazione, qualità del prodotto.
La stima dei costi dipende, oltre dalle fonti di costo (costo delle risorse per lo sviluppo), anche da fattori di costo.

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

Nell’ambito delle INTERFACCE UTENTE, si spieghino brevemente le differenze tra i modelli multi-window, multi-document e multi-paned

A

Nel modello multi-window ci sono molte main window (ciascuna con un menu) e molte child windows (senza menu) possibili per ciascuna main window.(molto flessibile ma navigazione complessa)
Nel modello multi-document c’è una sola main window con menu, la top window guida una serie di documenti window e deve sempre rimanere aperta. (flessibilità inferiore ma più intuitivo)
Nel modello multi-paned c’è una window alla volta con o senza menu ed eventuali suddivisioni in aree.(non flessibile, usata per applicazioni self-service)

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

descrivere MODELLO A CASCATA

A

Il modello a cascata suggerisce un approccio sistematico e sequenziale lineare, in cui l’output di ogni fase rappresenta l’input della successiva; è inadeguato quando: i requisiti sono incerti o non noti durante le fasi iniziali del progetto, non permette di modificare i risultati delle fasi precedenti alla luce di errori riscontrati a posteriori e solo al termine del progetto si genera una versione funzionante del programma.

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

descrivere il MODELLO INCREMENTALE

A

Il modello incrementale è un modello iterativo che combina il modello a cascata a sottosistemi del prodotto finale producendo software a incrementi.
ognuna delle fasi produce un software funzionante.

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

descrivere MODELLO RAD

A

Il modello RAD è un modello [incrementale] che punta a un [ciclo di sviluppo molto breve], si tratta di un [adattamento del modello a cascata] dove l’obiettivo di accelerare lo sviluppo è raggiunto grazie a strategie costruttive fondate sull’uso di [componenti].
modello non modularizzabile.

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

caratteristiche dei MODELLI PRESCRITTIVI?

A

sono (modello a cascata, RAD, modello a spirale,…)
caratteristiche:
-approccio sequenziale
-pianificazione dettagliata
-rigore nei processi
-flessibilità limitata
-gli stadi del ciclo includo fasi di verifica.
-ultimo stadio di deployment della versione finale completa

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

Si elenchino e si descrivano brevemente i SEI CRITERI DI USABILITA’ di un’interfaccia utente

A

Per usabilità si intende l’efficacia, l’efficienza e la soddisfazione con cui determinati utenti eseguono determinati compiti.
I sei criteri dell’usabilità e loro obiettivi sono:
- veloce da usare.
- facile da imparare.
riduce gli errori, riduzione della percentuale degli errori incorreggibili.
- piacevole da utilizzare.
- facile da memorizzare.
- facile da navigare.

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

Si elenchino e si discutano brevemente 3 QUALITA’ DEL SOFTWARE

A

-facilità d’uso
-affidabilità software
-produttività = efficienza nella produzione software

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

Si illustri il PRINCIPIO DI MODULARITA’ commentandone i benefici sullo sviluppo del software

A

La modularità ha la capacità: di scomporre un sistema complesso in parti più semplici, di comporre un sistema complesso a partire dai moduli esistenti, di capire un sistema in funzione delle sue parti e di modificare un sistema modificando solo un piccolo insieme delle sue parti.
Tutti i servizi devono essere dello stesso modulo.
Ogni modulo è indipendente.

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

Si illustrino brevemente le differenze di METODI DI ANALISI orientata agli oggetti, agli stati e alla funzioni

A

Nell’analisi orientata agli oggetti ci si basa sull’identificazione degli oggetti e sulle interrelazioni tra loro.
L’obiettivo dell’analisi orientata alle funzioni è rappresentare il sistema come insieme di flussi informativi, una rete di processi che trasformano i flussi informativi.
Nell’analisi orientata agli stati abbiamo diversi stati operativi del sistema che mutano attraverso le transizioni di stato.

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

Si illustrino brevemente le caratteristiche fondamentali di UNIFIED PROCESS

A

(il modello up è un modello prescrittivo)
-approccio ITERATIVO ED INCREMENTALE
-architettura centrale
- model-based
- GUIDATO DAI CASI ‘USO

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

Si definisca la QUALITA’ DEL SOFTWARE RIUSABILITA’ un software è riusabile se può essere usato, in tutto o in parte, per costruire nuovi sistemi e si spieghi in quali modi essa è incoraggiata dal paradigma a oggetti

A

un software è riusabile se può essere usato, in tutto o in parte, per costruire nuovi sistemi.
L’APPROCCIO AD OGGETTI, grazie all’ereditarietà, permette di aggiungere nuove caratteristiche a un sistema riducendo i costi di manutenzione (estendibilità) e di costruire nuove funzionalità a partire dall’esistente (riusabilità). (a differenza dell’APPROCCIO FUNZIONALE)

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

Si spieghi cos’è un nodo in un diagramma di deployment.

A

Un nodo rappresenta un tipo di risorsa computazionale su cui i MANUFATTI possono essere dislocati per l’esecuzione.
Un MANUFATTO rappresenta un’entità concreta nel mondo reale.

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

QUALITA’ del software: RIUSABULITA’,

A

La riusabilità è una qualità interna relativa al prodotto, un software è riusabile se può essere usato, in tutto o in parte, per costruire nuovi sistemi.

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

Si spieghi il significato del PRINCIPIO DI ANTICIPAZIONE dei cambiamenti nell’ingegneria del software

A

la capacità di prevedere i cambiamenti a cui il software sarà sottoposto durante il suo ciclo di vita determina la sua manutenzione e la sua riusabilità.
Lo scopo è di rendere il progetto facilmente modificabile.

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

Si spieghi cos’è uno STEREOTIPO in UML e si diano tre esempi di stereotipi predefiniti

A

Uno stereotipo è un meccanismo di estendibilità, permette di introdurre nuovi elementi di modellazione a partire da quelli esistenti.
Alcuni esempi di stereotipi predefiniti utilizzati sono “l’umarello” e stringhe tra «», come include ed extend.

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

Si illustri il ruolo dello STUDIO DI FATTIBLITA’ all’interno del ciclo di vita del software, precisandone obiettivi e risultati

A

Nella FASE DI PIANIFICAZIONE vengono definiti gli obiettivi, i fabbisogni e viene condotto lo studio di fattibilità.
Quest’ultimo è necessario per individuare possibili strategie di attuazione e avere una prima idea dei costi, dei benefici e dei tempi.

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

Si spieghi cos’è un TEMPLATE in UML e in che modo si rappresenta

A

Un template è un concetto che consente di creare classi o tipi parametrici. Questo permette di definire classi, operazioni o tipi che possono essere parametrizzati con uno o più parametri. I template in UML sono noti anche come “generics” o “template classes”.
Questo favorisce il riuso del codice e la creazione di componenti software più generici e flessibili.

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

Si spieghi cos’è un PACKAGE e si illustrino struttura e utilizzo dei DIAGRAMMI del package

A

Un package è un raggruppamento di elementi del modello semanticamente correlati.
Il diagramma mostra i package e le loro relazioni di dipendenza, contenimento e specializzazione.
Esistono quattro tipi di dipendenza tra package: use, import, access, trace.

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

Si definisca il numero ciclomatico del grafo di controllo di una procedura, si enunci il teorema di Mills.
poi se il programma ha procedure al suo interno?

A

Il teorema di Mills: v(G)=d+1; dove v(G) è il numero ciclomatico del grafo G modificato, d è il numero dei punti di decisione del programma.

Se il programma ha procedure al suo interno, il numero ciclomatico dell’intero grafo è dato dalla somma dei numeri ciclomatici dei singoli grafi indipendenti v(G)=e-n+2p; dove e sono gli archi, n i nodi e p il numero di grafi (procedure) indipendenti.

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

Si spieghi la differenza tra un SOFTWARE CORRETTO e un SOFTWARE ROBUSTO

A

Un software corretto rispetta le specifiche di progetto mentre è robusto se si comporta in modo ragionevole anche in circostanze non previste dalle specifiche di progetto.
(la robustezza tratta pure i casi non trattati)

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

Spiegare il doppio significato e utilizzo della relazione di RAFFINAMENTO/REALIZZAZIONE in UML

A

Questa relazione è utilizzata per definire una relazione tra un elemento più astratto (l’elemento da raffinare o realizzare) e un elemento più concreto (l’elemento raffinato o realizzato).
1)la relazione di raffinamento/realizzazione è utilizzata per indicare che una classe (o un altro elemento) implementa un’interfaccia definita da un altro elemento. Ad esempio, una classe può “realizzare” un’interfaccia.
2)Raffinamento di un caso d’uso o operazione: caso d’uso generico viene suddiviso in sottocasi d’uso

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

Si elenchino e si definiscano almeno due QUALITA’ DEL SOFTWARE relative al processo

A

Le qualità relative al processo riguardano i metodi utilizzati durante lo sviluppo del software e sono:
-robustezza,
-verificabilità
-produttività
-tempestività
-trasparenza.
( la tempestività misura la capacità del processo di produzione del software di rispettare i tempi di consegna)
( Un processo è trasparente se permette di capire il suo stato attuale e tutti i suoi passi)

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

Si spieghi cos’è un INTERFACCIA in UML e come può essere messa in relazione con le classi che la implementano e quelle che la usano

A

Un interfaccia è un insieme di funzionalità pubbliche identificate da un nome.
Non ha alcuna specifica di struttura interna; è una classe astratta senza attributi e senza associazioni ma solo operazioni astratte (senza implementazione).
Un’altra classe che usa l’interfaccia può essere collegata ad essa da una freccia di dipendenza («use»).

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

Si definiscano le seguenti QUALITA’ software: EFFICIENZA, PORTABILITA’, INTEROPERABILITA’

A

Sono tutte qualità ESTERNE RELATIVE AL PROGETTO, quindi basate sulle caratteristiche stesse del software.
(La portabilità si presenta se il software può funzionare su più piattaforme.
L’interoperabilità fa riferimento all’abilità di un sistema di coesistere e cooperare con altri sistemi)

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

Si illustri il concetto di POWERTYPING in UML e se ne dia almeno un esempio

A

il powertyping è una forma di tipizzazione avanzata che consente di definire relazioni tra i tipi e gli oggetti in modo più ricco di significato.
es: dati animali e diete. dieta divisa in sottoclasssi. ogni animale associato ad ogni sottoclasse di dieta.

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

Si illustri in termini generali il concetto di DIPENDENZA IN UML e si diano almeno tre esempi di stereotipi di dipendenza

A

In generale, A dipende da B quando una variazione in B può comportare una variazione in A. Nelle classi una dipendenza indica che una classe cliente dipende da alcuni servizi di una classe fornitore.
può essere generica.
esempi di stereotipi di dipendenza:
-extend
-include
-import

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

Si elenchino e si illustrino brevemente tutte le FASI DEL CICLO DI VITA del software

A

Pianificazione: Definizione degli obiettivi e dei requisiti del progetto.

Analisi dei Requisiti: Raccolta, analisi e documentazione dei requisiti del software.

Progettazione: Creazione di un design dettagliato del sistema.

Implementazione: Scrittura del codice sorgente del software.

Testing e Validazione: Verifica e validazione del software attraverso una serie di test.

Rilascio: Distribuzione del software agli utenti finali.

Manutenzione e Miglioramento: Correzione di bug, aggiornamenti e miglioramenti continui.

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

Si illustri il concetto di EREDITARIETA’ nel paradigma a oggetti, spiegandone vantaggi ed eventuali svantaggi

A

L’ereditarietà basa la definizione e implementazione di una classe su quelle di altre classi.
La classe generalizzante è detta superclasse, quella specializzante sottoclasse o classe derivata.
Ciascuna sottoclasse eredita dalla sua superclasse la struttura e i comportamenti

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

Si illustrino le diverse tipologie di TECNICHE DI VERIFICA DEL SOFTWARE STATICHE

A

Le tecniche possono essere dinamiche o statiche.
Nelle tecniche statiche o di analisi, il corretto funzionamento del sistema viene verificato analizzando direttamente la struttura dei moduli e il codice che li realizza.
-code walkthrough
-code inspection.

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

Si illustrino le diverse tipologie di TECNICHE DI VERIFICA DEL SOFTWARE DINAMICHE

A

Nelle tecniche dinamiche o di testing, il corretto funzionamento del sistema viene controllato sulla base di prove sperimentali.
si divide in
-testing in the small
-testing in the large

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

descrivere come funzia testing in the small(TECNICA DINAMICA DI VERIFICA DEL SOFTWARE)

A

Il “testing in the small” è una tecnica dinamica di verifica del software che si concentra sull’esame delle singole unità di codice, come funzioni, procedure o classi.
fa uso di “test-cases”

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

Si illustri il concetto di INCAPSULAMENTO nel paradigma a oggetti, spiegandone pro ed eventuali contro

A

L’incapsulamento protegge l’oggetto nascondendo lo stato dei dati e l’implementazione delle sue operazioni. Gli oggetti incapsulano gli attributi e le operazioni che li possono modificare.
pro: implementazione nascosta.
contro: complessità.

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

descrivere come funzia testing in the big(TECNICA DINAMICA DI VERIFICA DEL SOFTWARE)

A

Il “testing in the big” si concentra sulla verifica del sistema software nel suo insieme, sul comportamento complessivo del software.
Questa tecnica mira a identificare comportamenti indesiderati a livello di sistema, piuttosto che a livello di singole unità di codice.

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

Si spieghi cos’è il METODO COCOMO e come può essere utilizzato

A

Il COCOMO è acronimo di COnstructive COst MOdel.
Si calcola una stima iniziale dei costi di sviluppo in base alla dimensione del software da produrre, poi la si migliora sulla base di un insieme di parametri.
La dimensione viene spesso misurata in base a linee di codice sorgente.

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

Si illustrino i principi fondamentali del MODEL-DRIVEN DEVELOPMENT spiegando in particolare il ruolo svolto dai diversi modelli

A

Il model-driven development è un tipo di sviluppo in cui si creano modelli formali del software che vengono poi fatti evolvere mentre il sistema viene progettato e implementato.
I modelli diventano la guida del processo di sviluppo.
[Infatti, prevede l’uso di strumenti per la generazione automatica del codice e dei test case a partire dai modelli]

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

Si descrivano brevemente le caratteristiche dei diversi tipi di MANUTENZIONE DEL SOFTWARE

A

La manutenzione può essere correttiva, adattiva, evolutiva o perfettiva. Le prime due avvengono nella fase di manutenzione quando durante il funzionamento vengono rilevati errori.
Le ultime due avvengono nella fase di evoluzione del software quando necessitano nuove funzionalità o migliorie all’operatività.

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

vantaggio TECNICA DI PROTOTIPAZIONE USA E GETTA

A
  • alcune caratteristiche del sistema possono non essere state considerate
  • non c’è specifica per il mantenimento a lungo termine
  • il prototipo non è strutturato bene e sarebbe difficile da mantenere
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

vantaggio TECNICA DI PROTOTIPAZIONE EVOLUTIVA

A
  • cambiamenti continui tendono a corrompere il sistema (mantenimento a lungo termine costoso)
43
Q

Si descrivano brevemente almeno due MECCANISMI DI ESTENDIBILITA’ di UML

A

I meccanismi di estendibilità sono lo stereotipo, la proprietà, il vincolo e il profilo.
- una proprietà è un valore associato a un elemento del modello, espresso da una stringa associata all’elemento.
- un vincolo è una frase di testo che riguarda un elemento del modello e deve risultare sempre vera.

44
Q

Si descriva brevemente il RUOLO del METODO FUNCTION POINTS

A

per calcolare complessità e dimensione del software.(durante il suo ciclo di vita)
usi:
- uno strumento per misurare un prodotto; - un veicolo per stimare costi e risorse necessarie per lo sviluppo e la manutenzione del software
- un fattore di normalizzazione per effettuare confronti sul software

45
Q

Si descriva brevemente il FUNZIONAMENTO del METODO FUNCTION POINTS

A

Il metodo di conteggio consiste nell’identificare 5 tipi di funzioni (di tipo dati e di tipo transazione), una volta identificate a ciascuna si assegna un peso.
la somma dei pesi costituisce il numero di Function Pionts. tale numero moltiplicato per un fattore di aggiustamento è il numero dei function points pesati.

46
Q

STUDIO DI FATTIBLITA’?

A

lo studio di fattibilità è per individuare strategie di attuazione e avere una prima idea dei costi, dei benefici e dei tempi.

47
Q

Si illustri il CONCETTO DI DELEGAZIONE nel paradigma a oggetti, spiegando in che modo trova applicazione durante la progettazione delle associazioni

A

Si parla di delegazione quando un oggetto (detto complesso) contiene al suo interno un riferimento a un altro oggetto, cosicché possa delegargli alcune funzioni.
È il meccanismo fondamentale per implementare associazioni tra classi.

48
Q

Si illustrino i principi fondanti dei modelli di processo agili

A

I modelli di processo agili hanno le seguenti caratteristiche:
- incoraggiano una consegna incrementale anticipata del software
- impiegano metodi informali
- richiedono comunicazione continua tra sviluppatori e utenti.
- incoraggiano semplicità di sviluppo
- producono un livello minimo di prodotti di ingegneria del software

49
Q

UML
cos’è diagramma degli oggetti?

A

è istanza di un diagramma delle classi
è un caso particolare di un diagramma delle classi in cui compaiono solo oggetti

50
Q

UML
cos’è un package

A

è un raggruppamento di elementi correlati del modello

51
Q

UML
cos’è linea di vita (diagramma di iterzione)

A

è come l’istanza di un classificatore partecipa all interazione
/ modi in cui le istanze partecipano all interazione

52
Q

UML
diagrammi di sequenza?

A

mostrano interazioni tra linee di vita, come sequenza di messaggi ordinati.
ricco e flessibile

53
Q

UML
cos’è attivazione (diagrammi sequenza)

A

mostra il periodo durante il quale una linea di vita esegue un azione o direttamente o attraverso una procedura subordinata

54
Q

UML
cos’è diagramma di stato

A

descrive l’evoluzione temporale delle istanze di un classificatore
(può essere associato ad ogni classe)

55
Q

si descrivano le 4 attività strutturali dell EXTREME PROGRAMMING (modello agile)

A

extreme programming è un modello di processo agile.
adotta un approccio object-oriented e include 4 attività strutturali:
- pianificazione
- design
- programmazione
- testing

56
Q

Si illustri il concetto di POLIMORFISMO nel paradigma a oggetti, spiegandone PRO ed eventuali CONTRO

A

Come vantaggi:
- riusabilità
- estendibilità

57
Q

e si spieghi il RUOLO del NUMERO CICLOMATICO nell’ambito della misurazione del software

A

, il numero ciclomatico indica quanti percorsi diversi è possibile seguire attraverso il codice sorgente, tenendo conto delle strutture di controllo come i cicli (loop) e le condizioni
- Valutazione della Complessità
- Identificazione dei Punti Critici
piu è alto più è complesso il flusso di controllo del programma

58
Q

Si elenchino e si illustrino brevemente le FASI DEL CICLO DI VITA DEL SOFTWARE, SUCCESSIVE ALL’INSTALLAZIONE

A

Successivamente alla fase di installazione, in cui il sistema viene installato e configurato, abbiamo le fasi di:
- collaudo del sistema installato
- esercizio
- diagnosi
- manutenzione ed evoluzione.

59
Q

il primo sostituisce una funzionalità da 100 FP con una da 120 FP
come calcolare quella netta?

A

valore netto = 120 - 100
valore finale = [somma netta] + valore netto

60
Q

qualità del software verificabilità?

A

la facilità con la quale si possono valutare le altre qualità del software stesso

61
Q

manutenzione del software correttiva

A

corregge errori

62
Q

manutenzione del software evolutiva

A

aggiunge funzionalità

63
Q

in quali casi è importante la memorabilità (FATTORE DI USABILITA’ DELL’INTERFACCIA)

A

La memorabilità è un elemento chiave per ridurre la curva di apprendimento
-uso occasionale
- funzionalità complesse.

64
Q

utilizzo SPECIAL GUI?

A

l’utente ha scarsa esperienza col PC

65
Q

QUALITA SOFTWARE efficienza?

A

per limitare gli accessi alla memoria secondaria

66
Q

due modi standard in cui un nodo può essere stereotipato. in un DIAGRAMMA DI DEPLOYMENT

A

I due stereotipi standard dei nodi sono: «device», rappresenta un tipo di periferica fisica, come un PC;
«executionEnviroment», rappresenta un tipo di ambiente software di esecuzione, ad esempio un web server.

67
Q

A quali tipi di ELEMENTI UML si applica la relazione di contenimento, rappresentata da un segno + circondato da un
cerchio?

A

ai package

68
Q

Quali diagrammi UML possono avere sia forma di descrittore sia forma di istanza?

A

deployment
classi

69
Q

classi appartenenti al metamodello del DIAGRAMMA DELLE CLASSI? dinne almeno 5

A

dipendenza
classe
attributo
operazione
associazione
aggregazione
composizione
generalizzazione
pacchetto

70
Q

classi presenti nel metamodello di un DIAGRAMMA DEGLI STATI? dinne almeno 5

A

-evento
-azione
-attività
-transizione
-stato
-stato composto

71
Q

QUALITA’ DEL SOFTWARE TRASPARENZA?

A

La trasparenza è una qualità di processo, un processo di produzione software si dice trasparente se permette di capire il suo stato attuale e tutti i suoi passi.

72
Q

QUALITA’ DEL SOFTWARE CORRETTEZZA?

A

La correttezza è una qualità esterna relativa al prodotto, risulta se il software rispetta le specifiche di progetto.

73
Q

QUALITA’ DEL SOFTWARE “facilità di manutenzione”?

A

se permette ricerca facile di errori
se riesce a gestire facilmente ERRORI PERFETTIVI ed ERRORI EVOLUTIVI

74
Q

il metodo FUNCTION POINTS per quali progetti viene utilizzato per misurare?

A
  • progetti di sviluppo
    -progetti di manutenzione evolutiva
    -applicazione esistente(calcola i FP “installati”)

in generale, viene usato per misurare durante TUTTO il tempo di vita di un applicazione

75
Q

due tipi di FUNZIONI TIPO DATI?

A

-ILF
-EIF

76
Q

ILF?

A

File interno logico ILF
è un gruppo di dati o informazioni di controllo logicamente collegati e
riconoscibili dall’utente che sono mantenuti all’interno dei confini
dell’applicazione

77
Q

EIF?

A

File esterno di interfaccia EIF
è un gruppo di dati o informazioni di controllo logicamente collegati e
riconoscibili dall’utente che sono referenziati dall’applicazione ma sono
mantenuti all’interno dei confini di un’altra applicazione

Questo significa che un EIF contato per un’applicazione deve essere un ILF in
un’altra applicazione

78
Q

FUNZIONI DI TIPO TRANSAZIONE?

A

EI
EO
EQ

79
Q

il NUMERO TOTALE DEI FUNCTION POINTS FP viene moltiplicato per qualcosa?

A

per un “fattore di aggiustamento”
basato su 14 caratteristiche del sistema
tra 0.65 e 1.35, poi sommato con il TDI

80
Q

cos’è il NUMERO CICLOMATICO di un grafo fortemente connesso?

A

è il numero minimo di archi per trasformarlo in un albero
= e - n + 1
(e è il numero di archi, n è il numero dei nodi)

81
Q

cos’è il NUMERO CICLOMATICO di un programma?

A

è misura della complessità del suo flusso di controllo; è il numero ciclomatico del grafo modificato v(G) ed esprime il NUMERO DI CAMMINI LINEARMENTE INDIPENDENTI NEL GRAFO DI CONTROLLO
v(G) = e - n + 2

82
Q

per la misurazione del software, cos’è il COnstructive COst MOdel?
(ha due step genericamente)

A

il COCOMO
1)calcola una stima iniziale dei costi di sviluppo in base alla dimensione del software(KDSI = numero di righe di codice scritte).
2) poi migliora la stima in base ad una serie di parametri
(in base a categoria di difficoltà del software(3 difficoltà) )
(applicazione dei stimatori di costo)

83
Q

caratteristiche in comune dei modelli prescrittivi? (waterfall, incrementale, …)

A

stesse attività strutturali generiche:
- comunicazione
- pianificazione
- modellazione
- costruzione (comprende il testing)
- deployment

84
Q

MODELLO A CASCATA? 3 caratteristiche

A
  • inadeguato se requisiti incerti
  • non può modificare errori passati
  • solo al termine c’è una versione funzionante del programma
85
Q

MODELLO INCREMENTALE?

A
  • consiste nell’applicare più sequenze lineari, scalate nel tempo, ognuna delle quali
    produce uno stadio operativo del software
  • in seguito alla creazione di un prodotto base, si prevede l’aggiunta di nuove funzionalità
  • è adatto a progetti in cui i requisiti iniziali sono ben definiti
86
Q

in che casi fallisce MODELLO RAD?

A
  • gli utenti non riescono a tenere il passo
  • il sistema non è modularizzabile
87
Q

PROTOTIPAZIONE USA E GETTA?

A

Usata per ridurre il rischio dei requisiti incerti
- Il prototipo è sviluppato da una specifica iniziale, consegnato per
sperimentazione e quindi gettato
NON c’è manutenzione a lungo termine

88
Q

PROTOTIPAZIONE EVOLUTIVA?

A
  • parte con requisiti iniziali ben definiti, a differenza di prototipazione usa e getta
  • tempo di vita corto, perché il mantenimento è costoso, date le continue modifiche
89
Q

MODEL-DRIVEN DEVELOPMENT?

A

MDD è un tipo di sviluppo in cui si creano modelli formali del software che
vengono poi fatti evolvere mentre il sistema viene progettato e
implementato

90
Q

attività strutturale “pianificazione” EXTREME PROGRAMMING

A
  • definisce un insieme di user story che descrivono le funzionalità del
    software
  • a ogni user story il cliente assegna un valore che ne definisce la priorità
  • i progettisti assegnano a ogni user story un costo (in settimane di sviluppo)
  • se una user story richiede più di 3 settimane di sviluppo, si chiede al
    cliente di frammentarla
91
Q

attività strutturale “design” EXTREME PROGRAMMING

A

fa “refactoring”, ripulitura e riorganizzazione del software

nel caso di problemi di design, si usa un prototipo operativo “spike solution”

92
Q

attività strutturale “testing” EXTREME PROGRAMMING

A
  • definisce degli unit test, ossia test di ogni singolo componente
  • test di regressione a ogni modifica del software
93
Q

Nell’EXTREME PROGRAMMING perché si calcola alla fine la “velocità del progetto”?

A
  • determinare se le user story sono state sottovalutate, ed
    eventualmente modificare il contenuto delle prossime release o le loro
    date di consegna
94
Q

cosa sono i FLUSSI DI LAVORO e quando vengono svolti? (requisiti,analisi,…)

A

vengono svolti
dal progetto in ogni iterazione

  • Requisiti
  • Analisi: mette a punto i requisiti
  • Progettazione: concretizza i requisiti in un’architettura del sistema
  • Implementazione: costruisce il software
  • Test: verifica che l’implementazione rispetti i requisiti
  • Deployment: descrive la configurazione del sistema
95
Q

cosa sono le 4 FASI e cosa c’entrano con i FLUSSI DI PROGRAMMAZIONE?

A

Le fasi sono sequenziali.
Ogni fase può essere composta da una o più iterazioni.

  • Inception (avvio): definisce gli obiettivi del progetto
  • Elaboration: pianifica il progetto
  • Construction: sviluppa il prodotto attraverso una serie di iterazioni,
    effettua il testing
  • Transition: consegna il sistema agli utenti finali (include marketing,
    installazione, supporto, mantenimento)
96
Q

cos’è la FASE di VERIFICA DEL SOFTWARE?

A

La fase di verifica del software ha lo scopo di controllare se il sistema realizzato
risponde alle specifiche di progetto. La verifica non coinvolge solo il prodotto finale
ma segue passo per passo il progetto e lo sviluppo del prodotto

Le tecniche di verifica del sw possono essere classificate come:
* Dinamiche o di testing:
* Statiche o di analisi:

97
Q

cos’è il TESTING (nella fase di verifica del software)

A

Le operazioni di testing si suddividono in:
* Testing in the small: riguardano moduli singoli e porzioni specifiche del codice che
rivestono una particolare importanza o che hanno una particolare complessità
* Testing in the large: riguardano il sistema nella sua globalità

98
Q

nel TESTING IN THE SMALL (della fase di verifica del software) come funziona “Criterio di copertura dei programmi (statement test)”

A
  • si basa sull eseguire ogni parte di codice, in modo da trovare tutti gli arrori
    Può essere eseguito solo conoscendo la struttura interna della porzione di
    codice (white-box testing)
99
Q

nel TESTING IN THE SMALL(della fase di verifica del software) come funziona “Criterio di copertura delle decisioni (branch test)”

A
  • Il criterio richiede che per ogni condizione presente nel codice sia utilizzato un
    test che produca il risultato TRUE e FALSE
  • [Si basa sul flusso di controllo e non sull’insieme di istruzioni]
  • Può essere eseguito solo conoscendo la struttura interna della porzione di
    codice (white-box testing)
100
Q

nel TESTING IN THE SMALL(della fase di verifica del software) come funziona “Criterio di copertura delle decisioni e delle condizioni”

A
  • Il criterio richiede che, per ogni porzione di condizione composta presente nel
    codice, sia utilizzato un test che produca il risultato TRUE e FALSE.
  • Il criterio produce un’analisi più approfondita RISPETTO AL CRITERIO DI COPERTURA DELLE DECISIONI
  • Può essere eseguito solo conoscendo la struttura interna della porzione di
    codice (white-box testing)
101
Q

come funziona TESTING IN THE LARGE(della fase di verifica del software)

A

ci sono troppe possibili situazioni quando si esaminano sistemi di grandi dimensioni, quindi è impossibile l’utilizzo di tecniche white-box.

Si rende quindi necessario valutare il funzionamento del sistema sulla base delle
corrispondenze input-output. Il sistema è considerato una scatola nera (black-box
testing).

102
Q

che 3 tipi di test vengono svolti nel TESTING IN THE LARGE

A

Test di modulo: verifica se un modulo è stato implementato correttamente
Test d’integrazione: verifica il comportamento di sottoparti del sistema sulla base del loro comportamento esterno.
Test di sistema: verifica il comportamento dell’intero sistema sulla base del suo
comportamento esterno

103
Q

cos’è ANALISI DEL SOFTWARE (nella fase di verifica del software)?

A

significa analizzre un software e capirne le caratteristiche e funzionalità

I due principali approcci all’analisi del software sono Code walk-through e
Code inspection

104
Q

cos’è CODE WALKTHROUGH (dell ANALISI DEL SOFTWARE)

A

È un tipo di analisi informale eseguita da un team di persone che dopo aver
selezionato opportune porzioni del codice e opportuni valori di input ne simulano
su carta il comportamento

centrato sulla ricerca id problemi, non sulla loro soluzione

105
Q

cos’è CODE INSPECTION (dell ANALISI DEL SOFTWARE)

A

L’analisi, eseguita da un team di persone e organizzata come nel caso del code
walk-through, mira a ricercare classi specifiche di errori.
Il codice viene
esaminato controllando soltanto la presenza di una particolare categoria di
errore, piuttosto che simulando una generica esecuzione.

106
Q

cos’è ANALISI DEL FLUSSO DI DATI(nell ANALISI DEL SOFTWARE)

A
107
Q
A