Cap2 Processi Flashcards

1
Q

Quali sono i processi dello sviluppo di un software?

A

Specifiche – definire cosa il sistema deve fare;
Progettazione e implementazione – definire la progettazione e l’implementazione del sistema;
Validazione – controllare che il sistema fa ciò che vuole il cliente; (diverso da “verifica”: controllare se il sistema faccia una certa cosa);
Evoluzione – cambiare il software in base al cambiamento dei bisogni del cliente.

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

Cosa include la descrizione di un processo, oltre alla scelta di un data model, progetto di interfacce…?

A

Prodotti - output;
Ruoli - ossia le responsabilità delle persone;
Pre e Post condizioni - quello che è vero prima e dopo un’attività.

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

Qual è la differenza tra processi agile e plan-driven?

A

Agile - la pianificazione è incrementale ed è più facile modificare il processo riflettendo le modifiche dei requisiti del cliente;
Plan-driven - tutte le attività sono pianificate in anticipo e il progresso è misurato in base a questo piano.

In generale i processi di solito includono sia elementi agile che plan-driven, e non ce n’è uno più giusto.

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

Quali sono i modelli di processi software?

A

Modello Waterfall - è un modello plan-driven. Si inizia dalle specifiche, si sviluppa, e quando si finisce si testa dall’inizio. Ci sono fasi distinte e separate di specifica e sviluppo, e la fase successiva non inizia finchè quella precedente non è terminata;
Sviluppo incrementale - può essere agile o plan-driven. Attività di specifica, sviluppo e validazione sono intervallate;
Integrazione e Configurazione - può essere agile o pla-driven. Il sistema si costruisce assemblando e configurando elementi già esistenti.

In generale, i processi sono un mix di questi tre modelli.

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

Quali sono i problemi del modello waterfall?

A

Una partizione inflessibile del progetto in stages distinti rende difficile rispondere a cambiamenti dei requisiti del cliente. Questo modello infatti è adatto sono in quei casi in cui i requisiti siano ben definiti e le modifiche siano ridotte al minimo.
Spesso nei casi in cui ci sia un grande software con stage divise tra varie aziende, questo modello diventa obbligatorio per coordinare il lavoro.

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

Quali sono i benefici dello sviluppo incrementale?

A
  • Il costo del riadattamento ai cambiamenti dei requisiti del clienti sono ridotti;
  • è più facile ricevere feedback dal cliente sullo sviluppo del lavoro;
  • è più veloce consegnare e sviluppare software utilizzabile dal cliente.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quali sono i problemi dello sviluppo incrementale?

A
  • Il processo non è visibile, quindi diventa difficile misurare il progresso del software; inoltre è costoso la produzione della documentazione che cambia ad ogni versione;
  • la struttura si degrada a ogni aggiunta di software; introdurre ogni pezzetto è sempre più difficile e costoso.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Quali sono i vantaggi e gli svantaggi di riutilizzare componenti software già esistenti?

A

Vantaggi - costi ridotti, rischi minimi, sviluppo più veloce;
Svantaggi - requisiti compromessi (il software riutilizzato può non rispecchiare totalmente i requisiti del cliente); poco controllo sull’evoluzione del software (potrebbe essere dismesso dall’azienda che lo produce).

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

Cos’è il processo delle specifiche e l’engineering dei requisiti di un software?

A

Il processo di stabilire quali servizi sono richiesti e i vincoli dello sviluppo del software.
L’engineering dei requisiti consiste nelle fasi:
- Tirare fuori i requisiti e analizzarli. Cosa si aspetta il cliente da questo software?
- specifica chiara e dettagliata dei requisiti
- controllo della validità di questi requisiti, fanno ciò che il cliente vuole?

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

Cos’è il processo di progettazione e implementazione di un software?

A

Il processo di conversione delle specifiche di sistema in un sistema eseguibile.
Si progetta una struttura software che realizza le specifiche;
si traduce questa struttura in un programma eseguibile.
Spesso queste due attività sono intervallate.

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

Quali sono le attività del processo di progettazione di un software?

A

Progettazione dell’architettura - identificare la principale struttura del sistema, le principale componenti (sottosistemi e moduli) e le loro relazioni;
Progettazione del database - progettare il sistema delle strutture dati e come sono rappresentate in un database;
Progettazione interfaccia - progettare le interfacce tra le varie componenti;
Selezione e progettazione delle componenti - cercare componenti già scritte da poter riutilizzare, in alternativa progettarle da zero.

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

In cosa consiste il processo di implementazione di un software?

A

Il software è implementato sviluppando i programmi.
Questo processo si intervalla con quello di progettazione.
La programmazione è un’attività individuale senza procedimenti standard.
Il debugging è l’attività di trovare errori e correggerli.

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

In cosa consiste il processo di validazione di un software?

A

Verifica e validazione (V&V) vogliono mostrare la conformità di software alle specifiche e ai requisiti del cliente.
Consiste nel controllare e revisionare i processi e testare il sistema. Testare il sistema consiste nell’eseguire i programmi con vari test cases.

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

Quali sono le fasi del testing?

A

Component testing - testare le singole componenti in modo indipendente;
System testing - Testare il sistema nella sua interezza;
Customer testing - testare con i dati del cliente per controllare che il sistema soddisfa i bisogni reali del cliente.

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

In cosa consiste il processo di evoluzione di un software?

A

Il software è intrinsecamente flessibile e può cambiare.
I requisiti cambiano al cambiare del contesto del business, e così il software deve cambiare ed evolvere.

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