La Progettazione del Software

Pagina creata da Letizia Pugliese
 
CONTINUA A LEGGERE
La Progettazione del Software

                                                Definizioni IEEE
                           Metodologie di progettazione
                              Principi di progettazione
                 Tecniche di progettazione (top down e bottom up)
                 Moduli e criteri di modularizzazione: coesione ed
                    accoppiamento, indipendenza Funzionale
                  Notazione e specifica di progetto: GDN e TDN

Anna Rita Fasolino- Ingegneria del Software -                        1
La Progettazione

                          La fase di Progettazione
IEEE Std 610.12-1990

Anna Rita Fasolino- Ingegneria del Software -                        2
La Progettazione

                                                                         1
Anna Rita Fasolino- Ingegneria del Software -   3
La Progettazione

Anna Rita Fasolino- Ingegneria del Software -   4
La Progettazione

                                                    2
La progettazione
     – l’insieme delle attività che, a partire dalla specifica dei
       requisiti del sistema software, producono un modello del
       sistema da realizzare (una soluzione al problema...)
     – da un modello del dominio applicativo ad un modello
       della soluzione da attuare
     – mappare” i requisiti specificati su elementi che dovranno
       essere fisicamente realizzati
     – individuazione e specificazione degli elementi da
       realizzare, delle relazioni tra tali componenti, e di come
       realizzarli
     – il tutto sempre in accordo ai requisiti software specificati
       nella fase di analisi

Anna Rita Fasolino- Ingegneria del Software -                       5
La Progettazione

       Requisiti Software

Low Level
Design

                                                High Level Design
Anna Rita Fasolino- Ingegneria del Software -                       6
La Progettazione

                                                                        3
Livelli di progettazione

    • High level design (o progetto architetturale)
           – identificazione e specifica delle componenti strutturali del
             sistema e delle loro inter-connessioni
    • Low level design (o progetto di dettaglio )
           – decisione su come la specifica delle componenti sarà
             realizzata (descrizione dettagliata della logica di
             elaborazione)
    • Data design
           – definizione delle strutture logiche dei dati

Anna Rita Fasolino- Ingegneria del Software -                               7
La Progettazione

                        La fase di progettazione

    • Input alla fase di progettazione:
           – la specifica del sistema da realizzare (quanto più completa,
             consistente, non ambigua)
    • Output della fase:
           – progetto architetturale
           – progetto di dettaglio
           – Progetto dei dati
    • Terminazione ed uscita dalla fase:
           – verifica del progetto rispetto alla specifica
           – valutazione ed approvazione della sua qualità

Anna Rita Fasolino- Ingegneria del Software -                               8
La Progettazione

                                                                                4
Fasi di un processo di design
          Requirements
          specification

                                                          Design acti
                                                                   vities

Architectur
          al                                Interface            Component          Data          Algorithm
                      Abstract
  design                                     design               design          structur
                                                                                         e         design
                    specification
                                                                                   design

                      Softwar e                                                      Data
  System                                    Interface             Component                       Algorithm
                    specification                                                  structure
architectur
          e                               specification          specification                   specification
                                                                                 specification

                                                          Design pr
                                                                  oducts

 Anna Rita Fasolino- Ingegneria del Software -                                                           9
 La Progettazione

                          Fasi di un processo di design
 • Architectural design
              Definizione dei componenti (sottosistemi) software e loro relazioni
 • Abstract specification
              Specifica di alto livello dei componenti
 • Interface design
              Definizione e specifica delle interfacce dei componenti
 • Component design
              Specifica dettagliata dei singoli componenti
 • Data structure design
              Progettazione delle strutture dati atte a contenere i dati del
              problema
 • Algorithm design
              Progettazione degli algoritmi per le funzioni del problema
 Anna Rita Fasolino- Ingegneria del Software -                                                         10
 La Progettazione

                                                                                                                 5
Design quality

  Design quality is an elusive concept

  • Un “buon” design può essere il più efficiente, il più
    economico, il più manutenibile, il più affidabile, etc.
  • Gli attributi riguardano anche la manutenibilità del
    progetto
  • Caratteristiche di qualità sono ugualmente applicabili a
    progettazione function-oriented e object-oriented

Anna Rita Fasolino- Ingegneria del Software -              11
La Progettazione

                                      Design goals

Design for change
   • anticipare i cambiamenti plausibili
   • non concentrarsi sulle necessità di oggi, ma pensare
     alla possibile evoluzione
   • ma anche ... non fare assunzioni che si sa che
     domani si riveleranno false
           » es., the Y2K problem

