Currency Converter LOG530 - Été 2012 Michaël Groulx Sylvain Michaud Antoine Morin Guillaume Sigouin 31 juillet 2012
Plan de la présentation Présentation du système source o Rétro-ingénierie et architecture o Diagramme de classes o Organisation relationnelle o Analyse Étapes d'ingénierie Présentation du système mobile o Démonstration o Avantages et inconvénients o Améliorations possibles Conclusion o Difficultés rencontrées o Leçon apprise Questions
Définitions préalables CSV : Comma-separated values = Valeurs séparées par des virgules. Toast : Une notification à l'utilisateur.
Présentation du système source
Rétro-ingénierie et architecture Rétro-ingénierie pour récupérer l'architecture Trois étapes : o Décompilation avec DJ Java Decompiler o Diagramme de classe avec Eldean ESS-Model o Organisation relationnelle avec Structure 101
Diagramme de classe classes en lien avec l'interface utilisateur classes indépendantes de l'interface utilisateur classes définies dans des librairies externes
Organisation relationnelle Classes principales de l'application
Analyse Utilisation de composantes Swing Présence de code puant o Quatre Data Class (classes ne contenant que des get/set) o Une Schizophrenic Class (multiples abstractions) o Plusieurs Long Method (code très volumineux) Utilisation de librairies externes o appframework (simplification de Swing) o swing-worker-1.1 (gestion des fils d'exécution)
Étapes d'ingénierie Code smell: Long Method o Corrigé par le refactoring Extract Method Remplacement des Data Class Réutilisation de code Patron Most valuable first
Démonstration du système mobile
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)
Questions