Utilisation des fiches CRC en analyse
40 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quelle est la clé pour éviter la transgression des principes de faible couplage et de forte cohésion lorsque les solutions offertes par l'expert ne conviennent pas ?

  • Appliquer le principe KISS
  • Dépendre d'autres classes pour la solution
  • Créer une classe imaginaire pure (correct)
  • Utiliser un objet racine pour chaque scénario
  • Quel est le rôle d'un contrôleur dans un système ?

  • Coordonner toutes les opérations système (correct)
  • Représenter graphiquement l'IHM
  • Créer des classes immuables
  • Gérer uniquement les erreurs du système
  • Quel principe signifie 'ne pas se répéter' en ingénierie logicielle ?

  • DRY (correct)
  • KISS
  • GRASP
  • SOLID
  • Quel est l'objectif principal de la méthode basée sur les événements ?

    <p>Identifier les événements auxquels le système doit répondre</p> Signup and view all the answers

    Quelle affirmation décrit le mieux le principe de faible couplage ?

    <p>Minimiser les dépendances</p> Signup and view all the answers

    Quel principe est associé à la maximisation de la simplicité dans la conception ?

    <p>KISS</p> Signup and view all the answers

    Qu'est-ce que la documentation assure dans un projet d'équipe ?

    <p>Elle se focalise sur le Quoi plutôt que sur le Comment</p> Signup and view all the answers

    Quelle est l'objectif principal des principes SOLID en développement logiciel ?

    <p>Faciliter la maintenance et l'extension des systèmes</p> Signup and view all the answers

    Quelle affirmation décrit le mieux le prototypage ?

    <p>Il supporte l'investigation préliminaire d'un système</p> Signup and view all the answers

    Quel est un des avantages d'une conception orientée objet propre ?

    <p>Un support optimal pour la coopération et le travail d'équipe</p> Signup and view all the answers

    Que représente le principe de forte cohésion dans une application ?

    <p>Une connexion forte entre les classes similaires</p> Signup and view all the answers

    Quels sont les trois groupes principaux de principes avancés en conception ?

    <p>Gestion des évolutions, Organisation en modules, Stabilité de l'application</p> Signup and view all the answers

    Quelle est la première étape du développement itératif ?

    <p>Analyse</p> Signup and view all the answers

    Qu'est-ce qui révèle les responsabilités au sein d'un système basé sur l'analyse par scénario ?

    <p>Les méthodes publiques</p> Signup and view all the answers

    Quel est l'objectif des fiches utilisées dans l'analyse par scénario ?

    <p>Elles correspondent à des classes</p> Signup and view all the answers

    Quel est un aspect fondamental à noter lors de la conception d'interfaces de classe ?

    <p>Noter les signatures de méthodes résultantes</p> Signup and view all the answers

    Quel est le but principal des fiches CRC?

    <p>Établir les responsabilités et les collaborateurs d'une classe</p> Signup and view all the answers

    Qu'est-ce qu'un scénario dans le contexte des fiches CRC?

    <p>Une activité que le système doit soutenir</p> Signup and view all the answers

    Dans une séance de cartes CRC, quel est l'objectif principal du brainstorming?

    <p>Identifier les différents Use Cases à implémenter</p> Signup and view all the answers

    Quelle méthode est citée comme étant basée sur les acteurs?

    <p>Méthode d'identification des Use Cases</p> Signup and view all the answers

    Quel élément n'est pas inclus dans une fiche CRC?

    <p>Prix des billets</p> Signup and view all the answers

    Pourquoi les scénarios sont-ils utilisés pour l'analyse?

    <p>Pour vérifier la clarté et la complétude de la description du problème</p> Signup and view all the answers

    Quel type de numéro est souvent associé à la réservation de sièges dans un système de réservation?

    <p>Numéro de siège</p> Signup and view all the answers

    Quel est l'objectif de l'analyse des scénarios au stade de conception?

    <p>Économiser de l'effort en identifiant les erreurs précocement</p> Signup and view all the answers

    Quel principe stipule qu'une classe ne doit avoir qu'une seule raison de changer ?

    <p>Principe de responsabilité unique</p> Signup and view all the answers

    Lequel des suivants décrit le principe d'ouverture/fermeture ?

    <p>Un module doit être ouvert aux extensions mais fermé aux modifications.</p> Signup and view all the answers

    Quel principe prévoit que les méthodes utilisant des objets d'une classe doivent fonctionner avec des objets de classes dérivées ?

    <p>Principe de substitution de Liskov</p> Signup and view all the answers

    Quel est l'objectif principal du principe d'inversion des dépendances ?

    <p>Les modules de haut niveau ne doivent pas dépendre de modules de bas niveau.</p> Signup and view all the answers

    Quelle technique est mentionnée comme moyen pour réaliser l'ouverture/fermeture ?

    <p>Utiliser des interfaces ou des classes abstraites.</p> Signup and view all the answers

    Quel principe suggère que chaque module doit avoir une responsabilité unique ?

    <p>Principe de responsabilité unique</p> Signup and view all the answers

    Lequel des suivants est un aspect clé du principe de substitution de Liskov ?

    <p>Les méthodes qui utilisent des objets doivent ignorer les détails des sous-classes.</p> Signup and view all the answers

    Qu'est-ce que le principe d'ouverture/fermeture encourage lors de l'ajout de nouvelles fonctionnalités ?

    <p>Ajouter du code sans modifier le code existant.</p> Signup and view all the answers

    Quel est le but principal du principe des dépendances acycliques ?

    <p>Former un graphe acyclique avec les dépendances entre les packages</p> Signup and view all the answers

    Quelle technique est utilisée pour respecter le principe d'inversion des dépendances ?

    <p>L'introduction d'une classe d'interface</p> Signup and view all the answers

    Comment doit-on organiser les modules pour respecter le principe des dépendances acycliques ?

    <p>En un arbre de dépendances</p> Signup and view all the answers

    Quels sont les avantages d'un code de qualité selon le contenu ?

    <p>Il évite la duplication et montre de la cohésion.</p> Signup and view all the answers

    Pourquoi est-il important d'identifier les collaborations entre classes ?

    <p>Pour faciliter la gestion des dépendances</p> Signup and view all the answers

    Quel est un effet d'une approche itérative à la conception ?

    <p>Elle peut améliorer l'analyse et l'implémentation.</p> Signup and view all the answers

    Quel est le rôle des interfaces dans le contrôle des dépendances ?

    <p>Elles permettent des modifications moins coûteuses.</p> Signup and view all the answers

    Quels aspects du style de code sont considérés comme importants ?

    <p>L'alignement, les choix des noms et les commentaires</p> Signup and view all the answers

    Study Notes

    Fiches CRC

    • Développées par Kent Beck et Ward Cunningham.
    • Chaque fiche contient :
      • Nom de la classe
      • Responsabilités de la classe
      • Collaborateurs de la classe

    Scénarios

    • Activités que le système doit prendre en charge.
    • Utilisés pour découvrir et saisir les interactions entre objets (collaborations).
    • Identifier les cas d'utilisation à implémenter (Use Cases).

    Utilisation de fiches CRC pour l'analyse

    • Les scénarios permettent de vérifier la clarté et la complétude de la description du problème.
    • L'analyse des scénarios conduit à la conception.
    • Identifier les erreurs ou omissions à ce stade permet de gagner du temps et d'éviter des efforts perdus par la suite.

    Méthodes d'analyse par scénarios

    • Méthode basée sur les acteurs :
      • Identifier les acteurs.
      • Pour chaque acteur, identifier les cas d'utilisation qu'il initie ou auxquels il participe.
    • Méthode basée sur les événements :
      • Identifier les événements auxquels le système doit répondre.
      • Relier chaque événement aux acteurs et aux cas d'utilisation.

    Conception de classes

    • L'analyse par scénario aide à clarifier la structure de l'application.
    • Chaque fiche correspond à une classe.
    • Les collaborations révèlent les relations entre les classes et les interactions entre les objets.
    • Les responsabilités révèlent les méthodes publiques.
    • Les champs peuvent aussi indiquer la nature des données stockées.

    Conception d'interfaces de classe

    • Rejouer les scénarios en termes d'appels de méthodes, de paramètres et de retours de valeurs.
    • Noter les signatures de méthodes.
    • Créer le corps des classes avec les en-têtes des méthodes publiques (sans implémentation).
    • Une conception soignée est la clé pour une implémentation réussie.

    Disciplines de support pour la conception

    • Documentation
    • Conception OO propre (Faible couplage)
    • Prototypage
    • Développement itératif

    Documentation

    • Écrire des commentaires de classe.
    • Écrire des commentaires de méthodes.
    • Décrire l'objectif global de chaque élément.
    • La documentation permet de :
      • Se concentrer sur le "quoi" plutôt que sur le "comment".
      • Ne pas oublier les informations importantes.

    Coopération

    • Le travail d'équipe est la norme.
    • La documentation est essentielle pour le travail d'équipe.
    • Une conception OO propre, avec des composants faiblement couplés, favorise la coopération.

    Prototypage

    • Supporte l'investigation préliminaire d'un système.
    • Permet d'identifier rapidement les problèmes.
    • Les composants incomplets peuvent être simulés.
    • Exemple : retourner toujours un résultat fixe.

    Développement itératif

    • Utiliser le prototypage dans les premiers stades.
    • Interaction fréquente avec le client.
    • Itération à travers les étapes:
      • Analyse
      • Conception
      • Prototypage
      • Rétroaction du client
    • Un modèle en croissance est plus réaliste.

    Fabrication pure

    • En cas de besoin de transgresser les principe de faible couplage et de forte cohésion, une classe imaginaire pure peut être introduite au niveau de la conception, sans forcément avoir une image à l'analysedes domaines.

    Principes GRASP

    • Contrôleur : quel est le premier objet à recevoir et coordonner une opération système au-delà de l'interface utilisateur ?
      • Un objet racine représentant le système ou sous-système, ou un contrôleur de façade.
      • Utiliser le même objet pour tous les événements système appartenant au même scénario.
    • Faible couplage : minimiser les dépendances.
    • Forte cohésion : cohésion et couplage : le yin et le yang. Une faible cohésion entraîne un couplage élevé.

    DRY, KISS, SOLID

    • DRY (Don't Repeat Yourself) : en ingénierie logicielle, ne répétez pas vous-mêmes (DRY) ou la duplication est mauvaise (DIE) est un principe de développement logiciel.
    • KISS (Keep it Simple, Stupid !) : un principe de conception qui vise à simplifier autant que possible.
    • SOLID : cinq principes de conception qui visent à créer un système facile à maintenir et à étendre.

    Principes avancés de conception objet

    • Trois groupes principaux de principes :
      • Gestion des évolutions et des dépendances entre classes.
      • Organisation de l'application en modules.
      • Gestion de la stabilité de l'application.

    Principes SOLID

    • Single Responsibility Principle (SRP) : une classe doit avoir une seule raison de changer. Chaque module ou classe doit assumer la responsabilité d'une seule partie de la fonctionnalité fournie par le logiciel, et cette responsabilité doit être entièrement encapsulée par la classe.
    • Open/Closed Principle (OCP) : un module doit être ouvert aux extensions mais fermé aux modifications.
    • Liskov Substitution Principle (LSP) : les méthodes qui utilisent des objets d'une classe doivent pouvoir utiliser des objets dérivés de cette classe sans même le savoir.
    • Interface Segregation Principle (ISP) : les clients ne doivent pas être forcés de dépendre d'interfaces dont ils n'ont pas besoin.
    • Dependency Inversion Principle (DIP) : les modules de haut niveau ne doivent pas dépendre de modules de bas niveau. Tous deux doivent dépendre d'abstractions.

    Gestion des évolutions et des dépendances entre classes

    • OCP : utiliser l'abstraction comme moyen d'ouverture/fermeture. Utiliser des interfaces, classes abstraites et templates (génériques).
    • LSP : hériter pour substituer, sinon aggréger.
    • DIP : l'abstraction comme technique d'inversion des dépendances. Pour inverser la dépendance de A vers B, introduire une classe d'interface dont dérive B.

    Gestion de la stabilité de l'application

    • Acyclic Dependencies Principle (ADP) : les dépendances entre packages doivent former un graphe acyclique.
    • Technique d'inversion des dépendances : introduire une classe d'interface.
    • Organiser les modules en un arbre de dépendances.
    • Placer les packages les plus stables à la base de l'arbre.
    • Placer les interfaces dans les packages les plus stables.

    Synthèse des principes OO

    • Les principes énoncés placent le contrôle des dépendances au cœur de la conception, afin de limiter le coût des modifications et d'atteindre les objectifs d'extensibilité et de réutilisabilité.
    • Ce contrôle repose sur une utilisation efficace des interfaces, entre applications, packages ou classes.

    Conclusion

    • Les programmes sont constamment modifiés.
    • Il est important de faciliter ces changements.
    • Du code de qualité doit être compréhensible et maintenable.
    • Du code de qualité évite la duplication, montre de la cohésion et un faible couplage.
    • Le style du code est important.
    • Il est plus facile de modifier du code bien structuré.
    • Identifier les collaborations entre les classes et les interactions entre les objets. L'analyse par fiche CRC supporte ce besoin
    • Une approche itérative à la conception, l'analyse et l'implémentation peut être extrêmement bénéfique.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Ce quiz explore l'utilisation des fiches CRC pour l'analyse des systèmes. Vous découvrirez comment ces fiches aident à identifier les responsabilités, les collaborations, et comment les scénarios peuvent guider la conception. Testez vos connaissances sur les méthodes d'analyse par scénarios et l'importance de la clarté dans la documentation.

    More Like This

    Use Quizgecko on...
    Browser
    Browser