SEG Module 1 Fondements de l'ingénierie des exigences

Slides:



Advertisements
Présentations similaires
Démarche Outsourcing SI
Advertisements

Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Création de la base du SI Idée de départ : créer plusieurs couches de données avec chacune un intérêt propre et indépendante. Chaque couche doit pouvoir.
Processus d'expression du besoin
La Gestion de la Configuration
3/26/2017 7:29 PM Taxonomie et gouvernance Organiser le patrimoine informationnel des entreprises © 2006 Microsoft Corporation. All rights reserved. This.
UML - Présentation.
Le modèle de communication
La politique de Sécurité
L’utilisation des Normes ISO 9001 et ISO 9004 dans la démarche qualité
Système de gestion de bases de données. Modélisation des traitements
La revue de projet.
MIAGE MASTER 1 Cours de gestion de projet
Introduction au Génie Logiciel
le profil UML en temps réel MARTE
Stratégies dorientation du conseil dadministration « Outils et ressources pour aider votre conseil à passer rapidement à la vitesse supérieure » Document.
Parcours de formation SIN-7
Initiation à la conception de systèmes d'information
L ’approche par processus
Sésame Conseils Bon sens et compétences
Techniques de test Boulanger Jean-Louis.
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)
Project Scope Management
Équipe de projet Méthodologie
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
Conception des Réalisé par : Nassim TIGUENITINE.
La résolution de problèmes grâce à la technologie de l'information
Hiver 2011SEG Chapître 11 Chapître 1 (partie 1) Revision de cours précédants Sujet 1: Le processus de développement de logiciel.
Les étapes du cycle de développement du génie logiciel
Portée, arrimages et intervenants Évolution des méthodes
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.
Stratégie d’entreprise - Alstom Transport – Marco Férrogalini
Le management de l'IVVQ Processus techniques IVVQ
Supports de formation au SQ Unifié
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Suivi de projet Architecture de l’information par l’équipe en charge du projet A Mille 2013.
Vérification dans le cycle de vie GEF492A 2014 Référence: [HvV §14.2, 14.9] Capt Vincent Roberge Collège Militaire Royal du Canada Génie électrique et.
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.
Revue des systèmes de gestions de l’énergie (SGE)
Introduction au Génie Logiciel
Réalisé par: BOUMSISS Hassnae OUED Zahra TABIT Youssef EZZIANI Hamza
IAEA Training Course on Effective and Sustainable Regulatory Control of Radiation Sources Stratégies pour un contrôle réglementaire efficace et durable.
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.
Formalisation de la politique qualité
Initiation à la conception des systèmes d'informations
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Présentation des principales caractéristiques de la méthodologie Plan de la présentation Positionnement du cadre méthodologique Caractéristiques de la.
MODULE DE FORMATION À LA QUALITÉ
Département de génie logiciel et des TI Université du Québec École de technologie supérieure Systèmes d’information dans les entreprises (GTI515) Chargé:
Présenter l’épreuve pratique
Principes et définitions
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Le Processus Hiver 2002 Petko Valtchev.
Séance d’information sur les cycles de vie CVAL, CVDL, CVDLF, CVPI
PROCESSUS D’AUDIT PLANIFICATION DES AUDITS
Document de spécification d’exigences Normes IEEE et 29148:2011
«SEG 3501» D. Amyot uOttawa SEG Module 2 Élicitation des exigences: Introduction Objectifs: ―Avoir une vue d’ensemble des concepts ―Comprendre les.
Présentation de la méthode Merise
ISO 9001:2000 Interprétation Article 7 Réalisation du produit
Du Cahier des Charges à la Spécification Formelle ?
Conception des IHM.
Modèles de cycle de vie et processus de génie
Programmation Collège militaire royal du Canada Génie électrique et génie informatique.
L’entreprise et sa gestion
TSTC développement de clientèles 1 Le système d'information mercatique (SIM)
19 avril Spécification d’un cadre d’ingénierie pour les réseaux d’organisations Laboratoire de recherche : OMSI à l’EMSE.
2 nd workshop Introduction à la gestion de projet Slimani Haythem & Rezgui Khair-Eddine.
4 1 : A quoi sert la gestion de projet
Transcription de la présentation:

