Pas encore de diplôme affecté
Java & Outillage Projet
Code apogéeDIFO5JOPStructurexxDernière mise à jour le04 Juillet 2017
Responsable pédagogiqueKERBOEUF Mickael (Maître de conférences, 27ème section)
Intervenants
Parcours
    TypeObligatoire
    Semestre5Volume horaire60Crédits ECTS 5
    Nombre d'heures Cours magistraux (CM)20 Travaux dirigés (TD)20 Travaux pratiques (TP)20 
    Pré-requis

    Langages de programmation (S3)

    Co-requis

    Programmation C avancée (S5)

    Objectif Terminal

    A l'issu des enseignements de cette UE, les étudiants doivent d'une part :

    - maîtriser le langage Java : sa syntaxe et ses fondements sémantiques
    - connaître les différentes phases de la compilation d'un programme Java
    - connaître le mécanisme d'exécution d'un programme Java et le fonctionnement de la machine virtuelle
    - maîtriser les rudiments de la programmation objet
    - connaître quelques bonnes pratiques de conception objet

    D'autre part, concernant l'outillage pour la conduite des projets, les étudiants sont amenés à expérimenter et à comprendre l'intérêt et les principes des outils :

    - de validation par tests unitaires
    - de configuration logicielle (gestion de versions et travail collaboratif)
    - d'automatisation des opérations répétitives
    - de contrôle de code
    Objectif Pédagogique 
    Contenu détaillé de l'enseignement

    Le premier objectif de cette UE (l'apprentissage du langage Java) sert de toile de fond au deuxième objectif (initiation aux outils pour la conduite des projets).

    En premier lieu, les mécanismes de base du langage Java sont détaillés : syntaxe, types et structures de contrôle ; compilation, exécution et chargement dynamique ; gestion mémoire. On illustre également avec Java des aspects spécifiques de la programmation objet et des principes de bonne conception objet : polymorphisme, collections, analyse dirigée par les responsabilités. Le cours aborde les points suivants dans l'ordre :

    - Syntaxe de base
    - Rappels de programmation objet
    - Classes
    - Exceptions
    - Interfaces
    - Classe Object
    - Types énumérés
    - Généricité
    - Collections
    - Packages
    - Threads

    L'illustration de ces points, en particulier en TP amène à aborder les outils suivants :

    - JUnit pour les tests unitaires
    - ClearCase ou SVN pour la gestion de configuration logicielle, la gestion de versions et le travail collaboratif
    - Ant, Maven ou make pour gestion et l'automatisation des opérations répétitives de production
    - Checkstyle pour l'analyse de la qualité du code source

    Méthodes d'enseignement

    Concernant l'apprentissage de Java, les CM permettent d'étudier les aspects sémantique et objet du langage et les services offerts par l'API. Les TD permettent d'aborder l'algorithmique et la conception objet. Les TP permettent de se familiariser avec la syntaxe, l'utilisation de l'API, l'utilisation d'environnements de développement intégrés comme Eclipse ou Netbeans. Un projet final permet de réaliser une petite application en Java.

    Concernant l'outillage pour la conduite des projets, les principes fondamentaux sont énoncés en CM et leur mise en pratique est obligatoire en TP. Elle est accompagnée de quelques exercices préliminaires pour la prise en main.

    Evaluation session 1

    1 TP noté (coef 1/4 chaque)

    1 mini-projet (coef 1/4)

    1 examen final écrit de 2h (coef 1/2)

    Evaluation session 21 examen écrit de 2h
    Références Bibliographiques
    1. "Programmer en Java" par Claude Delannoy
    2. "Développement Web avec J2EE" par Eric Sarrion
    3. site web "Club d'entraide des développeurs francophones de Java" http://java.developpez.com