View Full Version : [Java]programma per agenzia viaggi
ciao a tutti, sto iniziando questo progetto come consegna per il corso di studio che seguo. però neanche ho iniziato che già mi sono bloccato, non ho idea di come iniziare a lavorarci sopra cioè di quali passi debba fare per la progettazione dell'applicazione ancora prima di scrivere una singola riga di codice. anche leggendo in giro per il web non sono riuscito a trovare niente che illustri "le linee guida" di come approcciarsi ad un progetto simile :mc:
Finalmente un po' di metodologia.
Il primo passo è capire come funziona un'agenzia di viaggi. Io non ne ho la più pallida idea ma come qualsiasi attività umana organizzata essa è riassumubile in un corposo insieme di procedimenti.
I procedimenti sono sequenze ordinate di atti: capita questo, poi questo, poi quest'altro, poi quest'altro ancora e lì si finisce.
I procedimenti possono essere collegati nel senso che l'ultimo atto di uno è la condizione perchè possa essere compiuto il primo atto di un altro.
Dunque si tratta di individuare questi procedimenti, gli atti di cui sono composti e l'ordine in cui devono accadere e di determinare quali procedimenti siano collegati tra loro.
Questa descrizione schematica diventa il tuo sistema di riferimento.
Dal sistema di riferimento passi al modello di sistema cioè trasformi l'insieme di procedimenti in una descrizione funzionale alla simulazione dell'attività tramite un calcolatore.
Significa che gli elementi coinvolti nella descrizione procedimentale di cui sopra cessano di essere "reali" e si trasformano in entità computabili: il cliente non è più la persona fisica che entra dalla porta ma sarà il tal record nella qual strato di persistenza. Il registro delle destinazioni diventerà il form di un'interfaccia utente. E così via.
Col modello di sistema passi alla traduzione in codice e ottieni il tuo programma.
Materialmente procedi in questo modo.
Analisi del sistema di riferimento
1. Studia il fenomeno agenzia di viaggi
2. Piglia un foglio di carta (possibilmente elettronico) e redigi un elenco di nomi ciascuno dei quali individua uno dei procedimenti che hai osservato nel fenomeno
3. Per ogni nome dell'elenco precedente delinei la successione di attività che compongono quel procedimento.
4. Scrivi quali procedimenti sono collegati a quali altri esaminando i primi e gli ultimi atti di ciascun procedimento: se uno richiede che esista un cliente allora sarà collegato a quello che registra un cliente, se uno richiede che esista una destinazione allora sarà collegato a quello che registra una destinazione e così via.
Definizione del modello di sistema
Per ogni elemento che è agente o oggetto di un'attività nella successioni di atti che costituisce un procedimento, fornisci una definizione in termini di attribuzioni di caratteristiche o comportamenti: x è o fa qualcosa, y è o fa qualcos'altro.
Ti occupi inoltre di introdurre tutte quelle definizioni non strettamente necessarie alla rappresentazione del fenomeno ma richieste affinchè questo sia simulabile con un pc e che sono variamente correlate al concetto di input/output - acquisizione e rappresentazione delle informazioni più gestione della persistenza degli stessi.
Traduzione in codice - aka programmazione.
Traduci il modello di sistema in codice e ottieni il tuo programma.
Con ogni probabilità ti romperai le scatole arrivato ai due quinti della storia ma a quel punto dovresti aver già "capito l'antìfona" e passerai direttamente al codice. Non che sia una cosa bella da fare ma lo facciamo tutti perché le procedure sono una palla eccezionale.
banryu79
17-05-2011, 15:35
Con ogni probabilità ti romperai le scatole arrivato ai due quinti della storia ma a quel punto dovresti aver già "capito l'antìfona" e passerai direttamente al codice. Non che sia una cosa bella da fare ma lo facciamo tutti perché le procedure sono una palla eccezionale.
Non ci credo che l'ha detto! :eek:
Questa me la segno! :D
[END OT]
ti ringrazio PGI, per la risposta molto esplicativa e per la tua previsione al riguardo :D .
per fortuna però ho tra le mani un progetto un po più "guidato" con meno libertà lasciata al programmatore rispetto a quella da te descritta, questo è quanto (http://twiki.dsi.uniroma1.it/pub/Metod_prog/EO/ProGetto/progetto2010_11.html) .
come potrai vedere le funzionalità da implementare sono ridotte rispetto alla realtà, ma c'è comunque un bel po da fare.
il primo passo "pratico" sul quale mi sono bloccato è quello di traduzione delle varie funzionalità/aspetti, da implementare, in un mero schema di gerarchia delle classi. così da avere un quadro generale.
ps.
ho letto in giro qualcosa sui design pattern, dovrei forse andarmeli a vedere?
Da quella traccia direi che puoi considerarti "un po' meno libero" quando è un po' meno libero un galeotto in isolamento, legato al letto. E narcotizzato.
Puoi partire dalla gerarchia ma dovresti partire dal basso, dagli individui in vita, per poi scoprire chi fossero i genitori e i genitori dei genitori e così via.
E per quanto riguarda i viventi hai il problema di un progettista con la passione per l'enigmistica.
Prova ad iniziare con la descrizione (cioè la classe) del PacchettoVacanze. Come sia fatto lo deduci dal formato del file (nome, indirizzo, N recapiti telefonici ed N settimane). Probabilmente ti servirà una classe collegata per il tipo di dato "Settimana" (con un nome sperabilmente più significativo), più che altro perchè è più complessa del tipo di oggetti di cui è parte.
Una volta che hai per le mani il pacchetto vacanze dovresti iniziare ad intuire quali "metodi" dovrebbe avere affinchè sia possibile mettergli le mani addosso nei termini richiesti dall'esercizio.
Dovrai creare dei pacchetti vacanze dunque nomi, indirizzi e recapiti dovranno essere mutabili (cioè avrai dei setter). Non che questa della mutabilità sia una questione strettamente necessaria ma non andiamo in zone a luci rosse.
Oppure potresti partire dall'interfaccia utente (testuale o grafica è uguale). Per le applicazioni CRUD le interfacce utente sono praticamente la trasposizione visiva della struttura dei dati e dei loro manipolatori: da una segue di necessità l'altra e viceversa.
crack001
19-05-2011, 13:10
Salve...anche io mi ritrovo a gestire lo stesso progetto, solo che io faccio parte dell'altro canale di studio xD Sinceramente ho riscontrato problemi nella gestione delle settimane, inizialmente volevo fare una classi nidificata però poi c'ho ripensato...cosa consigliate di fare voi?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.