Conception Logicielle Flashcards

Diagrammes et architectures

1
Q

Identifiez les tests de pertinence d’un cas d’utilisation (3)

A
  • Test du patron : Patron dit oui ou non?
  • Test du processus d’affaire élémentaire : Évaluation de la valeur ajoutée au projet
  • Test de la dimension : Évaluation de la grosseur du cas d’utilisation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Identifiez les avantages du prototype (2)

A
  • Vérification rapide des aspects importants

- Rétroaction rapide du client

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

Identifiez les désavantages du prototype (5)

A
  • Difficulté de prototyper des projets complexes
  • Facilite trop le changement
  • Tendance à être conserver
  • Pas de qualité opérationnelle
  • Identification au produit final
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Identifiez les types de prototype (2)

A
  • Prototype évolutif : Devient le produit final après plusieurs itérations
  • Prototype jetable : Sert d’exemple pour orienter le produit final
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Identifiez les cinq étapes de l’analyse (Analyse et modélisation)

A
  1. Analyse des requis
  2. Reformulation des requis
    a) Définition des requis
    b) Spécification des requis
  3. Construction d’un premier modèle
  4. Élaboration d’un prototype
  5. Validation du prototype
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Identifiez les objectifs d’un cas d’utilisation (4)

A
  • Capturer le comportement désiré
  • Spécifier les fonctionnalités sans expliquer la façon de les faire
  • Entente entre Utilisateurs / Experts / Développeurs sur les interactions possibles
  • Validation de l’architecture logicielle
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Définissez ce qu’est un cas d’utilisation

A

Document narratif décrivant une séquence d’événements dans laquelle plusieurs acteurs utilise un système pour accomplir un processus.

Un acteur est une entité externe au système utilisé

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

Définissez ce qu’est un diagramme de contexte

A

Le diagramme de contexte est une visualisation des cas d’utilisation primaires d’un système.

Il aide à définir :

  • Acteurs principaux
  • Cas d’utilisation primaires
  • Limites du système
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Identifiez les relations entre les cas d’utilisation (3)

A
  • Relation d’utilisation (include) : Sous-fonction utilisé dans le cas
  • Relation d’extension (extend) : Spécialisation du cas
  • Relation de généralisation (héritage) : Type de cas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

UML est-il un modèle conceptuel ?

A

Oui

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

Définissez ce qu’est un concept

A

Référence à un élément du monde réel issu du domaine d’application

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

Définissez ce qu’est une classe

A

Implémentation logicielle qui est associé à un langage d’un concept

Une classe contient :

  • Nom
  • Attributs
  • Opérations (Méthodes)
  • Description de ses responsabilités
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Comment définir un attribut avec UML?

A

[visibilité] nom [multiplicité] [ : type ] [= valeur initiale] [{propriétés}]

EXEMPLE
- monNomComplet [2] : string = [“Prénom”, “Nom”] {frozen}

Si l’attribut est souligné, c’est un attribut de classe. (static)

Visibilité
public : +
protected : #
private : -

Propriétés
changeable (Objet mutable … peut être modifié)
addOnly (Valeurs peuvent être ajoutées, mais pas supprimées)
frozen (Objet const en C++)

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

Identifiez les associations UML (5)

A

Dépendance A —————> B
A utilise B dans ses méthodes

Association A ———— B
A est relié à B

Généralisation A ————|> B
A est une classe dérivée de B

Agrégation A ———— B
A fait parfois partie de B

Composition A ————- B
A fait toujours partie de B

Association peut avoir des multiplicités à ses extrémités
A 1..* ———– 0..1 B
A contient 0 à 1 fois B
B contient 1 à INF fois A

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

Identifiez les types de diagramme d’interaction (2)

A
  • Diagramme de séquence

- Diagramme de collaboration

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

Identifiez les types de messages échangés dans un diagramme de séquence (5)

A

Appeler ——————|>
Invoque une opération d’un objet

Retourner - - - - - - - - - -|>
Retour d’une valeur à un appelant

Envoyer ___________\
Envoie d’un signal à un objet

Créer ————|> («create» en haut de la ligne)
Instancie un objet

