M320 V1

Programmer orienté objet

Type
EP obligatoire
Lieu
École professionnelle
Année
2ème année d'apprentissage
PDF
320_1_FR.pdf

Compétences PEC liées

g2 g4 g5

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
ConnaissanceTexte
320.1.1Connaître l’approche orientée objet avec les concepts fondamentaux de l’encapsulation, de l’héritage et de la polymorphie.
320.1.2Connaî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.3Connaî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
ConnaissanceTexte
320.2.1Connaî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.2Connaî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
ConnaissanceTexte
320.3.1Connaître la différence entre classes et objets.
320.3.2Connaître un langage orienté objet et ses éléments et pouvoir mettre en œuvre le design.
320.3.3Connaître le concept de liaison dynamique.
320.3.4Connaî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
ConnaissanceTexte
320.4.1Connaître des procédures pour créer des cas de tests.
320.4.2Connaître des méthodes de tests pour vérifier les composants d’une application (tests unitaires automatiques).

Matrice de compétences

BandeCompétenceDébutantIntermédiaireAvancé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

ModuleTitrePEC communes
M223 Réaliser des applications multi-utilisateurs orientées objets
g2 g4 g5
M319 Concevoir et implémenter des applications
g2 g4 g5
M335 Réaliser une application pour mobile
g2 g4 g5
M106 Interroger, traiter et assurer la maintenance des bases de données
g4 g5
M293 Créer et publier un site Web
g2 g5
M294 Réaliser le front-end d’une application Web interactive
g2 g5
M321 Programmer des systèmes distribués
g4 g5
M322 Concevoir et implémenter des interfaces utilisateur
g2 g5
M323 Programmer de manière fonctionnelle
g4 g5
M164 Créer des bases de données et y insérer des données
g4
M165 Utiliser des bases de données NoSQL
g5
M183 Implémenter la sécurité d'une application
g5