fuocofatuo
06-01-2006, 23:56
Tempo fa ho sviluppato un database in Access per gestire e mantenere le informazioni utili alla ditta di mio padre. Il progettino svolge tuttora il suo lavoro in maniera discreta, ma in particolare nell'ultimo periodo si sente la necessità di una bella rimodernata; questo sia perchè quando l'ho creato ero ancora a digiuno da ogni approccio serio allo sviluppo (dovevo ancora iniziare l'università), sia perchè la realtà che tenta di descrivere è cambiata parecchio.
Ora che mi sento un po' più pronto ad un lavoro di questo tipo, vorrei creare un gestionale degno di tale nome. Inolte, non essendoci particolare fretta nè obblighi contrattuali, vorrei che questo progetto fosse il più possibile didattico, ovvero che mi aiuti a comprendere e ad applicare le metodologie di sviluppo del software.
Seguendo da tempo gli interventi di fek, tra cui una recente discussione (che conta la bellezza di 24 pagine in pochi giorni) ho cominciato ad interessarmi allo sviluppo "agile", che purtroppo differisce totalmente con quanto studiato poco più di un anno fa ad ingegneria de software... Ora come ora mi trovo quindi un po' disorientato, e avrei necessità di qualche consiglio sia dal punto di vista del sistema di sviluppo, che da quello più prettamante tecnico.
Passiamo dunque a descrivere un po' più in dettaglio il problema.
Il database in sè è di piccole-medie dimensioni (sulla quindicina di relazioni, con tendenza all'aumento), e il programma finale necessita di una interfaccia grafica il più possibile semplice e pulita, di un attento controllo delle immissioni (che impedisca l'immissione di dati palesemente errati e avverta nel caso di immissioni di dubbia validità), e della possibilità di generare una dozzina report. Attualmente mi basterebbe realizzare un'architettura client-server che mi permetta di gestire il gestionale in LAN, ed eventualmente (ma non necessariamente) tramite internet.
Dal punto di vista tecnico, vorrei slegarmi dall'utilizzo di windows-office, in favore di qualcosa che mi consenta l'utilizzo di linux o ancora meglio di entrambi. Pensavo qunque di realizzare il tutto con my-sql e java, che conosco meglio di altri linguaggi.
Quel che mi interessa sapere è:
- considerando che le specifiche del sistema cambiano con rapidità, richiedendo spesso modifiche e introduzioni di nuove funzionalità, lo sviluppo agile è proprio quello che mi serve?
- come posso imparare ed applicare degnamente le metodologie dello sviluppo agile? Potrebbe essere utile studiare, ed in caso prendere parte, a diamonds?
- my-sql e java sono il giusto strumento per quello che mi interessa fare? Sarei molto attratto anche da Pyton, ma dato che attualmente non lo conosco non so se è il caso di aggiungere ulteriore difficoltà al progetto.
- Per interfacciarmi al database con java, cosa consigliate? Dovrei preferire JDBC o dovrei piuttisto utilizzare qualcosa tipo hibernate? Preciso che quest'ultimo non lo conosco per niente, e una lettura approssimativa dei suoi scopi mi ha in parte chiarito le cose ed in parte creato confusione... non conviene tener separata la parte relativa al database con quella relativa al loro utilizzo/visualizzazione? Con hibernate ho avuto l'impressione che le cose si confondano un po' tra di loro...
- jasperReports fa al caso mio per quanto riguarda la generazione dei report?
- avete un qualsiasi altro consiglio da aggiungere?
Ora che mi sento un po' più pronto ad un lavoro di questo tipo, vorrei creare un gestionale degno di tale nome. Inolte, non essendoci particolare fretta nè obblighi contrattuali, vorrei che questo progetto fosse il più possibile didattico, ovvero che mi aiuti a comprendere e ad applicare le metodologie di sviluppo del software.
Seguendo da tempo gli interventi di fek, tra cui una recente discussione (che conta la bellezza di 24 pagine in pochi giorni) ho cominciato ad interessarmi allo sviluppo "agile", che purtroppo differisce totalmente con quanto studiato poco più di un anno fa ad ingegneria de software... Ora come ora mi trovo quindi un po' disorientato, e avrei necessità di qualche consiglio sia dal punto di vista del sistema di sviluppo, che da quello più prettamante tecnico.
Passiamo dunque a descrivere un po' più in dettaglio il problema.
Il database in sè è di piccole-medie dimensioni (sulla quindicina di relazioni, con tendenza all'aumento), e il programma finale necessita di una interfaccia grafica il più possibile semplice e pulita, di un attento controllo delle immissioni (che impedisca l'immissione di dati palesemente errati e avverta nel caso di immissioni di dubbia validità), e della possibilità di generare una dozzina report. Attualmente mi basterebbe realizzare un'architettura client-server che mi permetta di gestire il gestionale in LAN, ed eventualmente (ma non necessariamente) tramite internet.
Dal punto di vista tecnico, vorrei slegarmi dall'utilizzo di windows-office, in favore di qualcosa che mi consenta l'utilizzo di linux o ancora meglio di entrambi. Pensavo qunque di realizzare il tutto con my-sql e java, che conosco meglio di altri linguaggi.
Quel che mi interessa sapere è:
- considerando che le specifiche del sistema cambiano con rapidità, richiedendo spesso modifiche e introduzioni di nuove funzionalità, lo sviluppo agile è proprio quello che mi serve?
- come posso imparare ed applicare degnamente le metodologie dello sviluppo agile? Potrebbe essere utile studiare, ed in caso prendere parte, a diamonds?
- my-sql e java sono il giusto strumento per quello che mi interessa fare? Sarei molto attratto anche da Pyton, ma dato che attualmente non lo conosco non so se è il caso di aggiungere ulteriore difficoltà al progetto.
- Per interfacciarmi al database con java, cosa consigliate? Dovrei preferire JDBC o dovrei piuttisto utilizzare qualcosa tipo hibernate? Preciso che quest'ultimo non lo conosco per niente, e una lettura approssimativa dei suoi scopi mi ha in parte chiarito le cose ed in parte creato confusione... non conviene tener separata la parte relativa al database con quella relativa al loro utilizzo/visualizzazione? Con hibernate ho avuto l'impressione che le cose si confondano un po' tra di loro...
- jasperReports fa al caso mio per quanto riguarda la generazione dei report?
- avete un qualsiasi altro consiglio da aggiungere?