SEG 3501- Module 1 Fondements de l'ingénierie des exigences Objectifs: Définition(s) et importance Types d'exigences Place dans le processus de développement Activités principales

Le début est la partie la plus importante du travail. Platon, 4 avant J.C. Partie 1 : Introduction à l'ingénierie des exigences

Partie 1 : Introduction à l'ingénierie des exigences Mars Climate Orbiter En 1999 le « Mars Climate Orbiter » disparait alors qu’il débute son orbite autour de Mars. Coût: environ 125 millions de dollars US. Problème causé par une erreur de transfert d’information entre une équipe au Colorado et une en Californie. Une équipe utilisait le système de mesure anglais (pouces, pieds, livres…) alors que l’autre utilisait le système métrique pour une fonction clé de l’appareil… Partie 1 : Introduction à l'ingénierie des exigences

GIRES (Gestion intégrée des ressources) GIRES touchera : plus de 1000 systèmes ministériels existants plus de 68 000 employés de l’État près de 140 ministères et organismes Projet de 8 ans du gouvernement du Québec, commencé en 1998. Budget: 80 millions de dollars. Difficultés à gérer le changement. Après 5 ans, les coûts avoisinent les 400 millions de dollars et les retards s'accumulent.. Le projet est abandonné en 2003 http://radio-canada.ca/nouvelles/Index/nouvelles/200303/04/012-GIRES.shtml Partie 1 : Introduction à l'ingénierie des exigences

Programme canadien de contrôle des armes à feux But: Réduire le crime en suivant la circulation des armes Ce fameux programme devait coûter 2 millions de dollars. (119M$ de coûts, 117M$ de revenus) C’est ce qu’on disait aux contribuables, lors de l’adoption de la loi C-68 en 1995. http://radio-canada.ca/actualite/zonelibre/04-02/registre_armes.asp Partie 1 : Introduction à l'ingénierie des exigences

Partie 1 : Introduction à l'ingénierie des exigences Quelque dérapages… 85 M$ en 1995, 327 M$ en 2000, 699 M$ en 2002, 1000 M$ en 2005… Pressions politiques des lobbyistes, payeurs de taxes, propriétaires d’armes, corps policiers… Plusieurs imprévus sans relation à l’informatique: Frais de bataille juridique Scandales au niveau des achats de matériel Frais de voyage indécents et autres frais obscurs... Et plusieurs reliés à l’informatique! 30 permis différents, long formulaires (jusqu'à huit pages) qui changent souvent. 90 % d'erreurs ou d'omissions sur les demandes de permis… Utilisabilité? Le client, le Centre des armes à feu, a demandé 2000 changements informatiques Partie 1 : Introduction à l'ingénierie des exigences

Partie 1 : Introduction à l'ingénierie des exigences Et ça dérape encore Après la tentative de EDS (qui avait déjà échoué avec GIRES), les firmes CGI et BDP doivent tout recommencer! Un contrat de 300 millions de dollars pour le créer, l'installer et le faire fonctionner. À la surprise de plusieurs, EDS a un nouveau contrat de 115 millions de dollars. Elle aura reçu, au total, 410 millions de dollars. La deuxième version du système (SCIRAF II), commencée en 2003, voit ses coûts passer de 32M$ à 90M$. Près d’un milliard de dollars ont été dépensés (mars 2005), comme l'a révélé la vérificatrice générale, avec les coûts informatiques, les dépenses occultes et les frais courants. Partie 1 : Introduction à l'ingénierie des exigences

Partie 1 : Introduction à l'ingénierie des exigences Résultats Dans son rapport de mai 2006, la vérificatrice générale (Mme Sheila Fraser) déclare: Les exigences de projet n'ont pas été bien définies Les modifications législatives approuvées ont nécessité des modifications plus substantielles des exigences du système et de l'étendue du projet que celles qui avaient été communiquées au départ à l'entrepreneur. La demande de proposition pour le SCIRAF II (2e version), qui a été envoyée à l'automne 2001, ne comprenait pas d'exigences détaillées. L'entrepreneur choisi n'a reçu le cahier des charges qu'après avoir reçu la déclaration d'intention l'avisant qu'il était le soumissionnaire gagnant. Le Centre a dit que la direction avait adopté cette approche afin de susciter des propositions créatives… Tout est mis sur la glace en 2006 avec la venue d’un nouveau gouvernement… 5 années d’amnistie pour les proprios non enregistrés Bill C-391 accepté en avril 2012… Partie 1 : Introduction à l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences

