Td corrigé Cours IFT2251 ? Introduction au génie logiciel Cours 1, Lundi 9 ... pdf

Cours IFT2251 ? Introduction au génie logiciel Cours 1, Lundi 9 ...

Maintenance corrective (corriger les erreurs); Maintenance adaptative ... p.13: L' analyste peut être lié au test système et le concepteur au test d'intégration (pour leur planification, pas leur réalisation) .... OMG: Object Management Group.




part of the document



Cours IFT2251 – Introduction au génie logiciel


Cours 1, Lundi 9 janvier 2006

Diagramme UML = Non formel (Semi-formel)
Il y a des méthodes formelles, surtout pour les applications critiques.

2/3 semestre: Méthodes semi-formelles
1/3 semestre: Réseaux de pétri et vérification (jeux de tests)

 HYPERLINK "http://www.iro.umontreal.ca/~pift2251" www.iro.umontreal.ca/~pift2251

4 TPs à remettre…

UML (1.8 ou 1.9 pour le cours, 2.0 est sorti, mais pas pour les cours)

Rational rolls (ou roads) (outils plus avancé)
SmartDraw ou MagicDraw comme outils de dessin (suffisant pour le cours)

Pas de livre comme tel, quelques références sur le plan de cours (par exemple pour des exercices).