Détruire ————|> («destroy» en haut de la ligne)
Détruire un objet

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

Identifiez les avantages d’une architecture à multi-niveaux (3)

A
  • Séparation par module qui favorise la réutilisation
  • Possibilité de la répartition des niveaux sur divers noeuds de calculs
  • Parallélisation des efforts de développement
18
Q

Définissez ce qu’est un paquetage

A

Ensemble d’éléments fournissant un service commun avec des responsabilités fortement cohésives

Un élément peut être:

  • Classe
  • Interface
  • Composante
  • Noeud de calcul
  • Diagrammes
  • Autre paquetage

Le principe de visibilité s’applique aussi pour les classes et interfaces contenues ( + , - , #)

Représenté par un «dossier»

19
Q

Les niveaux verticaux et les niveaux horizontaux ont-ils une importance dans un diagramme de paquetages?

A

Oui

  • Couche verticale : Hiérarchisation des paquetages (premier niveau … plus haut -> interaction du client …. Présentation)
  • Partition horizontale : Sous-systèmes parallèles à l’intérieur d’une couche verticale
20
Q

Identifiez les exigences d’une architecture distribuée (3)

A
  • Avoir une grande tolérance aux délais et aux pannes
  • Tenir compte des notions de sécurité en réseau
  • Intégrer différentes technologies qui se combinent difficilement
21
Q

Identifiez les avantages d’une architecture distribuée (4)

A
  • Accès à une grande quantité de ressources
  • Possibilité de partage de données et ressources entre utilisateurs
  • Possibilité d’accroitre les ressources disponibles sans impact pour les utilisateurs
  • Possibilité de parallélisation des processus pour accroitre la performance
22
Q

Identifier les extensions du modèle Model-View-Controller a.k.a. MVC (3)

A
  • Model-View-Presenter (MVP)
  • Model-View-Viewmodel (MVVM)
  • Presentation-Abstraction-Control (PAC)
23
Q

Définissez ce qu’est un intergiciel (middleware)

A

Couche logicielle déployant des objets sur différents noeuds de calcul qui permet d’invoquer des méthodes dans un processus distant

24
Q

Définissez ce qu’est un client dans une architecture client-serveur

A

Processus qui consomme ou utilise des ressources mises à sa disposition par un autre processus

25
Q

Définissez ce qu’est un serveur dans une architecture client-serveur

A

Processus qui contrôle l’accès à des ressources

26
Q

Identifiez les types de ressources dans une architecture client-serveur (2)

A
  • Ressources matérielles : espace disque, processeurs, périphériques, ..
  • Ressources logicielles : algorithmes, données, objets, processus, …
27
Q

Définissez ce qu’est un composant

A

Partie physique et remplaçable d’un système qui réalise un ensemble d’interfaces

28
Q

Identifiez les types de composants en UML (3)

A
  • Composant de déploiement : Partie nécessaire pour construire un système exécutable
  • Composant de réalisation : Résultat du travail de développement (code source, fichier, …)
  • Composant d’exécution : Créé lors de l’exécution d’un système (logs, …)
29
Q

Identifiez les stéréotypes standards des composants en UML (5)

A
  • exécutable : Exécutable sur un noeud
  • librairie : Librairie dynamique ou statique
  • table : Table d’une base de données
  • fichier : Fichier contenant des données ou du code source
  • document : Document d’information quelconque
30
Q

Définissez ce qu’est un processus métier

A

Ensemble d’activités s’enchaînant selon un ordre prédéfini pour atteindre un objectif

31
Q

Identifiez les propriétés d’un service (5)

A
  • Autonome
  • Sans état
  • Expose un contrat
  • Frontières explicites entre services
  • Communication par messages entre services
32
Q

Identifiez les principes de base d’une architecture orienté service a.k.a. SOA (8)

A
  • Contrat standardisé définissant un accord de communication entre les services
  • Faible couplage entre les services
  • Abstraction de la logique du service pour l’utilisateur
  • Réutilisation des services
  • Autonomie de la logique encapsulée par le service
  • Sans état en minimisant la consommation de ressources et en reportant l’état du service si nécessaire
  • Capacité de découverte d’un service par l’intermédiaire des métadonnées qu’il contient
  • Composabilité de services entre-eux
33
Q

Identifiez les avantages d’une architecture orienté service a.k.a. SOA (10)

A
  • Améliore la flexibilité d’un processus métier
  • Facilite la gestion des processus métier
  • Brise les barrières organisationnelles
  • Réduit le temps des cycles de développement
  • Améliore le retour sur investissement
  • Accroît les opportunités de revenu
  • Réduit la complexité de la solution complète
  • Garantit une intégration standardisée et le support de clients hétérogènes
  • Facilite la maintenabilité
  • Construit les services une fois, puis peuvent être réutilisés
34
Q

Identifiez les désavantages d’une architecture orienté service a.k.a. SOA (3)

A
  • Difficile à tester
  • Risque de prolifération des messages entre services
  • Risque de la sécurité des messages envoyés de sources externes
35
Q

Identifiez les contraintes architecturales de Representational State Transfer a.k.a. REST (6)

A
  • Architecture client-serveur
  • Serveur sans état
  • Capacité de mise en cache
  • Architecture en couches
  • Capacité de fournir du code à la demande
  • Interface uniforme
36
Q

Définissez ce qu’est un microservice

A

Processus indépendant et faiblement couplé souvent spécialisé dans une seule tâche provenant de la décomposition d’un ensemble complexe d’applications

37
Q

Identifiez les patrons d’analyse GRASP (9)

A
  • Cohésion élevée
    Assignation des responsabilités dans l’objectif de garder un objectif unique pour chaque classe
  • Couplage faible
    Assignation des responsabilités dans l’objectif de réduire les associations entre les classes
  • Créateur
    Assignation de la responsabilité de création d’une classe B à une classe A contenant les informations nécessaires pour initialiser la classe B
  • Contrôleur
    Assignation de la responsabilité de contrôler des événements à classe A
  • Polymorphisme
    Création de sous-types lorsque plusieurs ont les mêmes responsabilités
  • Expert
    Assignation d’une responsabilité à une classe ayant les informations pour s’en charger
  • Indirection
    Assignation d’une responsabilité d’intermédiaire entre une classe A et une classe B par une classe C
  • Pure fabrication
    Assignation d’un ensemble de responsabilité cohésive à une classe ne faisant pas partie du domaine d’application
  • Variation protégée
    Identification des points d’instabilité et en faire des interfaces stables
38
Q

Identifiez les caractéristiques d’une bonne interface (2)

A

Complète : Contient toutes les actions qu’un client pourrait vouloir raisonnablement faire

Minimale : Aucune paire d’opérations n’a de fonctionnalités qui se chevauchent

39
Q

Identifiez les objectifs à respecter pour traiter correctement les exceptions (8)

A
  • Essayer de laisser l’objet dans l’état initial (Avant l’appel à la fonction)
  • Si impossible, laisser dans un état utilisable
  • Si impossible, laisser dans un état défini (possibilité de destruction ou réinitialisation)
  • Éviter les fuites de ressources
  • Ne pas attraper des erreurs inutilement
  • Ne pas cacher des informations d’une exception à d’autres parties du programme
  • Ne pas compter sur les destructeurs pour traiter les exceptions
  • Ne pas être trop paranoïaque
40
Q

Identifiez les types de cas d’utilisation (3)

A
  • Format de Haut Niveau
    Nom du cas d’utilisation, acteurs, type (primaire ou secondaire), description du scénario principal
  • Format Informel
    Nom du cas d’utilisation, acteurs, type (primaire ou secondaire), description du scénario principal, description des scénarios alternatifs
  • Format Étendu
    Nom du cas d’utilisation, système, acteurs, parties prenantes, préconditions, postconditions, description du scénario principal, description des scénarios alternatifs

Parties prenantes : Liste de personnes ayant un intérêt dans ce cas d’utilisation avec l’identification de leurs intérêts

Système : Application ou objet matériel relié au cas d’utilisation

Scénario : Définie par une énumération numérotée (1. Je fais, 2. Je fais, 3. …)