IFT2251 Introduction au génie logiciel Plan de cours. 2. Description du cours et objectifs généraux



Documents pareils
IFT2255 : Génie logiciel

Analyse,, Conception des Systèmes Informatiques

Patrons de Conception (Design Patterns)

PLAN DE COURS DÉPARTEMENT ÉLECTRONIQUE INDUSTRIELLE. TITRE DU COURS Ordinateur Outil RA 1-4-2

IFT6251 : Sujets spéciaux en génie logiciel

PLAN DE COURS. GPA750 Ordonnancement des systèmes de production aéronautique

Chapitre I : le langage UML et le processus unifié

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

Soutien technique en informatique

CHARGÉE DE COURS : Catherine Pelletier, MBA, chargée de communication, Service des communications et des relations avec le milieu, FSA

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

PLAN DE COURS. Reconnaître le rôle des mathématiques ou de l informatique dans la société contemporaine (0011)

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

POL 1100 (Méthodes de recherche en politique) Hiver 2012 Local B-0305 Lundi de 13h00-14h30

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

Plateforme de capture et d analyse de sites Web AspirWeb

Intégration de l interface graphique de Ptidej dans Eclipse

Gauthier, Benoît (dir.) Recherche sociale : de la problématique à la collecte des données. Québec : Presses de l Université du Québec.

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

UML (Paquetage) Unified Modeling Language

Plan de cours. 1. Mise en contexte. 2. Place du cours dans le programme. 3. Descripteur du cours

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

ANALYSE D UN SYSTEME D INFORMATION ET EXTENSION DE

PLAN DE COMMUNICATION TACTIQUE COMM Faculté des lettres : Département d'information et de communication PLAN DE COURS

Introduction au génie logiciel

SECTION 5 BANQUE DE PROJETS

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Formation : Modélisation avec UML 2.0 et Mise en pratique

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Le développement d'applications informatiques

Présenta;on du cours

Intégration et Déploiement de Systèmes d Information

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

UNIVERSITÉ LAVAL. PLAN DE COURS PROGRAMME en GESTION du DÉVELOPPEMENT TOURISTIQUE. Titre et sigle du cours : Marketing touristique, MRK 20578

Refonte front-office / back-office - Architecture & Conception -

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Bibliographie sommaire pour le programme de B. Sc. (informatique de gestion), concentration en génie logiciel

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

Courriel : waguih.laoun@collegeahuntsic.qc.ca

Le génie logiciel. maintenance de logiciels.

PG208, Projet n 3 : Serveur HTTP évolué

A.E.C. - Gestion des Applications, TI LEA.BW

Rational Unified Process

Générer du code à partir d une description de haut niveau

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Dessin Technique GMEC1311. PROFESSEUR Gabriel Cormier, Ph.D. Bureau : 217G2 Tél : Courriel : gabriel.cormier@umoncton.ca

Brique BDL Gestion de Projet Logiciel

PLAN DE COURS TYPE COMMUNICATION MARKETING UNE PERSPECTIVE INTÉGRÉE

Génie Logiciel Orienté Objet UML

Vérifier la qualité de vos applications logicielle de manière continue

CC30 Certificat de compétence Conception, développement et animation de sites Web

DEVELOPPEMENT ET MAINTENANCE DE LOGICIEL: OUTIL DE PILOTAGE

Développement d un interpréteur OCL pour une machine virtuelle UML.

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique

Laboratoire 4 Développement d un système intelligent

Plan de cours. Chiffriers et bases de données en gestion commerciale

Types de REA produites dans le cadre de la séquence pédagogique

Développement itératif, évolutif et agile

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL

COLLÈGE DE MAISONNEUVE

LE CONTRÔLE INTERNE GUIDE DE PROCÉDURES

MRK 2106 MARKETING RELATIONNEL Hiver crédits Mercredi de 8h30 à 11h20

NUMÉRO (GR) TITRE DU COURS CYCLE

Gé nié Logiciél Livré Blanc

