Bonjour
Pour un projet de StartUp, nous avons fait appel à un développeur qui a choisi WindevMobile développer notre application. N'étant pas nous même compétants en informatique nous souhaiterions un avis d'autant que nous rencontrons des difficultés sur ce projet (retard, livraisons non fonctionnelles,...)
Il s'agit d'une application mobile qui ne gère pas une base de donnée mais qui au travers de multiples interaction avec un utilisateur déroule un arbre de décision complexe pour fournir une prédiction.
L'arbre de décision est composé d'une cinquantaine de sous-arbres ayant chacun plusieurs étapes incluant des tests, des boucles,... chaque étape nécessitant une interaction avec l'utilisateur, et manipulant de nombreuses données structurées).
L'application manipule divers concepts métier notamment des mesures d'optique composées de 3 valeurs (sphère cylindre axe) qui sont toujours manipulées ensemble.
Je me pose plusieurs questions :
Windev est-il l'outil le plus adapté pour ce type d'application, sachant qu'il ne s'agit pas de gérer une base de donnée mais des interactions utilisateur, de combiner de multiples données structurées et de dérouler des arbres de décision complexes et de communiquer en bluetooth avec un hardware ?
J'ai pu me procurer une petite portion de code du projet et je souhaiterai avoir un retour sur la qualité du code.
Au regard des difficultés que nous rencontrons sur ce projet (retard, application non fonctionnelle,...) peut-on se faire un avis sur le reste de l'application à partir de ce code ? Doit-on s'inquiéter ou le projet peut-il aboutir ?
La portion de code est une procédure qui réalise l'addition de deux mesures optiques dont l'une est une constante (sphere=0, cyl=-0.5, axe=90) en l’occurrence elle ne fourni pas le résultat attendu et le développeur ne comprend pas pourquoi, mais ma question n'est pas de trouver pourquoi ça ne marche pas, mais est ce que sa démarche de développement est "professionnelle" et est ce qu'on a une chance d'obtenir une application fiable et commercialisable.
Un grand merci d'avance pour votre aide et votre regard extérieur.
Nathalie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 PROCEDURE Kerato(oeil,Cylindre1,Axe1) // Cylindre1 et Axe1 = > astigmatisme cornéen reçu en paramètre Cylindre1 et Axe1 // il => détermine si le calcul porte sur l'il droit "OD" ou gauche "OG" // Valeurs d'Ajout +(-0.50)90° à l'astigmatisme cornéen nSphere2 est un entier = 0 Cylindre2 est un monétaire = - 0.50 Axe2 est un entier = 90 NouvelAxe est un monétaire NouveauCylindre est un monétaire NouvelleSphere est un monétaire Cylindre1_x_sin2Axe1 est un monétaire = (Cylindre1 * Sinus(2 * Axe1)) Cylindre2_x_sin2Axe2 est un monétaire = (Cylindre2 * Sinus(2 * Axe2)) Cylindre1_x_cos2Axe1 est un monétaire = (Cylindre1 * Cosinus(2 * Axe1)) Cylindre2_x_cos2Axe2 est un monétaire = (Cylindre2 * Cosinus(2 * Axe2)) NouvelAxe = ArcTang((Cylindre1_x_sin2Axe1 + Cylindre2_x_sin2Axe2) / (Cylindre1_x_cos2Axe1 + Cylindre2_x_cos2Axe2)) / 2 // conversion de radian en degrés NouvelAxe = (180 * NouvelAxe)/ ValPI // Traitement axe négatif SI NouvelAxe < 0 ALORS NouvelAxe = ((1 - (Abs(2 *NouvelAxe)/(2 *NouvelAxe))) * 90) + (2 * NouvelAxe) SINON SI NouvelAxe = 0 ALORS NouvelAxe = ((1 - 0) * 90) + (2 * NouvelAxe) FIN FIN moCos01 est un monétaire = Cosinus (2*(NouvelAxe - Axe1)) moCos02 est un monétaire = Cosinus (2*(NouvelAxe - Axe2)) NouveauCylindre = Cylindre1 * Cosinus (2*(NouvelAxe - Axe1)) + Cylindre2 * Cosinus(2*(NouvelAxe - Axe2)) NouvelleSphere = (Cylindre1 + Cylindre2 - NouveauCylindre) / 2 // Astigmatisme Total Attendu (Cornéen + Interne) => ATA //Bascule du résultat en mémoire SI oeil = "OD" ALORS gmoOD_ATA_Sphère = NouvelleSphere gmoOD_ATA_Cylindre = NouveauCylindre gnOD_ATA_Axe = NouvelAxe SINON gmoOG_ATA_Sphère = NouvelleSphere gmoOG_ATA_Cylindre = NouveauCylindre gnOG_ATA_Axe = NouvelAxe FIN
Partager