Sources principales pour ce module Jeremy Dick, Elizabeth Hull, Ken Jackson: Requirements Engineering, Springer-Verlag, 2004 Soren Lauesen: Software Requirements - Styles and Techniques, Addison Wesley, 2002 Ian K. Bray: An Introduction to Requirements Engineering, Addison Wesley, 2002 Gerald Kotonya and Ian Sommerville: Requirements Engineering – Processes and Techniques, Wiley, 1998 Roger S. Pressman: Software Engineering A practitioner's Approach Tim Lethbridge and Robert Laganière: Object Oriented Software Engineering: Practical Software Developement using UML and Java, 2nd edition, McGraw-Hill, 2005 Ivy F. Hooks and Kristin A. Farry: Customer-Centered Products – Creating Successful Products Through Smart Requirements Management, Amacom, 2001 CHAOS report, Standish Group SWEBOK 2013 Divers articles des conférences Requirements Engineering et autres sources du Web. Module 1 : Fondements de l'ingénierie des exigences

Module 1 Définition(s) et importance Types d'exigences et place dans le processus de développement Aperçu des activités principales

Vous avez dit « exigence »? Les exigences (parfois appelés requis) décrivent la raison d’être d’un système Les exigences expriment les idées à être incarnées dans un système ou une application en développement Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Selon la norme IEEE 830-1998 Une exigence (ou requis) est définie comme: une condition ou capacité dont un utilisateur a besoin pour résoudre un problème ou atteindre un objectif; une condition ou capacité qui doit être satisfaite ou possédée par un système … pour satisfaire un contrat, une norme, une spécification, ou tout autre document formellement imposé … Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Selon la norme IEEE 29148 Une exigence est une phrase qui traduit ou exprime un besoin de même que les contraintes et conditions qui y sont associées. Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Une autre définition Une exigence est un énoncé à propos du système à concevoir avec lequel tous les intervenants impliqués sont en accord et qui doit devenir vrai afin de résoudre adéquatement le problème du client. Information claire et concise Concerne le système Toutes les parties prenantes ont confirmé sa validité Aide à résoudre le problème Un ensemble d’exigences est un cahier des charges ou une spécification des exigences (requirements document). Module 1 : Fondements de l'ingénierie des exigences

Vous avez dit «ingénierie des exigences»? « Activité de développement, élicitation, spécification, analyse, et gestion des exigences des parties prenantes (intervenants, ou stakeholders), qui devront être rencontrées par des systèmes. » L’ingénierie des exigences englobe toutes les activités interdisciplinaires reliées à la détermination, la documentation et le maintien d'un ensemble convenu d'exigences pour un système, et pour les retracer jusqu’à l’implémentation. Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Selon la norme IEEE 29148 RE is the interdisciplinary function that mediates between the domains of the acquirer and supplier to establish and maintain the requirements to be met by the system, software or service of interest. RE is concerned with discovering, eliciting, developing, analyzing, determining verification methods, validating, communicating, documenting, and managing requirements Module 1 : Fondements de l'ingénierie des exigences

Ingénierie des exigences L’I.E. peut être vue comme un ensemble d’activités Pas nécessairement une phase séparée Applicable aux nouveaux systèmes et à ceux en évolution Pas limitée à la partie logicielle Prend en considération le contexte Comment/où le système sera-t-il utilisé La vue d’ensemble est importante Demande d’interagir avec les parties prenantes Qui sont-ils? Comment communiquer et négocier? Traduction entre plusieurs mondes/domaines Y a-t-il une perte de sens/information lors de la traduction? Passerelle vers la conception et les autres étapes. Module 1 : Fondements de l'ingénierie des exigences