Component family
   • pensare ad un componente (es. programma) come ad
     un membro di una famiglia

Anna Rita Fasolino- Ingegneria del Software -              12
La Progettazione

                                                                6
Design for change
    Semplici esempi:
    • Cambiamenti negli algoritmi
            da bubblesort a quicksort
    • Cambiamenti nelle strutture dati
           17% dei costi di manutenzione
    • Cambiamenti nella “underlying abstract machine”
            Periferiche hardware, OS, DBMS, …
                     new releases, portability problems
    • Cambiamneti nell’ambiente (es., EURO)
    • Cambiamenti dovuti alla strategia di sviluppo
            evolutionary prototype

Anna Rita Fasolino- Ingegneria del Software -                                13
La Progettazione

                                Component family
Pensare ad un componente e a tutte le sue varianti come un
membro di una famiglia
  • l’obiettivo è di progettare l’intera famiglia, non ogni singolo
         individuo della famiglia separatamente
Esempio di component family: Un sistema a supporto di
prenotazioni
   • per un hotel:
             prenota stanze, ristorante, spazio per conferenze, …
             apparecchiature (video beams, overhead projectors, …)
      • per una università:
             molte funzionalità sono simili, alcune sono diverse (es., facilities
             possono essere gratis o meno)

Anna Rita Fasolino- Ingegneria del Software -                                14
La Progettazione

                                                                                    7
A parità di specifica dei requisiti sono possibili differenti soluzioni
progettuali
Scegliere quella che consentirà di realizzare il sistema con il più elevato
livello di qualità, rispetto ai requisiti

 In particolare, i componenti dovrebbero essere progettati in modo da
 essere:
          • facilmente costruibili
          • facilmente collaudabili
          • facilmente comprensibili
          • facilmente correggibili
          • facilmente modificabili
          • affidabili
          • corrette
          • ……….
 Uso di principi e metodologie di progettazione
    – definiscono un approccio sistematico alla definizione del
        progetto, attraverso l'applicazione di tecniche e linee guida
Anna Rita Fasolino- Ingegneria del Software -                              15
La Progettazione

                        Principi di progettazione

    • Perché i principi?
           – La progettazione è un’attività estremamente creativa, non
             riducibile ad un insieme di passi da seguire
           – I principi di riferimento guidano verso il raggiungimento degli
             obiettivi di qualità per il progetto
           – Correttezza, Verificabilità, Completezza, Tracciabilità,
             Semplicità del progetto conducono verso...
           – Manutenibilità, Modificabilità, Comprensibilità, Riusabilità del
             software
    • alcuni principi: Decomposizione, Raffinamento,
      Astrazione, Information Hiding, Modularità,
      Anticipazione del cambiamento..

Anna Rita Fasolino- Ingegneria del Software -                              16
La Progettazione

                                                                                8
Decomposizione
    •    Decomporre il Sistema in sottosistemi, gestibili separatamente, per
         dominarne la complessità
    •    P= problema, C=complessità di P, E=sforzo per la risoluzione di P
          Dati 2 problemi P1 e P2
          se C(P1) > C(P2), allora E(P1)> E(P2)
           ma è stato dimostrato che C(P1+P2)> C(P1) + C(P2),
           e quindi si ha che E(P1+P2)> E(P1) + E(P2)

  La scomposizione introduce Costo                Costo totale
  il problema della                                                   Costo
  comunicazione fra le varie                                          interfacciamento
  parti, il che aggiunge                                         Costo modulo
  complessità per
  l’interfacciamento.
                                                                 Numero di moduli
Anna Rita Fasolino- Ingegneria del Software -                                   17
La Progettazione

                                       Raffinamento

    • Gli elementi individuati con la decomposizione sono
      ulteriormente decomposti per passi successivi
    • …. generazione di strutture gerarchiche

Anna Rita Fasolino- Ingegneria del Software -                                   18
La Progettazione

                                                                                         9
Astrazione

    • Permette di concentrarsi su un problema ad un
      determinato livello di astrazione, senza perdersi in
      dettagli irrilevanti
    • Permette di descrivere un componente tramite il suo
      comportamento esterno senza preoccuparsi dei
      dettagli interni che lo producono
    • E’ fondamentale nel partizionamento, giacché
      consente di individuare le componenti del sistema e
      le modalità di interazione

