Spelling suggestions: "subject:"deméthodes dde développement"" "subject:"deméthodes dee développement""
1 |
Implantation d'une méthode agile de développement logiciel en entreprise : une culture accueillant le changementTremblay, Richard 13 April 2018 (has links)
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.
|
2 |
Impacts de l'AOP sur les tests dans un environnement Agile : utilisation de Mocks pour les tests unitaires d'aspectsBourbonnais-Bigras, Félix-Antoine 19 April 2018 (has links)
Bien que l’AOP soit présent dans le paysage informatique depuis quelques années, son adoption industrielle reste relativement timide malgré les bénéfices architecturaux promis et espérés. L’objectif principal de nos travaux est de favoriser l’adoption de l’AOP auprès des développeurs oeuvrant dans l’industrie. Nous voulons proposer des solutions adaptées qui permettent à ces professionnels d’embrasser l’AOP sans avoir à sacrifier leur processus, méthodologie et outils actuels qui leur permettent d’atteindre des objectifs de performance, de qualité, de déploiement et de maintenabilité. Afin de nous permettre d’identifier des besoins réels, nous avons centré nos travaux sur des équipes employant un processus Agile. En effet, les processus Agiles préconisent généralement diverses pratiques et principes qui risquent d’être affectés par un changement de paradigme de programmation. C’est notamment le cas des tests qui tiennent une place très importante au sein des méthodes agiles, car ils permettent l’acceptation du changement sur le long terme. Dans un premier temps, nous avons mené une étude exploratoire dont l’objectif était de mieux définir quels seraient les irritants pour des développeurs débutants avec l’AOP et qui travaillent dans un environnement Agile. À la lumière des résultats de cette étude, nous avons amorcé la partie maîtresse de nos travaux qui consistent à élaborer une solution pour faciliter les tests unitaires d’aspects. Pour ce faire, nous avons conçu et rendu disponible un cadre d’applications (framework) permettant la création et le tissage de Mocks avec des aspects, facilitant ainsi l’isolation des aspects. Ce cadre a été développé de manière à s’arrimer avec les pratiques et outils répandus en industrie pour des équipes Agiles. / Although the fact that AOP has been proposed since quite a few years, the industrial adoption of this paradigm is not widespread in spite of the benefits hoped and promised for software architectures. The main goal of our work is to promote the adoption of AOP by industrial developers. We want to provide adapted solutions allowing those professionals to embrace AOP without having to sacrifice their processes, practices and tools. We seek practical solutions to allow them to reach their performance, quality, deployment and maintainability goals. To better identify and understand the real needs of teams using Agile processes, our work is focus on Agile environments. In fact, Agile processes encourage numerous practices and principles that could be affected by the usage of AOP in such projects. For instance, this is the case for software testing who is largely embraced the Agile community as a way of sustaining the acceptation of change over time. Our first step was to conduct an exploratory study to identify what could be the irritants for Agile teams who want to use AOP for the first time. Considering those results, we undertook our main contribution consisting to produce a solution to help unit testing of aspects. To do so, we developed and made available a framework to create and weave Mocks with aspects to help isolate aspects for testing purposes. The framework was designed to integrate easily with practices and tools commonly used in the industry by Agile teams.
|
3 |
Architecting software systems using model transformations and architectural frameworksPerrouin, Gilles 20 September 2007 (has links)
<b>Résumé</b>
Les applications logicielles sont devenues indispensables dans un grand nombre d’activités humaines et se sont répandues grâce à l’avènement des réseaux (ADSL, WIFI, GSM...) ou de l’informatique nomade (ordinateurs portables, assistant digitaux personnels, téléphones mobiles etc.) qui ont rendu l’interaction avec des systèmes informatiques possible en presque tout lieu. Cet état de fait a engendré à la fois une grande complexité pour la conception de ces systèmes distribués et de grandes attentes de la part des clients de ces systèmes, préoccupés principalement par les qualités et temps de réalisation des applications logicielles exécutées par ces systèmes ainsi que les coûts qui en découlent. Il est donc nécessaire d’améliorer nos méthodes de développement afin de faire face à ces nouveaux défis.
D’une part, l’ingénierie dirigée par les modèles (IDM), en permettant la description d’applications logicielles à divers niveaux d’abstraction et en générant certains de leurs éléments via la transformation de modèles, s’attaque à la complexité intrinsèque de ces systèmes et réduit leur temps de développement ainsi que celui de maintenance. D’autre part, l’approche de ligne de produits accélère la réutilisation logicielle en proposant le développement d’applications basées sur un ensemble de composants communs dans un domaine déterminé. Ainsi, lorsque ceux-ci sont conçus avec soin, il est possible de satisfaire simultanément des critères de qualité et de temps de développement. Les méthodes qui ont été construites sur le paradigme de ligne de produits se sont principalement attachées à décrire les points communs et les différences parmi les composants qui seront réutilisés par les applications membres de lignes de produits.
Néanmoins, un logiciel doit très souvent répondre à un besoin qui émane d’un utilisateur particulier. Il est donc nécessaire de prendre en compte ses attentes qui sont parfois spécifiques à cet utilisateur et il n’est ni possible ni souhaitable de définir et de supporter celles ci dans l’ensemble de composant réutilisables à partir desquels les applications sont dérivées. Certaines méthodes orientées lignes de produits proposent des approches pour la dérivation de produits par trop restrictives qui excluent de manière indue des produits qui, bien que pouvant être développés à partir des composants de la ligne de produits, n’ont pas été envisagés lors de sa définition, ce qui nous prive donc de la possibilité d’adresser facilement les exigences spécifiques des utilisateurs. Si quelques méthodes reconnaissent la nécessité de prendre en compte ces exigences particulières, elles ne fournissent aucune solution systématique pour intégrer ces exigences dans le cycle de développement d’un produit.
Cette thèse s’attache à la définition d’une méthode plus souple pour le développement d’applications dans le contexte de ligne de produits qui s’appuie sur une combinaison de l’approche IDM avec les “frameworks” orientés-objet. Le domaine ciblé par cette méthode est celui des applications de ventes enchères sur Internet qui est un domaine non-critique pour lequel une grande variabilité dans les scenarii d’utilisation est requise.
La première partie de cette thèse introduit les concepts de base de notre méthode nommée FIDJI. En particulier, nous définissons la notion de framework architectural comme un ensemble de modèles permettant la description cohérente des divers constituants d’analyse et de concept d’une ligne de produits. Cette entité est ensuite instanciée par le biais de transformations de modèles. Nous décrivons ensuite les principes méthodologiques qui ont déterminé les choix des modèles du framework architectural ainsi que l’instanciation flexible de produits encadré par des contraintes définies sur les modèles du framework architectural.
La seconde partie de cette thèse présente en détail les phases de définition des charges, d’analyse et de conception de la méthode FIDJI. Tout d’abord, un modèle de définition de ligne de produits est introduit permettant la définition des charges de manière informelle en se basant sur des variations de cas d’utilisation et un dictionnaire de données et encadré par des règles méthodologiques simples. Nous définissons ensuite la phase d’analyse comme un raffinement de la phase de découverte des charges en proposant la modélisation des concepts du domaine à l’aide de diagrammes UML 2.0 ainsi que l’enrichissement des cas d’utilisation par des expressions OCL (Object Constraint Language). Au niveau de l’analyse, nous démontrons comment un certain degré de flexibilité peut être obtenu au niveau du cycle de vie des évenements échangés entre le système et ses acteurs via l’utilisation de variables d’états. La phase de design s’intéresse principalement à l’aspect architectural, en proposant un modèle de composants basé sur UML 2.0 permettant la description de styles architecturaux structurant le framework architectural. Des profiles UML 2.0 définissant les éléments de modèles utilisés, leurs conditions d’application ainsi que des règles de cohérence et de traceabilité pour les modèles d’analyse et de conception sont proposés. Le processus méthodologique, commun aux phases d’analyse et de conception, consiste en l’écriture d’un programme de transformation de modèles permettant d’instancier le framework architectural tout en étant guidé par des contraintes d’instanciation qui définissent de manière souple les frontières de la ligne de produits.
Enfin, la dernière partie de cette thèse s’intéresse à l’application concrète de la méthode FIDJI. Une étude de cas appartenant au domaine des applications e-commerce est détaillée, illustrant ainsi les modèles FIDJI. Nous montrons en particulier comment écrire le programme de transformations à partir d’opérations de transformation prédéfinies ainsi que la raison d’être et l’utilisation des contraintes guidant le processus d’instanciation au coeur de la méthode.
<b>Abstract</b>
Software systems have become essential to many human activities and have proliferated thanks to various hardware innovations such as mobile computing (laptops, personal digital assistants, mobile phones) and networks (DSL, WIFI, GSM, etc.) enabling interactions between users and computer systems in virtually any place. This situation has created both a great complexity for such distributed systems to be designed and great expectations (mainly concerned with quality, time and induced costs of the software) from the users of these systems, requiring improvements in software engineering methods in order to meet these challenges.
On the one hand, Model Driven Engineering (MDE), by allowing the description of software systems through abstractions and deriving useful system artifacts, harnesses inherent complexity of software systems and reduces time-to-market via model transformations. On the other hand, software product lines foster software reuse by proposing to develop applications based on a set of common assets belonging to a particular domain. Thus, when product line assets are carefully designed, both quality and time-to-market requirements can be achieved. Development methods that have resulted from the product line paradigm generally focus on defining common and variable assets to be reused by product line members. However, they hardly address the development of applications from the product line assets in a systematic way. Furthermore, those considering it propose automated but rather inflexible approaches that unnecessarily exclude products which, although addressable by product line assets, have not been explicitly envisioned during product line definition. If in some domains — in particular, those including hardware constraints and/or critical features — it is possible to fully determine the products that are part of the software product line, in the other cases, an initial set of products can only be considered assuming that the customers’ requests will be met by this set. We believe that this assumption is false in general and this thesis examines the research question which consists in proposing a set of models and a product line development method to offer more flexibility while deriving products in order to seamlessly address customers’ requests. The domain we consider is that of web e-bartering systems.
This thesis strives to propose a trade-off between automated and unsupported product derivation by providing a model-driven product line development method that allows developers to define product line members by transforming a coherent and layered set of product line models. Moreover, constraints on the possible transformations have to be specified in order to determine which products cannot be derived both for functional and technical reasons.
The first part of this thesis introduces the foundational concepts of our FIDJI method. In particular, it describes the notion of architectural framework as a set of models defining product line assets at analysis and design levels and which is instantiated in order to obtain product line members thanks to model transformations. This part then describes key methodological principles driving the choice of architectural framework models and how flexibility in product derivation can be achieved and controlled by constraints defined over the set of architectural framework models.
The second part of this thesis is devoted to requirements elicitation, analysis and design phases of the method. For requirements elicitation, a specific product line template is defined to allow for the description of a software product line in an informal manner via use case variants and data dictionaries. The analysis phase refines requirements elicitation by allowing the precise description of domain concepts in terms of UML models as well as functionalities in terms of use cases completed by OCL expressions. Variability is ensured through the use of state variables in OCL expressions which enable a wide variety of scenarios to be implemented in the product. Constraints indirectly define product line boundaries by preventing certain instantiations from being made. The design phase focuses on the architectural design of the architectural framework and describes it in terms of interacting components structured via architectural styles. Analysis and design models are supported by UML profiles defining the constructs offered by the FIDJI method, their usage conditions as well as traceability and consistency rules ensuring model correctness. The methodological process for both analysis and design consists in writing a transformation program, validated over the aforementioned constraints, that will instantiate the architectural framework to obtain a viable product line member.
The last part of the thesis deals with the practical application of the method. A case study belonging to the e-commerce domain illustrates the FIDJI method in detail and a simple architectural framework is defined for this purpose. In particular, we show how the transformation program is created from predefined transformation operations dedicated to FIDJI models and the rationale and usage of constraints controlling the instantiation of the architectural framework.
|
Page generated in 0.0681 seconds