[Algo] Besoin de conseils pour la conception d'une appli

Besoin de conseils pour la conception d'une appli [Algo] - Algo - Programmation

Marsh Posté le 30-05-2005 à 10:46:21    

Salut,
 
J'ai besoin d'un conseil sur une bonne pratique de conception.
 
Pour ceux qui suivent, j'ai un peu laché le coup du gestionnaire de bookmark : c'est bcp de boulot, et à l'heure actuelle, ca me servirait peu, d'où un manque de motivation :p.
Par contre, je voulais me faire un truc pour faire ma "compta"...mon budget prévisionnel plutot. Ca ca me servirait bcp plus.
 
J'ai donc réfléchi, et après une longue réunion avec moi même dans le train ;), j'ai sorti une ébauche de specifs fonctionnelles.
 
************************
  Périmètre
************************

Mon besoin est le suivant :  
JD, je vais avoir un salaire pas génial, je vais donc devoir faire super gaffe à mon budget.
Je veux pouvoir, à toute date donnée du passé/présent/futur, savoir combien j'aurai d'argent dispo, et ce, indépendamment de ce que dit mon relevé de compte.
Je veux également pouvoir faire un suivi de mes dépenses par catégories. (pour simplifier et parce que j'ai pas besoin de plus, je ne suis pas les dépenses en liquide, l'argent vient d'un DAB et point barre, je ne comptabilise donc que les retraits).  
 
************************
  L'existant
************************

 
A l'heure actuelle, le "legacy system" (ma feuille excel) fonctionne comme suit :  
- j'écris par moi toute mes dépenses prévues, ainsi que le solde actuel de mon compte.
- qd une dépense est prélevée sur le compte, je l'efface de l'excel
==> j'ai ainsi le solde réel en fin de mois
par ex : j'ai 100€ sur mon compte, et je prévois 50€ de dépense. la feuille calcule et me dit donc qu'il me restera 50€ de dispo.
La dépense tombe : le solde passe à 50€, je vire la ligne 50€ : le solde est bien à 50€.
- le solde d'un mois n est donc égal à solde du compte + reliquat de tous les mois avant n + solde de n
 
Le pb de ce système c'est que :  
- j'ai aucun suivi dans le temps vu que j'efface les entrées qd elles sont passées sur le compte
- je peux pas avoir de granularité plus fine que le mois, ce qui pose soucis : si par ex mon solde est à 100€, que j'ai une dépense de 500€, et une entrée de 800€, à la fin du mois ca ira bien (100+800 - 500)...mais si la dépense de 500 tombe d'abord, je suis hyper à découvert...et ca pour le moment je dois le tracker manuellement.
- la consolidation de compte se fait à la mano...je voudrais l'automatiser (ma banque me permet de télécharger du XLS, QIF et CSV)
 
************************
  Le nouveau besoin
************************

 
en réfléchissant bien à mon besoin, j'en ai déduit le système suivant (c'est à rafinner)
- y'a 2 types de dépenses, et 2 types de revenus :  
(j'explique pour les dépenses, pour les revenus c symétrique)
 * les dépenses type "enveloppe budgétaire"
  - répétée par période (jour, semaine, mois, /2mois, /6 mois, année, etc..)
  - dépensées en 0 à n fois
  - ex : budget sorties : tu peux le dépenser en 3 sorties...ne pas sortir du tout, ou dépenser 2x plus
 * les dépenses unique
  - dépensée en 1x
  - non prévue...
- chaque dépense appartient à une catégorie
- il peut y avoir des sous catégories
- pour les dépenses type enveloppes, on spécifie la périodicité (je voudrais une granularité au niveau du jour, même si le plus souvent c'est par mois). Au cours du temps, même si l'enveloppe reste conceptuellement la meme, des infos peuvent changer. Par ex, le tarif d'un abo de portable est valable 2 ans. Si je change de forfait, le montant change. Je dois donc garder un historique des valeurs d'une enveloppe...pour un jour/mois/an donné, le montant qui s'applique est celui de l'enveloppe la plus récente par rapport à la période concernée.
- on doit permettre l'overflow : on peut dépasser un budget (c'est même une des choses qui m'intéressent à suivre)
- je dois pouvoir inputer des dépenses sur des enveloppes futures : ex à la con qui me vient : je solde un crédit 3 mois avant la fin...ou bien alors j'achète mes cados de noel 3 mois avant.
 
Le principe est le suivant :  
- lorsqu'on entre une nouvelle dépense, on spécifie sa catégorie. Si y'a une enveloppe pour la catégorie (ou une surcatégorie), on impute la dépense sur cette enveloppe (par ex on entre un ciné : on a rien prévu dans la cat "Ciné", mais y'a une enveloppe dans la surcat "sortie" : on inpute le cinéma sur la cat "sortie". (idem pour les revenus)
 
************************
  La question
************************

Là où je sais pas trop comment aborder le pb techniquement :  
- comme par ex je peux vouloir savoir mon solde dans 10 ans (ce serait con, mais je peux), je vais évidemment pas créer les 120 mois avec toutes les dépenses prévues.
- je sais pas trop comment séparer les dépenses virtuelles (les enveloppes) des dépenses réelles. Je pensais dire qu'on programme les "enveloppes"...et que tt ce qu'on entre au quotidien est une dépense unique, qui s'impute ou pas sur une enveloppe...en fait ce serait le plus logique : toute dépense est une dépense unique affectée à une catégorie : si une enveloppe existe pour la cat, on inpute la dépense dessus, sinon non.
- le solde à un jour p (présent) est selon moi :  
Solde du compte + somme des revenus réels non passés sur le compte + somme des dépenses réelles non passées sur le compte
- le solde à un jour f (futur) est
Solde du compte + somme des revenus réels non passés + somme des dépenses non passées + somme des revenus prévus entre maintenant et le jour f + somme des dépenses prévues entre maintenant et le jour f
 
en résumé :  
maintenant : solde du compte + solde des choses réelles non passées sur le compte (chèque en cours d'encaissement (en + ou -), cb en cours, etc...)
dans le futur : solde du compte + soldes des choses réelles + soldes des choses virtuelles prévues jusqu'au jour j
 
mon soucis réside dans les choses virtuelles :  
si je prend la dépense sortie par exemple : chaque mois je dois remettre le compteur à zéro...mais comme je peux consulter n'importe quel mois, et que je peux inputer dans le futur, je dois maintenir n soldes...sachant aussi que le montant de l'enveloppe peut changer dans le temps...
j'envisage ca comme ca :  
- si c'est un mois/jour passé : on a le montant exact, et toutes les écritures qui ont été inputée dessus, c'est pas un pb, on doit avoir 1 "objet" par mois à des fins d'historique
- si c'est un mois/jour présent : on a l'objet aussi, puisqu'on est suceptible d'y inputer des choses
- si c'est un mois futur : si y'a rien d'inputé, on se base sur le montant de l'enveloppe en vigueur à ce moment...si y'a une inputation, on crée un objet...
 
ce qui me fait soucis c'est la différenciation référence/truc concret...parce qu'une enveloppe,c'est à la fois une référence qui existe en petit nombre (autant que de montant d'enveloppes différents), mais par mois c'est aussi un compteur dont il doit exister une instance par mois...du coup je pense qu'il faut le séparer.


Message édité par Jubijub le 30-05-2005 à 11:44:12

---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 30-05-2005 à 10:46:21   

Reply

Marsh Posté le 30-05-2005 à 13:25:02    

dsl c un peu long...
 
pour résumer, j'ai un pb de gestion de calendrier en un sens...j'ai des évènements récurrents qui peuvent avoir un état différent pour chaque période, et je sais pas quelle stratégie adopter pour modéliser ca


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 30-05-2005 à 15:21:51    

[:pingouino]
 
t'as vu le paté ?
 
J'ai encore slashdot, 20 min et Métro à lire avant la fin de la journée, on verra ce soir, si je rentre pas bourré [:pingouino]


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 30-05-2005 à 15:25:11    

de toutes façons t'as qu'à être riche comme moi, tu vas mater ton compte tous les quinzes jours pour savoir si tu te saoule à la bière ou aux cocktails ce soir avant d'aller en boîte [:pingouino]


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 30-05-2005 à 20:13:07    

mdr....
 
merci de jeter un coup d'oeil si tu peux sinon c pas grave :)
 
Sinon pour la richesse j'y travaille...mais JD inside :/


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 31-05-2005 à 08:41:58    

up


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 31-05-2005 à 09:00:28    

heu bah je suis rentré bourré en fait [:pingouino]


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 31-05-2005 à 09:39:21    

[:ddr555]
 
qd t'a le temps...c pas grave...je v rebosser dessus demain dans le train...disons que je pensais partir sur clone(), mais clone c'est le mal non ?


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 31-05-2005 à 09:48:39    

le clone c'est surtout drôle [:pingouino]
 
[:denisot]


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 31-05-2005 à 10:00:51    

ce que je cherche à faire :  
 
je voudrais fabriquer un objet à partir d'un référentiel qui me donne son paramétrage (ici le nom, la cat, et le montant de l'enveloppe).
Le hic c que je veux créer un objet que lorsque j'en ai besoin, et pour les mois où j'en ai pas besoin, je veux juste récupérer la valeur du paramétrage, sans la modifier


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 31-05-2005 à 10:00:51   

Reply

Marsh Posté le 31-05-2005 à 10:08:50    

ben tu fais un Prototype ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 31-05-2005 à 11:00:17    

ah ouhais tiens....
 
donc si je suis bien :  
j'ai pour une enveloppe donnée une liste d'objets qui correspond à toutes les versions successives de l'enveloppe.
A chaque mois où j'ai besoin d'une enveloppe dédiée au mois, je demande à l'objet qui correspond à l'enveloppe en vigueur de se cloner et de me renvoyer une instance.
 
les mois où g pas besoin, je vais juste chercher dans la liste l'enveloppe en vigueur...
 
c bon ?
ou vaut mieux avoir un seul objet par enveloppe, que je reparamètre en fonction de ce que je veux ?


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 31-05-2005 à 20:24:33    

up ?


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 01-06-2005 à 10:13:50    

heu, normalement, ce soir je rentre pas bourré. [:pingouino]
 
sauf cuite de dernière minute [:pingouino]


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 01-06-2005 à 19:11:36    

arf, ben tu me diras alors


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 01-06-2005 à 19:20:44    

[:drapal]
Tu nous fais le BPM puis la modélisation UML et que ça saute !  :bounce:

Reply

Marsh Posté le 01-06-2005 à 23:55:24    

nraynaud a écrit :

heu, normalement, ce soir je rentre pas bourré. [:pingouino]
 
sauf cuite de dernière minute [:pingouino]


heu bah y'a eu cuite de dernière minute [:pingouino]
 
demain c'est soirée étudiante donc il faut pas trop espérer, mais ce week-end c'est bon.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 02-06-2005 à 10:07:20    

pains-aux-raisins a écrit :

[:drapal]
Tu nous fais le BPM puis la modélisation UML et que ça saute !  :bounce:


 :heink:  
 

nraynaud a écrit :

heu bah y'a eu cuite de dernière minute [:pingouino]
 
demain c'est soirée étudiante donc il faut pas trop espérer, mais ce week-end c'est bon.


 
arf c pas pressé y'a pas de pb


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 02-06-2005 à 10:11:02    

bon, je viens de lire, c'est quoi le pb exactement ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 02-06-2005 à 10:11:29    

t'as déjà un peu d'infrastructure ou on part de zéro ?


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 02-06-2005 à 11:47:47    

là je pars de zéro : pour l'avoir expérimenté dans le stage, je voudrais éviter de partir bille en tete sans un minimum de réflexion...et là c un peu central comme pb dans ma réflexion...
 
mon pb c que je voudrais un design qui me permette de répondre à mes besoins...et gérer cette dualité mesure et historisation du passé/présent et prévision du futur
 
comme je pense qu'il serait lourdingue d'avoir classes séparées pour le passé/présent et le futur, je dois trouver un moyen de faire que la même entité puisse, selon son état, désigner qqc de passé, de présent ou de futur


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 02-06-2005 à 12:49:20    

Bon, déjà, tu commences par faire une grosse classe qui représente toute l'appli, elle contiendra un budget et un grand livre.
 
Le grand livre, c'est très con, c'est une liste d'écritures, à moins d'être débile, inutile de faire de la bi-partie équilibrée, dépenses/recettes ça suffit. L'interface de ce genre de truc ne devrait pas pêter des briques. Il peut-être intéressant de lier les écriture avec leur ligne budgétaire si elle avaient été budgettées.
 
 
Le budget, c'est un planning avec des lignes. C'est déjà plus chiant, parce que tout ce qui concerne les calendriers c'est chiant.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 02-06-2005 à 13:46:16    

nraynaud a écrit :

Bon, déjà, tu commences par faire une grosse classe qui représente toute l'appli, elle contiendra un budget et un grand livre.
 
Le grand livre, c'est très con, c'est une liste d'écritures, à moins d'être débile, inutile de faire de la bi-partie équilibrée, dépenses/recettes ça suffit.


oui g pas l'intention que ca suive les normes de compta internationnales :) ... la double écriture c'est marrant mais pour un budget perso c un peu inutile.
 

nraynaud a écrit :


 L'interface de ce genre de truc ne devrait pas pêter des briques. Il peut-être intéressant de lier les écriture avec leur ligne budgétaire si elle avaient été budgettées.


ca c indispensable...j'en ai obligatoirement besoin pour gérer le planning futur, vu que je dois savoir ce qui a déjà été imputé sur une ligne budgétaire
 

nraynaud a écrit :


Le budget, c'est un planning avec des lignes. C'est déjà plus chiant, parce que tout ce qui concerne les calendriers c'est chiant.


je suis d'accord...mais bon, entre Calendar et Date, y'a des outils pour gérer ca...pis là g pas de notion d'overlapping ou autre, donc ca gene pas


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 02-06-2005 à 14:21:54    

Jubijub a écrit :


je suis d'accord...mais bon, entre Calendar et Date, y'a des outils pour gérer ca...pis là g pas de notion d'overlapping ou autre, donc ca gene pas


ahahah petit scarabée, avec les planning, c'est pas si simple que ça ...
 
Va faire un petit tour dans la classe java.util.Timer par exemple, y'a de l'algoritmie assez évoluées dedans.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 02-06-2005 à 14:52:40    

ben surement mais là g que des dates ponctuelles à gérer, et des comparaisons à faire par rapport à new Date() (l'heure système quoi)
 
sinon pour stocker les lignes, tu préconises quoi ? ArrayList ou map indexée sur la date ?


Message édité par Jubijub le 02-06-2005 à 14:54:16

---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 02-06-2005 à 15:13:32    

c'est pas encore trop temps de décider de ça [:pingouino]


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 02-06-2005 à 15:28:00    

ben ben je prends une liste...on verra bien plus tard c pas le plus dur à changer


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 07-06-2005 à 18:16:03    

c'était quoi ton gestionnaire bookmark ?

Reply

Marsh Posté le 07-06-2005 à 19:15:10    

laisse tomber ca n'a jamais vu le jour...y'a même pas un rudiment de rien...
 
l'idée ct ca :  
http://www.jubijub.com/bookmaco/index.html


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed