IFT 2251 Génie Logiciel Analyse: Principes & Concepts

Slides:



Advertisements
Présentations similaires
Analyse et définition des besoins
Advertisements

MOT Éditeur de modèles de connaissances par objets typés
LA QUALITE LOGICIELLE Plan du cours La modélisation d’activité 1 h ½
Le modèle de communication
1 Modéliser Ou comment RE-présenter sa connaissance.
Eléments de Génie Logiciel
Processus d'expression du besoin
La Gestion de la Configuration
UML - Présentation.
Le modèle de communication
INTRODUCTION.
Phase de préparation des itérations Produit Story 11 Release1 Story 1mStory 21 Release2 Story 2m… …
UML (Unified Modeling Langage)
Système de gestion de bases de données. Modélisation des traitements
Les Ateliers de Génie Logiciel
Pédagogie par Objectifs
L ’enseignement de la construction en BEP industriel
Langage SysML.
Introduction au Génie Logiciel
le profil UML en temps réel MARTE
Algorithmique et Programmation
Initiation à la conception de systèmes d'information
Introduction à la conception de Bases de Données Relationnelles
Algorithmique et Programmation
Etude globale de système.
Techniques de test Boulanger Jean-Louis.
MOT Éditeur de modèles de connaissances par objets typés
IGL301 - Spécification et vérification des exgiences 1 Chapitre 1 Introduction (ref : Bray chapitre 1)
IGL301 - Spécification et vérification des exgiences 1 Chapitre 2 Le processus dingénierie des exigences (ref : Bray chapitre 2)
Unified Modeling Langage
TESTING BUSINESS PROCESSES
IFT 2251 Génie Logiciel Le Processus (fin)
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
RECHERCHE COMMERCIALE
Conception des Réalisé par : Nassim TIGUENITINE.
Les étapes du cycle de développement du génie logiciel
Portée, arrimages et intervenants Évolution des méthodes
Sensibilisation a la modelisation
Ingénierie Système en SysML appliquée à la rédaction du cahier des charges Y. Le Gallou Séminaire académique STI2D - Calais – 1er avril 2014.
Langage de modélisation graphique de systèmes
ANALYSE METHODE & OUTILS
INTRODUCTION.
Supports de formation au SQ Unifié
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Algorithmes et Programmation
Interface Homme-machine (interaction humain-machine) Emna Hakem Université 7 novembre à Carthage Faculté des Sciences Economiques et de Gestion de Nabeul.
2003 (revisé 2008)SEG Chapitre 11 Chapitre 1 “The Systems Engineering Context” Le contexte du génie de systèmes.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Conception Hiver 2002 Petko Valtchev.
Introduction au Génie Logiciel
Extrait du Referentiel BTS Systèmes numériques Options : Informatique et réseaux et Électronique et communication S1 à S9 Définition des savoirs et savoir-faire.
Software Requirements المتطلبات البرمجية Cahier des Charges des Logiciels IF5, Automne 2008, Semaine 2.
Initiation à la conception des systèmes d'informations
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Spécification de Processus Concurrents Hiver 2002 Petko Valtchev.
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus (fin) Hiver 2002 Petko Valtchev.
IFT 2251 Génie Logiciel Le Processus
Les besoins linguistiques
Unified Modeling Language
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
( ) Collège de Maisonneuve
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
Les concepts d’UML - Le Processus Unifié -
Document de spécification d’exigences Normes IEEE et 29148:2011
C’est ce que l’on veut obtenir la manière dont on va l’obtenir
Transcription de la présentation:

IFT 2251 Génie Logiciel Analyse: Principes & Concepts Hiver 2002 Petko Valtchev

L’Analyse dans Contexte Spécification du système Ingénierie système RESULTAT Document de spécification + plan de projet/qualité = CONTRAT Analyse du logiciel Conception du logiciel Plan de projet/qualité

Pour commencer… Une idée reçue très répandue: On doit déterminer ce que le client veut « I know you believe you understood what you think I said, but I am not sure you realize that what you heard is not what I meant! » G. Romney, candidat à la présidence des É.-U., 1967 On doit déterminer ce dont le client a besoin