Association d'idées:
La modularité: Principe
Théorie musicale: Notation (UML, Un langage de programmation)
Le grand guide du jardinage: Méthodologie (au sens d'ensemble de techniques)
Le jazz: Paradigme (Un style, une façon de faire)
Le tri par bulle: Méthode/Technique
Le compilateur java: Outil


Cours 2, mercredi 11 janvier 2006

Faute (…) ( Erreur (interne) ( Défaillance (externe)

Le test rend visible les erreurs en engendrant des défaillances.
Le débogage s'intéresse à éliminer les erreurs.

Le coût des modifications ou corrections d'erreur augmente exponentiellement. On cherche à rapprocher la courbe cloche de détection des erreurs de celle similaire de la création de celles-ci afin de minimiser les coûts.

La vérification s'assure que les spécifications sont correctes. [Correction au 2e sens]

Diapos:
p.9 VFFV, p.13 FVF, p.14 FF, p.16 VFF
p.22 Correction, p.23 Fiabilité, p.24 Robustesse, p.25 Performance, p.26 Convivialité,
p.27 Vérifiabilité, p.28 Facilité de maintenance (Maintenabilité), p.31 Réutilisabilité,
p.32 Portabilité, p.33 Interpérabilité (MS Office),


Cours 3, vendredi 13 janvier 2006

Logiciel système:
OS
Pilote

Logiciel temps réel: 1ms à 1s de temps de réponse. (logiciel réactif)
Pilote automatique
Appareil médicaux (échographie)

Logiciel affaire:
Paie
Gestion des comptes

Scientifiques / Ingénérie:
MathLab
Mathematica
RationalRoad
Compilateurs

Logiciel embarqué: (sert à controler un appareil, souvent temps réel aussi)
ABS (freins)
Électro-ménagers
Avions
Montres
Stimulateur cardiaque

Applications web:
Services genre convertisseur monétaire, maps, etc.

Intelligence artificielle: (Algorithmes non-numériques)
Jeux d'échecs avancé
Système expert (avec stratégies de recherche)
Système diagnostique (avec sous-questions)
Système qui apprend …
Réseaux neuronaux.


Qualités d'un logiciel:
Interne:
Portabilité, correction, robustesse, facilité de maintenance, interopérabilité.
Externe:
Fiabilité, robustesse, performance, convivialité

Métric (exemple) déterminant d'une qualité pour un logiciel, par exemple, le nombre de liens entre les classes si on cherche à définir la maintenabilité d'un code en fonction de l'indépendance des classes.

Nature des changements dans un système: (p.53)
Perfectifs (nouveaux beosins)
Correctifs
Adaptatifs
Cours 4, lundi 16 janvier 2006

À quel autre principe l'abstraction est-il intimement lié? La Généralité
À quelles qualités logicielles le principe d'abstraction contribue-t-il directement? Réutilisation, Portabilité, Vérifiabilité, Correction
L'anticipation du changement, la généralité et l'incrémentalité sont des principes davantage liés au génie logiciel qu'aux autres disciplines d'ingénérie classiques. Pourquoi? À cause de la maléabilité du produit fini, on peut le modifier, en faire des versions.

Chap2,p.4: Pas très réaliste puisqu'on n'y prévoit pas de retour en arrière.

L'analyse se passe en dialogue entre le client et l'analyste. (p.6)

Exigences fonctionnelles versus non-fonctionnelles:
[Bibliothèque] Prêt, réservation, etc.
Facile pour personnes agées, …

Cahier des charges: Un contrat en quelque sorte.
Le plan de test: Un autre contrat.

Conception architechturale: «macroscopique» p.6 ex.: Base de donnée 'clients'
Conception détaillée: «microscopique» ex.: Ce qu'est un client.

Interfaces du système: Capteur, périphériques, etc. (p.7)

Vérification (p.10)
Tests unitaires
Tests d'intégration
Test du système

Installation:
Mise en fonctionnement… (par exemple beta testers)

Maintenance (p.11)
Maintenance corrective (corriger les erreurs)
Maintenance adaptative (mdifications)
Maintenance perfective (améliorations)
Maintenance préventive (prévoir les mises-à-jour automatiques par exemple, logfiles pour évaluer la performance, etc.)

Validation: Par rapport au client
Vérification: Répond à la spécification

Gestion du risque: Financier (besoins trop grands?) ou au niveau du logiciel (cul-de-sac à prévoir)

p.13: L'analyste peut être lié au test système et le concepteur au test d'intégration (pour leur planification, pas leur réalisation)


Cours 5, mercredi 18 janvier 2006

Planification stratégique:
Budget, Risques, etc.

L'analyste doit aussi avoir des connaissance sur son environnement, voire en gestion, de même en relations.

Diagramme du contexte: Déterminer ce qui fait partie du système
Complet lorsqu'il rencontre le cahier des charges.

Un bon outil pour une méthodologie de gestion des changements: CVS

Chap2,p.29: Prototype jetable
Prototype évolutif (ou réutilisable) on doit s'assurer de sa rigueur.

Un autre processus de développement: RUP (Rational Unified Process) ( Larman

Le modèle en spirale est un modèle dit «évolutif»
Montrer/Livrer quelque chose au client
Évaluer la plus-value pour le client + critiques.
Ajuster le design et les objectifs

RUP est aussi un processus évolutif
InceptionÉlaborationConstructionTransitionBesoins______________-----¯¯¯¯¯¯¯¯--------------_______________________Analyse_______-----------------¯¯¯¯¯¯¯¯-------___________________________Design_____________________---------¯¯¯¯¯¯¯¯¯--------------_____________Implémentation___________________-----------¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯---__________Test______----___________--___--___----___--___--____---¯¯¯-----_______Itération 1, ité2, ité3, ité4, ité5, ité6, ité7, ité8, ité9, ité10, …
Inception: Phase préliminaire, première conception, visualisation, etc…

Processus évolutif: Processus où on reprend les étapes avec des ajouts.

RUP est itératif et incrémental, à chaque quelques itérations, on va livrer une version du système. (Le noyau, le noyau et un service, etc.)


Chapître 3: Analyse et spécification

p.8: Services, Contraintes

Besoins non-foncitonnels:
Fonctionalités supplémentaires (FURPS, Fonctionality, Usability, Reuability, Performance, S...)

p.10: Traçable: Être capable d'associer le besoin aux modules, au moyens utilisés pour y répondre (numérotation?)
Cours 6, lundi 23 janvier 2006

Réponses du .doc:
Fonctionnel, entrées
Fonctionnel, sorties
Foncitonnel, calcul
Fonctionnel, stockage
Non-fonctionnel, Qualité, Facilité de maintenance, amélioration (perfectif)
Non-Fonctionnel, PR, planning/délais
Non-Fonctionnel, Qualité, fiabilité/robustesse
Plateforme
X

p.22:
Cas d'utilisation
acteurs
scénarios

p.23:
à faire… (exercice)


nota: Jad, méthode par réunions intensives (genre brainstorming), méthodologie prescrite à suivre.


Cours 7, mercredi 25 janvier 2006

Cahier des charges:
Services du système ( Besoins fonctionnels
Contraintes du système ( Besoins non-fonctionnels

p.34: Manque: Réutilisabilité et Facilité de maintenance.

p.32: Besoins, Modules de conception, code, tests, documentation.

Degré de formalisme:
Formel: notament quand on peut le prouver.

pp.36-36, UML serait semi-formel, et surtout opérationnel.


Chap3.2, p.6: externes, temporels, d'état


Cours 8, lundi 30 janvier 2006

Chap4,p.8: Analyse structurée: 1980


Cours 9, mercredi 1er février 2006

OMG: Object Management Group

Architectures: Pipeline, Client-Serveur, Par tableau, etc.

Objets (p.39): Par comportement on parle plus d'opération que de méthode (plusieurs méthodes possibles pour une opération)

Exemple (système de télémarketing):


Cours 10, lundi 6 février 2006

Élément: Ce qu'on veut stocker.

Association: Entre des classes, (représente l'ensemble des liens)
Lien: Entre des instances

Dans le diagramme de classe: uniquement des liens.









Agrégation: Les éléments peuvent exister par eux-même et appartenir à plusieurs agrégats. (Segment d'un chemin)
Composition: Les éléments ne peuvent exister sans le composite. Ni appartenir à plusieurs composites. (Appartement d'un immeuble)


Cours 11, mercredi 8 février 2006

DFD: Agent externe DFD de la démo2#1, revu et corrigé:
UML: Acteur


Diagramme de classe: Pendant l'analyse et puis version revisée après. (Pas tout au départ)
(pas de qualifiant)

Association dérivée: Avec un backslash en avant.
Attributs dérivés: Avec un \ aussi.

Sac de liens: Ensemble avec redondances possibles.

Emploi, dans 4.2.26/27 = un travail précis, pas "travaille chez".














Exercices: (Instanciation, Généralisation, Spécialisation, Association, Agrégation, Composition ou Attribution)

Roger est un restaurateur: Instanciation
Un restaurateur est une personne: Spécialisation (point de vue du restaurateur)
Un repas complet a (entrée/plat pr./dessert): Agrégation
Un plat est une entrée, un plat pr. ou un dessert: Généralisation
Table 3 est une table du restaurant: Instanciation
La table 3 est vide: Attribution
Une boisson est soit de l'eau, du vin ou du café: Généralisation
L'eau est froide, le café est chaud: Attribution
Le café va bien avec le dessert: Association




Cours 12, lundi 13 février 2006

Diagramme de cas d'utilisation: En lien avec la limite automatisable du système.
(en opposition avec contexte qui parle du système complet)

p.3.5: On devrait, dans n cas réel, parler de «préposé au prêt».


Cours 13, mercredi 15 février 2006

Les flèches pour les include et les extends NE SONT PAS des flots de données.

Extend: pour répondre aux cas entrainant des scénarios secondaires (cas d'exception). (if)


Cours 14, lundi 20 février 2006

4.4.10:




















Cours 15, mercredi 22 février 2006

p.4.5.10: Ordre: b1-c1-a2 ...


Cours 16, lundi 6 mars 2006

Diag. d'état: Normalement, les transitions ont un événement et une garde, mais quand il s'agit d'une transition de sortir dite «de complétion», on n'a besoin que d,une garde.

Point d'entrée: toujours (noter l'état initial)
Point de sortie: surtout pour les états composites, pas trop grave pour le shéma global.

Cours 18, lundi 13 mars 2006

Deux types de diagramme d'interaction: Séquence et Collaboration

Diagramme de séquence: On représente des objets, pas des classes.


Cours 19, mercredi 15 mars 2006

p.23: abab

Diag. de collaboration: «une instance du diagramme de classes»

Collaboration: «réalisation d'un cas d'utilisation»
Soit par un diagramme de collaboration
Soit par un diagramme de séquence ET un diagramme de classes.

métrique: la mesure d'une qualité. (par exemple la cohésion)


Cours 20, lundi 20 mars 2006

Approche de conception (BCE)
Reviser les scénarios des uses case
Schéma de robustesse * Inclure les classes interface au diagramme de classes
Diagramme de collaboration/squence * Ajouter les opérations au diagramme des classes
Réviser

Les objets entity, s'ils ne sont pas en mémoire, il faut prévoir uen interface pour y accéder (base de donées, etc.)


Cours 21, mercredi 22 mars 2006

- Analyse: - Diagramme de cas d'utilisation + document(scénario)
- Diagramme de classes (éléments du domaine)
- Autres diagrammes (état, activités, séquence) [liés au scénario]

- Conception: 1) Réviser scénarios des cas d'utilisation
2) Schéma de robustesse
3) Diagramme de séquence ou collaboration* | attribuer les responsabilités
4) Réviser la cohérence inter-diagrammes

*collaboration = réalisation d'un cas d'utilisation

p.5.1.52: L'ovale en pointillé est une collaboration. On affiche les rôles sur les liens et on défini la collaboration ailleurs, par exemple avec un autre diagramme de classes, ...

«Design pattern GoF»: Un catalogue de design patterns
Cours 22, lundi 27 mars 2006

Composant: mini-programme exécutable avec entrées/sorties. (en oposition à la notion de classe)


Cours 23, mercredi 29 mars 2006

p.5.2.13: Observer

Plusieurs clients: ne peut être tableau noir, plutôt client-serveur


Cours 24, lundi 3 avril 2006

p6.6: Inflow = {(kp,A),(ks,A)} (compote p.4)
Outflow={(A,pc),(A,pg)}

p6.8: In(A) = kp,ks
Out(A) = pc,pg

p6.9 M(kp)=nombre de jetons dans kp (Marquage / État)


Cours 25, mercredi 5 avril 2006

p.6.27, Pour modéliser un tampon de n unités, il suffit d'initialiser le contenu du tampon avec n jetons et de changer le sens des deux places modélisant le tampon pour 'nombre d'éléments dans le tampon' et 'nombre de position libres'.


Cours 26, lundi 10 avril 2006

p.6.65: pas k-borné pcq contient un w
pas réversible pcq pas de boucle sur un état qui match l'initial (avec ou sans w), (ou pcq contient un blocage)
pas vivant, parce que blocage


Cours 27, mercredi 12 avril 2006

Caractéristiques fondamentales du graphe des marcages accessibles:

GA(): Un marquage M est atteignable ssi il existe un sommet M dans GA().
GC(): Si le marquage M est atteignable dans alors il existe un sommet qui couvre M dans GC().

Réseau vivant si toutes les transitions sont vivantes.

À partir d'un graphe de couverture on ne peut pas décider de la vivacité, mais on peut décider d'un deadlock.

Propriété: R réversible + R quasi-vivant ( R vivant

quasi-vivant ( toutes transitions atteignable à partir de M0
vivant ( toutes transitions atteignable à partir de tous les M.

 Donc, si quasi-vivant et réversible, alors forcément vivant.

Matrice d'incidence C: R=
c(p,t) = W(t,p) – W(p,t) (sortants moins entrants)


T1T2T3T4T5T6P1-101000P21-10000P301-1000P40-110-11P5000-101P60001-10P700001-1
On obttient l'équation caractéristique du réseau de Petri: M = M0 + C(u
où u est un vecteur ensemble de transitions.
 EMBED Equation.DSMT4   EMBED Equation.DSMT4 
Note:
Si on trouve un u, on ne sait pas si c'est franchissable car la matrice ne teste pas les préconditions.

Si on trouve ne trouve pas de u, on peut toutefois dire qu'il n'y a pas de façon d'y arriver.


Si C(u = 0, alors les solutions pour les u franchissables sont des invariants de transition
(T-invariant).
MT(x = (M0 + C(u)T(x
MT(x = M0T + uT(CT(x

Si CT(x = 0, alors MT(x = M0T alors les solutions pour x sont des invariants de place
(P-invariants)
Ex.: CT(x = 0 dans notre exemple, x1=(1,1,1,0,0,0,0) est une solution
x2=(0,0,1,1,0,0,1)

M(p1) + M(p2) + M(p3) = M0T(x1 = 1

Trappe: Ensemble de places telles que les t sortantes sont un sous-ensemble des t entrantes.

Chaque t qui enlève un jeton d'une place de la trappe, doit remettre au moins unjeton dans la trappe.

Une trappe est dite marquée ssi il y a au moins un jeton dans la trappe au départ.
Si une trappe est marquée dans M0 alors elle est aussi marquée dans tous les MA.

 P1 est une trappe, P3-P4 est une trappe























Fin du cours.
 EMBED SmartDraw.2 

 EMBED SmartDraw.2 

 EMBED SmartDraw.2 

 EMBED SmartDraw.2 

 EMBED SmartDraw.2 

 EMBED SmartDraw.2 

 EMBED SmartDraw.2