Giter Site home page Giter Site logo

notes's Introduction

INF5153 - Génie logiciel : Conception

Informations Générales

  • Équipe Enseignante :
  • Horaire du groupe, session d'été 2020 :
    • Cours : Lundi, 09h30 - 12h30, Zoom
    • Atelier : Mercredi, 09h30 - 11h30, Zoom
  • Communication :

Objectif du cours

Les notes de cours vont reprendre des principes de base de la programmation orientée objet, mais du point de vue du génie logiciel et non plus de l'informatique pure. Pour tous les cours passé le premier, la lecture des notes de cours de la semaine précédente est obligatoire pour vous préparer à bien comprendre les notions et exemples qui seront démontrées en présentation.

Les notes de cours seront mises à disposition au fur et à mesure sur le Github du cours.

Évaluation & Planning de rendus

  • Les dates de remise s'entendent sur le fuseau horaire de Montréal, à 23:50 le jour de la date de remise. Tout rendu hors délais recevra automatiquement la note de zéro (0).

  • Les règles concernant le plagiat seront appliquées sans aucune tolérance.

Début

Remise

Travail à rendre

Objectif

Poids

05-04 06-15

Travail 1

Comprendre l'utilité de la conception et gérer du code légataire. 20%
07-13 08-10

Travail 2

Utiliser les patrons de conception et expérimenter avec des concepts avancés 30%
06-01 06-29

Projet de session - Phase 1

Implémenter un logiciel de jeu non-trivial 20%
07-06 08-03

Projet de session - Phase 2

Appliquer un changement majeur à un logiciel 30%

Pour les travaux et le projet de session, le rendu se fera à travers la plateforme Github Classroom. Les dépôts de code seront clônés automatiquement par un script, et tout travail non rendu via ce biais ou hors délais ne sera pas évalué. La couverture fonctionnelle de vos travaux est automatiquement vérifiée par la bonne exécution de scénarios de tests unitaires.

Il n'y aura pas d'examen durant cette session. À la place, les travaux 1 à 4 couvriront l'essentiel de la matière en vous demandant d'appliquer les concepts vus dans les notes de cours et en classe. Les pondérations réflètent la difficulté et niveau d'effort relatif de chaque travail.

Le projet de session est à faire en équipe (3 ou 4 personnes). L'évaluation se fera par le biais de présentations de chacune des équipes. Les présentations sont à huis clos. La correction tiendra compte du nombre de membres des équipes. Un dépôt du code complet du projet devra aussi être déposé sur Github.

Les travaux et projets sont placés de façon à balancer la charge de travail au cours de la session.

À noter que la date limite d'abandon sans échec (XX) pour cette session est le 20 août, soit à la fin du cours.

Agenda des séances

Semaine

Date

Sujet

Travail

Séance de cours
1 2020-05-04

Introduction : Génie Logiciel

Travail 1 - Code Kata : Harry Potter

Vidéo

2 2020-05-11

Encapsulation, Types et Interfaces

Travail 1 - Poker

3 2020-05-18

Composition versus Héritage, Tests

4 2020-05-25

Principes de conception (GRASP, SOLID)

5 2020-06-01

Étude de cas Jeu de Dés

Projet de session - Phase 1

6 2020-06-08

Intro aux Patrons de Conception (padawan)

7 2020-06-15

Séance de travail

Remise du travail 1

8 2020-06-22

Étude de cas

9 2020-06-29

Présentations

Présentation de la phase 1

10 2020-07-06

Patrons de conception (chevalier)

Projet de session - Phase 2

11 2020-07-13

Patrons de conception (maître)

Travail 2

12 2020-07-20

Étude de cas

13 2020-07-27

Code as a crime scene

14 2020-08-03

Présentations

Présentation de la phase 2

15 2020-08-10

Séance de travail

Remise travail 2

Barème

Le cours utilise la grille d'évaluation standard de l'UQAM définie dans RESULTATS. La note de passage est de 50%.

Bibliographie

Livres d'enseignement

Livres professionels

  • Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives, Addison Wesley, 2011.
    • Nick Rozanski & Eoin (pronounced “Owen”) Woods.
    • Disponible en bibliothèque (BU Sciences, cote QA 76.76 D47 R69 .2012)
  • Head First Design Patterns, a brain friendly guide. O'REILLY.
    • Eric Freeman, Elisabeth Robson.
    • (Existe en version française: "Design patterns tête la première")
  • Clean Code.
    • Robert Martin. Prentice Hall.
    • Disponible en bibliothèque (BU Sciences, cote QA 76.76 D47 M38 .2009)
    • (Existe en version française: "Coder proprement")
  • Pragmatic Unit Testing. The pragmatic programmers.
    • Jeff Langr, with Andy Hunt and Dave Thomas.
    • Disponible en bibliothèque (BU Sciences, cote QA 76.73 J38 L36 .2015)
  • Implementing Domain-Driven Design, Addison-Wesley Professional, 2013.
    • Vaughn Vernon
  • Design Patterns: Elements of Reusable Object-Oriented Software, Addison Wesley, 1994.
    • Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides.
    • Disponible en bibliothèque (BU Sciences, cote QA76.64D49)
    • (Existe en version française: "Design patterns catalogue de modèles de conception réutilisables")
  • Refactoring: Improving the Design of Existing Code, Addison Wesley, 2018 (2nd edition)
    • Martin Fowler.
    • Disponible en bibliothèque (BU Sciences, cote QA 76.76 R42 F69 .1999)

Règlement 18 sur les Infractions de nature académique

Tout acte de plagiat, fraude, copiage, tricherie ou falsification de document commis par un.e étudiant.e, de même que toute participation à ces actes ou tentative de les commettre, à l’occasion d’un examen ou d’un travail faisant l’objet d’une évaluation ou dans toute autre circonstance, constituent une infraction au sens de ce règlement.

La liste non limitative des infractions est définie comme suit :

  • la substitution de personnes ;
  • l’utilisation totale ou partielle du texte d’autrui en le faisant passer pour sien ou sans indication de référence ;
  • la transmission d’un travail aux fins d’évaluation alors qu’il constitue essentiellement un travail qui a déjà été transmis aux fins d’évaluation académique à l’Université ou dans une autre institution d’enseignement, sauf avec l’accord préalable de l’enseignante, l’enseignant ;
  • l’obtention par vol, manœuvre ou corruption de questions ou de réponses d’examen ou de tout autre document ou matériel non autorisés, ou encore d’une évaluation non méritée ;
  • la possession ou l’utilisation, avant ou pendant un examen, de tout document non autorisé ;
  • l’utilisation pendant un examen de la copie d’examen d’une autre personne ;
  • l’obtention de toute aide non autorisée, qu’elle soit collective ou individuelle ;
  • la falsification d’un document, notamment d’un document transmis par l’Université ou d’un document de l’Université transmis ou non à une tierce personne, quelles que soient les circonstances ;
  • la falsification de données de recherche dans un travail, notamment une thèse, un mémoire, un mémoire-création, un rapport de stage ou un rapport de recherche.

Les sanctions reliées à ces infractions sont précisées à l’article 3 du Règlement no 18 sur les infractions de nature académique.

Vous pouvez consulter sur le site r18.uqam.ca des capsules vidéos qui vous en apprendront davantage sur l’intégrité académique et le R18, tout en vous orientant vers les ressources mises à votre disposition par l’UQAM pour vous aider à éliminer le plagiat de vos travaux.

notes's People

Contributors

zhevilh avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.