diff --git a/content/projet_programmation/4_besoins/index.md b/content/projet_programmation/4_besoins/index.md index 61a6fa4..8ffcfc1 100644 --- a/content/projet_programmation/4_besoins/index.md +++ b/content/projet_programmation/4_besoins/index.md @@ -1,6 +1,6 @@ --- title: "PdP: Analyse des besoins" -date: 2024-01-24 +date: 2024-01-31 tags: ["besoins", "analyse", "developpement logiciel"] categories: ["Projet de programmation", "Cours"] --- diff --git a/content/projet_programmation/5_representations/index.md b/content/projet_programmation/5_representations/index.md index 813d014..d8e8cd7 100644 --- a/content/projet_programmation/5_representations/index.md +++ b/content/projet_programmation/5_representations/index.md @@ -1,6 +1,6 @@ --- title: "PdP: Représentations et présentations" -date: 2024-01-24 +date: 2024-01-31 tags: ["besoins", "UML", "developpement logiciel"] categories: ["Projet de programmation", "Cours"] --- diff --git a/content/projet_programmation/6_tests/index.md b/content/projet_programmation/6_tests/index.md index 353c365..3b6023f 100644 --- a/content/projet_programmation/6_tests/index.md +++ b/content/projet_programmation/6_tests/index.md @@ -1,6 +1,6 @@ --- title: "PdP: les tests" -date: 2024-01-31 +date: 2024-02-14 tags: ["tests", "spécification", "validation"] categories: ["Projet de programmation", "Cours"] --- diff --git a/content/projet_programmation/7_architecture_logicielle/index.md b/content/projet_programmation/7_architecture_logicielle/index.md new file mode 100644 index 0000000..6fda3b7 --- /dev/null +++ b/content/projet_programmation/7_architecture_logicielle/index.md @@ -0,0 +1,57 @@ +--- +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 + * + +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