Ingénierie des exigences Création Développement des exigences Gestion des exigences Élicitation Analyse Vérification Spécification Larry Boldt, Trends in Requirements Engineering People-Process-Technology, Technology Builders, Inc., 2001 Module 1 : Fondements de l'ingénierie des exigences

Plus de détails sur ces activités… Phase de création Débute le processus (besoin ou opportunité d’affaire, bonne idée…). Dossier commercial, étude de faisabilité, étendue du système, risques, etc. Élicitation des exigences Les exigences sont découvertes en consultant (et parfois même en provoquant) les diverses parties prenantes. Analyse des exigences et négociation Les exigences sont analysées et les conflits résolus, souvent par négociation. Spécification des exigences Un document précis décrivant les exigences est produit. Validation des exigences La spécification des exigences est vérifiée en termes de cohérence et de complétude. Gestion des exigences Les besoins évoluent, les exigences aussi! Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Vue du SWEBOK (2004-2013) http://www.computer.org/portal/web/swebok/html/ch2 Module 1 : Fondements de l'ingénierie des exigences

Problèmes généraux de l’ingénierie des exigences Manque d’expertise disponible (ingénieurs logiciels, experts de domaines, etc.) Idées initiales trop souvent incomplètes, trop optimistes, et fermement présentes dans les têtes des personnes gérant le processus d’acquisition Les difficultés à utiliser les outils et méthodes complexes et variées associées à la cueillette d’exigences peuvent effacer les bénéfices escomptés d’une approche complète et détaillée Gestion du changement Module 1 : Fondements de l'ingénierie des exigences

Statistiques du rapport NIST En mai 2002, le NIST (National Institute of Standards and Technology) a publié un rapport intéressant sur des statistiques et des expériences basées sur des données provenant d’un grand nombre de projets logiciels 70 % des défectuosités sont introduites lors de la phase de spécification, et 30% plus tard lors de la solution technique Seulement 5% des problèmes de spécification sont corrigés dans la phase de spécification. 95% sont détectés plus tard dans le projet alors que le coût pour les résoudre est en moyenne 22 fois supérieur. Ce rapport conclut que le test exhaustif est essentiel, mais que le test ne permettait de détecter les erreurs de spécification que tard dans le processus de développement. http://www.nist.gov/public_affairs/releases/n02-10.htm Module 1 : Fondements de l'ingénierie des exigences

Pourquoi faire la gestion des exigences? Distribution des défectuosités Distribution de l’effort pour réparer les défectuosités Code 7% Autres 10% Conception 27% Exigences 56% Code 1% Autres 4% Conception 13% Exigences 82% (Martin & Leffinwell) Module 1 : Fondements de l'ingénierie des exigences

Vue du Software Engineering Institute Le SEI offre une vue alternative sur l’amélioration du processus de développement de logiciels avec le modèle CMM/CMMI. Leur vision est: Le bon logiciel, livré sans défectuosité dans le temps et le budget requis, à chaque fois. « Bon logiciel » implique que le logiciel satisfasse les exigences fonctionnelles et non-fonctionnelles (performance, coût…) tout au long de sa vie. « Sans défectuosité » implique soit du test exhaustif après le codage, soit de développer le logiciel correctement dès la première fois. Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences CHAOS Report, 2004 Module 1 : Fondements de l'ingénierie des exigences

Progression depuis 1994 En % (Standish Group Inc., 1994-2009) Environ 50 000 projets, sur 14 ans… Note: ces nombres sont cependant critiqués dans: J.L. Eveleens and C. Verhoef, “The Rise and Fall of the Chaos Report Figures”. IEEE Software, 27(1), Jan/Feb 2010, pp. 30-36. http://www.cs.vu.nl/~x/chaos/chaos.pdf Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Facteurs de succès Standish Group Inc., 2000 Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Causes des problèmes Module 1 : Fondements de l'ingénierie des exigences

Évolution des facteurs de succès Voir aussi le rapport 2012: http://versionone.com/assets/img/files/CHAOSManifesto2012.pdf Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Chaos Report, 2012 Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Facteurs de succès, 2012 http://www.versionone.com/assets/img/files/CHAOSManifesto2013.pdf Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Agilité vs. Cascade Module 1 : Fondements de l'ingénierie des exigences