Anna Rita Fasolino- Ingegneria del Software -                             19
La Progettazione

                              Forme di astrazione

    • funzionale:
           – completa definizione di una funzionalità indipendentemente
             dall’algoritmo che la implementa
    • di dati:
           – completa definizione di un dato o un tipo di dato in base alle
             operazioni che su di esso possono essere fatte, senza
             definirne una struttura concreta
    • di controllo:
           – completa definizione di un meccanismo di controllo senza
             indicarne i dettagli interni, ad esempio semafori per
             sincronizzare processi concorrenti

Anna Rita Fasolino- Ingegneria del Software -                             20
La Progettazione

                                                                               10
Information Hiding

    • consiste nel rendere invisibili i dettagli interni di un
      modulo, e nel rendere inaccessibili, a componenti
      che non ne necessitano, i dettagli di strutture dati e
      strutture procedurali.

Anna Rita Fasolino- Ingegneria del Software -                            21
La Progettazione

                                           Modularità
    •    E’ una conseguenza del principio di decomposizione: il progetto
         deve essere modulare, con moduli ben definiti, facilmente
         gestibili e con interfacce ben definite

    •    ….. architettura del software è vista come l’organizzazione della
         struttura modulare, cioè moduli + relazioni fra di essi

           – ogni modulo implementa un’astrazione, potenzialmente
             riusabile nello stesso o in altri sistemi;
           – ogni astrazione ha un unico e ben definito scopo;

Anna Rita Fasolino- Ingegneria del Software -                            22
La Progettazione

                                                                              11
Modulo

    • Un modulo è un’entità SW identificata da un nome
      che:
           – contiene istruzioni, strutture dati, controllo
           – può essere incluso in un altro modulo
           – può usare un altro modulo.
           – In termini di costrutti di programmazione : una macro, un
             programma, un sottoprogramma, un processo, un package

    •    …. considereremo il modulo come un contenitore per esprimere
         astrazioni (funzionali, di strutture dati, di controllo)

Anna Rita Fasolino- Ingegneria del Software -                               23
La Progettazione

                     Tecniche di progettazione

    • Approccio Top- down
           – si parte con l’identificazione dei principali componenti del
             sistema, i quali vengono decomposti in componenti di più
             basso livello, iterando finché viene raggiunto il desiderato
             livello di dettaglio (Step-wise Refinement)
    • Approccio Bottom-up
           – si parte progettando i componenti basilari di basso livello e si
             procede con i componenti di più alto livello che utilizzano i
             primi.
           – Si procede dunque per livelli di astrazione (layers of
             abstraction)

Anna Rita Fasolino- Ingegneria del Software -                               24
La Progettazione

                                                                                 12
Decomposizione funzionale

    • Ciascun modulo implementa una specifica
      funzionalità dei requisiti (o sub-funzionalità) ed ha
      una interfaccia semplice verso gli altri moduli
      (indipendenza funzionale)
           – Minimizzare il numero e la complessità delle inter-
             connessioni fra moduli
           – Massimizzare la forza interna di un modulo intesa come
             contributo alla funzionalità dato da ciascun modulo
    • Criteri per la modularizzazione: Coesione ed
      Accoppiamento

Anna Rita Fasolino- Ingegneria del Software -                                    25
La Progettazione

                                                Coesione
    •    Esprime il grado di correlazione fra gli elementi all’interno di un
         modulo.
           – Un modulo coesivo esegue un singolo compito e richiede poca
             interazione con le procedure eseguite in altre parti del software
    •    coesione ⇒ un modulo deve esprimere 1 sola astrazione
    •    (1 funzione, 1 oggetto, 1 tipo astratto, 1 oggetto generico, 1 tipo
         astratto generico, 1 politica, 1 controllo)
    •    Spettro di coesione
                 •   Casuale
                                                       -
                 •   Logica
                 •   Temporale
                 •   Procedurale
                 •   Comunicazionale
                 •   Sequenziale
                 •   Funzionale
                                                       +
Anna Rita Fasolino- Ingegneria del Software -                                    26
La Progettazione

                                                                                      13
