Le développement et la maintenance d’applications web sont des tâches complexes qui doivent faire face à un certain nombre de problèmes particuliers. Selon la littérature scientifique, on compte parmi ces problèmes :
• Le manque de discipline et de constance : Selon (Welland 2001), les développeurs web ne font pas suffisamment attention aux problèmes de maintenance. Ils manquent de discipline et de constance, ce qui affecte la qualité des applications développées.
• Le cycle de développement trop court : Le cycle de développement alloué, par les entreprises, pour les applications web est beaucoup plus court que celui des logiciels conventionnels, ce qui fait qu’il y a davantage de pression sur les développeurs pour terminer le travail (Welland 2001). Ils doivent livrer des applications web rapidement, ce qui fait en sorte que le temps passé sur la conception, le test et la documentation du projet est significativement réduit (Mendes 2014).
• Les méthodes de développement trop complexes : Une étude (Jeary, Phalp et al. 2009) explique que 22 participants sur 23 ont abandonné leur méthode de développement parce qu’ils trouvaient qu’elle était trop complexe et difficile à appliquer. Ils ont, entre autres, noté que les méthodologies n’étaient pas suffisamment établies dans le milieu du développement web. De plus, il y a une certaine ambiguïté dans la terminologie utilisée ce qui les rend difficiles à comprendre. Les méthodologies proposées étaient incomplètes et les participants manquaient de directives dans l’application des méthodes, ce qui faisait qu’ils étaient moins confiants pour les utiliser.
• Les technologies et outils immatures : Les technologies ainsi que les outils, dans le domaine du développement web, sont actuellement immatures et cela a un impact direct sur les méthodes de développement selon (Jeary, Phalp et al. 2009) et (Liauw 2012).
• Langage trop flexible : JavaScript est un langage clé pour les applications web, car il permet de faire le pont entre le côté client et le côté serveur. C’est un langage flexible qui ne possède pas, de façon claire, d’implémenter des classes avec la spécification ES5. Des fois, plusieurs techniques différentes peuvent être utilisées dans le même programme pour créer des classes, ce qui résulte en un code qui est incohérent et difficile à maintenir (Gama, Alalfi et al. 2012).
• Les pages dynamiques rendent la structure plus complexe : De nos jours, les applications web font de plus en plus appel aux pages gérées de façon dynamique et créées sur mesure en fonction du besoin de l’utilisateur (Estievenart, Francois et al. 2003). Ces fonctionnalités requièrent souvent l’utilisation de bases de données. Leurs utilisations augmentent les capacités des applications web, mais elles rendent celles-ci toujours un peu plus complexes à gérer.
• Plusieurs technologies sont utilisées : La structure des sites web varie également beaucoup selon les technologies utilisées (Mendes 2014). Parmi les technologies utilisées, il y a les combinaisons de langages pour le côté client et pour le côté serveur. Certains se spécialisent dans la gestion de l’interaction utilisateur, d’autres pour personnaliser les styles visuels de l’interface et il en existe également pour faire des requêtes dans les bases de données.
Tous ces problèmes font en sorte qu’il y a un impact direct sur la qualité de la conception et la documentation du code. En conséquence, ce type d’application a une période de vie écourtée puisque les développeurs vont avoir plus de difficulté à maintenir l’application. Cette difficulté augmente le temps nécessaire pour la maintenance, ce qui augmente donc les coûts. Cette réalité poussera donc rapidement les gestionnaires à prendre la décision de remplacer l’application web au lieu de continuer à la maintenir.
Maintenant que les problèmes sont mieux connus, il est temps de regarder les solutions proposées dans certains articles lors des dernières années.
• Développer de nouvelles approches et outils : Afin de réduire les risques dans les projets de développement d’applications web complexe, il est important que l’industrie se concentre sur le développement de meilleures approches, méthodes, guides de développement et outils pour toutes les phases de développement et d’implémentation d’applications web (Ginige and Murugesan 2001). Dans le même sens (Jensen, M et al. 2009), pensent que la création de nouveaux outils est nécessaire pour déboguer et maintenir les applications web.
• Promouvoir la communication entre équipes de développement : Les applications web font généralement appel à plusieurs langages de programmation ou technologies. Un bon processus de développement devrait permettre la communication entre les équipes de développement afin d’assurer qu’il y ait une certaine cohérence et qu’il n’y ait pas de duplication entre eux (Welland 2001).
• Favoriser la documentation des applications : La documentation joue un rôle important dans la communication. Non seulement elle peut servir de base pour les discussions à propos de ce qui a été développé dans le passé, mais elle permet aussi de planifier l’évolution du logiciel dans le futur. Lorsqu’il y a un roulement de personnel, elle permet de ne pas perdre toutes les connaissances à propos de l’application web. Bref, avec une documentation adéquate, il est possible d’éviter d’éventuels problèmes pour la compréhension d’applications web complexes (Hassan and Holt 2002). Une solution pour mieux comprendre la structure d’une application web est l’utilisation de diagrammes (Fitzgerald, Counsell et al. 2013). Cela permet de mieux gérer la complexité dans les applications ainsi que d’abstraire et modéliser sa structure (Conallen 1999). Les représentations graphiques documentent les décisions de conception et facilitent la communication à l’intérieur de l’équipe (Schwinger and Koch 2006).
• Des méthodes de développement plus universelles : Les développeurs devraient être en mesure d’utiliser des processus qui sont réutilisables de projet en projet. Les méthodes de développements actuelles ne sont pas aussi efficaces d’un projet à un autre. Elles doivent être davantage universelles et être testées dans des cas réels (Jeary, Phalp et al. 2009).
INTRODUCTION |