M320 V1
Programmer orienté objet
- Type
- EP obligatoire
- Lieu
- École professionnelle
- Année
- 2ème année d'apprentissage
- 320_1_FR.pdf
Compétence visée par le module
Modéliser et implémenter orienté objet des applications et des interfaces, les tester et les documenter.
Situation / objet
Application avec 3 à 5 classes spécifiques.
Objectifs opérationnels et connaissances
320.1 Analyser des problèmes d’application pour créer des programmes orientés objet. [g4.1, g4.4] g2 g4 g5
| Connaissance | Texte |
|---|---|
| 320.1.1 | Connaître l’approche orientée objet avec les concepts fondamentaux de l’encapsulation, de l’héritage et de la polymorphie. |
| 320.1.2 | Connaître des procédures pour trouver des classes (p. ex. spécialisation et généralisation, modèle de domaine/événement, contexte borné [bounded context], principe de développement DRY [Don’t Repeat Yourself], principe de responsabilité unique SRP [Single Responsibility Principle]). |
| 320.1.3 | Connaître des concepts d’abstraction tels que des associations, classes, attributs et méthodes, des interfaces ainsi que des classes et des types de données abstraits (ADT [Abstract Data Type], collections, génériques). |
320.2 Modéliser et documenter des programmes orientés objet. [g4.4] g2 g4 g5
| Connaissance | Texte |
|---|---|
| 320.2.1 | Connaître des descriptions (p. ex. carte CRC) et des notations de diagrammes (p. ex. UML, TAM, 4+1) pour les aspects statiques et dynamiques du design orienté objet. |
| 320.2.2 | Connaître la manière de documenter à l’aide d’une infrastructure correspondante (p. ex. Javadoc). |
320.3 Implémenter un design orienté objet. [g5.2, g5.5] g2 g4 g5
| Connaissance | Texte |
|---|---|
| 320.3.1 | Connaître la différence entre classes et objets. |
| 320.3.2 | Connaître un langage orienté objet et ses éléments et pouvoir mettre en œuvre le design. |
| 320.3.3 | Connaître le concept de liaison dynamique. |
| 320.3.4 | Connaître le concept de l’inversion de contrôle (injection de dépendance). |
320.4 Vérifier l’exactitude et la qualité de l’implémentation. [g5.4, g6.3, g6.5, g6.6] g2 g4 g5
| Connaissance | Texte |
|---|---|
| 320.4.1 | Connaître des procédures pour créer des cas de tests. |
| 320.4.2 | Connaître des méthodes de tests pour vérifier les composants d’une application (tests unitaires automatiques). |
Matrice de compétences
| Bande | Compétence | Débutant | Intermédiaire | Avancé | Objectifs |
|---|---|---|---|---|---|
| A1 | Créer une conception orientée objet | Je peux déduire des candidats de classe, des attributs et des méthodes possibles à partir d'une simple description de situation. | Je peux déterminer et cartographier les candidats possibles, les attributs et les méthodes à partir d'une description de situation, en tenant compte de la délégation | Je peux analyser des descriptions de situations plus complexes et cartographier les candidats, les attributs et les méthodes de classe dans une hiérarchie d'héritage. |
320.1
|
| B1 | Modèle orienté objet | Je peux interpréter et expliquer la structure d'une application à l'aide de documents existants (par exemple des diagrammes UML) | Je peux modéliser la structure d'un logiciel (par exemple diagrammes de classes, d'activités et de séquences) | Je peux analyser le modèle d'un logiciel, identifier les points critiques et proposer des corrections (ex : aspects statiques et dynamiques, héritage, associations) |
320.2
|
| C1 | Implémenter l'orientation objet | Je peux définir des classes et instancier des objets à l'aide de constructeurs et de méthodes | Je peux mettre en œuvre des relations unidirectionnelles et bidirectionnelles selon la conception statique | Je peux mettre en œuvre des interactions entre objets en tenant compte du design dynamique (ex. délégation) |
320.2
320.3
320.1
|
| D1 | Implémenter l'orientation objet avec héritage | Je peux implémenter des classes et leurs super classes et instancier leurs objets | Je peux ajouter ou remplacer des méthodes dans les sous-classes pour étendre ou personnaliser les capacités de la classe | Je peux concevoir une hiérarchie d'héritage et décider spécifiquement quels attributs et méthodes vont dans la super classe et lesquels vont dans les sous-classes. |
320.2
320.3
320.1
|
| D2 | Implémenter l'orientation objet avec héritage | Je peux implémenter mes propres classes en utilisant des interfaces et des classes abstraites provenant de bibliothèques | Je peux implémenter mes propres classes abstraites ou interfaces selon le design | Je peux mettre en œuvre des solutions à des problèmes complexes en utilisant le polymorphisme |
320.2
320.3
320.1
|
| E1 | Assurance qualité | Je peux appliquer les conventions de code et implémenter le code source en conséquence | Je peux vérifier la qualité du code lors d'une session de révision de code | Je peux évaluer la qualité du code sur la base de tests automatisés, examiner les résultats et suggérer des améliorations justifiées |
320.4
|
| E2 | Assurance qualité | Je peux expliquer le but d'un outil de documentation logicielle et l'utiliser (par exemple appliquer des balises, générer de la documentation) | Je peux documenter un logiciel à l'aide d'un outil de documentation (par exemple, appliquer des balises, générer de la documentation) | Je peux remettre en question les commentaires dans un logiciel et suggérer des améliorations (par exemple éviter les commentaires grâce à une meilleure structure, appliquer des règles de code propres) |
320.2
|
Modules liés par compétences PEC
| Module | Titre | PEC communes |
|---|---|---|
| M223 | Réaliser des applications multi-utilisateurs orientées objets | |
| M319 | Concevoir et implémenter des applications | |
| M335 | Réaliser une application pour mobile | |
| M106 | Interroger, traiter et assurer la maintenance des bases de données | |
| M293 | Créer et publier un site Web | |
| M294 | Réaliser le front-end d’une application Web interactive | |
| M321 | Programmer des systèmes distribués | |
| M322 | Concevoir et implémenter des interfaces utilisateur | |
| M323 | Programmer de manière fonctionnelle | |
| M164 | Créer des bases de données et y insérer des données | |
| M165 | Utiliser des bases de données NoSQL | |
| M183 | Implémenter la sécurité d'une application |