kuittance - Suivre les développements

14 novembre 2005

Importation des modules dans CVS

Le CVS de sourceforge était indisponible vendredi. Du coup, je leur ai demandé de tout supprimer... Ils ont été très rapides, puisque ça a été fait aujourd'hui (c'est à dire en un jour ouvré!).

Et CVS fonctionne de nouveau, je peux donc importer mes 3 modules:

11 novembre 2005

Initialisation du projet

Je vais respecter le modèle MVC pour cette application, non que ce soit indispensable, mais que je souhaite rester très "cas d'école". J'ai donc créer 4 projets dans eclipse:

  • kuittanceASwingView: la Vue (swing) mais je vais peut-être changer d'avis et faire un plugin eclipse

  • kuitanceBLL: la couche service

  • kuitanceBusiness: la couche métier

  • kuittanceDAO: la couche d'accès aux données



Je n'ai pas une démarche extreme du tout ici, puisque je prévois des choses qui ne me servent pas encore (notamment DAO)...

Expression de besoins

Je dois maintenant mettre ma casquette de client...

Dans mon exemple, le client serait le propriétaire de plusieurs immeubles.

  • La fenêtre principale liste les locations en cours

  • Je dois avoir la possibilité de créer un appartement

  • Je peux créer une nouvelle location en cliquant. Cela consiste à ouvrir une nouvelle fenêtre dans laquelle je choisis un appartement existant, entre les coordonnées du locataire, et ajouter une ou plusieurs charges

  • Une charge a une date de début, une date de fin prévue, un montant prévu, une date de fin réelle, un montant réel. Les montants peuvent au choix être entrés mensuels ou annuels.

  • En choisissant une location, je peux émettre un appel de charges, c'est à dire lister toutes les charges, ou bien émettre une quittance qui acquitte la réception du montant de l'appel précédant. L'appel de charge réclame pour chaque charge (montant prévu - montant déjà payé) au prorata du temps restant avant l'échéance.

  • Les données sont persistées quand je quitte l'application



Une unité de travail (ut) correspond à une estimation de 2h. Je pense par ailleurs disposer de 7 ut d'ici la prochaine itération.

Pour la prochaine itération, je vais me contenter de l'implémentation des RTF suivantes:

  • Quand je lance l'application, la fenêtre principale s'ouvre (sans la liste des locations) - 2 ut

  • Je peux créer, lister et modifier mes appartements - 4 ut

Installation de Cruise Control

L'installation est trop simple pour être bien faite.

Avec root, je décompresse le zip dans /opt et donne tous les fichiers décompressés au compte cruise fraîchement créé (avec HOMEDIR=/opt/cruisecontrol-2.3.1). Je démarre Cruise-Control avec le compte cruise (penser à changer les permissions). Le serveur fonctionne.

Mais le projet d'exemple (commons-math) est en échec à cause d'une tâche "setproxy" inconnue de ant (http://localhost:8080/cruisecontrol/buildresults/commons-math). Ca ne me gêne pas plus que ça.

Je crée ensuite un répertoire WORK_DIR=/pub/cruise comme répertoire de travail. J'en fais le HOMEDIR du compte 'cruise'. Avec cette modif, le serveur de démarre plus. Le script de démarrage de cruise control est simplet et ne fonctionne que si on le démarre avec pour répertoire courant /opt/cruise-control-2.3.1 ! Je propose un petit patch

Organisation des développements

Du côté de mon poste du développeur, j'ai déjà mon IDE Java (eclipse) et un Java Development Kit (Java5 de Sun). J'ai déjà quelques plugins et librairies, je cite simplement JUnit pour le moment.

Par contre ma fabrique logicielle (software factory) est complètement inexistante. Puisqu'il faut l'automatiser à fond, je décide d'installer Cruise-Control. J'utiliserai le CVS de Sourceforge (évidemment, il est hors-service aujourd'hui...)

Je pense qu'un cycle d'intégration de 2 semaines est bien. Je prévois donc ma première livraison le 26 novembre.

Je vais mesurer l'avancement avec le nombre de RTF (Running Tested Feature). Il ne me reste plus qu'à prendre la casquette du Client et demander ce que je veux.