Génie Logiciel Software Engineering Plan du
Transcription
Génie Logiciel Software Engineering Plan du
Plan du cours Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Génie Logiciel Software Engineering Master 1 année ère Julien Velcin http://mediamining.univ-lyon2.fr/velcin Génie Logiciel Un logiciel est « un ensemble de programmes, de procédés, de règles, de documentation relatifs au fonctionnement d un ensemble de traitement de l information ». [arrêté du 22/12/1981] Génie logiciel (ou software engineering) désigne « l'ensemble des méthodes, des techniques et outils concourant à la production d'un logiciel, au-delà de la seule activité de programmation ». [commentcamarche.net] Pourquoi faire ? • augmentation de la taille des applications. • travail en équipe : il faut s organiser ! • importance de la maintenance : suivi, doc, etc. • • • • • • • Notions de Génie Logiciel Introduction au langage Java Programmation Orientée Objet Notions complémentaires Quelques API standards Interface graphique en Java FX API pour la recherche d’information Quelques conséquences • 12/10/2006 : la « mauvaise utilisation » d'un logiciel à l'origine d'accidents de radiothérapie à Epinal - un décès et des complications chez treize patients traités pour des cancers... Cause : mauvaise ergonomie d'un logiciel obsolète. • 11/10/2006 : bug informatique, il faudra peut-être recompter à Liège ! Après une désastreuse soirée électorale avec des résultats annoncés vers 18H00 qui se sont rapidement révélés mathématiquement impossibles et des résultats définitifs seulement vers 23h45, certains candidats pensent à demander un recomptage et des explications. • 29/12/2005 : cotisation retraite - Quelque 113 personnes ont eu la désagréable surprise de recevoir pour Noël un avis d échéance de leurs cotisations retraite pour l'année 2006 de... deux milliards d'euros, un montant erroné dû à une erreur informatique, a-t-on appris mercredi de sources concordantes. • 01/11/2005 : gros bug à la bourse de Tokyo, la plus importante d Asie, et ce sont toutes les cotations qui sont bloquées toute la journée. Exemples de bogues • Convocation à l école primaire de personnes âgées de 106 ans. • Cause : codage sur deux caractères. • Mission Vénus : passage à 5 000 000 de km de la planète, au lieu de 5 000 Km prévus. • Cause : remplacement d'une virgule par un point (au format US des nombres). Les différentes étapes (1) • Spécifications : • • • • Informations fournies par le client. Analyse des besoins Délimiter les besoins, les contraintes, etc. Rôle important de la communication. • Analyse/conception : • Déterminer les acteurs, fonctionnalités, événements. • Déterminer l architecture logiciel. • Choix techniques (langage, libraires, etc.). Quelques critères • Exactitude • Portabilité • Extensibilité • Réutilisabilité • Vérifiabilité • Intégrité • Robustesse etc. Les différentes étapes (2) • Implémentation : • Codage • Premiers tests (unitaires) • Intégration : • Intégration des modules • Validation avec des jeux de tests • Maintenance : • Documentation • Correction des anomalies • Nouvelles fonctionnalités Méthodes de développement 1. Modèle en cascade Etapes en cascade : Cycle de vie (en cascade) Spécifications passage que si résultats satisfaisants Analyse 2. Modèle en V Conception 3. Modèle en spirale Mettre l accent sur des activités Implémentation particulières Validation 4. Modèle incrémentale Un logiciel noyau est développé puis des modules sont successivement ajoutés Maintenance Cycle de vie (en V) Spécifications Outils Recette Analyse Validation Conception Test Codage Analyse Conception Implémentation UML, Design patterns Langage objet (C#, Java) Eclipse, NetBeans Validation Patrons de conception Design patterns • Cataloguer les utilisations les plus répandues d objets : bonnes pratiques • Valable pour tous les langages OO • Exemple de « patron de programmation » Controller View Data Model Gang of Four (GoF) « Design patterns – Elements of Reusable Software » (Gamma, Helm, Johnson and Vlissides, 1995) • Design patterns = conception des objets et communication entre ces objets • Il existe aujourd hui des centaines de patrons ! • Trois catégories reconnues : creational, structural and behavioral. Exemples de patrons • Factory Method • Singleton Pattern • Bridge Pattern • Decorator Pattern • Proxy Pattern • Command Pattern • Iterator Pattern etc. Plan du cours • • • • • • • Notions de Génie Logiciel Introduction au langage Java Programmation Orientée Objet Notions complémentaires Quelques API standards Interface graphique en Java FX API pour la recherche d’information