Istituzioni di ingegneria del software
[Lezione 2] - Il processo software
15/02/2017
1 In questa lezione
2 Il processo software ideale
3 Il processo software reale
***
2 Il processo software ideale
Definizione 2.2.a: Il processo software ideale
Il processo software ideale iSP è l’insieme di tutte le possibili coppie ordinate definite da un’attività e dall'insieme dei risultati dell’attività.
iSP={ <ai,{ri,j}>, i=1÷n, n≥1, j=1÷mi, mi≥1}.
La figura 1 rappresenta graficamente un modello di processo software ideale di cardinalità |iSP|=8 (ossia: rappresenta un modello secondo il quale il numero massimo delle attività utili allo sviluppo di un sistema software è 8).
iSP={<a1,{r1,1;r1,2;r1,3}>,<a2,{r2,1;r2,2}>,<a3,{r3,1}>,<a4,{r4,1}>,<a5,{r5,1;r5,2;r5,3}>,<a6,{r6,1}>,<a7,{r7,1;r7,2;r7,3}>}.
Figura 1 – Modello di processo software ideale.
Il modello di processo software della figura 1 è costituito dalle attività: a1, a2, a3, a4, a5, a6, a7 e a8, ossia: secondo il modello sono necessarie otto attività per costruire un sistema software. L’attività a1 produce i risultati: r1,1, utile all’attività a2, r1,2, utile all’attività a3, e r1,3, utile all’attività a4; l’attività a2 produce il risultato r2,1, utile all’attività a5 e il risultato r2,2 utile all’attività a1 (risultato di controllo o feedback); l’attività a3 produce il risultato r3,1, utile all’attività a6; l’attività a4 produce il risultato r4,1, utile alle attività a6 e a7; l’attività a5 produce i risultati r5,1 e r5,2, utili entrambi all’attività a8 e il risultato r5,3 utile all’attività a2 (risultato di controllo o feedback); l’attività a6 produce il risultato r6,1, utile all’attività a8; e, infine, l’attività a7 produce il risultato r7,1, utile all’attività a8, il risultato r7,2 utile all’attività a4 (risultato di controllo o feedback) e il risultato r7,3 utile all’attività a1 (risultato di controllo o feedback). L’attività a1 è quella che innesca il processo; l’attività a8 è quella che lo conclude.
Nota: i risultati di controllo o feedback (r2,2; r5,3; r7,2; r7,3) introducono sotto processi software ciclici all’interno del processo software. A esempio: le attività a4 e a7 del processo software della figura 1 generano un sotto processo ciclico se l’attività a4 produce il risultato r4,1 utile all’attività a7, ma l’attività a7 giudica insufficiente il risultato r4,1 e produce il risultato di feedback r7,2 utile all’attività a4 per produrre un nuovo risultato r4,1. Fintantoché l’attività a7 giudica il risultato r4,1 inaccettabile l’intero processo software non ha termine poiché l’attività a7 non produce il risultato r7,1 e l’attività a8, senza il risultato r7,1 non può essere compiuta. Bisogna notare infine che l’attività a6, a differenza dell’attività a7, non ha bisogno di generare un feedback per l’attività r4, ossia: il primo risultato r4,1 è accettabile per l’attività a6 e gli eventuali altri risultati r4,1, richiesti dall’attività a7 sono scartati dall’attività a6.
Nota: Un processo software ideale è un sistema astratto SA. Gli elementi di SA sono le coppie ordinate ; e le relazioni interne Ri sono le leggi che specificano la comunicazione tra le attività; e che stabiliscono come e perché le attività sono legate tra loro. La figura 2 rappresenta graficamente tale modello per il processo software ideale della figura 1. Infatti il processo software ideale, qualunque sia la sua cardinalità, ha lo scopo di produrre un sistema software SW, che può essere definito come l’output della scatola nera iSP.
Figura 2 – Modello di sistema astratto di un processo software ideale.
3 Il processo software reale
Definizione 2.3.a: Il processo software ideale
Un processo software reale, o processo software, rSP è un insieme di sottoinsiemi del processo software ideale iSP, ossia: è un insieme di modelli del processo software ideale.
rSP={mSPh,: mSPh ⊂ iSP, h=1÷w, w≥1}.
In sintesi dobbiamo figurarci il processo software ideale iSP come l’insieme di tutti i possibili tipi di informazione necessari alla realizzazione di un sistema software SW; e il processo software reale (o processo software) rSP come un insieme di modelli, ciascuno relativo a un tipo di informazione o a una relazione tra informazioni. Facciamo un esempio: se volessimo considerare solo le attività concernenti la specifica dei requisiti, l’architettura di sistema, lo sviluppo del codice sorgente e i test nel processo software ideale rappresentato dalla figura 1, ossia se volessimo considerare solo l’informazione ‘software’ del processo allora proietteremmo sul ‘piano software’ il processo iSP, e otterremmo le attività che hanno come risultato globale lo sviluppo del codice sorgente, a esempio le attività: a1, a4, a6 e a7. La figura 3 rappresenta graficamente la proiezione del processo software ideale iSP della figura 1 sul ‘piano software’, ossia: evidenzia le attività a1, a4, a6 e a7 coinvolte nell’implementazione del codice sorgente. In questo modello l’attività a1 è quella della specifica dei requisiti di sistema; l’attività a4 è quella della specifica dell’architettura di sistema; l’attività a6 è quella dell’implementazione del codice sorgente; e l’attività a7 è quella del test.
Figura 3 – Modello della proiezione di un processo software ideale.
Un processo software reale quindi è una delle possibili realizzazioni del processo software ideale, ossia è una proiezione delle attività ideali sul piano delle necessità variabili dei singoli e delle organizzazioni; esistono quindi modelli di processo software reale differenti, personalizzati per gli scopi dei singoli e delle organizzazioni. Ecco perché si parla di processi software ideale e reale. Il processo software ideale è unico ed è un’astrazione; i processi software reali sono tanti quanti sono i processi informativi coinvolti nella loro attuazione.
Figura 4 – Modello di processo software reale.
Nota: Qualsiasi sia il processo software, ossia qualsiasi sia l’insieme dei modelli del processo software, questo prevede sempre cinque attività standard: a) la specifica dei requisiti di sistema; b) il progetto dell’architettura di sistema; c) lo sviluppo del codice sorgente; d) il test di unità, di integrazione e di sistema; e) il progetto dell’evoluzione di sistema. La Figura 5 mostra le relazioni esistenti tra le attività standard.
Figura 5 – Le attività standard di un processo software reale.