Motivation : éviter de produire un logiciel non adéquat. Le Problème Logiciel Comprendre le problème (en termes de besoins) définition du problème status développement quo technique Analyse = Ingénierie des besoins intégration de la solution Motivation : éviter de produire un logiciel non adéquat.

Les Difficultés Le consommateur n’a qu’une idée vague de ce dont il a besoin. Le développeur est prêt à commencer à partir de cette «idée vague» assumant que les détails viendront… Le client change sans cesse d’idée… Le développeur tente maladroitement de faire ces changements… et introduit des erreurs dans la spécification et le développement…

Définition Mais qu’est-ce que c’est qu’un besoin? « (1) A condition or capability needed by a user to solve a problem or achieve an objective (2) A condition or capability that must be met or possessed by a system or system component to satisfy a contract, standard, specification, or other formally imposed documents (3) A documented representation of such a condition or capability. » IEEE Standards Collection: Software Engineering

Types de Besoins Les principaux types de besoins sont: Besoins très généraux : expriment en termes généraux ce que le système doit faire, Besoins fonctionnels : définissent des aspects du fonctionnement du système, Besoins d’implantation : indiquent comment le système doit être implanté, Besoins en performances : établissent des performances minimales pour que le système soit acceptable. Distinction importante: Besoins fonctionnels: QUE doit faire le système Besoins non-fonctionnels: DE QÉUELLE FAÇON doit le faire: Contraintes: temps, espace, performances, etc. Propriétés: maintenabilité, fiabilité, etc.

Le Processus L’ingénierie des besoins (IdB) ? « The systematic process of developing requirements through an iterative cooperative process of analysing the problem, documenting the resulting observations in a variety of representation formats, and checking the accuracy of the understanding gained. » K. Pohl, 1993

Les Acteurs « Les acteurs d’un processus sont les individus impliqués dans son exécution. Ils sont identifiés par leur rôles et non individuellement.  » L’ingénierie des besoins fait apparaître des acteurs qui sont intéressés par le problème à résoudre ou par sa solution: Clients, usagers, experts du domaine Ingénieurs en logiciel, Ingénieurs des besoins Chefs de projets

Ingénierie des besoins logiciel Entrées et Sorties Documents d’analyse Infos sur le système existant Ingénierie des besoins logiciel Besoins agréés Demandes des participants Spécifications Standards Modèle du système Réglementations Connaissance du domaine

Les Activités Activité Objectif Acquisition des Besoins Déterminer avec précision ce que le client désire et ce dont il a besoin. Analyse & Négociation S’assurer de la bien-fondée de chaque besoin exprimés par le client et comprendre les relations entre les différents besoins. Spécification Fournir une description tangible (précise et complète) des besoins. Modélisation Construire une représentation du système (maquettes, diagrammes). Validation Vérifier le document des besoins pour sa correction, complétude et cohérence. Maintenance Identifier, contrôler et tracer les besoins et leurs changements. Permet d’identifier quels aspects d’un système sont affectés par un changement des besoins initiaux. Mise à jour des besoins: ---------------------------- - PROBLEMES: pbm de portée. Pbm de compréhension, pbm de volatilité (besoins changent…) PRODUIRE: (1) Un énoncé clair de faisabilité, (2) une définition de la portée du système ou du produit, (3) une liste des clients, des usagers et des personnes ayant participé à cette analyse. (4)une description de l’environnement technique, (5) une liste des besoins et exigeances, (6)un ensemble de scénarios d’utilisation, (7)prototypes… Analyse et negociations. ----------------------------- Vérification de la cohérence et de la non-ambiguïté des besoins. Besoins essentiels?? Besoins conflictuels? Besoins peuvent être testé? Requirement specification -------------------------------

Le Modèle d’Après Pressman Construction d’un prototype Expression et saisie des besoins Développement d’une spécification Le problème Révision Créer un modèle d’analyse

Un Modèle Approximatif Analyse et négociation Acquisition Documentation Validation Infos sur le système existant, Souhaits des intéressés, Standards, Règlements, Connaissance du domaine Modèle du système Besoins agréés Spécifications du système