Implication des intervenants? Partie 1 : Introduction à l'ingénierie des exigences

Gestion des exigences en évolution “Changing requirements is as certain as death and taxes” Source: http://standishgroup.com/sample_research/PDFpages/extreme_chaos.pdf, 1999 Module 1 : Fondements de l'ingénierie des exigences

Module 1 Définition(s) et importance Types d'exigences et place dans le processus de développement Aperçu des activités principales

Tellement d’« exigences » … Un but est un objectif ou une préoccupation utilisé pour découvrir et évaluer des exigences fonctionnelles et non-fonctionnelles Un but n’est pas encore une exigence.. Une exigence fonctionnelle est une exigence définissant une fonction du système en développement Décrit le quoi, c.-à-d. ce que le système doit faire Une exigence non-fonctionnelle (ou extra-fonctionnelle) est une exigence qui caractérise une propriété ou une qualité désirée du système telle que sa performances, sa robustesse, sa convivialité, sa maintenabilité, etc. Une contrainte qui doit être prise en compte lors du développement Module 1 : Fondements de l'ingénierie des exigences

Tellement d’« exigences »… (2) Une exigence utilisateur est une fonctionnalité ou un but désiré par un utilisateur ou une autre partie prenante Elle ne devient pas nécessairement une exigence du système… Une exigence du domaine d’application (incluant les règles d’affaires) est une exigence dérivée de contraintes physiques ou encore de pratiques d’affaires dans un secteur industriel donné, dans une compagnie donnée, ou définie par des règles et des normes gouvernementales. Peuvent être fonctionnelles ou non-fonctionnelle Module 1 : Fondements de l'ingénierie des exigences

Exigences: système vs logiciel Ensemble de composants inter-reliés collaborant vers un objectif commun Peut inclure des composants mécaniques, électriques, électroniques, logiciels, etc. Ingénierie des systèmes Approche multidisciplinaire pour le développement de systèmes Le logiciel n’est souvent qu’un partie du système, mais souvent une partie problématique! Nous pouvons donc distinguer les exigences du système des exigences des composants logiciels. Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Note importante L’ingénierie des exigences logicielles est un cas particulier de l’ingénierie des exigences. Plusieurs des sujets vus dans ce cours sont aussi applicables à des systèmes sans logiciels. Dans un système contenant du logiciel, les exigences logicielles sont dérivées des exigences du système. Le matériel (et le système d’exploitation) font partie de l’environnement où le logiciel est utilisé. Module 1 : Fondements de l'ingénierie des exigences

Exigences fonctionnelles Quelles doivent être les entrées du système Quelles sorties le système doit-il produire Quelle sont les données qui devront être stockées pour usage par d’autres systèmes Quels sont les calculs à effectuer La mise en marche et la synchronisation de tous ces éléments Module 1 : Fondements de l'ingénierie des exigences

Exemples d’exigences fonctionnelles Le système doit offrir à l’utilisateur l’opportunité de chercher l’ensemble des bases de données. Le système doit offrir les visionneuses appropriées pour afficher les documents emmagasinés. Chaque commande doit avoir un identifiant unique (ORDER_ID). Module 1 : Fondements de l'ingénierie des exigences

Exigences non-fonctionnelles (NFR) Si elles ne sont pas satisfaites, le système est inutile. Elles peuvent être difficile à décrire, et des exigences imprécises sont difficiles à vérifier à leur tour. Plusieurs taxonomies existent… Module 1 : Fondements de l'ingénierie des exigences

Types d’exigences non-fonctionnelles (Sommerville & Kontoya 1998) Module 1 : Fondements de l'ingénierie des exigences

Exigences non-fonctionnelles Doivent être vérifiables Sinon, elles ne sont que des buts Trois grandes catégories (Lethbridge et Laganière) 1. Catégorie liée à l’usage, l’efficacité, la fiabilité, la maintenance et la réutilisation Temps de réponse Rendement, débit Utilisation des ressources Fiabilité Disponibilité Restauration après pannes Facilité de maintenance et d’amélioration Facilité de réutilisation Module 1 : Fondements de l'ingénierie des exigences

