Bruno Dufour dufour@iro.umontreal.ca IFT2255 - Génie logiciel Introduction Plan
Bruno Dufour dufour@iro.umontreal.ca IFT2255 - Génie logiciel Introduction Plan de cours Bruno Dufour - Université de Montréal Horaire • Cours magistraux : • Jeudi de 12h30 à 13h30, Z-210 • Mardi de 9h30 à 11h30, Z-337 • Démonstrations : • Jeudi 13h30 à 15h30, Pav. André-Aisenstadt salle 1175 3 Bruno Dufour - Université de Montréal IFT2255 sur le web • Page web du cours: • Remise de travaux, forums, matériel des démos, etc. 4 http://www.iro.umontreal.ca/~dufour/cours/ift2255/ http://studium.umontreal.ca/ Bruno Dufour - Université de Montréal Préalables • Programmation en Java • IFT1025 - Programmation 2 5 Bruno Dufour - Université de Montréal Plan de cours 6 Semaine Sujet Remise 1 Introduction, historique du GL 2 Cycle de vie des logiciels, systèmes de contrôle de révisions 3 Modélisation des logiciels : structure 4 Modélisation des logiciels : comportement TP1 5 Modélisation des logiciels : OCL 6 Modélisation des logiciels : Réseaux de Pétri 7 Changements, analyse des besoins 8 Localisation des concepts, impact des changements TP2 9 Architectures logicielles 10 Patrons de conception 11 Tests et vérification TP3 Bruno Dufour - Université de Montréal Évaluation • Travaux pratiques (3): 35% (10%, 10%, 15%) • Examens: 65 % • Intra : 30 % • Final : 35 % • Seuil = 40% 7 Bruno Dufour - Université de Montréal Retards • Aucun retard ne sera toléré pour la remise de travaux. • La note attribuée à un travail en retard sera zéro. 8 Bruno Dufour - Université de Montréal Plagiat • Les discussions avec les autres étudiants du cours sont encouragées, mais le plagiat sous toute forme sera sévèrement puni, conformément aux règlements de l’Université de Montréal • échec du cours • sanctions 9 Bruno Dufour - Université de Montréal Ouvrage de support • Vaclav Rajlich, Software Engineering: The Current Practice, Taylor & Francis, 2012. ISBN: 1439841225 10 Bruno Dufour - Université de Montréal Bibliographie pertinente • Ian Sommerville. Software Engineering (9e édition), Addison-Wesley, 2010. ISBN: 0137035152. • Craig Larman. Applying UML and Patterns (3e édition), Prentice-Hall, 2004. ISBN: 0131489062. • Martin Fowler. UML Distilled (3e édition), Addison- Wesley, 2003. ISBN: 0321193687. 11 Introduction Bruno Dufour - Université de Montréal Les logiciels et la société • Aujourd’hui la société dépend à tous les niveaux de systèmes informatiques • Banque: comptes, guichets auto., bourse, ... • Bureau: courriel, Word, Excel, ... • Transport: véhicules, routes, horaires, ... • Communication: téléphone, vidéo, web, ... • Recherche: bioinformatique, nanotechnologie, ... • Divertissement: films, jeux, musique, ... 13 Bruno Dufour - Université de Montréal Qu’est-ce qu’un logiciel? • Un logiciel est: • Du code exécutable • Les données associées au programme • Des documents: besoins des usagers, design, guide d’utilisateur, guide de programmation, etc. • Les logiciels jouent un rôle clé: • Produisent, gèrent et présentent de l’information 14 Bruno Dufour - Université de Montréal Qualités d’un bon logiciel • Correct: programme fiable sans “bogue” • Le programme est conforme à sa spécification • Il est testé sur plusieurs cas, normaux et extrêmes • Convivial: facile à utiliser • Interface usager intuitive, cohérente et esthétique • Performant: rapide et économe en mémoire • Pas besoin d’un ordinateur dispendieux • Logiciel “réactif” (contrôle, jeux, ...) • “Scalable” 15 Bruno Dufour - Université de Montréal Qualités d’un bon logiciel • Facile à maintenir: modifiable et extensible • Chaque logiciel a un cycle de vie 1. Analyse et conception: analyse des besoins, spécification. 2. Implémentation: développement d’algorithmes, codage 3. Maintenance: réparer bogues, extension • Cycle de vie: quelques minutes à des dizaines d’années, un seul programmeur à des milliers • Concepts de: portabilité, réutilisabilité, modularité, tests de régression, lisibilité, standards et styles de programmation 16 Bruno Dufour - Université de Montréal Que fait ce programme? #define P(X)j=write(1,X,1) #define C 21 int M[5000]={2},*u=M,N[5000],R=17,a[4],l[]= {0,-1,C-1,-1},m[]={1,- C,-1,C},*b=N,*d=N,c,e,f,g,i,j,k,s;main() {for(M[i=C*R-1]=24;f|d>= b;) {c=M[g=i];i=e;for(s=f=0;s<4;s++)if((k=m[s] +g)>=0&&k<C*R&&l[s]!=k%C&&(!M[k]||!j&&c>= 16! =M[k]>=16))a[f++]=s;rand();if(f){f=M[e=m [s=a[rand()%f]]+g];j=j<f?f:j;f+=c&-16*!j;M[g]=c| 1<<s;M[*d++=e]=f|1<<(s+2)%4;}else e=d> b++? b[-1]:e;}P(" ");P(" ");for(s=C;-- s;P("_" ))P("_");for(;P("\n"),R--;P("|"))for(e=C;e-- ;P("_ "+(*u++/8)%2))P("|_"+(*u/4)%2);} 17 Bruno Dufour - Université de Montréal Ceci, bien sûr! ________________________________________ |__ _ _ | | ___ ___ | _ | _ | _ _______ __| | __| |___| |_____|_| | | | | |____ | ____| | | ______|__ |____ | |___|___| __| | |__ | | | __________| ____| | | ___ |____ |_____| | |_| _ | _____ ______| | | |__ | __|____ | | _ __|___| _ |__ ______|____ | |_| _ ____| | |_________|__ | | _____ | __| | __| | _ | |____ | | ______| |__ | | | | |___| |___| | |_____|___| ___ |__ |___| | | _ | | ___ |_| | ___ | ____| | | |________ |_| | __| |__ | | | | | | _ | |___| _ | __|__ | _ | _ | | | | | | | | |__ | | __| | _ | __| | |_| |___| | | __|___| __| | | | __|___| __| | __| _ | | | |__ | __| _ |___| ________| _ |_____| | | |__ | | | __|_______| ___ | | | _____ | | | | | | |___| _____ |____ | |___| | __| __| |___|_________|___________|_______|______ | 18 Bruno Dufour - Université de Montréal Que fait ce programme? public List<int[]> getThem() { List<int[]> list1 = new ArrayList<int[]>(); for (int[] x : theList) if (x[0] == 4) list1.add(x); return list1; } 19 Bruno Dufour - Université de Montréal Que fait ce programme? public List<int[]> getFlaggedCells() { List<int[]> flaggedCells = new ArrayList<int[]>(); for (int[] cell : gameBoard) if (cell[STATUS_VALUE] == FLAGGED) flaggedCells.add(cell); return flaggedCells; } 20 Bruno Dufour - Université de Montréal 21 Maintenabilité • Définition • ensemble d'attributs portant sur l'effort nécessaire pour faire des modifications données • Sous-caractéristiques • Facilité d’analyse : effort nécessaire pour diagnostiquer les déficiences et causes de défaillance ou pour identifier les parties à modifier • Facilité de modification : effort nécessaire pour modifier, remédier aux défauts ou changer d’environnement • Stabilité : risque des effets inattendus des modifications • Facilité de test : effort nécessaire pour valider le logiciel modifié Bruno Dufour - Université de Montréal Qualités du logiciel • Le génie logiciel doit assurer la qualité • Non seulement du logiciel • Mais aussi du processus de développement. • Productivité ‣ diminuer les coûts ‣ réutilisation (compromis) ‣ utilisation d’outils et environnements • Ponctualité ‣ livrer logiciel d’ “actualité” ‣ développement incrémental: livraison précoce du logiciel • Visibilité (transparence) ‣ documentation 22 Bruno Dufour - Université de Montréal Exigences de qualité • Systèmes d’information et de commerce électronique • Gestion d’information: création/destruction, consultation et mise à jour de données. • Ex: systèmes bancaires, catalogue informatisé (biblio) • Caractéristiques importantes • Intégrité des données • Sécurité • Disponibilité des données • Performance des transactions • Convivialité 23 Bruno Dufour - Université de Montréal Qualités du logiciel • Systèmes temps réel • Doit répondre aux événements dans un laps de temps limité. • Temps de réponse fait partie de la fonctionnalité du logiciel • Ex.: système d’injection d’un moteur à combustion, système de guidage d’une sonde • Caractéristiques importantes • Correction, fiabilité, robustesse • Interopérabilité, convivialité 24 Bruno Dufour - Université de Montréal Qualités du logiciel • Systèmes distribués • Ordinateurs indépendants connectés par un réseau de communication. • Aspects à considérer • Distribution: données ou contrôle? • Tolérance aux fautes • Caractéristiques importantes • Fiabilité, robustesse • Performance • Interopérabilité 25 Bruno Dufour - Université de Montréal Qualités du logiciel • Systèmes embarqués • Système intégré à un dispositif, une machine ou un autre système pour le piloter. • Exemples: système de freinage automobile, tableau de commande d’un micro-ondes, etc. • Aspect à considérer • Interface avec autre système (non humain). • Caractéristiques importantes • Interopérabilité • Réutilisation 26 Bruno Dufour - Université de Montréal Qualités du logiciel • Comment mesure-t-on la qualité? • Ex. On évalue la fiabilité d’un pont en mesurant par exemple la pression qu’il peut supporter, la résistance au vent, etc. 1. Définir avec précision la caractéristique de qualité à évaluer 2. Établir un ensemble de métriques et un modèle qui permet d’évaluer cette caractéristique à partir des valeurs des métriques 27 Bruno Dufour - Université de Montréal L’informatique et l’ingénierie • Les autres disciplines de génie • manipulent des composantes: • réelles • qui interagissent de façon prévisible • sont moins sujettes aux changements • Développer un logiciel n’obéit pas aux contraintes du monde réel • Le développement de logiciels est difficile • 1/3 des projets sont abandonnés, la moitié dépassent leur budget, et presque tous se terminent avec du retard • Le matériel excède souvent ses objectifs alors que le logiciel nécessite plusieurs ajustements 28 Bruno Dufour - Université de Montréal Ariane 5 • Fusée Ariane 5 • Construite par l’Agence Spatiale Européenne • Première mise à feu en juin 1996 • A explosé 40 secondes après le lancement • Heureusement, pas de passagers à bord • Coûts: • Fusée et contenu : 500 millions $ • Développement : 7 milliards $ • Cause de l’explosion: faute du logiciel http://www.ima.umn.edu/~arnold/disasters/ariane.html, http://www.around.com/ariane.html 29 Bruno Dufour - Université de uploads/Litterature/ 2015-08-24-ift2255-ch1-intro.pdf
Documents similaires










-
29
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jan 01, 2023
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 0.3124MB