Spettro di Coesione
     •     coesione casuale: un modulo svolge attività poco correlate fra loro;
     •     coesione logica: un modulo svolge attività logicamente correlate fra loro
           (trattamento errori, stampa risultati,…);
     •     coesione temporale: un modulo svolge attività che devono essere
           eseguite in uno stesso intervallo di tempo (inizializzazione,
           terminazione,…);
     •     coesione procedurale: un modulo svolge attività correlate da eseguirsi in
           uno specifico ordine;
     •     coesione comunicazionale: un modulo svolge attività che si riferiscono
           ad un insieme di dati comune;
     •     coesione sequenziale: un modulo svolge attività per cui l’output di
           un’attività è l’input della successiva;
     •     coesione funzionale: un modulo svolge un’unica attività e nessun’altra
           aggiuntiva, tutti gli elementi del modulo sono strettamente correlati e
           contribuiscono alla realizzazione dell’attività

Anna Rita Fasolino- Ingegneria del Software -                                        27
La Progettazione

            RICONOSCIMENTO DELLA COESIONE

    •    Una regola empirica per determinare la coesione è la seguente:
                 • descrivere la funzione del modulo con una frase:
                 • se la frase è composta, contiene virgole o più di un verbo, il
                   modulo probabilmente svolge più di una funzione; (sequenziale
                   - comunicazionale - logica)
                 • se la frase fa riferimento al tempo ( prima, dopo, quando, alla
                   fine, …) probabilmente coesione sequenziale, temporale o
                   procedurale;
                 • se la parte predicativa non ha, dopo il verbo, un singolo oggetto
                   specifico, probabilmente coesione comunicazionale o logica
                   (ad es. “stampa tutti i dati”, … ma “stampa tutti i dati della
                   fattura” ha coesione funzionale);
                 • parole come inizializza, pulisci, implicano coesione temporale

Anna Rita Fasolino- Ingegneria del Software -                                        28
La Progettazione

                                                                                          14
RICONOSCIMENTO DELLA COESIONE

                                                                   Nel modulo si riconosce una funzione
                                                                   del dominio di applicazione ?

                                                      no                                          s i

                                     cosa lega le
                                     attività nel modulo                                      funzionale

                         Flusso di controllo                          N e s s u n o d e i d u e

                                                Flusso dei dati

                E’ importante                         E’ importante                                      Le attività
                la sequenza ?                         la sequenza ?                                      appartengono
                                                                                                         alla stessa
                                                                                                         categoria ?

              n o               si                    no                         si                      no         si

         Temporale         Procedurale          C o m u n i c a z i o n .     Sequenz.                  Casuale   Logico

Anna Rita Fasolino- Ingegneria del Software -                                                                              29
La Progettazione

                                       Accoppiamento

    • Esprime la forza di inter-connessione fra moduli
           – maggiori connessioni implicano maggiore dipendenza fra
             moduli, ossia maggiore conoscenza di un modulo richiesta
             per comprendere un altro modulo (implicazioni su
             comprensibilità e manutenibilità del modulo)
    • Minimizzare l’accoppiamento, semplificando:
           – tipo di connessione (solo connessioni attraverso l’interfaccia,
             non patologiche)
           – complessità dell’interfaccia (numero e tipo di parametri)
           – tipo di flusso di informazioni fra moduli (dati / controlli)

Anna Rita Fasolino- Ingegneria del Software -                                                                              30
La Progettazione

                                                                                                                                15
Spettro di accoppiamento

           •   nessun accoppiamento diretto;
           •   accoppiamento per dati: lista di parametri costituiti da dati
               semplice;
           •   accoppiamento per strutture: struttura dati passata tramite
               interfaccia;
           •   accoppiamento per controllo: passaggio di flag condizionanti
               l’esecuzione in un altro modulo;
           •   accoppiamento esterno: associazione ad elementi esterni (ad es.
               I/O a specifici dispositivi);
           •   accoppiamento per aree comuni: condivisione di aree dati
               comuni;
           •   accoppiamento per contenuto: un modulo usa e modifica dati o
               informazioni di controllo propri di un altro modulo.

Anna Rita Fasolino- Ingegneria del Software -                               31
La Progettazione

         Obiettivi della progettazione modulare

    • massimizzare la coesione interna: per migliorare la
      comprensibilità del modulo e la sua modificabilità;
    • minimizzare il grado di accoppiamento fra i moduli:
      per migliorare la comprensibilità di ciascun modulo.
    • Con riferimento all’astrazione, un lasco
      accoppiamento ⇒ un’astrazione implementata in un
      modulo deve essere largamente indipendente da
      ogni altra astrazione

Anna Rita Fasolino- Ingegneria del Software -                               32
La Progettazione

                                                                                 16
