Conception des systèmes d’information PDF

Document Details

Uploaded by Deleted User

École supérieure des sciences et de la technologie de Hammam Sousse

Lobna Hlaoua

Tags

system design information systems software engineering agile methodology

Summary

This presentation discusses the concepts of information systems design, focusing on the methodology, different models of software lifecycle (including spiral, iterative, incremental), and the challenges of software engineering projects. The presentation also describes the core principles of software development.

Full Transcript

Conception des systèmes d’information Lobna Hlaoua [email protected] 1 Sommaire Introduction au génie logiciel et systèmes d’information Cycle de développement d’un système d’information L’analyse...

Conception des systèmes d’information Lobna Hlaoua [email protected] 1 Sommaire Introduction au génie logiciel et systèmes d’information Cycle de développement d’un système d’information L’analyse et la conception orientées-objet des systèmes d’information 2 Introduction aux systèmes d’information I. Concepts de base: génie logiciel, acteurs, principes II. Système d’information III. Qualité SI 3 Introduction 1.Qu’est ce que Génie logiciel? Le génie logiciel en anglais : software engineering: désigne l’ensemble des méthodes, de techniques et outils concourant à la production d’un logiciel, au-delà de la seule activité de programmation. – L’analyse du besoin – L’élaboration des spécifications – La conceptualisation du mécanisme interne au logiciel ainsi que les techniques de programmation – Le développement – La phase de test – La maintenance 4 Introduction Les principes et techniques de GL s’appliquent mieux aux projets de grande taille regroupant plusieurs personnes devant fournir plusieurs versions généralement de longue durée. Ceci met en évidence les différences entre – La programmation: une activité personnelle – Le génie logiciel: une activité d’équipe au sein d’un projet 5 Introduction Autre définition: Le processus visant la résolution de problèmes posés par un client par le développement systématique et l’évolution de systèmes logiciels de grande taille et de haute qualité en respectant les contraintes de coûts, de temps, et autres. 6 Introduction Les quatre P du génie logiciel Personnel Qui produit le logiciel? Processus Comment le logiciel est-il produit? Projet La production réelle du logiciel Produit Tous les objets fabriqués pendant la production : code source, exécutables, documentation, modèles de conception, cahier de charges, résultats de testes, mésures de productivité, … 7 Principes Le GL repose sur un ensemble de principes mis en œuvre par des méthodes, des techniques et des outils La rigueur Ingénieur = rigueur + précision Les activités logicielles doivent être réalisées rigoureusement suivi de processus adaptés – Utilisation correcte des techniques adaptées – Fourniture des livrables prévus (documents, modèles, code) – Validation de toutes les livraisons – Attitude professionnelle au sein d’une équipe, etc. Deux remarques La rigueur ne tue pas la créativité Rigueur n’est pas égal à formel (=précision) 8 Principes La modularité Le principe est de remplacer le problème initial par des modules de moindre complexité. – Chaque module traite une partie du problème. – Ils sont compréhensibles, homogènes, indépendants – les modules sont reliés entre eux On recherche – Faible couplage – Forte cohésion 9 Principes L’abstraction Organiser les informations (ou les modules) suivant différents niveaux d’organisation – Définition de niveaux de généralisation – A un niveau donné, on ne considère que les informations ayant le même « niveau sémantique » – Un niveau doit être compréhensible, homogène, complet On recherche – Des niveaux bien découplés – Le passage aisé d’un niveau à l’autre 10 Principes Séparation des préoccupations Le principe est de se concentrer sur un seul aspect du problème à la fois et le traiter de façon indépendante Exemples – Séparation des rôles des différents acteurs – Séparation des phases de développement – Se concentrer uniquement sur la sécurité Il faut choisir des aspects suffisamment indépendants – Les aspects trop liés doivent être traités ensemble 11 Principes Séparation des préoccupations - exemple Identification et définition de rôles différents au sein d’un développement logiciel Chaque acteur a une préoccupation différente Identification et définition d’activités différentes lors d’un développement logiciel (séparation temporelle) Identification et construction de vues complémentaires de la structure du logiciel 12 Principes Remarque Ces principes reposent sur la décomposition des problèmes en sous problèmes plus petits (et moins complexes) – « diviser pour régner » – Idée simple Le problème est ensuite de recomposer – C’est le défi majeur du GL (moins simple !) 13 Système d’information Un SI est un environnement bien plus complexe qu’un logiciel. En effet, il faut le voir comme un ensemble de ressources, à la fois humaines, matérielles et immatérielles dont le rôle est de collecter, stocker, traiter et distribuer de l’information. 14 Types des Systèmes d’information Les différentes catégories des SI – Sur mesure (custom) Pour un client spécifique – Générique (generic) Vendu sur le marché ;e.g. un tableur (spreadsheet), un outil de base de données (database), un outil de traitement de texte (word processor) – Embarqués (embedded) exécutent dans du matériel électronique isolé : machine à laver, télévision, lecteur DVD, téléphone mobile, magnétoscope, four à micro-ondes, réfrigérateur, joueur MP3,... Difficile à modifier 15 Types des Systèmes d’information Système à temps réel (real-time) – e.g. systèmes de contrôle et de surveillance – manipulent et contrôlent le matériel technique – Réaction immédiate requise – Environnement souvent très contraignant Système de traitement de données (data processing) – Ils stockent, recherchent, transforment et présentent l'information aux utilisateurs – Grandes quantités de données avec des corrélations complexes, enregistrées dans les bases de données – Largement utilisés en administration des affaires – Fiabilité des résultats – Sécurité dans l’accès aux données 16 Types des Systèmes d’information Les systèmes distribués – synchronisent la transmission, assurent la intégrité des données et la sécurité,... – Technologies utilisées CORBA, DOM/DCOM, SOAP, EJB, … Les systèmes de matériel – Systèmes d'exploitation, exécutions de matériel de bas niveau Les systèmes d'entreprise – décrivent les buts, les ressources, les règles et le travail réel dans une entreprise 17 Enjeux du génie logiciel Taille et complexité du logiciel – Complexité fonctionnelle – Mutations technologiques perpétuelles – Complexité des architectures – Solutions : Distinguer analyse et réalisation Décomposer le système Utiliser une approche de haut niveau 18 Enjeux du génie logiciel Taille croissante des équipes – Compétences de + en + variées et pointues Applications stratégiques orientées métier – Délais de + en + courts – Solutions : Technologie unifiant le vocabulaire Méthode, démarche de travail 19 Enjeux du génie logiciel Évolution rapide des applications – Besoins du client – Activité du client – Environnement technique – Solution : Cycle de vie itératif et incrémental 20 Enjeux du génie logiciel Spécifications peu précises – Imprécision, incomplétude – Interface difficile entre domaine métier et informatique – Solution : Utilisation de modèles, notamment graphiques 21 Qualité d’un SI Assurer la qualité – Assurer que le niveau de qualité requis est atteint – Définir des standards de qualité des procédures permettant d’assurer le niveau requis – Développer une culture qualité dans les équipes de développement et de maintenance 22 Qualité d’un SI Les critères de qualité : – Validité : aptitude d’un produit logiciel à remplir exactement ses fonction définies par le cahier des charges et les spécifications(aptitude, exactitude, conformité réglementaire) – Fiabilité (robustesse) : aptitude d’un produit logiciel à fonctionner dans des condition anormales (maturité, tolérance aux fautes, possibilité de récupération) – Intégrité : aptitude d’un logiciel à protéger son code et ses données contre des accès non autorisés) – Réutilisabilité : aptitude d’un logiciel à être réutilisé en tout ou en partie dans de nouvelles applications. 23 Qualité d’un logiciel – Compatibilité : facilité avec laquelle un logiciel peut être combiné avec d’autres logiciels – Efficacité : Utilisation optimale des ressources matérielles – Portabilité : facilité avec laquelle un logiciel peut être transféré sous différents environnements matériels et logiciels – Vérifiabilité : facilité de préparation de procédure de test – Extensibilité : facilité avec laquelle un logiciel se prête à une modification ou une extension des fonctions qui lui sont demandées ;Facilité d’analyse, de modification et stabilité – Facilité d’emploi : facilité d’apprentissage, d’utilisation, d’interprétation des erreurs et de rattrapage en cas d’erreur d’utilisation – Facilité de compréhension : apprentissage et exploitation 24 Cycle de développement des systèmes d’information I. Définitions : processus, activités, méthodes, modèle, II. Types de projets génie logiciel III. Modèles du cycle de vie d’un logiciel 25 Définitions Cycle de vie du logiciel est une suite de tâches pour spécifier concevoir, implanter, valider et maintenir des systèmes logiciels 26 Définitions Le processus de développement est une suite d’étapes pour le développement et la maintenance d’un système logiciel: spécification, conception, codage, validation et évolution Un modèle de cycle de vie constitue une représentation abstraite du cycle. 27 Modèle du cycle de Vie du logiciel Modèle général du cycle de vie Expression des besoins Conception du système et du logiciel Réalisation et tests unitaires Tests du système Utilisation et maintenance 28 Cycle de Vie du logiciel Expression des besoins – consultation des utilisateurs – définitions des fonctionnalités du système – rédaction de documents compréhensibles par les utilisateurs et les équipes de développement Conception du système et du logiciel – recensement des diverses fonctions – décomposition du système en architectures logiciel et matériel – Concevoir des interfaces usagers et des bases de données 29 Cycle de vie du logiciel Modélisation (modeling) : Créer des représentations du logiciel et de son domaine d’application Modélisation de son utilisation (use case modelling) – la séquence des actions accompli par les utilisateurs du logiciel Modélisation de sa structure (structural modelling) – les classes et objets présent dans le domaine ou dans le logiciel Modélisation de sa dynamique et de son comportement (dynamic and behavioural modelling) – l'état du système, les activités possibles, l'interaction des composants – UML = langage visuelle pour la modélisation du logiciel Semi formel 30 Cycle de Vie du logiciel Réalisation et tests unitaires – choix d'un langage de programmation – production des programmes – tests unitaires de ces programmes Tests du système – intégration des unités de programme – tests de l'ensemble – livraison aux utilisateurs 31 Cycle de Vie du logiciel Utilisation et maintenance – correction des erreurs – amélioration des programmes – augmentation des fonctionnalités au fur et àmesure des besoins – remise en cause des étapes précédentes 32 Cycle de Vie du logiciel Gestion du projet – choisir un modèle/processus de développement diviser le projet en différentes activités décider ce qui est inclus en chaque activité décider sur la séquence d'activités – techniques utiles pour génie logiciel orienté objet développement itératif développement incrémental prototypage 33 Activités communes aux projets... Gestion du projet Développement linéaire: Phases distinctes et séparées de spécification et de développement Développement itératif – Executer les activités (exigences, conception, implementation) dans une série d'itérations – La maintenance est simplement un genre de développement continu 34 Activités communes aux projets... Gestion du projet Développement incrémental – Faites des implémentations partielles du système au lieu de développer le système entier en un seul pas – Quand le développement partiel semble bon ajoutez plus de fonctionnalité, augmentez l'efficacité,... Prototypage – Commencez par développer un petit prototype – Un modèle exécutable d'un système logiciel, qui souligne des aspects spécifiques – Degré élevé de participation d'utilisateur – Représentation concrète des exigences d'utilisateur 35 Cycle de vie du logiciel 1- Modèle en cascade – Expression de besoins et cahier de charge – Spécification fonctionnelle détaillée – Conception générale et détaillée – Implantation et test unitaire – Intégration et test de conformité – Mise en œuvre opérationnelle et maintenance 36 Cycle de vie du logiciel Inconvénients: Effet « Tunnel » vis-à-vis le client :après l’expression du besoin, suit un ensemble de phases qui conduit à ne pouvoir expérimenter qu’après une longue durée: – Les besoins peuvent être imparfaitement analysés – Les besoins peuvent évoluer suite au changement du contexte Le modèle en cascade n’est approprié que.. 37 Cycle de vie du logiciel Le modèle en V: – Les activités de construction précèdent les activités de validation et vérification. Mais l’acceptation est préparée dès la construction (flèches de gauche à droite). – Cela permet de mieux approfondir la construction et de mieux planifier la ‘remontée’. 38 Cycle de vie du logiciel 39 Cycle de vie du logiciel Cycles itératifs: L’objectif est de permettre une expérimentation rapide du logiciel en cours de développement pour consolider l’expression de besoins et permettre la poursuite du développement. 40 Cycle de Vie du logiciel Le modèle prototypal(évolutif) Partir d’un prototype – On recense les 1er besoins, on conçoit, on développe version v1 – On propose, on critique – On améliore, on enrichit – On aboutit à une version v2, etc Ce qui suppose: – Une analyse graduelle des besoins – Une évolution de la conception de l’architecture logicielle – Un développement qui aboutit au produit final ou seulement une étape préliminaire 41 Cycle de Vie du logiciel Le prototypage : approche évolutive du développement – Le prototype s’enrichit au fur et àmesure – Le prototype est réservépour certains logiciels (ou parties) – Le prototype fonctionne ! avantages: – cas concret de discussion – détection des fonctions manquantes – amélioration des fonctions complexes – démonstration de la faisabilité – utilisation comme spécification d'un système inconvénients du prototypage: – coût de développement – incite les changements côté utilisateur 42 Cycle de Vie du logiciel Le modèle incrémental (évolutif) – La base du modèle: le prototype – Découpage fonctionnel en sous-ensembles – Développement des sous-ensembles par incrément – A chaque incrément on repasse par toutes les étapes – Le développement est essentiellement basé sur l’analyse des résultats pour faire évoluer le produit – Un incrément = 1 version – Réutilisation de modules élémentaires – conceptionIncrémentIncrémentDéveloptDéveloptTestsTestsmaintenancemaint enance 43 Cycle de Vie du logiciel Le modèle en spirale (évolutif) On part de rien On part d’une spécification On modifie un existant –Relation contractuelle entre le client et le développeur –Représenté sous forme de spirale, chaque itération est découpée en phases : Détermination des besoins Analyse des risques, Développement d'un prototype, Tests du prototype, résultats Validation des besoins par le client, Planification du prochain cycle. 44 Cycle de vie du logiciel Le modèle spiral – Contient explicitement le prototypage et une approche itérative et incrémentale 45 Cycle de vie du logiciel Problèmes: – Manque de visibilité des étapes – Le système réalisé est souvent faiblement structuré – Nécessite un environnement de développement adapté Applications – Petits et moyens systèmes interactifs – Des parties des systèmes – Des systèmes à durée de vie courte 46 Cycle de vie du logiciel Les méthodes agiles– Réactivité: Implication au maximum du client Rapidité Dans ce but, elles prônent 4 valeurs fondamentales – L'équipe «Personnes et interaction plutôt que processus et outils». La communication est une notion fondamentale. – L'application «Logiciel fonctionnel plutôt que documentation complète». Il est vital que l'application fonctionne. – La collaboration «Collaboration avec le client plutôt que négociation de contrat». Le client doit être impliqué dans le développement. – L'acceptation du changement «Réagir au changement plutôt que suivre un plan». La planification initiale et la structure du logiciel doivent être flexibles (évolution de la demande du client) 47 Les constats Les meilleures idées ne viennent pas forcément au début du projet – Il est plus facile de construire par étape que tout imaginer dès le début Les besoins peuvent évoluer pendent le projet Le formalisme n’est pas naturel Chiffrages et Reste à Faire sont difficiles à évaluer 48 Problèmes avec cascade Les méthodes prédictives fonctionnent bien, à condition d’avoir: – Stabilité et prévisibilité – Communication et compréhension parfaite – Choix parfaits dès le départ Ø Aucun humain! 49 Agile : Une catégorie de méthodes ‘Agile’ regroupe plusieurs méthodologies : – Scrum – Extreme Programming (XP) – DSDM (Dynamic System Development Method) – Crystal –… Notion officialisée en 2001 avec le Manifeste Agile 50 Le manifeste Agile Personnes et interactions Plutôt que Processus et outils Documentation Un produit opérationnel Plutôt que exhaustive Collaboration Plutôt que Négociation d'un contrat avec le client Adaptation au Plutôt que Suivi d'un plan changement 51 Les solutions Agiles Expression de besoins Conception Développement Tests, recette & debuggage i1 i2 i3 in Les solutions Agiles Toujours focalisées sur le produit final ØUne vision commune pour l’équipe Ø la satisfaction du client ØDécouper le projet autrement Ø par fonctionnalité ØOrganiser en cycles de développement réduits Ø itérations Les solutions Agiles Collaboration avec le client Pourquoi on veut des contrats ? - Instaurer la confiance autrement - Eviter les effets pervers d’un contrat Les solutions Agiles Adaptables Réactives aux nouveaux besoins Réceptives aux nouvelles solutions - Prendre les décisions définitives le plus tard possible - De courtes itérations permettent de changer de direction sans laisser des éléments à moitié fait Exemples Airbus est un bon exemple de cette nouvelle approche avec la mise en place de ses « sprints innovation » dont l’objectif est de développer des projets d’innovation en 3 à 4 mois seulement. WikiSpeed adapte l’agilité à la construction automobile. Yahoo, google, Microsoft, IBM, Nokia… 56

Use Quizgecko on...
Browser
Browser