Ingénierie des systèmes Session #1 Les méthodologies de développement Cherifa Mansoura Liamani, PhD cliamani@ca.ibm.com cherifa.mansoura@hec.ca
Plan de Cours Introduction Définitions Les méthodes formelles vs non formelles Comment adapter un processus Conclusion
La Triade Ressources Technologie Processus Qualité Equipe dédié d’utilisateurs Ressources compétentes de projet Un environnement de collaboration adéquat Approche / méthodologie de développement Planification de projet Gestion des besoins Ensemble de techniques de modélisation gestion de projets Interview des utilisateurs Critères de succès Qualité Technologie Standards Outils (terme CASE est souvent utilisé) Architectures de référence Processus
Glossaire Une méthodologie fournit un ensemble de lignes directrices complètes pour la réalisation de chacune des activités du cycle de développement des systèmes. Inclut Un processus d’encadrement de projet basé sur un cycle donné Des livrables Un modèle est une représentation d’un aspect important du monde réel. Un outil fournit du soutien logiciel pour créer des modèles. Un système est ‘un tout organisé de composants en intéraction’ (E.Schwartz), doté d’une structure, évolue dans le temps et a une finalité… (J.L Lemoigne)
Une Méthodologie? Une methodology is a structured method for effective project management, including appropriate documentation and control mechanisms for the organisation and management of projects.
Une Méthodologie? Plusieurs types de projets mais tous passent par les mêmes étapes de développement: Initiation Quand le projet commence, objectives et portée définis Planification Lister qui fait quoi, quand Exécution! Identification des taches Test Assurance qualité Critères d’acceptance Lancement livraison Revue Fermer le projet
Les grandes familles de méthodes en Génie Logiciel Méthodes formelles et semi-formelles Approches structurées Approches orientée objets Méthodes non formelles Toute méthode s’appuie sur un cycle de vie
Cycle en cascade
Cycle iterative
Comparaison entre les cycles
Les méthodes formelles… Merise Une approche systémique Approche fonctionnelle A une vision duale des données-traitements A trois niveaux d’abstraction Niveau conceptuel Niveau logique Niveau physique
Methode Merise
Merise en Détail L'expression des besoins est une étape consistant à définir ce que l'on attend du système d'information automatisé: faire l'inventaire des éléments nécessaires au système d'information délimiter le système en s'informant auprès des futurs utilisateurs Etape suivante est de créer le MCC (Modèle conceptuel de la communication) qui définit les flux d'informations à prendre en compte. L‘autre étape consiste à mettre au point le MCD (Modèle conceptuel des données) et le MCT (Modèle conceptuel des traitements) décrivant les règles et les contraintes à prendre en compte. Le modèle organisationnel consiste à définir le MOT (Modèle organisationnel des traitements) décrivant les contraintes dues à l'environnement (organisationnel, spatial et temporel). Le modèle logique représente un choix logiciel pour le système d'information. Le modèle physique reflète un choix matériel pour le système d'information
Merise et terminologie Un événement représente un changement dans l'univers extérieur au système d'information, ou dans le système d'information lui-même. un événement externe est un changement de l'univers extérieur un événement interne est un changement interne au système d'information On représente un événement par une ellipse en trait plein pour les événements internes à l'organisation, en trait pointillé pour les événements externes.
Merise: MCT
Autres méthodes formelles… Custom Development Method (CDM) d’Oracle Une approche systémique Approche globale du système d’information A une vision duale des données - traitements Éléments fondamentaux (livrable, processus, phase, tâche, dépendance) Distingue trois niveaux d’abstraction Niveau conceptuel Niveau logique Niveau physique
Autres méthodes formelles… P+ Une approche dérivée de Macroscope/DMR Approche orientée-objet Itérative et incrémentale Pilotée par les cas d’utilisation
Les méthodes semi - formelles Prince2 UP Une approche orientée objet, repose sur UML Pilotées par les cas d’utilisation Centré sur l’architecture Pilotées par les risques Itératif et incrémental Méthodologies dérivées RUP (www.rational.com/products/rup/indx.jsp) et BUP Catalysis ( www.catalysis.org) EUP ( site de Scott Ambler) MSF_Microsoft Framework
…RUP
Les méthodes `Agiles’… DSDM (Dynamic Softare Development Method)_1994 Une approche globale dans un environnement de développement rapide (RAD) et basée sur la collaboration et la coopération entre toutes les personnes intéressées par le projet est essentielle Les principes de base: Implication active des utilisateurs Pouvoir de décision des équipes DSDM Livraison fréquente de produits Développement itératif et incrémental pour obtenir une solution adaptée aux besoins Les tests sont intégrés à toutes ls étapes du cycle de vie
DSDM http://en.wikipedia.org/wiki/Dynamic_Systems_Development_Method
Autres méthodes ‘Agiles’… eXtreme programming _XP SCRUM Catalyst Customer Unit Testing Planning Team Coding Hacking out Manager Drive by Feedback
Les Méthodes ‘Agiles’ Points forts Points faibles Itératif à planification souple Simple à mettre en œuvre Fait une large place aux aspects techniques : prototypes, règles de développement, tests… Innovant: programmation en duo, kick-off matinal meetings debout … Points faibles Ne couvre pas les phases en amont et en aval au développement : capture des besoins, support, maintenance, tests d’intégration… Élude la phase d’analyse, si bien qu’on peut dépenser son énergie à faire et défaire Assez flou dans sa mise en œuvre: quels intervenants, quels livrables ?
Manifeste des méthodes`Agiles’ Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. www.agilemanifesto.org
Les Enjeux Nouvelles Technologies Besoins Réalisation Production Études métier maquettes Besoins , briser les rêves nouvelle méthode, prototypage, formation, risques modéliser, Contraintes Budget Facteur temps Qualité Réalisation nombreux intervenants, nouvelle infrastructure, formation, Disponibilité, robustesse, Sécurité, performance Production Évolutions transfert de compétences
Comment répondre aux enjeux Il est nécessaire d’adapter son processus de développement pour répondre à ces enjeux technologiques et économiques
Adapter son processus de développement… Travailler de façon itérative et incrémentale Que ce soit au niveau des plannings, des spécifications, ou des développements… L’itératif permet une gestion efficace des risques, Aborder dès les premières itérations, les points difficiles Par exemple, les premières itérations de la phase technique aborderont les aspects sécurité et transaction. L’itératif permet de présenter rapidement des éléments de validation aux utilisateurs Réaliser des prototypes de validation
Combiner les meilleures pratiques Analyse Simple Gérer par rétroaction Planifier Gérer les risques Conception Simple Tests Refactoring Pair Programming Responsabilité collective du code Règle de codage Intégration continue Livraison fréquentes Planification itérative Client sur site Unit Testing Planning Coding Manage risk Iterative Req. Comp. Arch Change Product
Comment mettre en oeuvre un processus adapté à vos besoins Waterfall Waterfall Adaptez via Votre liste de livrables!!! Few risk, sequential Late integration and testing Relaxed Disciplined Well documented Traceability Little documentation Light process UP process framework Large Config. Light Config. average Config. Outils Iterative Iterative Risk driven Continuous integration and testing
Autres Orientations La construction des systèmes s’appuie sur des modèles ou méta-modèles ( framework, design-patterns) MDA_Model-Driven Architecture MVC_ Model-View-Controller Méthodologies de gestion de projets Méthodologies d’organisation stratégique Méthodologies d’assurance et de contrôle de la qualité Modélisation des processus métier
Autres défis CMMI_ Capability Maturity Model Integrated La maîtrise des coûts et des délais est devenue une priorité pour tous les acteurs de l’industrie. Des modèles existent pour rationaliser les processus de développement. CMMI en fait partie. Ce Modèle d'évolution des capacités logiciel a vu le jour en 1991
Merci