Table des matières
1 Introduction
Le développement d'applications web manipulant des informations géoréférencées est de plus en plus soutenu par des interfaces de programmation (API) spécialisées qui permettent des cycles de développement rapides et des applications de haute qualité. Ces API servent des programmeurs de différents niveaux d'expertise, et le choix d'une API appropriée peut significativement impacter la productivité des développeurs et le succès du projet.
L'utilisabilité des API est cruciale pour faciliter l'utilisation efficace des fonctionnalités disponibles. Cette étude compare trois API de cartographie majeures : Google Maps JavaScript API, ArcGIS API pour JavaScript et OpenLayers JavaScript Mapping Library, représentant respectivement les perspectives commerciales, professionnelles SIG et académiques.
Comparaison de la taille des API
Google Maps : Empreinte API significativement plus petite
Période d'évaluation
Un an d'analyse des versions
Fonctionnalités des prototypes
8 fonctionnalités cartographiques principales implémentées
2 Configuration de la comparaison
2.1 API et versions sélectionnées
L'étude a analysé plusieurs versions de chaque API sur une période d'un an :
- Google Maps : Versions 3.7 – 3.9
- ArcGIS : Versions 2.0 – 3.1
- OpenLayers : Versions 2.3 – 2.12
2.2 Prototypes pour comparaison
Trois prototypes JavaScript avec des fonctionnalités identiques ont été développés en utilisant chaque API. Les prototypes implémentaient huit fonctionnalités cartographiques principales identifiées par l'analyse des applications cartographiques populaires et des programmes de cours SIG :
- Contrôles de zoom
- Visualisation de l'étendue complète
- Navigation par panoramique
- Contrôleurs de carte
- Carte de vue d'ensemble
- Entités géoréférencées
- Association d'informations aux entités
- Recherche de localisation
2.3 Identification des métriques
L'approche Objectif-Question-Métrique (GQM) a été employée pour structurer la comparaison quantitative. Les objectifs principaux incluaient l'évaluation de l'impact de l'utilisabilité des API sur la productivité des développeurs et la complexité des applications.
3 Cadre des métriques logicielles
L'étude a employé plusieurs métriques logicielles pour évaluer la complexité et l'utilisabilité des API :
Métriques de complexité : La métrique de complexité cyclomatique $M = E - N + 2P$ où E représente les arêtes, N représente les nœuds et P représente les composantes connexes, a été adaptée pour l'évaluation des API.
Métriques de taille : La taille des API a été mesurée en utilisant :
- Nombre de classes et de méthodes
- Lignes de code requises pour des fonctionnalités équivalentes
- Scores de complétude de la documentation
4 Résultats et analyse
L'analyse comparative a révélé des différences significatives dans les caractéristiques des API :
Principales observations
- L'API Google Maps a démontré la plus petite empreinte et la courbe d'apprentissage la plus simple
- L'API ArcGIS a offert les fonctionnalités SIG les plus complètes mais avec une complexité plus élevée
- OpenLayers a fourni un bon équilibre entre fonctionnalité et ouverture
- La taille des API était fortement corrélée avec la complexité d'implémentation
5 Travaux connexes
Les études précédentes sur l'utilisabilité des API se sont concentrées sur les interfaces de programmation générales, avec une attention limitée aux API spécifiques à un domaine comme les services de cartographie. Cette étude étend les travaux de Myers et Stylos (2012) sur l'utilisabilité des API et la recherche de McCloskey sur les services web géospatiaux.
6 Conclusions et travaux futurs
L'étude conclut que la taille des API impacte significativement l'utilisabilité, avec des API plus petites comme Google Maps permettant des cycles de développement plus rapides. Les travaux futurs devraient explorer des études longitudinales de l'évolution des API et incorporer des métriques d'utilisabilité plus diversifiées.
7 Analyse technique
Cette étude comparative des API de cartographie représente une contribution significative à la compréhension de l'utilisabilité des API spécifiques à un domaine. La méthodologie de recherche, combinant à la fois l'analyse des spécifications et la comparaison pratique des implémentations, fournit un cadre robuste pour l'évaluation des API qui s'aligne avec les principes établis du génie logiciel.
Les conclusions concernant la taille et la complexité des API résonnent avec le concept de "complexité essentielle" de Brooks dans la conception logicielle. Comme noté dans l'œuvre fondatrice "No Silver Bullet", la complexité inhérente ne peut être éliminée, seulement gérée. La taille plus petite de l'API Google Maps suggère une meilleure gestion de cette complexité essentielle, la rendant plus accessible aux développeurs de tous niveaux de compétence.
L'approche basée sur les métriques employée dans cette étude s'appuie sur des cadres de mesure logicielle établis. L'adaptation de la complexité cyclomatique $C = E - N + 2P$ pour l'évaluation des API démontre une application innovante des métriques logicielles traditionnelles aux contextes modernes de développement web. Cette approche pourrait être étendue à d'autres API spécifiques à un domaine en suivant la méthodologie décrite dans la norme IEEE 1061 pour les métriques de qualité logicielle.
Les études comparatives comme celle-ci sont cruciales pour la sélection de technologies basée sur des preuves dans les projets logiciels. Alors que le web géospatial continue d'évoluer, avec une importance croissante dans les applications allant de la logistique à l'urbanisme, comprendre les compromis entre les différentes API de cartographie devient de plus en plus précieux pour la recherche académique et la pratique industrielle.
8 Implémentation du code
Comparaison de l'initialisation basique de carte :
// Google Maps API
function initGoogleMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: 38.722, lng: -9.139},
zoom: 10
});
}
// OpenLayers API
function initOpenLayersMap() {
var map = new OpenLayers.Map('map');
var layer = new OpenLayers.Layer.OSM();
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(-9.139, 38.722), 10);
}
// ArcGIS API
function initArcGISMap() {
require(['esri/map'], function(Map) {
var map = new Map('map', {
center: [-9.139, 38.722],
zoom: 10,
basemap: 'topo'
});
});
}
9 Applications futures
L'évolution des API de cartographie se poursuit avec les tendances émergentes :
- Intégration 3D et RA : Capacités de visualisation améliorées
- Traitement de données en temps réel : Analytique géospatiale en flux
- Intégration d'apprentissage automatique : Cartographie prédictive et reconnaissance de motifs
- Informatique en périphérie : Capacités de cartographie hors ligne pour applications mobiles
- Efforts de standardisation : OGC API - Features et autres standards ouverts
10 Références
- Myers, B. A., & Stylos, J. (2012). API Usability: A Literature Review and Framework. IEEE Transactions on Software Engineering.
- McCloskey, B. (2011). Evaluating Geospatial Web Services. International Journal of Geographical Information Science.
- Brooks, F. P. (1987). No Silver Bullet: Essence and Accidents of Software Engineering. IEEE Computer.
- IEEE Standard 1061-1998: Standard for Software Quality Metrics Methodology.
- Open Geospatial Consortium (2020). OGC API - Features Standard.
- Google Maps JavaScript API Documentation (v3.9).
- ArcGIS API for JavaScript Documentation (v3.1).
- OpenLayers JavaScript Mapping Library Documentation (v2.12).