Exigences non-fonctionnelles 2. Catégorie liée à l’environnement et à la technologie Plateforme (exigences minimales, matériel, S.E.) Technologie à utiliser (langage, BD, …) 3. Catégorie liée à la planification et à la méthode de développement du projet Processus de développement à utiliser Coût et date de livraison (ces derniers éléments se retrouvent souvent dans le contrat signé par les parties) Module 1 : Fondements de l'ingénierie des exigences

Exemples d’exigences non-fonctionnelles Exigence de sécurité Le système ne doit pas révéler l’information personnelle des clients, à part les noms et numéros de référence aux gestionnaires du système. Exigence de technologie Le système doit supporter l’encodage ISO/CEI 10646 (jeu universel de caractères). Exigence de processus Le processus de développement du système aéronautique et les livrables doivent être conforme à la norme DO-178B. Module 1 : Fondements de l'ingénierie des exigences

Exigences mesurables (Sommerville & Kontoya 1998) Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Buts Les exigences non-fonctionnelles peuvent être difficiles à spécifier précisément, et ces exigences ambigües deviennent difficiles à vérifier. Un but offre une intention ou un objectif général tel que la convivialité de l’application. Les buts peuvent guider la découverte d’exigences non-fonctionnelles vérifiables, qui peuvent être testées objectivement. Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Exemple de but Un but du système Le système doit être facile à utiliser par des utilisateurs expérimentés et devrait être organisé de façon à minimiser les erreurs d’utilisation. Exigences non-fonctionnelles vérifiables, inférées de ce but (Un utilisateur expérimenté a au moins 2 années d’expérience sur le vieux système) Les utilisateurs expérimentés doivent être capables d’utiliser les fonctions du système après une formation de 3 heures. Le nombre moyen d’erreurs faites par les utilisateurs expérimentés ne doit pas excéder 2 par jour. Module 1 : Fondements de l'ingénierie des exigences

Exigences du domaine d’application Dérivées du domaine d’application Décrivent les caractéristiques du système qui reflètent le domaine Peuvent être de nouvelles exigences fonctionnelles, ou des contraintes sur des exigences existantes Si les exigences du domaine ne sont pas satisfaites, alors le système pourrait être inutilisable. Module 1 : Fondements de l'ingénierie des exigences

Exemple d’exigences du domaine d’application Système de bibliothèque L’interface du système vers les bases de données doit se conformer à la norme Z39.50. À cause de restrictions et de droits d’auteurs, certains documents électroniques devront être détruits immédiatement après réception. Selon les exigences de certains utilisateurs, ces documents pourront d’abord être soit imprimés localement, soit imprimés à une imprimante réseau et récupérés par l’utilisateur. Module 1 : Fondements de l'ingénierie des exigences

Autre exemple de domaine d’application Surveillance de population de phoques Transmetteurs attachés à quelques phoques, pour déterminer leur position Difficile d’attacher un transmetteur (et dangereux!) Projet sur quelques années Problème: la durée de vie des piles est de quelques semaines, alors que le projet dure plusieurs années Options proposées pour le transmetteur: Toutes les 40 minutes pendant 9 mois (4500$) Toutes les 60 minutes pendant 1 an (4500$) Toutes les 40 minutes pendant 2 ans (5500$) Contraintes du domaine… Les transmetteurs sont attachés à la fourrure La fourrure d’un phoque change à tous les 9 mois!!! Module 1 : Fondements de l'ingénierie des exigences

Problèmes courants liés au domaine Compréhension Les exigences sont exprimées dans le langage du domaine d’application. Elles sont souvent incompréhensibles à l’ingénieur logiciel qui développe le système. Exigences implicites Les spécialistes du domaine le comprennent si bien qu’ils ne pensent pas mettre sur papier certaines exigences du domaine. C’est évident! « Assume » Module 1 : Fondements de l'ingénierie des exigences

Propriétés émergentes Propriétés du système tout entier Exigences qui ne s’appliquent pas à un seul composant, mais qui dépendent de la façon dont les composants vont collaborer N’émergent souvent que lorsque les sous-systèmes individuels sont intégrés Dépendent de l’architecture du système Exemples Fiabilité, maintenance, performance, convivialité, sécurité. Module 1 : Fondements de l'ingénierie des exigences