PLAN DE FORMATION Formation : Le rôle du superviseur au quotidien

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES

HIVER 2004 MÉTHODOLOGIE DE LA RECHERCHE EN MARKETING MRK

Projet Active Object

Technologie 9 e année (ébauche)

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

Projet BI powered de la société «BI experts»

Modélisation de Lignes de Produits en UML *

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Conception, architecture et urbanisation des systèmes d information

Description de la formation

Management des processus opérationnels

Une stratégie d enseignement de la pensée critique

LICENCE : INFORMATIQUE GENERALE

PLAN DE COURS CONCEPT ET MULTIMÉDIA JCW 06

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Le Guide Pratique des Processus Métiers

Daylight. Démarche ergonomique et RUP. Daylight 2001 Démarche ergonomique et RUP 1/1 07/03/02 CSI_RUPERGO02

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

UML (Diagramme de classes) Unified Modeling Language

Eclipse Process Framework et Telelogic Harmony/ITSW

IMO - Informatique, modélisation et optimisation

Programming Server-Side Web Applications with Object-Oriented PHP NC Group Syllabus. Duration: 75 hours 1-2-2

Les processus métiers : concepts, modèles et systèmes

Séance 1 Méthodologies du génie logiciel

Transcription:

IFT2251 Introduction au génie logiciel Plan de cours Été 2008 Yann-Gaël Guéhéneuc 1. Introduction Les exigences et les attentes à l égard de la qualité logicielle sont de plus en plus grandes. La taille et la complexité des systèmes informatiques ne cessent d'augmenter. Le développement logiciel ne peut plus être le simple fait du travail «artisanal» d'un développeur aussi ingénieux soit-il. Considérant le rôle critique de certains logiciels, le coût de leur réalisation et les courts échéanciers de production, il est essentiel que développement logiciel intègre une analyse et une conception rigoureuses, une implantation de grande qualité et la vérification. La culture des «bonnes pratiques» et l'application de certains principes de développement contribuent à l'élaboration de logiciels fiables, performants et facilement modifiables. 2. Description du cours et objectifs généraux Le cours IFT2251 est une introduction au génie logiciel. Il vise à initier les étudiants aux processus de développement des logiciels, ainsi qu aux méthodes, techniques et outils utilisés pour développer des logiciels de qualité, c est-à-dire corrects, fiables, robustes, facilement maintenables, évolutifs, etc. L'objectif général du cours est de donner à l étudiant une vision claire du cycle de vie du logiciel, de faire apparaître les enjeux liés à chacune des phases du cycle de vie et de donner des méthodes, techniques et outils pour répondre aux enjeux. Nous verrons comment faire l'analyse et la conception de logiciels à partir des concepts, méthodes et techniques proposées par les approches dites classiques et par l approche orientée objet. Les étudiants apprendront à interpréter et à concevoir des modèles décrivant la structure et le comportement de logiciels tant séquentiels que concurrents. Parmi les modèles «classiques» vus en cours, mentionnons les diagrammes entité association, les diagrammes de flots de données, les réseaux de Petri et les machines à états. Nous verrons également comment faire la spécification de logiciels à l aide d UML, une notation de l approche orientée objet. Nous étudierons les bonnes pratiques de conception et d implantation orientées-objets, notamment les patrons de conception, les patrons de mauvaise conception et les conventions de programmation propre au langage Java, par exemple. Nous mettrons également en avant la programmation par interfaces. Pour clore ce cours d introduction, nous aborderons le sujet de la vérification. Nous survolerons quelques techniques de test (boîte blanche, boîte noire, etc.) et de preuves utilisées pour évaluer la correction des logiciels développés.

