57 lines
1.5 KiB
Markdown
57 lines
1.5 KiB
Markdown
---
|
|
title: "PdP: Architecture loficielle"
|
|
date: 2024-03-14
|
|
tags: ["besoins", "UML", "developpement logiciel"]
|
|
categories: ["Projet de programmation", "Cours"]
|
|
---
|
|
|
|
### Dépendances et utilisation des interfaces
|
|
|
|
spécification d'un composant -> description abstraite et rigoureuse de ses
|
|
qualités, de sa manière de se comporter, des services qu'il est censé rendre.
|
|
Un composant qui satisfait une spécification S est dit réaliser S
|
|
|
|
Utilisation de l'interface au lieu d'une classe
|
|
|
|
```c++
|
|
class C2 {
|
|
IC1 obj;
|
|
// ...
|
|
}
|
|
|
|
interface IC1 {
|
|
|
|
}
|
|
|
|
class C1 implement IC1 {
|
|
// ...
|
|
}
|
|
```
|
|
|
|
Ainsi `C2` ne dépends pas de `C1` mais de l'interface `IC1`. En plus de décrire
|
|
abstraitement les composants à implémenter, elles servent d'intermédiaire dans
|
|
les dépendances.
|
|
|
|
> Dans une architecture logicielle, il est préférable de faire dépendre les
|
|
> ocmposants d'interfaces et non les composants implémentés.
|
|
|
|
Principe d'inversion des dépendances.
|
|
|
|
Une dependance implicite -> qui ne se voit pas directement dans le source d;un
|
|
programme pas ses appels et ses annotations. Elle est toujours forte par rapport
|
|
au chamgement qui la détermine.
|
|
|
|
Elles peuvent prendre des formes très différentes des dépendances explicite par
|
|
|
|
* la duplication de code
|
|
* les similarité de services
|
|
* <cf slide>
|
|
|
|
LEs archilogicielles sont généralement des structures hiérarchisées.
|
|
|
|
## Granularité de structure, cohésion et couplage
|
|
|
|
niveau de granularité défini par
|
|
|
|
Gq et G2 deux niveau de granilarité alirs couplage : ensemble des dépendances
|
|
entre les composants de G2
|