Un Modèle en Spirale Portée : tout le cycle de vie (modèle en spirale) q u i r m n t s l c a o y d g v I f A D D e c i s i o n p o i n t : A c c e p t d o c u m e n t o r r e - e n t e r s p i r a l R e q u i r e m e n t s S T A R T d o c u m e n t a n d v a l i d a t i o n r e p o r t Portée : tout le cycle de vie (modèle en spirale) juste première étape (modèle en cascade, par prototypage) n t

Activités d’Acquisition Comprendre le domaine d’application La connaissance du domaine est de la connaissance sur le secteur d’application pour le système. Comprendre le problème On doit comprendre le problème spécifique rencontré par les clients que le système doit résoudre. Comprendre l’activité d’affaires (le business) On doit comprendre la manière dont le système interagit et s’intègre dans l’activité globale de l’organisation. Comprendre les attentes et les contraintes des intéressés On doit comprendre, avec précision, les attentes spécifiques des personnes qui seront assistés par le système dans leur activité.

Techniques d’Acquisition Techniques utilisées pour collecter des connaissance sur les besoins: Entrevues, Scénarios et Cas d’Utilisation (« Use Cases »), Réutilisation de besoins existants, Construction de prototypes, La connaissance doit être structurée selon les principes suivants: Partition - agréger les connaissances liées Abstraction – reconnaître les rapports de général-spécifique Projection – organiser selon une perspective Problèmes de l’acquisition Manque de temps Préparation insuffisante de la part des ingénieurs Les intéressés ne sont pas convaincus par la nécessité d’avoir un système

Cas d’Utilisation «  Cas d’utilisation: document narratif qui décrit la séquence d’intéractions dans laquelle un acteur utilise le système pour réaliser un processus. » Jacobson, 1992 Un acteur: un agent humain ou un système automatisé, externe au système, ensemble cohérent de rôles que l’usager joue lors de sa communication avec le système, associé à un ou plusieurs CdU. N.B. Un utilisateur concrèt du système peut jouer le rôle de plusieurs acteurs (vendeur, client)

