Come impostare lo sviluppo di un progetto

Pagina creata da Stefania Stefani
 
CONTINUA A LEGGERE
Come impostare lo sviluppo di un progetto
Come impostare lo sviluppo di un progetto

      As proposed by the project sponsor                  As specified in the project request

                                                           As produced by the programmers
       As designed by the senior analyst

         As installed at the user's site

                                                              What the user wanted

Impostazione di un Progetto                Marconi Team                                         Pag 1/13 /
Nell'intento di mostrare come impostare in modo metodologicamente corretto lo sviluppo di un progetto,
ipotizziamo la creazione di un sito e procediamo a svilupparne uno, calcando la mano sugli aspetti metodologici e
semplificando al massimo.
         E' solo una proposta e nell'arco della vostra carriera incontrerete modelli e standard migliori.

Note tipografiche: per distinguere la parte relativa allo sviluppo da quella di commento il testo solo descrittivo è
incorniciato e in carattere Comic Sans MS

Requisiti e Obiettivi (Traccia)
In questa fase viene formalizzato COSA viene richiesto dal punto di vista dell'UTENTE. Spesso l'utente non
ha le idee chiare su quello che le moderne tecnologie possono effettivamente fornine, ma è lui che paga (con i
soldi -l'azienda-, con il voto -il professore-) per cui bisogna capire COSA richiede l'UTENTE.

E' un punto di vista ESTERNO.

Se si tratta di un “cliente vero”,
           è la fase dell’”intervista”: dovete intervistare il committente e capire, spesso assieme, quali sono
           le caratteistiche del prodotto che vi viene richiesto (prendere appunti).
Se si tratta di una traccia:
           Un metodo suggerito da alcuni testi di preparazione alle certificazioni professionali è il seguente:
                   • leggere la traccia (cercando di interpretarla)
                   • rileggere la traccia
                   • riproporla a memoria cercando di inquadrare i punti fondamentali
                   • rileggere la traccia
           sembra una cretinata, ma provate a farlo……

OUTPUT di questa fase: Documento di REQUISITI E OBIETTIVI
(Spesso coincide con la traccia o con una richiesta di servizio da parte di una ditta).

TRACCIA
         Si richiede la progettazione un Sito tramite il quale sarà possibile prenotare i biglietti per i concerti
organizzati da alcuni cantanti o complessi. La prenotazione avviene direttamente da casa propria tramite un
collegamento ad internet. La società che gestisce il sito provvede successivamente ad elaborare i dati raccolti
tramite Internet.

        Nel sito devono essere presenti una serie di pagine contenenti le informazioni sui vari cantanti/complessi,
sui concerti da loro organizzati e su alcune caratteristiche turistiche e storiche dei luoghi dove si svolgeranno. Una
volta scelto un certo concerto deve essere possibile prenotarlo fornendo nome cognome ecc.

        I dati inviati attraverso Internet dai possibili clienti, devono essere raccolti ed elaborati per procedere poi
alla organizzazione dei concerti. Sarà così possibile effettuare analisi per decidere se per esempio basta un teatro
o ci vuole uno stadio, se magari il concerto è da annullare per mancanza di prenotazioni ecc.
Nel presente documento questa parte -quella di back office- sarà prevista solo nella fase di analisi iniziale e
non ulteriormente approfondita.

Impostazione di un Progetto                     Marconi Team                                              Pag 2/13 /
Analisi Funzionale
INPUT di questa fase: Documento di REQUISITI e OBIETTIVI

In questa fase viene descritto COSA il PROGETTISTA ha capito che viene richiesto dall'UTENTE e quindi
COSA ha intenzione di sviluppare.

E' un punto di vista INTERNO.

Se si tratta di un “cliente vero”,
           si inizia con un ”brain storming”: il gruppo di progetto si riunisce e sulla base dei dati raccolti dal
           collega che ha “intervistato” il cliente, si cercano di capire le funzionalità richieste.
           Non sempre il progettista "c'azzecca", per cui è fondamentale un passo di verifica col
           committente: una volta scritte le Specifiche Funzionali (l’Output dell’Analisi Funzionale), la si fa
           pervenire al committente e la si fa firmare per l'approvazione, a scanso di equivoci e future
           contestazioni (è lui che paga e quindi "lui" ha sempre ragione).1
Se si tratta di una traccia:
           siete soli e non potete confrontarvi con nessuno. E’ il momento più importante e delicato di tutta
           la progettazione. Ci vuole molta concentrazione ed abitudine ad affrontare problemi simili.

Dobbiamo, in forma discorsiva, evidenziare:
• gli Obiettivi (ciò che sarà sviluppato)
• i NON Obiettivi (esplicita elencazione di cosa non è previsto -a scanso di future contestazioni-)
Fino ad ora, parlando di Obiettivi intendevamo Obiettivi di PRODOTTO, da far conoscere anche all'esterno.
In fase di analisi i progettisti definiscono anche gli Obiettivi di PROGETTO, ai soli fini interni, nei quali
evidenziare delle scelte tecniche, per esempio:
• le risorse uomo (dipendenti o consulenti) da utilizzare
• quali prodotti Sw e Hw utilizzare
• lo sviluppo di un piccolo prototipo per provare la scelte che porteranno allo sviluppo del prodotto finale
• lo sviluppo di moduli non espressamente richiesti dal committente ma che noi sviluppiamo lo stesso ora,
    perché è più economico farlo, e che forniremo in futuro ad un determinato prezzo ma a costo zero.2

Osserviamo che la fase di analisi è fondamentale da due distinti punti di vista.
ESTERNO: il committente conosce (ed approva) quanto stiamo per produrre.
INTERNO: impostiamo l'analisi del prodotto3 che stiamo per realizzare.
Noi svilupperemo un unico documento da cui stralciare, i pezzi o le componenti, che non interessano il
committente.
Nelle Specifiche Funzionali facciamo rientrare anche la VTOC (Visual Table of Contents) nella quale
evidenziare -magari contestualmente- la gerarchia delle funzioni e delle pagine Web.
Decidiamo che anche l'analisi ER dei dati fa parte di questa fase poiché ci serve per comprendere la
complessità del problema.

N.B.    Questi dati sono importanti per stabilire la quantità di risorse da impegnare nel progetto (ore uomo o
        altro). Potremo così calcolare il costo, e di conseguenza il prezzo da richiedere al committente. Può
        anche avvenire che i costi superino il prezzo che il cliente e disposto a pagare. La nostra Sotware
        House potrà decidere che: o non è interessata a proseguire, oppure, ipotizzando che ci siano nel
1
  In particolari situazioni, in progetti molto “costosi”, si siglano le singole pagine.
2
  Prezzo: a quanto lo vendo, Costo: quanto mi costa.
3
   I "cimiteri" dell'informatica sono pieni di tizi che si mettono davanti al computer a sviluppare senza aver
capito COSA devono sviluppare, .. e poi pensano di essere dei "chiavici" dato che lavorano 16 ore al giorno.
Impostazione di un Progetto                   Marconi Team                                            Pag 3/13 /
mercato altre ditte a cui fornire il prodotto, si potrebbe "andare ad investimento" sviluppando lo
        stesso il prodotto (i "miei" dipendenti li pago lo stesso e quindi piuttosto che "farli cazzeggiare su
        internet” o con le "chat" li faccio lavorare a qualcosa di produttivo).4

La VTOC, sarà comunicata anche al committente, mentre non è necessario comunicargli l’analisi dei dati E.R.

OUTPUT di questa fase: Documento di SPECIFICHE FUNZIONALI contenete:
• descrizione discorsiva delle funzionalità
• VTOC (gerarchia funzioni e/o pagine web)
• E.R. dei dati

Specifiche Funzionali
         Dobbiamo sviluppare un progetto tramite il quale deve essere possibile gestire i concerti di cantanti o
gruppi musicali appartenenti ad una determinata organizzazione.
Il progetto si articola in due moduli:
     1. La parte Internet (front office) che prevede lo sviluppo del sito con una serie di pagine che permettono
         ad un utente collegatosi ad internet, di conoscere alcune informazioni sui vari cantanti/complessi, sui
         concerti da loro organizzati ed eventualmente su alcune caratteristiche turistiche e storiche dei luoghi ove
         si svolgeranno. Infine potrà registrare una propria prenotazione ad uno o a più concerti.
         I dati da fornire on-line tramite un modulo sono:
         Nome, Cognome, Via, Cap, Città, Provincia (tutti campi obbligatori ma senza validazione su città e
         provincia)
         Non è prevista una conferma alla prenotazione, né un accesso certificato da password.
notare l'esplicitazione dei -non obiettivi-
         Sono previsti 4 contanti o gruppi, una pagina per cantante, indicativamente 4 concerti per ogni contante o
         gruppo, fino a tre pagine per ogni località. Eventuali testi delle canzoni e foto degli artisti devono essere
         forniti dal committente (Informarsi sui diritti SIAE ecc.).
notare la quantificazione delle pagine, per non trovarsi a sviluppare “la piccola enciclopedia della canzone” ....
gratis.
         La struttura del sito sarà graficamente coerente, senza inutili sovrabbondanze grafiche.
         Per limitare i tempi di caricamento non sono previste musiche. Nell’intestazione è previsto il logo del
         committente ed una gif animata nella quale scorrono i nomi dei cantanti.
     2. La parte di back office, dove i dati inviati attraverso Internet dai possibili clienti vengono raccolti ed
         elaborati per procedere poi alla organizzazione dei concerti.
         Il data base on-line sarà copiato via ftp a cura del committente, dalla macchina del Provider alla macchina
         del committente, e localmente avverranno le elaborazioni di back office. Durante questa fase la pagina di
         Prenotazione resterà indisponibile.
notare l'esplicitazione che l'elaborazione dei dati non è on line
         Le interrogazioni previste sono le seguenti:
         Deve essere possibile effettuare le seguenti interrogazioni:
              • Contare quanti sono i biglietti venduti per un certo concerto
              • Contare quanti sono, per ogni concerto, i biglietti venduti per i concerti di un certo artista
              • Dato il nome e il cognome di una persona vedere quali sono i concerti di cui ha prenotato il biglietto
              • Elenco dei concerti che si svolgono in un periodo compreso tra due date.
              • Elenco dei concerti che si svolgono in un certo luogo
lasciamo spazio alla fantasia per aggiungere altre funzionalità sulla gestione dei dati ……

4
  La gestione dei progetti con la schedulazione delle attività e delle risorse, valutazione costi ecc. è un
argomento a se stante, che non viene preso in considerazione in questo documento.
Impostazione di un Progetto                 Marconi Team                                       Pag 4/13 /
Schema gerarchico generale del Progetto (V.T.O.C.)
“generale” perché indichiamo sia la gerarchia delle funzioni che la gerarchia della pagine web

                                                                                                                                             Concerti

                                                                                                          Sito Web                                                                                           Back office
                                                                                                         Home Page

                                                                                      Nino D'Angelo                            ...........                                                Caricamento dati                              Interrogazioni

                       Concerto di Bari                                                        Concerto ....                                             Discografia                           .........     Conta prenotazioni su concerto              .......

      Bari turistica                        PRENOTA                        ........                                PRENOTA                              ....., testi, ecc.

                                 Prenotazione effettuata e scrittura                                    Prenotazione effettuata e scrittura

Impostazione di un Progetto                                            Marconi Team                                                                                          Pag 5/13 /
Esempi di pagine Web
Questa è una ipotesi per la Home page.

Dalla Home Page si accede alla pagina del singolo cantante o complesso

Impostazione di un Progetto                 Marconi Team                 Pag 6/13 /
Dalla pagina del singolo cantante si accede alla pagina (o alle pagine) della sua biografia e alle pagine dei
vari concerti previsti. Quella che segue è l’ipotesi per la pagina del Concerto di Bari di Nino d’Angelo

Dalla pagina del concerto scelto si accede alla pagina (o alle pagine) delle informazioni turistico storiche del
luogo dove si tiene il concerto e si può effettuare la prenotazione.
Nella pagina di prenotazione si compila un “modulo” con alcuni dati personali e si invia la richiesta di
prenotazione. Questi dati vengono registrati in un data base sul Server per essere successivamente (Modulo
di backoffice) sottoposti ad elaborazione.

Impostazione di un Progetto                     Marconi Team                                             Pag 7/13 /
Specifiche Funzionali -Obiettivi di Progetto-
Il prodotto deve essere sviluppato rispettando lo standard metodologico aziendale. Privilegiando la
documentazione. In memoria di tutti i “chiavici” che hanno fatto i “creativi” scrivendo l’sql direttamente in ASP
o PHP, le query devono essere prima provate in access.

Il prodotto deve essere sviluppato a bassi costi, inoltre le risorse uomo che la nostra azienda può utilizzare
sono poco più che “bassa manovalanza”5 per cui bisogna sviluppare subito un prodotto semplice ma
funzionante.

La parte dinamica del sito deve essere ridotta al minimo ed isolata in pochissime pagine (forse due),
identiche per tutto il sito.

Dopo ricerche di mercato si è stabilita l’inutilità ad investire in un prodotto integrato per la creazione dinamica
di siti relativi a questa fascia di mercato.
Questa parte, logicamente, non sarà comunicata al committente, assieme all’analisi ER che segue.

Analisi dei dati E.R.

Relazioni
tArt(idArt, Nome, Cognome, Note)
tConc(idConc, Luogo, Data,idArt)
tPren(idPren, nome, Cognome, Via, Cap, Città, Provincia, IdConc)
nome              Chiave         Tipo               Lungh.        range       Obbligatorio     default    NOTE
……..
tConc
        idConc        Primaria    autoincrement
          luogo                            char              30               Si
           data                            data                               Si
         idArt         esterna         numerico                               Si
………

Interrogazioni
Il modello dei dati è stato testato con le seguenti interrogazioni e risponde ai requisiti:
            • Elenco dei biglietti venduti per un certo concerto
            • Contare quanti sono i biglietti venduti per un certo concerto
            • Contare quanti sono, per ogni concerto, i biglietti venduti per i concerti di un certo artista
            • Dato il nome e il cognome di una persona vedere quali sono i concerti di cui ha prenotato il
                 biglietto
            • Elenco dei concerti che si svolgono in un periodo compreso tra due date.
            • Elenco dei concerti che si svolgono in un certo luogo
            • ... e tante altre ancora.......

5
 Sono neo assunti dell’ITIS Marconi, per di più della 5IB (peggio non ci poteva andare)
Impostazione di un Progetto                    Marconi Team                                                 Pag 8/13 /
Analisi Tecnica
INPUT di questa fase: Documento di SPECIFICHE FUNZIONALI.

In questa fase viene impostato COME sviluppare ciò che è stato precedentemente descritto nel
Documento di SPECIFICHE FUNZIONALI.
E' un punto di vista TECNICO, che inquadra e dettaglia COME sviluppare e non più COSA.
Meglio si sarà lavorato nella fase precedente, più veloce ed efficiente sarà l’attività corrente.

Fondamentale è il rispetto dello standard aziendale.
Se si tratta di un’“azienda vera”,
           bisogna produrre in un gruppo di lavoro in cui tutti devono capire il lavoro di tutti gli altri.
           L’attività deve essere “collaborativa” e non si deve perdere tempo per “interpretare” il
           lavoro degli altri. A causa degli alti costi della manutenzione è fondamentale la cura della
           documentazione6.

6
    CICLO DI VITA DEL SOFTWARE
(N.B. questi sono dati reali per software professionale)
                                 3% 3%
                                         5%
                                              7%                     Requisiti
                                                                     Spec. Funzionali
                                                 8%                  Spec. Tecniche
                                                                     Codice
                                                                     Test dei Moduli
                                                7%                   Test completo
            67%                                                      Manutenzione

Se poi vogliamo entrare in dettaglio, il 67% dell’attività di manutenzione è così ripartito:
MANUTENZIONE
                      9%
            11%                                        Nuove funzioni richieste
                                                       dagli utenti
                                              42%      Modifiche varie

                                                       Tuning del Software
        10%
                                                       Disegno di nuove funzioni

           10%                                         Correzione di errori nella
                                                       fase di requirements
                                                       Correzione di errori nella
                           18%                         fase di disegno e codifica

Impostazione di un Progetto                    Marconi Team                                            Pag 9/13 /
Se si tratta di una traccia:
           il Professore è solo contro tutte le vostre prove. Se ogni volta deve interpretare quello che
           avreste voluto dire, ma che non avete detto, finirà col valutarvi in modo negativo.
           Siate ordinati e chiari nello svolgimento della prova.

Se per risolvere un determinato problema state cominciando a aggiungere soluzioni complesse,
FERMATEVI e sicuramente troverete una soluzione semplice semplice.

Ricordatevi:

                    Tutto ciò che non c’è non può guastarsi
Per le leggi di Murphy fate una ricerca con Google

OUTPUT di questa fase: Documento di SPECIFICHE TECNICHE contenete:
• Data Flow (unico o uno per ogni modulo)

•   Se l’approccio è Procedurale, per ognuno dei moduli previsti in VTOC:
        Schema grafico della Form di interfaccia
        Psedocodifica o diagramma a blocchi
        [Codifica completa di documentazione]
•   Se l’approccio è Relazionale (Access puro), per ognuno dei moduli previsti in VTOC
        Istruzione o istruzioni SQL che implementano la funzionalità
        Schema grafico della maschera o del report
•   Se l’approccio è Misto (Access + Moduli di codice + WEB), per ognuno dei moduli previsti in VTOC
        Istruzione o istruzioni SQL che implementano la funzionalità
        Schema grafico della maschera o del report (ed eventuale codice di script aggiunto)
        della pagina WEB (ed eventuale codice di script aggiunto, sia lato client che lato server)
        della Form e la pseudocodifica o il codice relativo in VB, Java, C, Delphi ecc.

Specifiche Tecniche
Questo progetto ha finalità didattiche e quindi non perderemo tempo in fronzoli inutili.

La grafica è ridotta al minimo per risparmiare tempo. Con questo obiettivo, Fireworks, è l’ideale. Infatti la gif
animata del titolo sarà sviluppata con Fireworks, gli effetti grafici evoluti di Flash sono un -non obiettivo-.

Utilizziamo Dreamweaver, la 3.0 va bene, sia perché abbiamo la licenza d’uso, sia perché dobbiamo fare
cose semplici, sia perché ...basta ed avanza...
Prevediamo:
     • due template, uno per tutte le pagine del sito, uno, derivato dal primo, per le pagine dinamiche: la
         Prenota.asp e la pagina di scrittura sul data base Registra.asp,
     • l’utilizzo di un semplice foglio di stile

Impostazione di un Progetto                       Marconi Team                                           Pag 10/13 /
•   un’organizzazione delle cartelle del sito secondo il seguente schema:

da cui si evince che prevediamo una home page (index.htm), una cartella per ogni cantante, una cartella per
il data base (ACCESS), e due sole pagine dinamiche (ASP) che saranno utilizzate nella seguente maniera:

Per ogni pagina terminale dei concerti

                 per cui chi sviluppa le singole pagine dei vari concerti chiamerà la Prenota.asp
                 specificando nel link l’id del singolo concerto, nel nostro caso “../Prenota.asp?idconc=1”

La Prenota.asp deve:
   1. “capire” su quale concerto è stata attivata
   2. portarlo a video nel bordo grigio a sinistra
   3. inserire l’id del concerto come campo nascosto nel modulo in cui il cliente compila i suoi dati

Nell’head:
        dim idalucerc, dep, strConn, strSql

       idconc = "" & Request.QueryString("idconc")
       Set cn = Server.CreateObject("ADODB.Connection")
       strConn = "Provider = Microsoft.Jet.Oledb.4.0;                            Data     Source        =   "&
       server.mappath("dati/concerti.mdb")
       cn.Open strConn
       Set rs = Server.CreateObject("ADODB.Recordset")

Impostazione di un Progetto                   Marconi Team                                              Pag 11/13 /
strSql = "SELECT tArt.nome,tConc.luogo,tConc.data FROM tArt,tConc where
              tArt.idArt = tConc.idArt and tConc.idConc= " & idconc & ";"
              rs.Open strSql, cn

      Come da specifiche, i campi del modulo sono a digitazione obbligatoria (ma senza ulteriori validazioni) per
      cui sarà inserito, client side, il seguente codice JavaScript:

      // controllo i dati inseriti dall'utente
      function controlla() {
            var mymodulo = document.modulo;

              if (mymodulo.txtcognome.value == "") {
                    alert("Devi inserire il cognome ");
                    mymodulo.txtcognome.focus();
                    return false;
              };
              if (mymodulo.txtnome.value == "") {
                    alert("Devi inserire il nome");
                    ………………………………………..
              return true; Å !!!!!
      };
      
      perché questo codice sia attivato è necessario che la form sia creata così: (notate      onSubmit="return
      controlla())
      
      La Registra.asp deve:
          1. portare a video i dati “passati” dal modulo della Prenota.asp
          2. inserire nel data base i dati acquisiti

      Nell’head:
      Notare la “pulizia” fatta con la Replace per eliminare i caratteri  eventualmente presenti
depcognome = Replace(Request.Form("txtcognome"),"'","''")
      depvia = Replace(Request.Form("txtvia"),"'","''")
      depcap = Replace(Request.Form("txtcap"),"'","''")
      depcitta = Replace(Request.Form("txtcitta"),"'","''")
      depprovincia = Replace(Request.Form("txtprovincia"),"'","''")
      depidconc = Replace(Request.Form("hidconc"),"'","''")
' leggo la riga che descrive il concerto
      dep="select * from tconc,tart where tart.idart=tconc.idart AND idconc= "
& depidconc
      Set RS = mycn.Execute(dep) ' leggo
      depluogo= rs.fields("luogo")
      depdata= rs.fields("data")
      departista= rs.fields("nome")
' inserisco la penotazione
      dep ="INSERT INTO tpren (nome,cognome,via,cap,citta,provincia,idconc)
values ("
      dep= dep & "'" & depnome &"','" & depcognome &"','" & depvia
      dep= dep & "','" & depcap &"','" & depcitta &"','" & depprovincia
      dep= dep & "'," & depidconc & ")"

       Set RS = mycn.Execute(dep) ' inserisco
       mycn.Close
       Set rs=nothing
       Set mycn=nothing
%>                                 

………………………………………….
………………………………………….

Qui finiscono le nostre note ed ora tocca a voi, mi raccomando:   utilizzando lo standard che
vi è stato distribuito!
       Visitate le pagine dei manuali on line della nostra intranet

Seguirà un’appendice7, relativa a Dreamweaver, contenente:
      Come impostare un template
      Come impostare un foglio di stile

7
 Non a breve
Impostazione di un Progetto                 Marconi Team                                Pag 13/13 /
Puoi anche leggere