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
Documents similaires
-
11
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 08, 2022
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 0.9440MB