Relazioni fra moduli
Relazione USA:
due moduli mi ed mj sono in tale relazione (mi USA mj ) se, affinché il modulo
mi risulti corretto rispetto alle sue specifiche, è necessaria anche la corretta
esecuzione di mj : ovvero mi necessita di qualche cosa implementata in mj .

                            A                   costituzione di gerarchie (relazione USA
                                                priva di cicli)

                                                Livelli: livello 0 per moduli senza archi
            B                               C   entranti; livello i se il cammino di massima
                                                lunghezza congiungendoli a moduli a livello
                                                0 ha lunghezza i.
                                                mi ha un’astrazione maggiore di mj se ha un
   D              E                F            livello minore.

Anna Rita Fasolino- Ingegneria del Software -                                        33
La Progettazione

                                        Relazione USA
Due estremi:
• ciascun modulo usa tutti gli altri: accoppiamento elevato;
• nessun modulo usa un altro (sistema complessivo formato da moduli totalmente
  isolati, non interagenti tra loro): può nascondere gravi difetti di duplicazione di
  intere parti, ad esempio funzionalità comuni a più moduli distribuite tra essi e
  non raggruppate.

Per una buona progettazione:
  • un modulo dovrebbe fare un uso limitato delle risorse messe a disposizione
    dagli altri
  • un modulo dovrebbe essere usato da più altri (buona fattorizzazione delle
    risorse che sono usate da altri)

Attenzione: la realizzazione fisica di una relazione USA fra moduli non sempre
ha luogo tramite chiamate a procedura, ma anche mediante accessi ad
informazioni condivise, scambio di messaggi.

Anna Rita Fasolino- Ingegneria del Software -                                        34
La Progettazione

                                                                                               17
Relazione COMPONENTE_DI
deriva dalla scomposizione, raffinamento, di moduli in sottomoduli;
dà luogo ad una gerarchia, rappresentabile graficamente.

                                                A

                                  A1            A2      A3

                                        COMPONENTE_DI

Anna Rita Fasolino- Ingegneria del Software -                   35
La Progettazione

 N.B.
 fra tutti i moduli di una relazione COMPONENTE_DI, solo quelli
 che non hanno alcun altro modulo componente hanno un’esistenza
 fisica effettiva nel sistema SW finale

        I moduli intermedi sono contenitori logici di moduli.
        Essi sono dovuti al fatto che è impossibile in un unico passo
        giungere alla comprensione di tutti e soli i moduli reali.
        Fanno comunque parte della documentazione del progetto

Anna Rita Fasolino- Ingegneria del Software -                   36
La Progettazione

                                                                        18
Se un modulo mi scomposto in sottomoduli m(i) era in relazione
USA con altri moduli, vanno ridefiniti (ridistubuiti) i
collegamenti delle relazioni USA sui moduli m(i).
Con riferimento all’esempio presedente:

      COMPONENTE_DI                                                                 USA

                   A
                                                                           A1           A2       A3

     A1           A2         A3                                            F            B         C

        B                         C
                                                                               B1                B2

 B1           B2             C1           C2                                                            F
                                                                       D            E

Anna Rita Fasolino- Ingegneria del Software -                                                                   37
La Progettazione

                Notazioni grafiche del Design (GDN)
                                M                        esprimono la struttura gerarchica e
                                                         le relazioni tra i moduli

                B                                    C

       B1              B2                       C1       C2                             A

 D            E             F

                                                                   B                                        C
                                                              B1       B2                          C1           C2

                                                              D                E             F

Anna Rita Fasolino- Ingegneria del Software -                                                                   38
La Progettazione

                                                                                                                     19
Una Notazione Testuale dei Moduli (TDN)
module 
uses 
exports 
        --eventuali commenti sulle risorse esportate
        --vincoli su come possono essere usate dai clienti;

implementation
   is composed of 
   --descrizione ad alto livello di astrazione della implementazione

end 

Anna Rita Fasolino- Ingegneria del Software -                  39
La Progettazione

                           Esempio
                                                moduleY

                   module X

                           R
                                        T       module Z

                     A       B          C

  Risorse richieste da moduli client

Anna Rita Fasolino- Ingegneria del Software -                  40
La Progettazione

                                                                       20
Esempio

 module X
 uses Y, Z
 exports var A : integer;
         type B : array (1. .10) of real;
         procedure C ( D: in out B; E: in integer; F: in real);
         --eventuali commenti su chi sono A, B, e C, con eventuali
         --vincoli su come possono essere usati dai clienti;
         --p.es., elementi di tipo B trasferiti a C devono essere
         --inizializzati dal cliente e non devono contenere tutti 0
 implementation
    is composed of R, T
    --se necessario, fornire commenti su come realizzato
    --nell’es., come è scomposto in moduli di più basso livello
    ;
 end X

