background preloader

Development methodologie : agile, lean

Facebook Twitter

Unified Process. The Unified Software Development Process or Unified Process is a popular iterative and incremental software development process framework. The best-known and extensively documented refinement of the Unified Process is the Rational Unified Process (RUP). Other examples are OpenUP and Agile Unified Process. Profile of a typical project showing the relative sizes of the four phases of the Unified Process. Overview[edit] The Unified Process is not simply a process, but rather an extensible framework which should be customized for specific organizations or projects. The Rational Unified Process is, similarly, a customizable framework. As a result it is often impossible to say whether a refinement of the process was derived from UP or from RUP, and so the names tend to be used interchangeably.

The name Unified Process as opposed to Rational Unified Process is generally used to describe the generic process, including those elements which are common to most refinements. Architecture Centric[edit] Capability Maturity Model Integration. Un article de Wikipédia, l'encyclopédie libre. CMMI, sigle de Capability Maturity Model + Integration, est un modèle de référence, un ensemble structuré de bonnes pratiques, destiné à appréhender, évaluer et améliorer les activités des entreprises d'ingénierie. CMMI a été développé par le Software Engineering Institute de l'université Carnegie-Mellon, initialement pour appréhender et mesurer la qualité des services rendus par les fournisseurs de logiciels informatiques du département de la Défense des États-Unis(DoD). Il est maintenant largement employé par les entreprises d'ingénierie informatique, les directeurs des systèmes informatiques et les industriels pour évaluer et améliorer leurs propres développements de produits[1].

Le modèle CMMI[modifier | modifier le code] CMMI est un cadre générique de processus qui se décline en trois modèles (appelés constellations) : Maturité[modifier | modifier le code] Historique[modifier | modifier le code] « Initial » (niveau de maturité 1) Model driven architecture. Un article de Wikipédia, l'encyclopédie libre. L’architecture dirigée par les modèles ou MDA (pour l'anglais Model Driven Architecture) est une démarche de réalisation de logiciels, proposée et soutenue par l'OMG. C'est une variante particulière de l'ingénierie dirigée par les modèles (IDM, ou MDE pour l'anglais Model Driven Engineering). D'autres variantes de l'IDM ont été développées, par exemple par Microsoft (DSL Tools). Introduction[modifier | modifier le code] L'OMG fournit des spécifications des standards plutôt que des implémentations, le plus souvent après avoir reçu une demande de proposition (Request for Proposals). Les standards liés au MDA[modifier | modifier le code] L'approche MDA est liée à de nombreux standards tels que : CWM (Common Warehouse Metamodel)EDOC (Enterprise Distributed Object Computing)MOF (Meta-Object Facility)MOFM2T (MOF Model-to-Text language)QVTSPEM (Software Process Engineering Metamodel)UML (Unified Modeling Language)XMI (XML Metadata Interchange)etc.

Unified Modeling Language. Un article de Wikipédia, l'encyclopédie libre. Pour les articles homonymes, voir UML. En informatique UML (de l'anglais Unified Modeling Language), ou Langage de modélisation unifié, est un langage de modélisation graphique à base de pictogrammes. Il est utilisé en développement logiciel, et en conception orientée objet. UML est couramment utilisé dans les projets logiciels. UML est l'accomplissement de la fusion de précédents langages de modélisation objet : Booch, OMT, OOSE. Principalement issu des travaux de Grady Booch, James Rumbaugh et Ivar Jacobson, UML est à présent un standard défini par l'Object Management Group (OMG).

La dernière version diffusée par l'OMG est UML 2.5 bêta 2 depuis septembre 2013[1]. UML est utilisé pour spécifier, visualiser, modifier et construire les documents nécessaires au bon développement d'un logiciel orienté objet. Activité d'un objet/logicielActeursProcessusSchéma de base de donnéesComposants logicielsRéutilisation de composants. Architecture orientée services. Un article de Wikipédia, l'encyclopédie libre. Pour les articles homonymes, voir SOA.

