|
@@ -5,7 +5,7 @@ date: 2016-05-21
|
|
|
|
|
|
# Conception d’un logiciel
|
|
|
|
|
|
-## Quoi-qu’est-ce ?
|
|
|
+## Qu'est-ce-que la conception ?
|
|
|
|
|
|
- « plan du code » (diagrammes de classes...)
|
|
|
- au début du projet, permet de prévoir le code à écrire
|
|
@@ -20,6 +20,11 @@ $\rightarrow$ doit correspondre aux fonctionnalités prévues et au code réel
|
|
|
- si possible, utiliser un formalisme classique (UML)
|
|
|
- utiliser plusieurs niveaux d’abstraction (vue d’ensemble, vues détaillées)
|
|
|
|
|
|
+
|
|
|
+|:---:|:---:|
|
|
|
+|architecture générale (MVC)| architecture des vues |
|
|
|
+|![](conception_mvc.svg)| ![](conception_vue.svg) |
|
|
|
+
|
|
|
## Étape de conception
|
|
|
|
|
|
- étape **très importante**, à faire avant le développement
|
|
@@ -41,6 +46,15 @@ $\rightarrow$ doit correspondre aux fonctionnalités prévues et au code réel
|
|
|
- découper en étapes et les ordonner
|
|
|
- implémenter (coder, compiler, tester) étape par étape
|
|
|
|
|
|
+```
|
|
|
+fonctionnalité : afficher le stock
|
|
|
+étapes :
|
|
|
+ 1. méthode getLignes de Stock retournant un ensemble de string (tester avec un TU)
|
|
|
+ 2. affichage dans la VueConsole en utilisant getLignes (tester avec le main)
|
|
|
+ 3. connexion du signal d'affichage pour VueGraphique (tester avec le main)
|
|
|
+ 4. affichage dans la VueGraphique en utilisant getLignes (tester avec le main)
|
|
|
+```
|
|
|
+
|
|
|
## Conseils sur le développement en équipe
|
|
|
|
|
|
- faire le point régulièrement : travail fait, travail à faire
|
|
@@ -78,6 +92,17 @@ $\rightarrow$ à utiliser pour les modules de base (traitement de données) voir
|
|
|
- commencer par écrire le pseudo-code de l’algo en commentaire
|
|
|
- traduire chaque ligne de pseudo-code en code réel
|
|
|
- laisser le pseudo-code en commentaire
|
|
|
+
|
|
|
+```cpp
|
|
|
+void normaliserVector(std::vector<float> & v) {
|
|
|
+ // calculer la somme des éléments
|
|
|
+ float s = std::accumulate(v.begin(), v.end(), 0, std::plus<float>());
|
|
|
+ // diviser chaque élément par la somme
|
|
|
+ for (float & f : v)
|
|
|
+ f /= s;
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
- intérêt :
|
|
|
- code plus facile à écrire
|
|
|
- code plus facile à relire
|
|
@@ -86,14 +111,13 @@ $\rightarrow$ très utile quand le code à écrire n’est pas trivial
|
|
|
|
|
|
## Gestion d’erreurs
|
|
|
|
|
|
-- assertions
|
|
|
-- logs
|
|
|
-- codes de retour, variables d’état
|
|
|
-- exceptions
|
|
|
-
|
|
|
-$\rightarrow$ problème difficile
|
|
|
-
|
|
|
-$\rightarrow$ se mettre d’accord sur la façon de faire au début du projet
|
|
|
+- problème difficile
|
|
|
+- se mettre d’accord sur la façon de faire au début du projet
|
|
|
+- outils possibles :
|
|
|
+ - assertions
|
|
|
+ - logs
|
|
|
+ - codes de retour, variables d’état
|
|
|
+ - exceptions
|
|
|
|
|
|
## Conventions de code
|
|
|
|
|
@@ -136,7 +160,7 @@ icalcomponent * getPtrIcal() const ;
|
|
|
|
|
|
## Github
|
|
|
|
|
|
-- [https://github.com](https://github.com)
|
|
|
+- <https://github.com>
|
|
|
- hébergement de dépôts git
|
|
|
- gestion des collaborateurs + droits d'accès
|
|
|
- gestion de projet basique (tickets, jalons, pulls request, wiki, stats...)
|
|
@@ -427,7 +451,7 @@ $ git log --oneline --decorate --graph
|
|
|
|
|
|
- sur [github](https://github.com) :
|
|
|
- créer un compte pour chaque étudiant (ou binôme) du groupe
|
|
|
- - créer un dépôt pour le groupe (et ajouter les collaborateurs)
|
|
|
+ - créer un dépôt pour le projet du groupe (et ajouter les collaborateurs)
|
|
|
- faire une conception prévisionnelle du logiciel
|
|
|
- faire un planning prévisionnel (et les tickets/jalons correspondants sur github)
|
|
|
|