Anna Rita Fasolino- Ingegneria del Software -                         41
La Progettazione

                                        Esempio
module R
uses Y
exports var K : record . . . end;
       type B : array (1. .10) of real;
       procedure C (D: in out B; E: in integer; F: in real);
implementation
       ...
end R

module T
      uses Y, Z, R
      exports var A : integer;
      implementation
      ...
end T

Anna Rita Fasolino- Ingegneria del Software -                         42
La Progettazione

                                                                           21
Il Progetto dei dati

    •    In questa fase vengono scelte le rappresentazioni logiche più
         opportune dei dati (struttura dei dati) identificati nella fase di specifica
         dei requisiti, che siano più vicine a quelle che saranno utilizzate in fase
         di codifica
                 • ad esempio si decide di utilizzare liste, stacks, archivi, … senza
                   specificare come poi saranno implementati
    •    Alcune linee guida...
    •    usare metodi di analisi sistematici: rappresentare la struttura dei dati e
         le relazioni tra di essi, considerare strutture alternative e valutarne
         l’impatto sul software
    •    astrazione sui dati: identificare tutte le strutture dati e le relative
         operazioni su di esse
    •    sviluppare un dizionario dei dati: indicare esplicitamente le relazioni tra
         i dati ed i vincoli esistenti sugli elementi di una struttura dati
    •    information hiding e pensare al riuso

Anna Rita Fasolino- Ingegneria del Software -                                           43
La Progettazione

                 La Progettazione di dettaglio
   •    Scopo di questa fase, detta anche di progetto procedurale, è
        di fissare il come debbano essere realizzate le componenti di
        progetto specificate. Richiede la definizione di:
                •   dettagli algoritmici,
                •   rappresentazioni reali dei dati,
                •   relazioni tra funzioni e strutture dati,
                •   packaging del software: cioè come mettere insieme in moduli
                    funzioni e strutture dati.
   •    Diversi tipi di notazione:
                •   flow-chart o linguaggio naturale strutturato
                •   pseudocodice (PDL)
                •   diagrammi a scatole
                •   tabelle di decisione

Anna Rita Fasolino- Ingegneria del Software -                                           44
La Progettazione

                                                                                             22
La documentazione di Progetto
1. Ambito
                                                            5. Progetto procedurale
      1.1 Obiettivi del sistema
                                                               Per ogni modulo
      1.2 Requisiti principali del Sw
                                                            5.1 Descrizione informale
      1.3    Vincoli e limitazioni progettuali
                                                            5.2 Descrizione delle interfacce
2. Progetto dei dati
                                                            5.3 Descrizione del linguaggio del progetto
      2.1 Oggetti-dato e strutture dati
                                                            5.4 Moduli utilizzati
      2.2 File e Basi di dati
                                                            5.5 Descrizione strutture dati interne
             2.2.1 Struttura dei file esterni
                                                            5.6 Descrizione del progetto di dettaglio
             2.2.2 Struttutra logica
                                                            5.7 Commenti/restrizioni/limitazioni
             2.2.2.1 Descrizione dei record logici
                                                                   rappresentazione in TDN
             2.2.2.2 Metodo di accesso
                                                            6. Indice dei requisiti (con riferimenti incrociati)
      2.3 Riferimenti incrociati file-dati
                                                                   6.1 preparazione al testing
                                                                          6.1.1 Linee guida
3. Progetto architetturale
                                                                          6.1.2 Strategia di integrazione
      rappresentazione grafica della struttura
                                                            7. Considerazioni specifiche
       3.1 Descrizione della struttura modulare
                                                            8. Note particolari
      3.2 Descrizione del flusso dati e di controllo
                                                            9. Appendici
4. Progetto delle interfacce
      4.1 Specifica dell’interfaccia uomo -macchina
      4.2 Regole di progettazione dell’interfaccia uomo -
      macchina
      4.3 Progetto delle interfacce esterne
             4.3.1 Interfacce verso i dati esterni
             4.3.2 Interfacce verso sistemi e dispositivi
             esterni
      4.4 Regole di progettazione dell’interfacce esterne

  Anna Rita Fasolino- Ingegneria del Software -                                                             45
  La Progettazione

                                                                                                                   23
Puoi anche leggere