Module 1 Définition(s) et importance Types d'exigences et place dans le processus de développement Aperçu des activités principales

Une approche pour l’ingénierie des exigences (Wiegers)

Approche par couche typique Hull, Jackson, Dick: requirements Engineering, 2004 Module 1 : Fondements de l'ingénierie des exigences

Exigences et modélisation Le sandwich de l’ingénierie des systèmes! http://www.telelogic.com/download/paper/SystemsEngineeringSandwich.pdf Module 1 : Fondements de l'ingénierie des exigences

De retour au sandwich Hull, Jackson, Dick: Requirements Engineering, 2004 Module 1 : Fondements de l'ingénierie des exigences

Avantages des niveaux d’exigences (sandwich) Concentre l’attention sur la vue d’ensemble avant les détails Réduit le nombre de changements en spécifiant à un niveau plus bas les exigences qui n’affectent rien sauf les exigences à un niveau plus bas Promeut la division du travail Module 1 : Fondements de l'ingénierie des exigences

Processus d’I.E. et activités reliées Pourquoi? Quoi? Comment? Qui? Si-Alors Vraiment? Où? Identifier les besoins et objectifs d’affaires Dériver exigences utilisateur et fonctionnelles Time Concevoir les solutions Temps Processus de gestion de projet Processus de gestion du risque Processus de gestion de la qualité Processus de gestion des composants & configs. Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences I.E. et processus… L’I.E. est un ensemble d’activités mais pas nécessairement une phase séparée. Source: Donald C. Gause, Risk Focused Requirements Management, Tutorial at RE’09, September 2009 Module 1 : Fondements de l'ingénierie des exigences

Module 1 Définition(s) et importance Types d'exigences et place dans le processus de développement Aperçu des activités principales

Module 1 : Fondements de l'ingénierie des exigences Selon la norme IEEE 29148 Requirements elicitation process through which the acquirer and the suppliers of a system discover, review, articulate, understand, and document the requirements on the system and the life cycle processes Requirements validation: confirmation by examination that requirements (individually and as a set) define the right system as intended by the stakeholders. Requirements verification: confirmation by examination that requirements (individually and as a set) are well formed Requirements management: activities that ensure requirements are identified, documented, maintained, communicated and traced throughout the life cycle of a system, product, or service. Software requirements specification: structured collection of the requirements (functions, performance, design constraints, and attributes) of the software and its external interfaces. Module 1 : Fondements de l'ingénierie des exigences

Création des exigences (inception) Débute le processus Identification des besoins d’affaires Nouvelles opportunités de marché Nécessité Idée géniale Implique Création d’un plan d’affaires Étude de faisabilité préliminaire Définition préliminaire de la portée du projet Intervenants Hauts gestionnaires, marketing, gestionnaires de produits, etc. Module 1 : Fondements de l'ingénierie des exigences

Élicitation des exigences (1) Sur le domaine du problème demandant une solution Plus qu’une simple demande ou collecte d’information; il faut évoquer et provoquer Questions devant être posées et répondues Quel est le système? Quels sont ses buts? Comment le travail se fait-il actuellement? Qui sont les intervenants? Quels sont les problèmes? Comment le système résoudra-t-il ces problèmes? Comment le système sera-t-il utilisé dans le quotidien? Qu’est-ce qui ne fera pas partie du système (portée)? Les performances et autres contraintes (p.ex., légales) affecteront-elles la façon dont la solution est approchée? Module 1 : Fondements de l'ingénierie des exigences

Élicitation des exigences (2) Aperçu de différentes sources Clients et autres intervenants Systèmes existants Documentation Experts du domaine Autres… Aperçu de différentes techniques Remue-méninge Entrevues Observations de tâches Cas d’usage et scénarios Prototypage Module 1 : Fondements de l'ingénierie des exigences

Élicitation des exigences (3) [ISO/IEC/IEEE 29148:2011] Module 1 : Fondements de l'ingénierie des exigences

