Grilles d auto-évaluation

Documents pareils
Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Programmer en JAVA. par Tama

as Architecture des Systèmes d Information

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Programmation Par Objets

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

TP1 : Initiation à Java et Eclipse

Chapitre VI- La validation de la composition.

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

RMI le langage Java XII-1 JMF

Chapitre 10. Les interfaces Comparable et Comparator 1

Environnements de développement (intégrés)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

IFT2255 : Génie logiciel

Auto-évaluation Programmation en Java

Bases Java - Eclipse / Netbeans

Objets et Programmation. origine des langages orientés-objet

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Initiation à JAVA et à la programmation objet.

Introduction au langage de programmation Java

Conduite de projets SI. Les méthodes «Agiles» N QUAL/1995/3660e ORESYS

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Héritage presque multiple en Java (1/2)

Design patterns. Design patterns - définition. Design patterns - avantages

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Une introduction à Java

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Généralités sur le Langage Java et éléments syntaxiques.

Java Licence Professionnelle CISII,

INITIATION AU LANGAGE JAVA

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

PROGRAMMATION PAR OBJETS

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Le système de gestion de version Git et GitHub

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

IRL : Simulation distribuée pour les systèmes embarqués

Java Licence Professionnelle CISII,

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Java 1.5 : principales nouveautés

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

Premiers Pas en Programmation Objet : les Classes et les Objets

Projet Active Object

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Cours STIM P8 TD 1 Génie Logiciel

Les diagrammes de modélisation

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Programmation Objet Java Correction

Cours 1: Java et les objets

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

La carte à puce. Jean-Philippe Babau

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Applet pour visualiser les variables «automate» notifiées

Programmation par les Objets en Java

Jacques Lonchamp. Conception. d applications en Java/JEE. Principes, patterns et architectures

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Plan du cours. Historique du langage Nouveautés de Java 7

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Java - RMI Remote Method Invocation. Java - RMI

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

La programmation orientée objet et le langage C++

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Génie Logiciel Avancé Cours 3 Le modèle à objets

F. Barthélemy. 17 mai 2005

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

TP Git. Author : Cedric Dumoulin Date : 2 déc Rev : 9 Dec. 2014

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

Développement itératif, évolutif et agile

Présentation du PL/SQL

Machines virtuelles fonctionnelles (suite) Compilation ML Java

INF 321 : mémento de la syntaxe de Java

Développement Logiciel

25/12/2012

progression premiere et terminale

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Projet de programmation (IK3) : TP n 1 Correction


Serveur d'archivage 2007 Installation et utilisation de la BD exist

PHP 5.4 Développez un site web dynamique et interactif

UML : DIAGRAMME D ETATS

Table des matières Sources

Méthodes de développement

Un ordonnanceur stupide

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

Remote Method Invocation Les classes implémentant Serializable

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

Christophe Leroy Marc Lainez. L Agilité est-elle soluble dans la culture francophone?

Remote Method Invocation (RMI)

Transcription:

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