400 likes | 587 Views
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
E N D
Développement de logiciel B.Shishedjiev - Génie 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 B.Shishedjiev - Génie logiciel
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
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
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
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
Les méthodes agiles B.Shishedjiev - Génie logiciel
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
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
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
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
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
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
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
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
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
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
Réutilisation • Applications • Composants • Objets et fonctions B.Shishedjiev - Génie logiciel
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
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
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
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
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
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
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
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
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
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
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
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
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
Réutilisation des systèmes d’application • Types • COTS • Ligne de production B.Shishedjiev - Génie logiciel
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
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
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
Configuration planning tool Generic ER P system Configuration database S ystem database ERP • Enterprise Ressource Planning System B.Shishedjiev - Génie logiciel
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
Développement d’un produit B.Shishedjiev - Génie logiciel