Ce terme est apparu au cours de la période 2000-2001[1] et concernait à l'origine essentiellement les problématiques d'interopérabilité syntaxique en relation avec les technologies d'informatique utilisées en entreprise. Cette conception a évolué pour désigner maintenant le sous-ensemble particulier d'architecture de médiation en fonction de la technologie disponible.

Historique[modifier | modifier le code] Au cours de la décennie 1980-1990, la problématique de l'interopérabilité des systèmes d'information, particulièrement complexe lors de fusion ou de l'acquisition d'entreprises, a donné naissance au domaine de recherche de l'interopérabilité des données ; c'est à cette époque que l'on distingua l'interopérabilité syntaxique de l'interopérabilité sémantique des données.

Ces recherches aboutirent aux systèmes multibases, aux développements des bases de données réparties et à l'architecture fédérée. The New Methodology. In the past few years there's been a blossoming of a new style of software methodology - referred to as agile methods. Alternatively characterized as an antidote to bureaucracy or a license to hack they've stirred up interest all over the software landscape. In this essay I explore the reasons for agile methods, focusing not so much on their weight but on their adaptive nature and their people-first orientation. Probably the most noticeable change to software process thinking in the last few years has been the appearance of the word 'agile'.

We talk of agile software methods, of how to introduce agility into a development team, or of how to resist the impending storm of agilists determined to change well-established practices. This new movement grew out of the efforts of various people who dealt with software process in the 1990s, found them wanting, and looked for a new approach to software process. This essay was originally part of this movement. From Nothing, to Monumental, to Agile . Agile software development. Agile software development is a set of principles for software development in which requirements and solutions evolve through collaboration between self-organizing,[1] cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change.[2] Agile itself has never defined any specific methods to achieve this, but many have grown up as a result and have been recognized as being 'Agile'.

The Manifesto for Agile Software Development,[3] also known as the Agile Manifesto, was first proclaimed in 2001, after "agile methodology" was originally introduced in the late 1980s and early 1990s. The manifesto came out of the DSDM Consortium in 1994, although its roots go back to the mid 1980s at DuPont and texts by James Martin[4] and James Kerr et al.[5] History[edit] Incremental software development methods trace back to 1957.[6] In 1974, E. A. The Agile Manifesto[edit] Evolutions[edit] UX London: Agile UX Rugby. Lean as the solution to scale agile methodologies.

Agile Methodologies have already proven how efficient they are when applied on small teams to deliver software with great quality, predictability while nurturing team spirit and fostering people engagement. There are tons of literature on that very subject out there and, in 2010, Gartner predicted that by 2012 80% of software development project will be carried out using Agile methodologies. As these methodologies have proven their value and became industry standards for small projects (PMI added the PMI Agile Certified Practictioner as a new certification which says a lot about how well this methodological toolbox has been integrated into corporatica), the detractor voices became less and less audible but for one point : scalability.

The official anti-agile persona (usually not comfortable with the change of culture related to the implementation of Agile methodologies) know they have a point here : how to scale agile on large projects with many teams ? The scalability conundrum. Lean software development. Lean software development (LSD) is a translation of lean manufacturing and lean IT principles and practices to the software development domain. Adapted from the Toyota Production System,[1] a pro-lean subculture is emerging from within the Agile community. Origin[edit] The term lean software development originated in a book by the same name, written by Mary Poppendieck and Tom Poppendieck.[2] The book presents the traditional lean principles in a modified form, as well as a set of 22 tools and compares the tools to agile practices. The Poppendiecks' involvement in the Agile software development community, including talks at several Agile conferences [3] has resulted in such concepts being more widely accepted within the Agile community.

Lean principles[edit] Lean development can be summarized by seven principles, very close in concept to lean manufacturing principles: Eliminate waste[edit] In order to eliminate waste, one should be able to recognize it. Amplify learning[edit] See also[edit]