1 / 38

Développement de logiciel

Développement de logiciel. Styles de développement. Développement rapide DR incrémental DR par prototypes Développement agile Développement extrémal Développement avec réutilisation Composants. Développement rapide. Besoins

rhonda
Download Presentation

Développement de logiciel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Développement de logiciel B.Shishedjiev - Génie logiciel

  2. Styles de développement • Développement rapide • DR incrémental • DR par prototypes • Développement agile • Développement extrémal • Développement avec réutilisation • Composants B.Shishedjiev - Génie logiciel

  3. Développement rapide • Besoins • L’environnement n’est pas stabile et les sociétés doivent répondre aux nouvelles circumstances. • Ça exige un développement rapide. • Les clients peuvent accepter une qualité médiocre si la foncionalité de base est assurée vite. • Particularités • Besoins instables • Processus itérative B.Shishedjiev - Génie logiciel

  4. Define system deli v er a b les Design system Specify system Build system V alida te ar chitectur e incr ement incr ement incr ement NO Deli v er final S ystem V alida te Integ r a te system complete? system incr ement YES Développement itératif B.Shishedjiev - Génie logiciel

  5. Développement rapide • Avantages • Rapide • Participation des clients • Désavantages • Gestion difficile • Contracte flou – il n’y a pas une spécification claire • Validation • Maintenance – les changement continus gâtent le système B.Shishedjiev - Génie logiciel

  6. Incremental Deli v er ed system development Outline requir ements T hr o w-a w a y Ex ecuta b le pr ototype + pr ototyping S ystem specifica tion Prototypes • Particularités • Utilisés quand on veut identifier les besoins. • Quand le besoin est spécifié le prototype est jeté et détruit • Comparaison avec la méthode incrémentale • Incrémentale - on commence du besoin le plus claire • Prototype - on commence du besoin le plus flou B.Shishedjiev - Génie logiciel

  7. Les méthodes agiles B.Shishedjiev - Génie logiciel

  8. Les méthodes agiles • Principes • Participation des clients • Produit incrémental • Les gens sont importants, pas le processus – un peu discutable • Attends les changements • Maintiens simplicité B.Shishedjiev - Génie logiciel

  9. Programmation extrémal • C’est une approche extrémale • On paut faire des nouvelles versions plusieurs fois par jour • Les améliorations sont livrées aux clients chaque 2 semaines. • Chaque versions doit être testée. Elle n’est acceptée sauf tous les tests ont passé. B.Shishedjiev - Génie logiciel

  10. Select user Break down stories for this Plan release stories to tasks release Evaluate Release Develop/integ rate/ system software test software Programmation extrémal • Le cycle de la version B.Shishedjiev - Génie logiciel

  11. Programmation extrémal • Pratiques • Petits incréments • Petits version délivrées • Conception simple • Développement basé aux tests automatisés • Amélioration continue du code • Programmation en paires • Possession collective du code • Soutenable rythme de travail • Présence permanente du client B.Shishedjiev - Génie logiciel

  12. Programmation extrémal • Besoins • Histoires des utilisateurs • Scénarios • Tâches • Changements • Les changements sont faits directement quand ils sont nécessaires B.Shishedjiev - Génie logiciel

  13. Programmation extrémal • Tests • Les tests d’abord • Les tests sont écrits avant le code • Ils sont écrits comme des programmes afin d’être exécutés automatiquement • Tous les tests sont exécutés – les vieux et les nouveaux – quand on ajoute une nouvelle fonctionnalité. • Les tests sont dérivés depuis les scénarios • Les utilisateurs participent • On utilise des programmes de test automatiques B.Shishedjiev - Génie logiciel

  14. Programmation extrémal • Programmation en pairs • Un code est développer par paires de programmeurs ensemble • Le code est possédé par tout l’équipe • Ça propage le savoir dans l’équipe B.Shishedjiev - Génie logiciel

  15. Développement appliqué rapide • Plus traditionnelles • Application d’accès aux bases de données • Outils • Langage de programmation de BD • Générateur d’interface • Liaisons vers application de Bureautique • Générateurs de rapports B.Shishedjiev - Génie logiciel

  16. Office Inter face systems gener a tor DB R epor t prog ramming gener a tor langua ge Da ta base mana gement system Rapid application development environment Développement appliqué rapide • Environnement de développement rapide B.Shishedjiev - Génie logiciel

  17. Développement appliqué rapide • Génération d’interface • Générer des formulaires complexes par des techniques visuelles • Assurer l’enchaînement des formulaires et la validation de la saisie • Programmation visuelle • Problèmes • Mauvaise structure • Difficile de travailler en équipes • Maintenance compliquée B.Shishedjiev - Génie logiciel

  18. Réutilisation • Applications • Composants • Objets et fonctions B.Shishedjiev - Génie logiciel

  19. Réutilisation • Avantages • Sécurité améliorée • Risque de processus diminué • Utilisation effective des spécialistes • Conformité aux standard • Développement plus rapide • Moins cher • Problèmes • Maintenance plus difficile – quand le code source n’est pas disponible • Manque des outils de support • Jalousie • Création et maintenance d’une bibliothèque de composants • Comprendre et assembler les composants B.Shishedjiev - Génie logiciel

  20. Design patterns Component Application Aspect-oriented frameworks product lines software development Component-based C O TS Prog ram development integ ration generators Legacy system wrapping Configurable ver tical applications Service-oriented systems Prog ram libraries Différents types de réutilisation B.Shishedjiev - Génie logiciel

  21. Approches • Modèles de conception (Design patterns) • Basé aux Composants • Structure appliquée (Application framework) • Enveloppe d’un système hérédité • Système orienté service • Intégration COTS (Commercial off the Shelf System) • Ligne de production • Application configurable verticalement • Bibliothèques de programmes • Générateur de programmes • Aspect orienté B.Shishedjiev - Génie logiciel

  22. Design paterns • Il présente la description du problème et sa solution • Eléments • Nom • Description du problème • Description de la solution – modèle qui peut être implémenté de façons différentes • Conséquences – les résultats et les compromis qu’on doit faire en utilisant le modèle B.Shishedjiev - Génie logiciel

  23. L’observateur • Nom • Observer. • Description • Sépare la présentation d’état d’objet de l’objet lui-même • Description du problème • On l’utilise quand on a besoin de nombreux présentations. • Description de la solution • Vois le diagramme UML. • Conséquences • Optimiser pour améliorer les présentation à l’écran ne sont pas utiles B.Shishedjiev - Génie logiciel

  24. 5 0 D A 2 5 C A B C D B 0 Subject Observer 1 Observer 2 A: 40 B: 2 5 C: 1 5 D: 2 0 Nombreux écrans B.Shishedjiev - Génie logiciel

  25. Observer Subject Attach (Observer) Update () Detach (Observer) for all o in observers Notify () o -> Update () ConcreteObserver ConcreteSubject observerState = return subjectState Update () GetState () subject -> GetState () subjectState observerState Le modèle observateur B.Shishedjiev - Génie logiciel

  26. Réutilisation de modèle • Le plus abstrait et le plus générale • Types • Générateurs du programmes • Modèles de conception B.Shishedjiev - Génie logiciel

  27. Générateurs de programmes • Types • Pour application de traitements de données • Pour analyseur lexique et analyseur syntactique des processeurs de langages – yacc, JavaCC • Les générateurs de code dans les outils CASE B.Shishedjiev - Génie logiciel

  28. A pplica tion Pr o g r am gener a tor Gener a ted pr o g r am description A pplica tion domain Da ta base kno wledge Générateurs de programmes B.Shishedjiev - Génie logiciel

  29. Aspect 1 Aspect 2 Generated code Input source code Aspect <statements 1> <statements 1> W eaver Aspect 1 join point 1 <statements 2> <statements 2> Aspect 2 join point 2 <statements 3> <statements 3> Développement aspect orienté • On utilise des tisserands d’aspect B.Shishedjiev - Génie logiciel

  30. Structures appliquées (Frameworks) • Ce sont des collections de classes abstraites et concrètes et les interfaces entre eux. • Types • Infrastructure système (communication, compilateurs, UI) • Intégration – communication entre composants et échange de données • Application d’entreprise • Extension • Problèmes • Très complexes B.Shishedjiev - Génie logiciel

  31. User view modification Controller state V iew state inputs messages Controller methods V iew methods Model queries and updates Model edits Model state Model methods Model-view controller • Modèle de GUI • Nombreux présentation d’un objet et interraction avec les présentations individuellement B.Shishedjiev - Génie logiciel

  32. Réutilisation des systèmes d’application • Types • COTS • Ligne de production B.Shishedjiev - Génie logiciel

  33. Client W eb browser E-mail system Server E-commerce Ordering and Adaptor system invoicing system Adaptor E-mail system COTS • Système d’acquisition B.Shishedjiev - Génie logiciel

  34. COTS • Problèmes d’intégration • Manque de contrôle sur l’effectivité et fonctionnalité • Manque de contrôle d’évolution • Manque de support • Difficultés avec l’interopérabilité B.Shishedjiev - Génie logiciel

  35. Ligne de production • Ce sont application d’une fonctionnalité générique qui peut être configurée pour les besoins du client • Adaptation • Configuration du système ou de composants • Ajouter des nouveaux composants • Sélectionner d’une bibliothèque de composants • Modifier des composants B.Shishedjiev - Génie logiciel

  36. Configuration planning tool Generic ER P system Configuration database S ystem database ERP • Enterprise Ressource Planning System B.Shishedjiev - Génie logiciel

  37. User inter face Resource Query User delivery management authentication Resource Resource Resource policy management allocation control T ransaction management Resource database Architecture • Architecture de Ressource management System B.Shishedjiev - Génie logiciel

  38. Développement d’un produit B.Shishedjiev - Génie logiciel

More Related