3. Clientèle visée Étudiants inscrits au DIRO (en 2 e année) ou dans un programme ayant une composante en informatique. 4. Cours préalables IFT1025 Programmation 2. L étudiant doit maîtriser les concepts avancés de classes, d objets, d héritage, d interfaces (de classe et utilisateur), de réutilisation, et d événements. Il doit savoir utiliser les structures de données de base (listes, arbres binaires, fichiers) et les algorithmes de recherche et de tri qui leur sont associés. 5. Enseignant et démonstrateurs Professeur. Yann-Gaël Guéhéneuc Courriel : guehene@iro.umontreal.ca Bureau : AA-2345 Démonstrateurs (à préciser). Simon Denier Courriel : dift2255@iro.umontreal.ca 6. Horaire Attention! Des changements sont possibles (Ils seront annoncés sur le site du cours.) Voir la page http://www.progcours.umontreal.ca/cours/index_fiche_cours/ift2255.html

7. Objectifs pédagogiques Introduction. Définir ce qu est le génie logiciel, en comprendre les enjeux. Décrire les qualités d un logiciel et les principes de base qui permettent de les réaliser. Expliquer le cycle de vie d un logiciel. Décrire et comparer certains processus de développement classiques et plus récents, comme le processus orienté objets. Analyse et spécification. Expliquer les objectifs et les étapes de la phase d analyse. Décrire les méthodes utilisées. Expliquer l importance de la spécification et distinguer les différents types de notations de spécification existantes. Exposer différentes méthodes et notations (classiques et orientées objets) utilisées pour faire l analyse et la spécification de logiciels. Construire les modèles d analyse d études de cas choisies suivant les approches tant classiques qu orientées objets. o Approche classique : décrire, interpréter et construire des diagrammes entité association, DFD, dictionnaires de données, diagrammes d états et réseaux de Petri pour spécifier les logiciels. o Approche orientée objet avec UML : décrire, interpréter et construire des diagrammes de classes, de cas d utilisation, d activités, de séquence et de collaboration pour spécifier les logiciels. Conception. Expliquer les objectifs et les étapes de la phase de conception. Décrire le principe de modularité et savoir l appliquer. Évaluer les qualités d une conception logicielle. Identifier les différents types d architecture logicielle fréquemment utilisés, les décrire et les comparer. Justifier le choix d une architecture particulière pour la conception d un logiciel donné. Élaborer un modèle de conception détaillée à partir d un modèle d analyse. o Approche classique : construire le structurogramme d un logiciel, à partir des DFD de la phase d analyse, par étude des transactions et des transformations. o Approche orientée objets avec UML : élaborer les diagrammes développés pendant la phase d analyse selon l approche BCE. Décrire et distinguer différentes techniques de réutilisation (bibliothèques, cadriciels, patrons de conception, etc.) et justifier leur utilisation. Décrire les qualités associées à la conception et à l implantation. Vérification. Identifier, décrire et comparer les différentes approches de vérification logicielle et leurs objectifs respectifs. Comprendre les objectifs, les avantages et les inconvénients du test logiciel. Décrire, comparer et savoir utiliser les techniques de génération de jeux de tests de type «boîte blanche» et «boîte noire» pour le calcul de jeux de test pertinents. Et plus globalement Développer une approche de développement rigoureuse. Apprendre à faire des choix judicieux de modélisation, de conception et d implantation.

