150 likes | 301 Views
31 juillet 2012. Currency Converter. LOG530 - Été 2012 Michaël Groulx Sylvain Michaud Antoine Morin Guillaume Sigouin. Plan de la présentation. Présentation du système source Rétro-ingénierie et architecture Diagramme de classes Organisation relationnelle Analyse Étapes d'ingénierie
E N D
31 juillet 2012 Currency Converter LOG530 - Été 2012 Michaël GroulxSylvain MichaudAntoine MorinGuillaume Sigouin
Plan de la présentation • Présentation du système source • Rétro-ingénierie et architecture • Diagramme de classes • Organisation relationnelle • Analyse • Étapes d'ingénierie • Présentation du système mobile • Démonstration • Avantages et inconvénients • Améliorations possibles • Conclusion • Difficultés rencontrées • Leçon apprise • Questions
Définitions préalables CSV : Comma-separated values = Valeurs séparées par des virgules. Toast : Une notification à l'utilisateur.
Rétro-ingénierie et architecture Rétro-ingénierie pour récupérerl'architecture Trois étapes : • Décompilation avec DJ Java Decompiler • Diagramme de classe avec Eldean ESS-Model • Organisation relationnelle avec Structure 101
Diagramme de classe classes indépendantes de l'interface utilisateur classes définies dans des librairiesexternes classes en lien avec l'interface utilisateur
Organisation relationnelle Classes principales de l'application
Analyse • Utilisation de composantes Swing • Présence de code puant • Quatre Data Class(classes ne contenant que des get/set) • Une Schizophrenic Class(multiples abstractions) • Plusieurs Long Method(code très volumineux) • Utilisation de librairies externes • appframework-1.0.3 (simplification de Swing) • swing-worker-1.1 (gestion des fils d'exécution)
Étapes d'ingénierie • Code smell: Long Method • Corrigé par le refactoring Extract Method • Remplacement des Data Class • Réutilisation de code • Patron Most valuable first
Démonstration Cas d'utilisation 1 : Convertir 600 $ canadien en franc suisse. Cas d'utilisation 2 : Convertir 2000 $ canadien en livre sterling.
Avantages et inconvénients Avantages : • Consultation possible partout et en tout temps • Extensibilité du cadriciel Android • Frais de commercialisation peu élevés • Maintenance améliorée Inconvénients : • Multitude de téléphones Android • Non disponible sur d'autres plateformes
Améliorations possibles • Utilisation de la géolocalisation • Affichage des valeurs des devises • Historique des valeurs des devises • Personnalisation de l'interface • Personnalisation de la mise à jour des devises automatique
Conclusion Difficultés rencontrées : • Le code source n'était pas fourni • L'ajout d'images dans un Spinner est complexe • Conversion des devises en fonction du nombre de décimal • Temps d'adaptation à l'environnement de développement Leçon apprise : • Pas toujours réutiliser le code (Exemple : fichier CSV)