Comprehension Du Logiciel Flashcards

1
Q

Objectif de la compréhension du logiciel

A

-comprendre le domaine d’affaire en prenant la perspective de l’utilisateur

-comprendre le changement demander(comprendre ce qui est fait aujourd’hui et ce qui doit changer dans le futur.

Comprendre les spécificités des composant du logiciel(modèle mental)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Plusieurs personnes doivent
connaître le logiciel?

A

Le gestionnaire de la maintenance–Les analystes–Les concepteurs–Les programmeurs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

avantage du modèle mental

A

–Il accélère le raisonnement correct
–Il permet de prédire plus facilement ce qui
peut arriver sur la base de certaines actions

Aussi Le modèle mental est constante évolution

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Approche descendante c’est quoi?

A
  • Le mainteneur commence ses activités
    de compréhension avec les éléments de
    haut niveau décrivant le logiciel:–Par exemple: ce qui se fait quand on exécute
    une requête
    *Puis en essaie de comprendre les détails–Structures de données, flux de traitement,
    lectures/écritures à la BD.

*Approche itérative–On émet une hypothèse de haut niveau
avec l’aide de balises
–L’hypothèse est confirmée et raffinée
progressivement avec l’acquisition de
connaissances

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qu’est ce qui faut absolument utiliser avec l’approche descendante

A
  • Il faut utiliser des balises avec l’approche
    descendante
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Approche Opportuniste c’est quoi?

A

Approche itérative–Combinaison de l’approche descendante et
ascendante. –Souvent, c’est méthode utilisée en pratique.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Approche ascendante c’est quoi?

A

*Approche itérative–Le programmeur reconnait les patrons dans
le programme.
–À chaque itération, ces patrons sont
regroupés afin de fournir un modèle de plus haut niveau

inverse de descendante commence bas vers le haut

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Differentes technique de lecture

A

*Se fixer un but
*Petits logiciels : du début vers la fin
*Grands logiciels : par composants
* Faire un/des dessins
*Prendre des notes
*Exécuter avec un traceur
diviser pour mieux regner
1. Diviser le code en groupes liés
2. Concentrez-vous sur un groupe
3. Comprendre comment les éléments
d’un groupes interagissent entre eux

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Loi de lehman sur l’evolution des logiciel

A
  • Modification continue
    −Un programme utilisé dans un environnement du monde réel
    doit nécessairement changer, sinon il deviendra
    progressivement de moins en moins utile dans cet
    environnement.
  • Complexité croissante
    −Comme le logiciel est modifié, il devient plus en plus
    complexe à moins que le travail soit effectué pour réduire la
    complexité.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Loi de lehman dans la pratique

A
  • Les logiciels existants sont souvent modifiés de manière
    ad-hoc (solutions rapides)
    −Manque de temps, de ressources, d’argent, etc.
  • Le bonne conception initiale n’est pas maintenue
    −Des grandes classes, packages non cohesifs, code spaghetti, le
    codage par copier/coller (duplication), l’introduction des
    dépendances, manque de tests, etc.
  • La documentation n’est pas mise à jour (s’il y a lieu)
    −Architecture, guide utilisateur, documents de conception, …
  • Les développeurs originaux quittent avec leurs
    expériences et connaissances
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qu’est ce que la retro ingenerie

A
  • Analyser un programme, sans le bénéfice des spécifications originales, pour en comprendre le fonctionnement interne et identifier ses composants par la création d’une représentation à
    un plus haut niveau d’abstraction.
  • La retro-ingénieriene modifie pas le système, ni
    ne crée un nouveau système
    −c’est un processus pour examiner et comprendre le
    système actuel
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Outil de retro ingenerie

A
  • X-Ray
    −http://xray.inf.usi.ch/xray.php
  • DA4Java
    −http://swerl.tudelft.nl/bin/view/MartinPinzger/Ma
    rtinPinzgerDA4Java
  • Code City
    −http://wettel.github.io/codecity.html
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qu’est ce que le refactoring

A
  • «Processus de changement de la structure interne
    d’un programme sans altérer son comportement
    externe »
How well did you know this?
1
Not at all
2
3
4
5
Perfectly