Présentation

Cette page présente le cours de « Développement de systèmes informatiques » dans le cadre de l'axe ISI.

Ce cours concerne principalement trois aspects technologiques nécessaires au développement du projet de l'axe ISI :

A ces bases technologiques s'ajoutent divers outils utiles pour le développement et le déploiement du projet ISI :

Enfin, le cours s'achève par le développement d'un premier prototype du projet ISI :

Une dernière rubrique concerne tous les outils et documentations utiles pour la formation.

1 Langage python

Dans ce cours, nous étudions le langage python. Celui-ci vient compléter et ouvrir le cours de programmation orientée objet de première année où le langage Java est utilisé comme support technologique à l'introduction des concepts orientés objets. Python sera nécessaire pour le développement d'une application orientée web pour le projet ISI avec la plateforme django, elle-même écrite en python.

Cette partie consiste en un apprentissage de python au travers du tutoriel officiel et le développement de programmes couvrant les principaux concepts de python.

2 Plateforme mobile Android

Le projet ISI nécessite de développer un client léger sur plateforme mobile Android. Ce type de développement est basé sur Java et XML, et sera effectué en utilisant Eclipse et l'Android Development Kit (ADK).

3 Plateforme web django

Django est une plateforme de développement d'application web suivant l'architecture MVC (modèle-vue-contrôleur). Django est reconnue pour sa légèreté et sa rapidité de développement. Django est écrit en python et nécessite des bases de connaissances en bases de données, HTML, et programmation orientée objet (avec python). Le développement sera effectué sous Eclipse avec le plugin pydev.

Cette partie est divisée en trois sous-parties correspondant au composants de l'architecture MVC :

  • création de projet django et modèle relationnel (Modèle au sens MVC)
  • la notion de views (Contrôleur au sens MVC)
  • la notion de templates (Vue au sens MVC)

4 Tests unitaires

Un aspect important du développement d'applications (d'autant plus lorsque l'on travaille en équipe) est l'activité de tests unitaires. Django propose son propre cadre de tests unitaires, mais il en existe pour la plupart des langages de programmations (JUnit pour Java ou Android, par exemple).

Django permet également de gérer des fixtures (ou installation) de données initiales dans la base de données pour effectuer des tests, notamment, ou tout simplement peupler la base de données avant déploiement.

5 Déploiement

Django permet de développer rapidement des prototypes d'applications web, riches et efficaces. Par contre, le déploiement par défaut s'effectue sur un serveur d'application écrit en python, qui peut ne pas supporter la montée en charge d'un site web. De plus, le choix d'un bon système de gestion de bases de données peut également être décisif lors du déploiement d'une application web. Cette partie du cours va explorer ces différents aspects.

6 Développement du prototype

Le projet de l'axe ISI consiste en un développement d'une application basée sur des données riches (avec un SGBD) accessible via le web (avec django) ou sur mobile (avec Android).

Nous préconisons un développement itératif et incrémental (cf. cours de Gestion de Projet). Ainsi, nous proposons d'initier le développement de l'application par un prototype très simple, mais qui fait appel aux différentes briques technologiques vues dans ce cours. Les heures dédiées à ce prototype consistent donc en un travail en équipe pour développer le coeur de ce qui sera votre projet.


Gauthier Picard, October 2012