Particularités du développement web

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).

Table des matières

INTRODUCTION
CHAPITRE 1 REVUE DE LA LITTÉRATURE
1.1 Mise en contexte
1.1.1 Les applications web
1.1.2 Langages web
1.1.3 Relations entre fichiers
1.2 Particularités du développement web
1.2.1 Problèmes
1.2.2 Pistes de solutions
1.3 Pistes de solutions techniques/technologiques explorées
1.3.1 Analyse de structure du code
1.3.2 Modélisation d’application web
1.4 Outils et approche de rétro-ingénierie
1.4.1 Rétro-ingénierie d’application web
1.4.2 Rétro-ingénierie JavaScript
1.4.3 Rétro-ingénierie Node.js
1.4.4 Conclusion sur les outils et approche
CHAPITRE 2 ANALYSE STATIQUE DE JAVASCRIPT : UNE APPROCHE VIABLE ?
2.1 Échantillon de systèmes
2.2 Analyses préalables sur la viabilité de JavaScript
2.2.1 Utilisation de fonctions dynamiques
2.2.2 Dépendance entre fichiers
2.2.3 Résolution des sites d’appels
2.3 Évaluation de l’ambigüité pour la résolution des sites d’appels : la démarche
2.3.1 Exemple illustratif
2.3.2 Première série d’analyses
2.3.3 Deuxième série d’analyses
2.4 Évaluation de l’ambigüité pour la résolution des sites d’appels : les résultats
2.4.1 Évaluation du pouvoir de discrimination des filtres
2.4.2 Analyses qualitatives
2.5 Menaces à la validité
2.6 Améliorations possibles
2.7 Conclusion sur l’analyse statique
CHAPITRE 3 CRÉATION DE L’OUTIL WAVI
3.1 Processus de rétro-ingénierie de WAVI
3.1.1 Étape 1 : Transformation du code source vers un arbre syntaxique
3.1.2 Étape 2 : Recherche des éléments dans la structure
3.1.3 Étape 3 : Liens entre les fichiers
3.1.4 Étape 4 : Interaction entre les éléments
3.2 Artéfacts générés par WAVI
3.2.1 Représentation textuelle (JSON)
3.2.2 Diagramme de force dirigée
3.2.3 Diagramme de classe
3.3 Spécification de l’outil
3.4 Utilisation de WAVI
3.4.1 Application WAVI avec une interface graphique
3.4.2 Wavi en module NPM
3.5 Conclusion sur l’outil WAVI
CHAPITRE 4 VISUALISATION DES APPLICATIONS WEB
4.1 Expérimentations de visualisation avec WAVI : la démarche
4.1.1 Échantillon de systèmes
4.2 Expérimentations avec les diagrammes de force dirigée : les résultats
4.3 Expérimentations avec les diagrammes de Classe : les résultats
4.3.1 Comparaisons avec les autres outils de rétro-ingénierie
4.3.2 Observations sur les systèmes étudiés
4.3.3 Tailles des diagrammes générés
4.3.4 Les systèmes ES2015
4.4 Améliorations possibles de l’outil WAVI
4.5 Conclusion sur la visualisation des applications web
CONCLUSION 

Cours gratuitTélécharger le document complet

 

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *