1 GL - 2 2.1 Le Génie Logiciel Lydie du Bousquet Lydie.du-bousquet@imag.fr En c

1 GL - 2 2.1 Le Génie Logiciel Lydie du Bousquet Lydie.du-bousquet@imag.fr En collaboration avec J.-M. Favre, I. Parissis, Ph. Lalanda 2 Rappels „ La production logicielle est une activité complexe de façon inhérente „ Brooks : « No silver bullet ! » „ C’est un métier d’ingénieur qui requiert des principes, des méthodes, des techniques et des outils „ Le Génie Logiciel doit prendre en compte les spécificités du logiciel pour atteindre des qualités telles que „ La correction, la performance, la disponibilité, l’utilisabilité, … 3 Plan „ Contexte „ Le Génie Logiciel „ Acteurs „ Activités logicielles „ Conclusion 4 Intérêt du génie logiciel „ Les principes et techniques de GL s’appliquent mieux aux projets de grande taille „ Regroupant plusieurs personnes „ Devant fournir plusieurs versions (adaptée de Parnas, 77) „ 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 Budget Durée Qualité Définition d’un projet 6 Contexte projet De nombreuses personnes n’ayant pas les mêmes objectifs À coordonner, qui doivent communiquer Pour fournir un résultat … en respectant certaines contraintes 7 Équipes de développement Marketing, Commerce, Direction Des projets variés „ Logiciel commercialisé par une société „ Dirigé par le marketing, les commerçants, les dirigeants „ Relations souvent informelles „ Liens et cahier des charges pas toujours très formalisés „ Beaucoup de réactivité 8 Équipes de développement Client Manager Maîtrise d’ouvrage Maîtrise d’oeuvre Des projets variés - suite „ Logiciel construit sur demande „ Spécifié et payé par un client „ Réalisé par une entreprise informatique „ Relations très formelles régies par la loi „ Importance du contrat (avec spécifications, pénalités, …) 9 Équipes de développement Manager Responsable de lot informatique Responsable de lot matériel Des projets variés - suite „ Projet système „ L’informatique est une composante „ Les exigences sont déterminées au niveau système „ Relations souvent assez formelles 10 Apport du GL „ En fonction de leur nature, les projets ont des besoins très différents „ Logiciel commercial : lien avec les clients „ Logiciel exploratoire : souplesse „ Logiciel gros et complexe : spécifications stables „ Le travail d’un ingénieur en informatique est de choisir la bonne approche de GL en fonction du projet „ Une bonne approche aidera à bien livrer le produit final „ Le produit souhaité et le contexte déterminent la bonne approche 11 Plan „ Notion de projet „ Le Génie Logiciel „ Acteurs „ Activités logicielles „ Conclusion 12 Définition du génie logiciel „ Le génie logiciel est une démarche d’ingénierie qui traite tous les aspects de la production de logiciels „ du cahier des charges jusqu'aux activités de maintenance „ dépasse le cadre purement technique „ Le GL vise à assurer la production de logiciels en respectant les aspects économiques „ <Coût, échéance, qualité> 13 Principes Méthodes et techniques Notations/langages Outils D’après Ghezzi, 93 Encapsulation, Masquage, … Objet UML Rational Rose Principes et techniques „ Le GL repose sur un ensemble de principes „ mis en œuvre par des méthodes, des techniques et des outils 14 Principe : 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) 15 Non ! Oui ! Principe : 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 16 Principe : 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 17 Principe : 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 „ On peut parfois automatiser la réunion des aspects séparés (exemple AOP) 18 Utilisateur Client Analyste Chef de projet Architecte Développeurs Maintenance 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 19 Gestion des exigences Conception architecture Conception détaillée Codage et tests unitaires Intégration et tests Séparation des préoccupations - exemple „ Identification et définition d’activités différentes lors d’un développement logiciel (séparation temporelle) „ Chaque activité a une focalisation spécifique „ Permet, entre autre, la séparation entre spécification et implem. 20 Article Source Agence Demande d'article formulaire Demande copyright Demande formulaire Acheteur Vue dynamique Carte embarquée xx Mhz + xx Mo RAM IHM Carte embarquée xx Mhz + xx Mo RAM Simulateur Visu Vue physique IHM Cabine Simulateur Simulateur Vue logique Séparation des préoccupations - exemple „ Identification et construction de vues complémentaires de la structure du logiciel „ Vue logique „ Vue dynamique „ Vue physique 21 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 !) 22 Plan „ Notion de projet „ Le Génie Logiciel „ Acteurs „ Activités logicielles „ Conclusion 23 (Maj YL 2007) Acteurs „ Différents acteurs interviennent „ Utilisateurs „ Clients „ Manager/ingénieur d’affaires „ Chef de projet „ Architecte „ Analyste „ Développeur „ Maintenance „ Ils n’ont pas les mêmes intérêts 24 • Fonctionnalités • Facilité d’utilisation • Performance • Sécurité • Robustesse Utilisateur 25 • Respect des coûts et des délais • Garantie de fonctionnement • Maîtrise des risques (technologiques) • Pérennité • Efficacité • Coût raisonnable (Maj YL 2007) Client/Maîtrise d’ouvrage 26 • Relation client • Bénéfice • Responsabilité limitée/maîtrisée (Maj YL 2007) Manager/Maîtrise d’oeuvre 27 • Simplicité de l’ensemble • Possibilité d’évaluer les progrès (incréments) • Bonne expression des contraintes • Technologies maîtrisées • Structuration correspondant à ses équipes • Réutilisation des composants internes • Maîtrise des risques • Maîtrise des coûts et des délais Chef de projet/Maîtrise d’oeuvre 28 • Cohérence de l’architecture • Simplicité • Pérennité • Réutilisation de l’existant • Technologies maîtrisées Architecte 29 • Simplicité de l’interface de ses composants • Technologie connue ou « d’avenir » • Pas trop de contraintes imposées sur ses composants Développeur 30 • Accès aux utilisateurs • Clarté du domaine • Indépendance technologique Analyste 31 • Facilité de modification • Isolation des composants • Existence d’interfaces d’administration • Technologies connues et pérennes (Maj YL 2007) Maintenance 32 Utilisateur Client Analyste Chef de projet Architecte Développeurs Maintenance Manager Relations Comment organiser le travail entre ces acteurs ? 33 Plan „ Notion de projet „ Principes du Génie Logiciel „ Acteurs „ Activités logicielles „ Conclusion 34 Activités „ Le développement comprend un ensemble d’activités „ La gestion des exigences „ La spécification „ La conception „ L’implantation „ La validation „ L’intégration „ Le déploiement „ La maintenance „ Elles fournissent différents produits logiciels (documents, modèles, code, …) 35 Activités permanentes „ Il existe également des activités permanentes „ La documentation „ La gestion de projet „ La gestion de la qualité „ La gestion de la sous-traitance „ etc. 36 Analyse Modèles système Modèles système Exigences Exigences Acteurs importants Cahier des charges Cahier des charges Analyse des besoins/spécification „ Objectif de cette phase : „ identifier ce que veut le client et les contraintes „ modéliser sous forme d’exigences et de modèles 37 Exemple d’exigences Use case 1 : Emprunt d’une revue Description Ce « use case » montre comment un utilisateur peut imprimer un article dès lors qu’il a clairement identifié l’article qui l’intéresse et payé les droits d’auteur (copyrights). Acteurs L’utilisateur L’imprimante Flots d’événements 1. Accès à l’article 1.1 L’utilisateur spécifie le titre de l’ouvrage recherché 1.2 L’utilisateur valide sa recherche 1.3 Si le système indique « requête incomplète », retour à 1.1 1.4 Le système présente à l’utilisateur la liste des réponses 2. Impression de l’article 2.1 L’utilisateur sélectionne l’article qui l’intéresse 2.2 L’utilisateur clique sur l’icône d’impression (on suppose ici que l’imprimante est connectée et fonctionne) 2.3 L’utilisateur quitte le logiciel Disponible Restauration Emprunté Manquant détérioré emprunt rendu disparition restauré Détruit Ne peut être restauré 38 Conception Modèles système Modèles uploads/Ingenierie_Lourd/ 2-1-genielogiciel.pdf

  • 11
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager