Spelling suggestions: "subject:"développement aging""
1 |
Canevas de développement agile pour l'évolution fiable de systèmes logiciels à composants et orientés servicesWaignier, Guillaume 26 January 2010 (has links) (PDF)
Les systèmes logiciels modernes se caractérisent par un besoin d'évolutions perpétuelles et rapides, comme par exemple dans le monde de l'informatique mobile. Pour faciliter le développe\-ment et l'évolution rapide de systèmes complexes, des approches de génie logiciel ont été proposées, telles que les architectures logicielles et la méthode de conception agile. Néanmoins, les solutions actuelles offrent peu de support pour permettre l'évolution fiable d'un système, c'est-à-dire permettre sa modification tout en garantissant le respect de ses exigences de qualités de service et de bon fonctionnement global. La contribution de cette thèse est CALICO, un canevas de développement agile pour la conception et l'évolution fiable de systèmes logiciels à composants et orientés services. Le développement agile repose sur l'utilisation d'un cycle de développement itératif et incrémental qui permet à l'architecte d'itérer entre les étapes de conception de l'architecture et de débogage du logiciel dans son environnement d'exécution. A chaque itération du cycle, l'architecte peut faire évoluer son logiciel et fiabiliser ses évolutions grâce à l'exécution d'analyses statiques et dynamiques complémentaires. Ainsi, lors de la conception et de l'évolution d'un système, l'architecte dispose d'un ensemble de métamodèles pour spécifier la structure de l'architecture de son logiciel et ses diverses exigences de qualité de services. Lors du déploiement, CALICO utilise les modèles spécifiés pour instancier le système sur la plate-forme d'exécution cible et les garde synchronisés avec le logiciel lors de son exécution. De cette façon, l'architecte dispose toujours d'une vue conceptuelle qui lui permet de raisonner sur les propriétés critiques de son logiciel lors d'une évolution. De plus, pour fiabiliser ces évolutions, CALICO offre un cadre fédérateur qui autorise la réutilisation de nombreux outils d'analyse statique des architectures logicielles et de débogage dynamique qui étaient jusqu'alors dispersés dans différentes plates-formes existantes. Ainsi, chaque évolution peut être analysée statiquement sur la vue conceptuelle avant d'être propagée au système logiciel. Les analyses dynamiques reposent quant à elles sur des valeurs disponibles à l'exécution. La capture de ces valeurs est effectuée grâce à une instrumentation automatique du système logiciel. CALICO permet donc de fiabiliser les évolutions même si les plates-formes d'exécution sous-jacentes ne le proposent pas nativement. Notre contribution se concrétise par une implémentation multi plates-formes. La version actuelle prend en charge quatre plates-formes à composants et une plate-forme à services. Par ailleurs, les tests de performances que nous avons réalisés démontrent que CALICO est utilisable pour la conception et l'évolution fiable de larges applications jusqu'à 10000 composants et services, ce qui correspond à la montée en charge maximale de la plupart des plates-formes d'exécution.
|
2 |
Analyse des principes du génie logiciel au niveau du développement agileBagane, Houda 03 1900 (has links) (PDF)
Dans le cadre du développement de logiciel, deux courants de pensée se font concurrence depuis quelques années : le développement de logiciels s'appuyant sur une modélisation plus détaillée et le développement de logiciels basé sur des méthodes agiles qui mettent l'accent sur la production de code opérationnel plutôt que sur la documentation. Chaque courant s'appuie sur ses propres principes. Diverses recherches ont été menées sur les fondements du génie logiciel plus « classique », de façon à en définir les principes. Parmi ces travaux figure la thèse de Normand Séguin, notre codirecteur. En revanche, aucune recherche n'a tenté d'étudier les fondements du développement agile de logiciel. Au début des années 2000, plusieurs grands noms du développement logiciel se sont réunis, parmi eux Cunningham, Beek, Schwaber, Sutherland et Fowler. Ces derniers ont tenté d'extraire, de leurs approches respectives, quatre valeurs et douze principes communs à tous dans le but de produire un « Manifeste agile ». Le développement agile de logiciel peut se faire à l'aide d'un ensemble de méthodes agiles. Bien que chaque méthode adhère aux valeurs et principes du manifeste, chacune met de l'avant des valeurs, des principes et des pratiques complémentaires. Ce mémoire présente les résultats d'une étude de 32 énoncés présentés comme étant des « principes agiles » répertoriés dans la littérature. La liste des principes étudiés est formée à partir des douze principes du manifeste agile, cinq principes de l'eXtreme programming (XP), six de Scrum et neuf de Dynamic System Development Method (DSDM). Notre étude est fondée sur une méthodologie analytique reposant sur une liste de critères pour vérifier si un « principe agile » correspond bien à un principe de génie logiciel. Notre analyse a permis d'identifier 19 principes qui répondent aux critères. Tous les principes retenus sont des propositions prescriptives guidant l'action dans le processus de développement de logiciel.
______________________________________________________________________________
MOTS-CLÉS DE L’AUTEUR : génie logiciel, développement agile, manifeste agile, méthodes agiles, principe, SWEBOK, eXtreme Programming, Scrum, DSDM.
|
3 |
Le Débogage à Distance et la Réflexion dans les Dispositifs à Ressources LimitéesPapoulias, Nikolaos 19 December 2013 (has links) (PDF)
La construction de logiciels pour des appareils qui ne peuvent pas accueillir localement des outils de développement peut être difficile. Ces appareils soit ont une puissance de calcul trop limitée pour exécuter un IDE (par exemple, smartphones), ou manquent d' interfaces d'entrée / sortie appropriées (écran, clavier , souris) pour la programmation (par exemple, les robots mobiles) ou sont tout simplement inaccessibles pour des développements locaux (par exemple cloud - serveurs). Dans ces situations, les développeurs ont besoin d'une infrastructure appropriée pour développer et déboguer des applications distantes. Des solutions de débogage à distance sont parfois délicates à utiliser en raison de leur nature distribuée. Les études empiriques nous montrent que, en moyenne 10,5 minutes par heure de codage (plus de cinq semaines de travail de 40 heures par an) sont passées pour le re-déploiement d'applications pour corriger les bugs ou améliorer leur fonctionnalité [ZeroTurnAround 2011]. En plus, les solutions courantes manquent des aménagements qui seraient autrement disponibles dans un contexte local, car c'est difficile de les reproduire à distance (par exemple débogage objet-centré [Ressia 2012b]). Cet état influe sur la quantité d' expérimentation au cours d'une session de débogage à distance - par rapport à un contexte local. Dans cette thèse, afin de surmonter ces problèmes, nous identifions d'abord quatre propriétés désirables qu'une solution idéale pour le débogage à distance doit présenter : l'interactivité, l'instrumentation, la distribution et la sécurité. L'interactivité est la capacité d'une solution de débogage à distance de mise à jour incrémentale de toutes les parties d'une application sans perdre le contexte de d'exécution (sans arrêter l'application). L'instrumentation est l'aptitude d'une solution de modifier la sémantique d'un processus en cours en vue d'aider le débogage. La distribution est la capacité d'une solution de débogage à adapter son cadre alors que le débogage d'une cible à distance. Enfin la sécurité fait référence à la disponibilité de conditions préalables pour l'authentification et la restriction d'accès. Compte tenu de ces propriétés, nous proposons Mercury, un modèle de débogage à distance et une architecture pour des langues réflexifs à objets. Mercury ouvre (1) l'interactivité grâce à un méta-niveau à distance miroir basé sur un lien de causalité avec sa cible, (2) l'instrumentation à travers une intercession réflective basée sur la réification de l'environnement d'exécution sous-jacent, (3) la distribution grâce à un middleware adaptable et (4) la sécurité par la décomposition et l'authentification de l'accès aux aspects réflexifs. Nous validons notre proposition à travers un prototype dans le langage de programmation Pharo à l'aide d'un cadre expérimental diversifié de multiples dispositifs contraints. Nous illustrons des techniques de débogage à distance supportées par les propriétés de Mercury, tels que le débogage agile distant et l'instrumentation objet à distance et montrons comment ils peuvent résoudre dans la pratique, les problèmes que nous avons identifiés.
|
Page generated in 0.0674 seconds