Élicitation des exigences (4) Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Analyse des exigences Le processus qui consiste à étudier et à analyser les besoins des parties prenantes pour en arriver à une définition des exigences (logicielles). Mène à une solution pouvant impliquer: Une nouvelle structure des flux de travaux Un nouveau système (to-be, domaine de la solution) Objectifs Découvrir les frontières du système/logiciel et comment il doit interagir avec son environnement Détecter et résoudre les conflits (par négociation) Élaborer les exigences du système pour en dériver les exigences logicielles. L’analyse va souvent de pair avec la modélisation Module 1 : Fondements de l'ingénierie des exigences

Spécification des exigences L’invention et la définition du comportement d’un nouveau système (domaine de la solution) qui va produire les effets désirés dans le domaine du problème. L’analyse des exigences a déjà défini le domaine du problème et les effets requis. Plusieurs formats et gabarits pour les documents de spécification Module 1 : Fondements de l'ingénierie des exigences

Validation et vérification des exigences Techniques variées Vérifications simples Exigences bien formées, checklists Révision formelle Inspection de Fagan, révision active Analyse logique Simulation/test, model checking, preuves Prototypes Jetables ou évolutifs Conception de tests fonctionnels (TDD) Développement du manuel de l’utilisateur Module 1 : Fondements de l'ingénierie des exigences

Validation vs Vérification Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Gestion des exigences Nécessaire pour faire face aux changements dans les exigences causés par: Changements aux processus d’affaires Changements dans les technologies, le marché, les lois Meilleure compréhension du problème La traçabilité est essentielle pour une bonne gestion Module 1 : Fondements de l'ingénierie des exigences

Types de documents pour les exigences Les deux extrêmes Un résumé informel des exigences utilisant le plus souvent quelques diagrammes accompagnés d’un court texte Une liste détaillée de spécifications décrivant le système en détail Dans le cas d’un système de grande taille, plusieurs tels documents existent et sont organisés de façon hiérarchique Requirements xxxx xxxxxxx xxx xxxxxxxxxxx xxxxx xxxxxxxxxxxxx xxxxxxxxxxxxxxx subsystem 1 subsystem 2 Definition Specification sub-subsystems Module 1 : Fondements de l'ingénierie des exigences

L’analyste en exigences Joue un rôle de communication essentiel! Parle aux utilisateurs: domaine de l’application Parle aux développeurs: domaine technique/solution Traduits les exigences utilisateur en exigences fonctionnelles et en critères de qualité A besoin de plusieurs compétences Entrevues et écoute Relations interpersonnelles Facilitation et psychologie Rédaction et modélisation Sens de l’organisation L’ingénierie des exigences, c’est plus que de la modélisation… C’est une activité sociale! Karl Wiegers – In Search of Excellent Requirements Module 1 : Fondements de l'ingénierie des exigences

Pour plus d’informations B. A. Nuseibeh and S. M. Easterbrook, Requirements Engineering: A Roadmap. In A. C. W. Finkelstein (ed) The Future of Software Engineering, ACM Press, 2000 http://www.cs.toronto.edu/~sme/papers/2000/ICSE2000.pdf INCOSE Requirements Working Group http://www.incose.org/practice/techactivities/wg/rqmts/ Tools Survey: Requirements Management (RM) Tools http://www.paper-review.com/tools/rms/read.php See also http://www.volere.co.uk/tools.htm IEEE (1995) Guide for Developing System Requirements Specifications. IEEE Std P1233/D3, NY, USA. IEEE (1998) Recommended Practice for Software Requirements Specifications. IEEE Std 830-1998, NY, USA. Requirements Engineering Conference http://www.requirements-engineering.org/ Module 1 : Fondements de l'ingénierie des exigences

Module 1 : Fondements de l'ingénierie des exigences Conférences en IE International Requirements Engineering Conference (RE; since 1993): http://www.requirements-engineering.org Int. Working Conf. on Requirements Engineering Foundation for Software Quality (REFSQ; since 1995): http://refsq.org/ Workshop on Requirements Engineering (WER; since 1998): http://wer.inf.puc-rio.br/ Asia Pacific Requirements Engineering Symposium (APRES; since 2014): http://www.apres2014.org Dozens of satellite workshops and special tracks elsewhere. Module 1 : Fondements de l'ingénierie des exigences