8. Méthode d enseignement et d apprentissage Formule d enseignement : «connaissances et compréhension». La matière du cours sera essentiellement présentée sous forme de cours magistraux donnés par le professeur. Des exemples seront développés en cours pour illustrer la matière. Formule d apprentissage : «analyse». Les étudiants pourront développer et confirmer leurs apprentissages en réalisant les exercices proposés par les auxiliaires d enseignement pendant les séances de travaux dirigés (démonstrations). Les travaux pratiques, en plus de servir à l évaluation, seront l occasion de développer d autres habiletés liées à ce cours (rigueur, jugement, réflexion, organisation, etc.). Par ailleurs, les étudiants devront compléter leur apprentissage de façon autonome par des lectures et des exercices tirés des livres mis en réserve à la bibliothèque. Cette année, les travaux pratiques pourraient être donnés sous la forme d un projet qui durera toute la session. L objectif du projet, par groupe de quatre étudiants, sera de construire une plate-forme de jeu de rôles sur laquelle s affronte des joueurs automatiques. Les étudiants auront aussi à construire des joueurs pour démontrer la fiabilité, l efficacité, la robustesse de leur plate-forme. Les spécifications du jeu seront données en début du cours et feront l objet de travaux à remettre chaque semaine ou chaque deux semaines : analyse, conception, implantation, tests... Le projet sera réalisé en Java, avec l environnement de développement à code source libre Eclipse et la plate-forme de tests unitaires JUnit. Le système de gestion de configuration CVS pourra être utilisé (à voir avec le Support). Support de cours. Transparents o Ces transparents devront être complétés par des notes de cours personnelles. Site web : o www.iro.umontreal.ca/~pift2255 o Le site web regroupe les énoncés des travaux pratiques et des démonstrations, les transparents, les annonces importantes, etc. o Les informations données en cours prévaudront sur celles du site web. 9. Évaluation L évaluation comportera deux examens et le projet, les pourcentages peuvent changer : Projet 40% Examen intra 30% Examen final 30% Seuil. Une moyenne de 50% aux examens est exigée pour que les résultats du projet soient comptabilisés dans la note finale. (Ainsi, un étudiant qui obtiendrait 60% à l intra. et 20% au final se verrait attribuer 0% pour le projet.)

Retard et absence. À moins d indications contraires, les travaux remis en retard seront pénalisés avec les taux suivants : Retard Pénalité 1 jour -5% 2 jours -15% 3 jours -30% 4 jours -50% 5 6 jours -75% 7 jours et plus -100% Un étudiant absent à l examen intra. passera un examen intra. différé oral devant le professeur et un collègue dans les deux semaines suivantes. Un étudiant absence à l examen final passera un examen final différé organisé par la FAS comme prévu dans le règlement pédagogique. Plagiat et fraude. Ils seront immédiatement sanctionnés conformément aux règlements de l université de Montréal et du DIRO. Pour plus d informations : www.secgen.umontreal.ca/pdf/reglem/francais/sec_30/ens30_3.pdf www.iro.umontreal.ca/codehonneur.pdf 10. Questions et consultations Consultation avec le professeur. Le professeur sera disponible pour répondre à vos questions les mercredis de 10h30 à 12h00 ou sur rendez-vous par courrier électronique. Consultation avec les démonstrateurs. Les démonstrateurs vous communiqueront leurs disponibilités lors de la première séance de démonstration. Questions par courriel. Vous pouvez poser vos questions par courriel au professeur (guehene@iro.umontreal.ca) ou aux démonstrateurs (dift2255@iro.umontreal.ca). Les réponses aux courriels seront données au début des cours et des séances de démonstration. 11. Ouvrages de référence Livres recommandés. John W. Satzinger, Robert B. Jackson, Stephen D. Burd, Michèle Simond et Martin Villeneuve ; Analyse et conception de systèmes d information ; Les Éditions Reynald Goulet, 2 e édition, 2003.

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides ; Design Patterns: Elements of Reusable Object-Oriented Software ; Addison-Wesley, 1 e édition, 1994. Autres livres intéressants. Carlo Ghezzi, Mehdi Jazayeri et Dino Mandrioli ; Fundamentals of Software Engineering ; Prentice-Hall, 1 e édition, 2002. Leszek A. Maciaszek ; Requirements Analysis and System Design. Developing Information Systems with UML ; Addison Wesley, 1 e édition, 2001. Shari Lawrence Pfleeger ; Software Engineering: Theory and Practice ; Prentice-Hall, 2 e édition, 2001. James Rumbaugh, Ivar Jacobson et Grady Booch ; The Unified Modeling Language Reference Manual ; Addison Wesley, 1 e édition, 1999. Roger S. Pressman ; Software Engineering: A Practitioner s Approach ; McGraw Hill, 5 e édition, 2001.