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