2018_2019:s3:concprogobjet:td:td2
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
2018_2019:s3:concprogobjet:td:td2 [2018/09/18 06:50] – [Tuyaux] blay | 2018_2019:s3:concprogobjet:td:td2 [2018/10/05 08:57] (current) – [Rendus] blay | ||
---|---|---|---|
Line 23: | Line 23: | ||
- | <note tip>Les questions ci-après sont là pour vous guider dans le développement. Il n'est pas demandé d'y répondre par écrit. </ | + | <note tip>Les questions ci-après sont là pour vous guider dans le développement. Il n'est pas demandé d'y répondre par écrit. |
+ | |||
+ | Utilisez **SonarLint** pour vous aider à améliorer vos codes, [[https:// | ||
+ | |||
+ | Pour les S3A : | ||
+ | |||
+ | A la fin de cette page, vous avez des " | ||
**Dans ce qui suit // | **Dans ce qui suit // | ||
- Quels modèles utilisez-vous pour analyser le problème ? | - Quels modèles utilisez-vous pour analyser le problème ? | ||
- | - Dans vos diagrammes de séquences, faîtes bien apparaître les interfaces graphiques et les contrôleurs mais dans les diagrammes de classe concentrez vous uniquement sur la partie métier dans un premier temps. | + | - Dans vos diagrammes de séquences, faîtes bien apparaître les interfaces graphiques et les contrôleurs mais dans les diagrammes de classe concentrez vous uniquement sur la partie métier dans un premier temps. Cela ne signifie pas que vous devez modéliser tous les diagrammes de séquences. |
- Qui est responsable de retrouver à partir de son nom un forum? un canal de messages? (Pattern expert) | - Qui est responsable de retrouver à partir de son nom un forum? un canal de messages? (Pattern expert) | ||
- Qui est responsable de créer un forum? un canal de message? pourquoi? | - Qui est responsable de créer un forum? un canal de message? pourquoi? | ||
Line 118: | Line 124: | ||
- Quel type de contrôleur avez-vous défini en respectant les directives données? | - Quel type de contrôleur avez-vous défini en respectant les directives données? | ||
- Vous devez à présent pouvoir jouer le scénario précédent en utilisant votre interface graphique. | - Vous devez à présent pouvoir jouer le scénario précédent en utilisant votre interface graphique. | ||
- | - Visualisez votre code correspondant à la création d'un forum (et uniquement | + | - Visualisez votre code correspondant à la création d'un forum (et uniquement |
- Pouvez-vous décrire chacune de vos classes avec une seule phrase? Faîtes-le dans les commentaires de vos classes. | - Pouvez-vous décrire chacune de vos classes avec une seule phrase? Faîtes-le dans les commentaires de vos classes. | ||
Line 139: | Line 145: | ||
} | } | ||
</ | </ | ||
- | |||
- | |||
- | ==== aide ==== | ||
- | **Pour vous aider** voici un exemple possible du programme principal dont vous pouvez vous inspirer : | ||
- | <code java> | ||
- | Controleur c = new Controleur(); | ||
- | c.start(); | ||
- | </ | ||
- | |||
- | Et pour le contrôleur : | ||
- | <code java> | ||
- | public class Controleur { | ||
- | RegistreDeforum registre = new RegistreDeforum(); | ||
- | UI ui = new UI(); | ||
- | |||
- | public void start() { | ||
- | String commande = ui.lireCommande(); | ||
- | switch (commande.charAt(0)) { | ||
- | case ' | ||
- | creerforum(); | ||
- | start(); | ||
- | break; | ||
- | case ' | ||
- | creerBoite(); | ||
- | start(); | ||
- | break; | ||
- | ..... | ||
- | |||
- | private void creerforum() { | ||
- | String nomDuforum = ui.getNomDuforum(registre.getNomsforum()); | ||
- | boolean reussi = registre.creerforum(nomDuforum); | ||
- | if (!reussi) | ||
- | ui.afficher(" | ||
- | else | ||
- | ui.afficher(" | ||
- | } | ||
- | </ | ||
- | |||
Line 189: | Line 157: | ||
===== Rendus ===== | ===== Rendus ===== | ||
- | <box round rgb(150, | + | <box round rgb(150, |
- | * Utilisez la [[http:// | + | * Utilisez la [[http:// |
* Le rendu consiste en : | * Le rendu consiste en : | ||
- | - Un document contenant | + | - Un **document** contenant |
- | | + | |
- | | + | |
- | - Les codes et les tests en particulier les tests JUNIT; | + | |
- | - Il est préférable que les codes soient commentés en respectant les consignes | + | |
+ | - La couverture de tests (copie(s) | ||
+ | | ||
Dans cet exercice nous évaluons votre capacité à concevoir les bons modèles et la " | Dans cet exercice nous évaluons votre capacité à concevoir les bons modèles et la " | ||
Line 214: | Line 184: | ||
// | // | ||
| | ||
- | // obtenir les objets qui se trouvent dans la hashmap et les parcourir | + | |
| | ||
- | for (Canal c : canaux.values()) | + | // obtenir les objets qui se trouvent dans la hashmap (.values) |
+ | | ||
messageList.addAll(c.getMessages()); | messageList.addAll(c.getMessages()); | ||
+ | |||
// retrouver un objet de nom donné | // retrouver un objet de nom donné | ||
Canal c = canaux.get(nom); | Canal c = canaux.get(nom); | ||
+ | |||
//Obtenir toutes les clefs (ici le nom des canaux) | //Obtenir toutes les clefs (ici le nom des canaux) | ||
Set< | Set< | ||
Line 225: | Line 198: | ||
- | + | === Pour manipuler des collections === | |
- | + | ||
- | | + | |
* Pour effacer un element dans une liste si une condition est vérifiée : | * Pour effacer un element dans une liste si une condition est vérifiée : | ||
<code java> | <code java> | ||
Line 235: | Line 206: | ||
</ | </ | ||
- | | + | === Pour gérer les dates === |
- | <code Java> | + | |
- | ArrayList< | + | |
- | for (Message m : messagesContenus) { | + | |
- | if (m.perime(i)) { | + | |
- | m.detruire(); | + | |
- | messages.remove(m); | + | |
- | } | + | |
- | </ | + | |
* Une manière " | * Une manière " | ||
<code java> | <code java> | ||
Line 254: | Line 217: | ||
} | } | ||
</ | </ | ||
- | * Si vous avez utilisé des HashMap vous avez peut être besoin de récupérer la liste des objets contenus comme par exemple : | + | |
- | <code java> | + | |
- | public void detruireMessages(int i) { | + | |
- | for (Boite b : boites.values()) { | + | |
- | | + | |
- | } | + | |
- | </ | + | |
2018_2019/s3/concprogobjet/td/td2.1537253442.txt.gz · Last modified: 2018/09/18 06:50 by blay