Denis Conan Revision : 1675 CSC4102 Télécom SudParis Août 2016
Ce document contient toutes les grilles d évaluation. Nous y faisons référence à la fin des séances pour l auto-évaluation et lors des soutenances individuelles. Les niveaux de compétence indiqués correspondent à ceux qui sont demandés lors de la soutenance individuelle. Par conséquent, c est l objectif à atteindre et votre niveau de compétence augmente au fur et à mesure de l avancée du module. Télécom SudParis D. Conan Août 2016 CSC4102 2
1 Niveaux de compétences des connaissances et des savoir-faire Une grille d évaluation se présente sous la forme d un tableau ayant en ligne les notions / concepts et en colonne les niveaux d acquisition estimés : gradués en 5 niveaux au dessus de 0. Comme visualisé dans la figure, le niveau «0» indique que l étudiant n a pas de connaissance sur la notion. Le niveau «1» indique, dans le domaine du savoir, «je suis capable de définir le concept et d énumérer les caractéristiques ou propriétés du concept», et dans le domaine du savoir-faire, «je suis capable d observer le concept pour décrire un logiciel existant». Le niveau «2» indique, dans le domaine du savoir, «je suis capable d expliquer et d interpréter l utilisation du concept dans un logiciel existant». Le niveau «3» indique, dans les domaines du savoir et du savoir-faire, «je suis capable de l utiliser pour construire un nouveau logiciel». Le niveau «4» indique, dans le domaine du savoir, «je suis capable de choisir le concept (sous-entendu plutôt qu un autre concept, qui peut être similaire) et d analyser son utilisation». Enfin, le niveau «5» indique, dans les domaines du savoir et du savoir-faire, «je suis capable de défendre ou critiquer l utilisation du concept dans un logiciel existant ou pour construire sa solution». Dans la grille d auto-évaluation d un prérequis, nous indiquons le niveau d acquisition minimum requis pour chacune des notions. L utilisation des niveaux de compétence dans les grilles d évaluation nous permet de faire le tri entre des connaissances et des aptitudes essentielles et durables (le cœur), des connaissances et des aptitudes qu il est important de maîtriser, et ce qui vaut la peine d être connu (sans plus). définir, énumérer, observer pour décrire expliquer, interpréter utiliser, résoudre, appliquer faire le choix, distinguer, analyser 0 1 2 3 4 5 pas de connaissance défendre, critiquer Figure 1 : Niveaux de compétence utilisés dans les grilles d évaluation Télécom SudParis D. Conan Août 2016 CSC4102 3
2 Grilles d auto-évaluation des connaissances à acquérir Notions / concept/ élément de modélisation 0 1 2 3 4 5 Forge logicielle Gestion de versions Entrée sous suivi de version (tracked entry) Instantané d un dépôt (snapshot) Clonage d un dépôt (git clone) Zone de transit (staging area) Validation (commit) États possibles d une entrée (git status) Entrées ignorées (.gitignore) Contenu du répertoire de travail Branche Fusion de branches (git merge, git mergetool) Dépôt distant (git remote), tirer depuis un dépôt distant (git fetch, git pull), pousser vers un dépôt distant (git push) Étiquette (git tag) Outils gitk, et git gui ou egit Processus de travail avec branches pour les sprints et étiquettes pour les séances Table 1 : Grille d auto-évaluation des connaissances sur la gestion de version avec Git Télécom SudParis D. Conan Août 2016 CSC4102 4
Notions / concept/ élément de modélisation 0 1 2 3 4 5 «4 + 1» vues de Kruchten Vue «cas d utilisation» des «4 + 1» vues de Kruchten Rôle de la spécification Rôle de la préparation des tests de validation Diagramme de cas d utilisation Acteur Généralisation spécialisation entre acteurs Cas d utilisation Lien de communication Généralisation spécialisation entre cas d utilisation Préparation des tests de validation Précondition Postcondition Relation entre les préconditions dans une généralisation spécialisation Relation entre les postconditions dans une généralisation spécialisation Test de validation d un cas d utilisation Table de décision Table 2 : Grille d auto-évaluation des connaissances sur la spécification et les tests de validation Télécom SudParis D. Conan Août 2016 CSC4102 5
Notions / concept/ élément de modélisation 0 1 2 3 4 5 Vue «logique» des «4 + 1» vues de Kruchten Aspects statiques Versus dynamiques Rôle de la conception préliminaire Diagramme de classes, classe Association, multiplicité Attributs d instance, de classe, dérivés Opérations d instance, de classe Classe d association, transformation en une classe et deux associations Agrégation Classe abstraite, opération abstraite Généralisation spécialisation, redéfinition (override), liaison dynamique Surcharge (overload) (subsomption) Principe de substitution de Liskov & Wing Façade Diagramme d objets Diagramme de séquence, participant, message, barre d activation, ligne de vie Fragments opt, ref, loop Appel synchrone Versus asynchrone Recherche d objet Création, suppression d objet Diagramme de communications, lien d interaction, message Messages conditionnés, en séquence, imbriqués Table 3 : Grille d auto-évaluation des connaissances sur la conception préliminaire Télécom SudParis D. Conan Août 2016 CSC4102 6
Notions / concept/ élément de modélisation 0 1 2 3 4 5 Dette technique Rôle de la conception détaillée Raffinement de diagramme de classes Navigabilité Composition, agrégation Diagramme de machine à états Type d état, état initial, état final, «en construction», «en destruction» Événement, transition, condition, action Transition implicite Actions «entry», «do», «exit», interne Fiche de classe Traduction des associations en attributs, référence Traduction des agrégations Versus compositions Visibilité, encapsulation, «privé», «protégé», «public», opération accesseur Traduction des attributs dérivées Traduction des classes d association Traduction des diagrammes d interaction en algorithmes Traduction des diagrammes de machine à états Rôle de la préparation des tests unitaires Invariant de classe Programmation défensive avec vérification des préconditions Programmation par assertion avec l opération «invariant» Tests unitaires d une opération, vérification de la postcondition et de la levée d exception Expression de la postcondition avec les attributs «prime» Table de décision des tests unitaires d une opération Table 4 : Grille d auto-évaluation des connaissances sur la conception détaillée et la préparation des tests unitaires Télécom SudParis D. Conan Août 2016 CSC4102 7
Notions / concept de la programmation 0 1 2 3 4 5 Machine virtuelle, JAVA Standard Development Kit : javac, java, etc., ramasse-miettes if, switch, for, while, do while, types primitifs : short, int, long, float, double, boolean, byte Attribut (déclaration, définition), d instance Versus de classe, final, static, constructeur, this., this(), objet / instance, référence, passage d arguments dans les méthodes, new, tableau ([], new) Méthode (prototype, définition, paramètre, argument), void, main, package, chemin de recherche Encapsulation, visibilité (public, private, protected, package friendly) Surcharge (en anglais overloading) Héritage (classe de base, classe dérivée), extends, protected Redéfinition (en anglais overriding) Méthode polymorphique Transtypage (en anglais cast), transtypage vers le haut (upcast), transtypage vers le bas (downcast) Liaison dynamique / tardive Classe abstraite, méthode abstraite, classe concrète, interface, implements Classe paramétré (generics), paramètre de type Collection, bibliothèque, algorithmes, Collection, Iterable, List, ArrayList, Map, HashMap, clef, égalisté de référence, méthode equals, hashcode Énumération Annotations JUnit, classe de test, @BeforeClass, @Before, @Test, @After, @AfterClass, assert*, fail Maven, dépôt (repository), dépendance, greffon (plugin), mvn clean install, numéro de version, version stable vs. snapshot, arborescences src/main et src/test Table 5 : Grille d auto-évaluation des connaissances sur la programmation outillée Télécom SudParis D. Conan Août 2016 CSC4102 8
Notions / concept de la programmation les exceptions 0 1 2 3 4 5 Exception Flot d exécution normal versus flot de gestion des erreurs Exception sous contrôle ou non RuntimeException Région gardée, bloc try Traitement des exceptions, blocs catch Levée d exception, throws, throw new Exception dans les tests, @Test(expected=xxx.class) Télécom SudParis D. Conan Août 2016 CSC4102 9
Notions / concepts des méthodes agiles 0 1 2 3 4 5 Valeur : les individus et les interactions davantage que les processus et les outils Valeur : les logiciels fonctionnels davantage qu une documentation exhaustive Valeur : la collaboration avec le client davantage que la négociation de contrat Valeur : la réponse aux changements davantage que le suivi d un plan Principe : notre première priorité est de satisfaire le client en livrant tôt et régulièrement des logiciels utiles Principe : le changement est accepté, même tardivement dans le développement ; le changement est un avantage compétitif pour le client Principe : livrez fréquemment une application fonctionnelle, toutes les deux semaines à deux mois, avec une tendance pour la période la plus courte Principe : les utilisateurs (ou leurs représentants comme les experts métier) et les développeurs doivent travailler ensemble quotidiennement tout au long du projet Principe : bâtissez le projet autour de personnes motivées ; donnez-leur l environnement et le soutien dont elles ont besoin ; et croyez en leur capacité à faire le travail Principe : la méthode la plus efficace pour transmettre l information est une conversation en face à face Principe : un logiciel fonctionnel est la meilleure unité de mesure de la progression du projet Principe : les processus agiles promeuvent un rythme de travail durable ; commanditaires, développeurs et utilisateurs devraient pouvoir maintenir le rythme indéfiniment Principe : une attention continue à l excellence technique et à la qualité de la conception améliore l agilité Principe : la simplicité en tant qu art à maximiser la quantité de travail à ne pas faire, est essentielle Principe : les meilleures architectures, spécifications et conceptions sont issues d équipes qui s auto-organisent Principe : à intervalle régulier, l équipe réfléchit au moyen de devenir plus efficace et efficient, puis accorde et ajuste son comportement dans ce sens Table 6 : Grille d auto-évaluation sur les valeurs et principes des méthodes agiles Télécom SudParis D. Conan Août 2016 CSC4102 10
Notions / concept de la programmation 0 1 2 3 4 5 Analyse statique de code, FindBugs, CheckStyle, Javadoc Idiome, patron d implémentation Idiomes JAVA, méthodes communes à tous les objets, equals avec hashcode Idiome JAVA, méthode commune à tous les objets, tostring, avec association bidirectionnelle, avec énumération Table 7 : Grille d auto-évaluation des connaissances sur la qualité de la programmation et les idiomes Télécom SudParis D. Conan Août 2016 CSC4102 11
Notions / concept/ élément de modélisation 0 1 2 3 4 5 Qualité de modèle UML : correction, cohérence, complétude Cohérence entre diagrammes Cohérence avec le code Couplage et cohésion (fonctionnelle, fortuite) Patrons de conception : nom / problème / solution / conséquences Patrons créationnels, Singleton Patrons structuraux, Façade, Composite Patrons comportementaux, Stratégie, Observateur Observable Table 8 : Grille d auto-évaluation des connaissances sur la qualité du modèle UML et les patrons de conception Télécom SudParis D. Conan Août 2016 CSC4102 12
Notions / concept/ élément de modélisation 0 1 2 3 4 5 Software development process Software quality standards Feedback/iterations in software development Agile principles Importance of testing Team autonomy Frequency of iterations Continuous integration Design and refactoring Version control Pair programming Table 9 : Grille d auto-évaluation des connaissances sur l agilité du développement logiciel Télécom SudParis D. Conan Août 2016 CSC4102 13