Cas d’Utilisation (suite) La technique des Cas d’utilisation: Identification des acteurs. ActeurA: emprunteur de journaux ActeurB: personne consultant le catalogue Usager: Paul ActeurC: emprunteur de livres 2) Pour chaque acteur, identification des cas d’utilisation. 3) Décrire en détail chacun des cas d’utilisation: Objectifs (fonctions, tâches, etc.) réalisées par l’acteur. Les données manipulées ou produites par l’acteur. Les changements d’état du système que l’acteur doit signaler ou ceux dont il dépend. Pondération: Pour chaque cas d’utilisation, on évalue l’importance de ce cas pour chaque acteur du système. On fait une moyenne. Permet d`identifier les cas prioritaires.

Cas d’Utilisation (exemple) Prêt de documents Acteurs Lecteur, libraire Type Primaire Description Le lecteur se présente au comptoir avec sa carte. L’employé vérifie son identité. Il enregistre les documents empruntés et établi leurs dates de retour. Forme textuelle le lecteur arrive et l’employé prend sa carte l’employé choisit dans le menu principal la fonction prêt il lit le code du lecteur avec le crayon optique ou il l’entre au clavier si le lecteur est connu du système, ses données personnelles et ses droits d empreints sont alors affichés l’employé entre ensuite pour chaque document à prêter le code du document, le système lui affiche la date de retour en fonction du type de document, ensuite le document est marqué « en prêt » Rôles correspondent aux différent mode du système: Mode programmation, mode test, mode monitoring, mode expert (troubleshooting)

Technique FAST Technique: Facilitated Application Specification Technique (FAST) Groupe de génie logiciel Groupe client Approche orientée « équipe » pour mettre en lumière les besoins logiciels. Les équipes: - Travaille ensemble pour identifier le problème clairement - Proposer des pistes de solutions - Négocier différentes approches - Spécifier les besoins, exigences et contraintes de la solution logicielle

Technique FAST (suite) Règle de participation établies: Tous les participants doivent assister aux réunions. Tous les participants ont un droit de parole égal. Un modérateur est nommé pour mener la réunion. On préfèrera un lieu de rencontre neutre. Un agenda des activités et réunions est élaboré. Un médium de définition est choisi pour prendre notes des travaux de la réunion. Le travail de préparation est aussi important que la réunion elle-même. Tous les documents élaborés avant la réunion sont considérés comme des propositions. On essaie d’éviter de se perdre dans les détails techniques.

Technique FAST (fin) - 1re étape: Première réunion. Initiation du processus (choix d’un modérateur, agenda des réunions, etc.) Définition de la demande de logiciel (2 pages). - 2e étape: Chacun étudie la demande de logiciel. Il dresse la liste des objets, services, contraintes (prix, règles, etc.) et critères de performance. - 3e étape: Acceptation unanime de la pertinence de la demande. Présentation des listes par thème (objets, services, etc.) Discussion. Élaboration d’une liste consensus pour chaque thème. - 4e étape: Chacun élabore une mini-spécification (informelle) pour chacun des éléments des listes « consensus ». Discussion. - 5e étape: Chacun élabore une liste de critères de validation. Discussion. Une liste consensus est définie pour ces critères. - 6e étape: Rédaction d’une première version de la spécification du logiciel.

Principes d’analyse Le domaine des données doit être décrit et bien compris. Les fonctions du logiciel doivent être définies. Le comportement du logiciel, c’est-à-dire la réaction du logiciel aux divers événements qui peuvent survenir, doit être décrit. Les modèles utilisés pour représenter les données, les fonctions et le comportement du logiciel doivent être partitionnés de façon à présenter l’information sous forme hiérarchique. Le processus d’analyse devrait se faire par raffinements successifs, en présentant graduellement l’information depuis ses fondements jusqu’aux détails d’implantation.

Analyse: Les Bonnes Pratiques S’assurer d’avoir compris le problème avant de créer le modèle d’analyse. Développer des prototypes qui permettent au client de comprendre les interactions avec le logiciel. Prendre note des raisons motivant chacun des besoins et contraintes. Utiliser différentes vues pour représenter les besoins: vue des données, vue fonctionnelle, vue comportementale. Ordonner les besoins et les fonctionnalités à réaliser selon leur importance. S’efforcer d’éliminer systématiquement les ambiguïtés.

Modélisation Caractéristiques désirées d’un modèle: Abstraction : Permet de cacher les détails moins pertinents pour une meilleure compréhension de l’essentiel. Expressivité: Permet d’exprimer avec nuance les informations. Rigueur: Sémantique précise, absence d’ambiguïté. Structuration: Offre des mécanismes flexibles pour structurer et hiérarchiser l’information. Automatisation: Offre des possibilité de simulation, de vérification automatique ou de traduction dans un langage de programmation exécutable.

Modélisation des Données Domaine des données traitées Quelles sont les données utilisées, transformées ou produites? images événement -clic de souris -signal -etc. texte vidéo sons Modèle des données: Description de leur contenu Quels sont les objets, leurs attributs, leurs relations avec les autres données, etc. (2) Description de leur flux dans le système Comment les données circulent dans le système? (3) Description de leur structure interne Comment l’information est-elle organisée à l’intérieur de chaque donnée? Arbre, tableau, etc. Nous verrons différents types de modèle pour représenter les données (contenu, flux, structure).

Modélisation des Fonctions Données en entrée traitement Données en sortie Quelles sont les différentes fonctions du système? Fonction: transforme l’information. Description des fonctions, du flux des données et des producteurs/consommateurs

Modélisation du Comportement Un programme est toujours dans un état (en attente, en calcul, en train d’émettre ou d’interroger…) Le changement d’état est toujours dû à l’occurrence d’un événement: Type d’événement: (1) tic de l’horloge interne, (2) événement externe (e.g. clic de souris), (3) signal système externe (signal d’erreur émis par l’environnement). Événement Z Comment le logiciel se comporte-t-il? État X État Y

Modélisation Quelle utilité? Facilite et structure la compréhension et l’analyse des données traitées, des fonctions et des comportements du logiciel. Constitue l’outil clef de référence pour la vérification de la complétude, la cohérence et l’exactitude de la spécification du logiciel. Constitue la base pour la conception du logiciel. Cette représentation abstraite du logiciel pourra être projetée dans le contexte d’implémentation.

Décomposition fonctionnelle du domaine Partitionnement Afin de bien comprendre un problème, il est utile de pouvoir le décomposer. Décomposer le domaine du logiciel en ses parties constituantes. Décomposer en groupes et raffiner chaque modèle pour représenter différents niveaux d’abstraction: - raffiner la description des données - créer une hiérarchie fonctionnelle - représenter le comportement du logiciel à des niveaux de détail différents. Augmentation du niveau de détail Décomposition fonctionnelle du domaine

Partitionnement (Exemple) Système d’alarme Système de configuration Contrôle des capteurs Interactions avec l’usager Activer les fonctions d’alarme Sonder les capteurs Pour des événements Lire l’état du capteur Identifier le type d’événement Activer/ désactiver le capteur Activer l’alarme sonore Composer no. tél.

De l’Essentiel à l’Implémentation Vue « essentielle » du problème: Représentation des données, des fonctions, des comportement sans égard à leurs détails d’implémentation. Vue d’« implémentation » du problème: Représentation tenant compte de la façon dont seront concrètement réalisées les fonctions, les données et les comportements.

Spécification du Logiciel Le processus d’analyse doit se conclure par la production d’un dossier d’analyse appelé: Document de spécification du logiciel (parfois appelé cahier des charges du projet) Document de spécification du logiciel + plan de projet/qualité = CONTRAT avec le client

Spécifications du Logiciel Contenu du document de spécification Introduction: Buts, objectifs généraux, contexte informatique, etc. Description des données (contenu, flux, structure) Description fonctionnelle (description de chacune des fonctions du logiciel, des contraintes de conception, critères de performance) Description comportementale (description des changements d’état du système selon les événements) Critères de validation. (définition des tests de validation, déterminer comment on peut vérifier que le système répond bien aux attentes) Bibliographie et annexes. Bibliographie: documents de référence Annexe: algorithmes, diagrammes, graphes, etc.

Spécification: Bonnes Pratiques Le format de la spécification (notation, symboles, diagrammes, etc.) devrait être adapté au problème. L’information décrite dans la spécification devrait être hiérarchisée et présentée selon différents niveaux d’abstraction. Les diagrammes et autres notations devraient être utilisée de façon pertinente et cohérente (limiter le nombre de notations…) La spécification devrait être facilement révisée (outils CASE pour repérer les dépendances, etc.)

Techniques de Spécification Quelques grands types de techniques, souvent utilisés conjointement: Énoncés informels = Descriptions en langage naturel pouvant respecter des plans types (standardisés ou propres à une entreprise ou à un projet). Présentations formatées: Dictionnaires de données ou glossaires, Tables de décision, Tables états-transitions. Techniques graphiques ou semi-formelles: Diagrammes d’entité-association, de flot de données et de transitions d’état, Diagrammes OO: classes, objets, interaction, contexte, etc. Méthodes formelles: Méthodes centrées-données: B, Z, VDM; Méthodes centrées-processus: CTL, Lotos;

Examen des Spécification Niveau macroscopique Considérant la spécification du domaine des données, des fonctions et des comportements, la spécification est-elle complète, cohérente et exacte? Niveau microscopique Pour chaque domaine, examiner en détail la spécification pour éliminer toute erreur, tout terme vague ou contradictoire…

Un Modèle Approximatif «  Ensemble des spécifications, des besoins et des objectifs relatifs à un projet.  » Office de la langue française, 2000 Le cahier des charges : utilisé pour communiquer les besoins entre clients, ingénieurs et managers. Il décrit: Les services et les fonctions que le système doit fournir, Les contraintes sous lesquelles le système doit opérer, Les propriétés globales du système, Définitions d’autres systèmes avec lesquels le système décrit doit coopérer.