340 research outputs found

    Agilité et maintenabilité: les méthodes agiles sont-elles favorables ou non pour la maintenabilité des systèmes ?

    Get PDF
    Née d’un cours de génie logiciel et tout particulièrement lors de cours sur les méthodologies agiles, l’idée de base de ce travail est de pouvoir analyser la maintenabilité des systèmes ayant été conçus d'après les méthodes agiles et de pouvoir évaluer l'influence que celles-ci peuvent avoir sur l'amélioration ou la détérioration de ladite maintenabilité. Or, il s’est avéré que répondre à la question « Les méthodes agiles sont-elles favorables ou non pour la maintenabilité des systèmes ? » relevait plus d’un parcours au travers de concepts, expériences et savoir-faire que d’une expérimentation tendant à apporter une simple réponse binaire « oui/non » à une problématique bien plus complexe. Le long de ce parcours, il s’est avéré que mesurer le temps destiné à maintenir les solutions agiles n’était pas une étape praticable. Les directions ont alors été changées et les mesures ont été remplacées par des interviews, de l’observation et des échanges menant à une réflexion globale sur l’évolution et l’amélioration de la maintenabilité. Ce travail de recherche fait donc état du parcours bien plus que d’une affirmation ou d’une trouvaille

    Analyse des principes du génie logiciel au niveau du développement agile

    Get 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. \ud ______________________________________________________________________________ \ud MOTS-CLÉS DE L’AUTEUR : génie logiciel, développement agile, manifeste agile, méthodes agiles, principe, SWEBOK, eXtreme Programming, Scrum, DSDM

    Implantation d'une méthode agile de développement logiciel en entreprise : une culture accueillant le changement

    Get PDF
    Depuis quelques années, les méthodes agiles ont émergées et semblent prometteuses. Ce mémoire relate les travaux réalisés dans le but de procéder à l’implantation d’une méthode agile de développement en entreprise. Afin de distinguer les approches agiles, nous débutons par un rappel des approches traditionnelles. Nous établissons quelles sont les caractéristiques de ces approches, les différents modèles et leurs limitations. Nous analysons ensuite l’offre des approches agiles. Nous définissons en quoi consiste l’agilité et quelles sont les caractéristiques communes de ces approches. Nous présentons quelques méthodes, plus particulièrement : Extreme Programming, Scrum et Crystal Clear. Finalement, nous relatons l’expérience d’une implantation en entreprise afin de vérifier sa facilité d’application. Nous concluons que ces approches adaptatives sont plus efficaces que les approches prédictives lorsqu’elles sont utilisées dans un contexte propice.In recent years, agile methods have emerged and appear promising. This memoirs describes the work carried out in order to proceed with the implementation of an agile method development in business. To distinguish the agile approaches, we begin with a recap of traditional approaches. We establish what are the characteristics of these approaches, the various models and their limitations. We then analyze the proposal of agile approaches. We define what constitutes agility and what are the common characteristics of these approaches. We present some methods, in particular: Extreme Programming, Scrum and Crystal Clear. Finally, we talk about the experience of an establishment of the agile method into a business in order to verify its ease of implementation. We conclude that these adaptive approaches are more effective then predictive approaches when used in the right context

    Méthodologie de projets de développement agile dans un environnement PaaS

    Get PDF
    Depuis ces dernières années, le secteur de l’ingénierie logicielle a connu de grands changements en raison de l’adoption de méthodes agiles. Elles favorisent le développement itératif et incrémental des applications pour la satisfaction des clients et utilisateurs. Malgré ces avancées, les méthodes agiles font face à plusieurs challenges parmi lesquels, le manqué d’environnements adéquats capables de faciliter les activités de développement et d’assurer la mise en marché rapide des applications. Pour faire face à ce challenge, le nuage informatique constitue une solution car, il permet de disposer d’un ensemble de ressources, de services et d'outils rapidement et facilement configurables à moindre coût. Il est donc question dans ce travail d’identifier comment développer de façon agile, les applications dans le nuage informatique. À cet effet, nous avons proposé une méthodologie agile Scrum adaptée aux contextes de développement dans l’environnement PaaS (Platform as a Service) du cloud. Cette méthode Scrum basée sur celle du SBOK (Scrum Body of Knowledge) présente l’ensemble des pratiques, rôles et phases nécessaires pour le développement d’applications dans le PaaS. Avant de concevoir la méthode, nous avons analysé l’ensemble des couches du cloud (SaaS, PaaS, IaaS), puis nous avons choisi la method Scrum qui est l’une des méthodes agiles les plus populaires. L’ensemble des différents aspects de la méthode sont présentés en détail afin de faciliter son exploitation par les équipes de développement d’applications

    Intégrer une approche de conception centrée utilisateur à une approche agile de développement logiciel

    Get PDF
    RÉSUMÉ Ce travail traite de l'intégration de l’approche de conception centrée utilisateur (CCU) à une approche agile de développement logiciel, plus spécifiquement à l’approche Scrum. Il présente les éléments clés de chacune des approches et propose une façon pratique de les articuler ensemble pour que le résultat d’intégration soit facile à mettre en oeuvre par les équipes de développement logiciel. Nous faisons ressortir des similarités entre les approches qui favorisent une intégration des pratiques, ainsi que des défis envisagés qu’il est nécessaire de surmonter pour réussir cette intégration. Pour atteindre l’objectif d’intégrer les pratiques de chaque domaine, nous présentons dans un guide destiné aux équipes de développement logiciel, une méthode d’intégrer des activités de CCU à celles de l’approche Scrum. Le guide s’adresse d’abord à des équipes de développement logiciel suivant une approche Scrum, qui désirent intégrer des pratiques de conception centrée utilisateur. Nos expériences à travailler selon une approche Scrum et à tenter d’y appliquer des pratiques de conception centrée utilisateur ont motivé ce travail. La réalisation des projets amenait des questions qui étaient laissées sans réponse satisfaisante par les travaux d’autres auteurs. Certains travaux n’apportaient pas d’éléments de réponse, mais plutôt un argumentaire pour l’intégration des approches. D’autres, qui tentent des pistes de solutions, ne semblent pas pleinement adhérer aux principes d’une approche agile. Malgré ceci, les différents travaux des auteurs apportent des pistes de réponses qui peuvent être mises en commun. Ce sont ces éléments qui ont contribué à concevoir le guide présenté. Le guide proposé comprend 18 activités distinctes qui proviennent autant de l’approche de la CCU que de l’approche Scrum. Il tente de respecter les principes de chaque approche dans le choix des activités et dans la séquence appliquée durant les étapes de conception et de développement d’un logiciel.----------ABSTRACT This work deals with the integration of a user-centered design (UCD) approach to an agile software development approach, specifically the Scrum approach. It starts by describing the key elements of each approach and offers a convenient way to link them together so that the result of integration is easy to implement by software development teams. We highlight similarities between the approaches that promote integration of practices and the challenges to overcome to succeed in this integration. To meet this integration goal, we describe a method to integrate UCD activities with those of the Scrum approach in a guide presented to software development teams. The guide is primarily intended for software development teams using a Scrum approach that wish to integrate user-centered design practices. Our experience working with a Scrum approach and trying to apply user-centered design practices have motivated this work. Projects brought questions that were left without a satisfactory response by the work of other authors. Some work did not lead to answers, but rather brought an argument for the integration of approaches. Others who were trying possible solutions did not to fully endorse the principles of an agile approach. Despite this, the work of different authors contributed some clues that can be brought together. These are the elements that contributed to the design of this guide. The proposed guide includes 18 separate activities. These activities come from both a UCD approach and the Scrum approach. The guide tries to respect the principles of each approach in the choice of activities and sequence of steps applied during the design and development software

    Méthodes agiles en bibliothèque (Les)

    Get PDF
    Mémoire de fin d\u27étude du diplôme de conservateur promotion 26, portant sur les méthodes agiles en bibliothèque

    Méthode agile pour la conception collaborative multidisciplinaire de systèmes intégrés : application à la mécatronique

    Get PDF
    This work focuses on the multidisciplinary and collaborative design of integrated systems. These systems are subject to an ever increasing number of requirements, leading to the need for more comprehensive functional and spatial integration. These different types of product integration are also at the origin of organizational complexity. This complexity arises not only from the great number of actors performing various engineering activities but also from the diversity of disciplines involved (designated in this manuscript as “multidisciplinary integration”). To encourage this multidisciplinary integration, “preliminary design” and “detailed design” have been identified as the most significant steps, especially since they are characterized by the collaboration of multiple experts handling a large number of product definition’ technical data. Systems that have been designed thanks to multidisciplinary approaches are generally poorly integrated. This is partially due to the compartmentalization of disciplines, as well as to the “project-planned” method, where project planning is predominant and information is mainly spread out “top-down”. To ensure better cooperation between the various disciplines, to enable decision making based on operational indicators and to analyze and understand the multidisciplinary integration processes, a method inspired by the founding principles of agile methods (the agile manifesto) is proposed for the collaborative design of integrated systems. This work is based on three complementary concepts. The first is, the Collaborative Actions Framework, an operational framework for collaboration around actions. One objective of this framework is to improve the collaboration among designers, whatever their disciplinary origin. It also ensures traceability between decision making and corrections/changes made to technical data. This traceability is made possible by the useof the second concept, called Workspace. Even if this term is already well known, we propose a new definition/usage to transform it into collaboration spaces. This concept offers great possibilities, including the continuous delivering/sharing of experts’ contributions, multidisciplinary integration and change validation. The exchange of technical data between workspaces, or simultaneous work on the same data, relies on the ability to manage several parallel versions of the same item into a single datamanagement system. These opportunities are offered by the third concept, called Branch & Merge. Finally, these three concepts are illustrated through a scenario and a computer prototype. A mechatronic product, “the synergistic combination of mechanical and electrical engineering, computer science, and information technology” (Harashima et al., 1996), is used to illustrate the opportunities offered by our work in terms of multidisciplinary integration during collaborative design.Ces travaux portent sur la conception multidisciplinaire de systèmes intégrés. Ces systèmes sont soumis à un nombre d’exigences toujours croissant, entraînant des besoins en termes d’intégration fonctionnelle et spatiale. Ces différents types d’intégration relative au produit sont également la source d’une complexité organisationnelle, provenant à la fois de la multitude d’acteurs réalisant différentes activités d’ingénierie, mais également de la diversité des domaines impliqués, désignée dans ce manuscrit par « intégration multidisciplinaire ». Pour favoriser cette intégration multidisciplinaire, les phases de « conception préliminaire » et de « conception détaillée » ont été identifiées comme déterminantes, notamment car elles se caractérisent par la collaboration de nombreux experts, manipulant un grand nombre de données techniques de définition. Les systèmes conçus lors de conceptions multidisciplinaires restent faiblement intégrés. Cela est en partie dû au cloisonnement entre les disciplines et à un mode d’organisation projet basé sur une planification prédominante, caractérisé notamment par une diffusion de l’information principalement descendante (top-down). Afin d’assurer une meilleure collaboration entre ces différentes disciplines, de permettre des prises de décision éclairées par des indicateurs opérationnels et de pouvoir analyser et mieux comprendre les phénomènes d’intégration des expertises, l’introduction d’une méthode inspirée des principes fondateurs des méthodes agiles est proposée pour la conception collaborative de systèmes intégrés.La contribution de ces travaux s’appuie sur trois concepts complémentaires. Le premier, intitulé Collaborative Actions Framework correspond à un cadre de collaboration opérationnelle autour d’actions. Un des objectifs de ce framework est de faciliter la collaboration des acteurs des projets de conception, quelle que soit leur origine disciplinaire, mais également d’assurer une traçabilité entre les prises de décision et les corrections/modifications apportées sur les données techniques. Cette traçabilité est rendue possible grâce aux liens existants avec le second concept intitulé Workspace. Apportant un nouvel éclairage sur les possibilités offertes par la collaboration autour de ces espaces de collaboration, ce concept offre un certain nombre de possibilités,notamment la mise en commun continue des travaux, l’intégration multidisciplinaire et la validation des modifications. Les échanges de données techniques entre les workspaces, ou le travail simultané sur les mêmes données techniques, s’appuient quant à eux sur la possibilité de pouvoir gérer de façon parallèle différentes versions d’une même donnée technique. Ces possibilités sont proposées par le troisième concept, intitulé branch & merge, qui permet également à différents acteurs de travailler simultanément sur les mêmes données. Enfin, ces trois concepts sont ensuite illustrés par l’intermédiaire d’un démonstrateur composé d’un scénario et d’un prototype informatique. Un produit mécatronique, combinaison synergique et systémique de la mécanique, de l'électronique et de l'informatique temps réel, est utilisé afin d’illustrer les possibilités offertes par nos travaux en termes d'intégration multidisciplinaire lors de la conception collaborative
    • …
    corecore