Projets de spécialité Génie logiciel et logiciel libre : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Planning {{Ancre|planning}})
(Liste des sujets proposés en 2013 : suppression)
Ligne 218 : Ligne 218 :
  
 
''Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des '''méthodes agiles.''' Pour plus de détails, voir la page [[Méthodes agiles en projet de spécialité]].''
 
''Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des '''méthodes agiles.''' Pour plus de détails, voir la page [[Méthodes agiles en projet de spécialité]].''
 
== Liste des sujets proposés en 2013 ==
 
 
{{Attention|La liste ci-dessous est gardée pour mémoire, mais n'est plus d'actualité}}
 
 
=== Contribution à un logiciel libre ===
 
 
Le but du projet est de participer à un projet « de la vraie vie » (un
 
logiciel activement développé, ayant déjà un bon nombre
 
d'utilisateurs, ...). Un bon moyen d'atteindre cet objectif est de
 
contribuer à un logiciel libre.
 
 
Vous (étudiants) devrez choisir une fonctionnalité à implémenter, et
 
suivre son développement depuis l'idée jusqu'à l'acceptation du code
 
par l'équipe de développeurs officielle.
 
 
'''Sujet détaillé :''' http://www-verimag.imag.fr/~moy/cours/spe-2013/libre.html
 
 
''Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des '''méthodes agiles.''' Pour plus de détails, voir la page [[Méthodes agiles en projet de spécialité]].''
 
 
==== Pages rédigées par les étudiants  ====
 
[[Contribution à Mozilla-Firefox 2012]]
 
 
 
=== GitLab for FabLab: a self hosted git management software ===
 
 
L'objectf de ce projet est de développer une plateforme de partage ouverte facilitant l'hébergement et la diffusions de projets créatifs issus des ateliers de type FabLab. Cette plateforme sera basé sur la plateforme open-source GitLab basé sur le système de version distribué GIT et inspiré du site Github.
 
 
'''Sujet détaillé :''' [[GitLab for FabLab: a self hosted git management software]]
 
 
''Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des '''méthodes agiles.''' Pour plus de détails, voir la page [[Méthodes agiles en projet de spécialité]].''
 
 
=== Réalisation d'un logiciel de screencast open source ===
 
 
L'objectif de ce projet est de développer une « vraie » alternative aux logiciels de Screencasting actuels, pour permettre de créer facilement des animations visualisables dans un navigateur web. En effet, même si il existe une large variété de logiciels proposant la réalisation de Screencasts, aucun de ces logiciels ne proposent de solutions efficaces regroupant les fonctionnalités/propriétés que l’on attend de ce genre d’outil.
 
 
'''Sujet détaillé :''' [[R%C3%A9alisation d%27un logiciel de screencast open source]]
 
 
''Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des '''méthodes agiles.''' Pour plus de détails, voir la page [[Méthodes agiles en projet de spécialité]].''
 
 
=== Passerelle Bidirectionnelle entre Git et MediaWiki ===
 
 
Depuis 2011, une passerelle bidirectionnelle entre Git et MediaWiki a été développée (git-remote-mediawiki). Elle permet d'utiliser les commandes Git classiques (clone, pull, push, ...) pour éditer du contenu en ligne sur un Wiki comme EnsiWiki ou Wikipedia, sans utiliser de navigateur web.
 
 
L'objectif du projet est d'améliorer cet outil.
 
 
'''Sujet détaillé :''' http://www-verimag.imag.fr/~moy/cours/spe-2013/git-wiki.html
 
 
''Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des '''méthodes agiles.''' Pour plus de détails, voir la page [[Méthodes agiles en projet de spécialité]].''
 
 
=== Réalisation d'un langage dédié à l'expression de politiques de sécurité en systèmes d'information ===
 
 
L'objectif visé est de réaliser un langage (DSML - Domain Specific Modeling Language) textuel et outillé, qui soit dédié aux représentations de politiques de contrôle d'accès, et des requêtes/réponses. Le travail sera axé autour du standard XACML (Access Control Markup Language).
 
 
* [[Réalisation d'un langage dédié à l'expression de politiques de sécurité en systèmes d'information| Sujet détaillé]]
 
 
''Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des '''méthodes agiles.''' Pour plus de détails, voir la page [[Méthodes agiles en projet de spécialité]].''
 
 
=== Récupération et exploitation de symétries pour la génération d'impliqués premiers {{Ancre|impliques-premiers}} ===
 
 
Les impliqués premiers jouent un rôle important en intelligence artificielle, où ils sont utilisés par exemple en représentation de connaissances ou en diagnostic. C'est pourquoi de nombreux algorithmes efficaces permettent d'engendrer les impliqués premiers d'une formule en logique propositionnelle. Le but à long terme de ce projet est de tester l'efficacité d'un nouvel algorithme exploitant les symmétries présentes dans le problème d'origine. La tâche principale à réaliser sera d'implémenter un outil capable de détecter l'ensemble des symétries syntaxiques d'un ensemble de clauses fournies en entrée.
 
 
* '''Encadrant:''' Mnacho Echenim
 
* '''Nombre de groupes:''' 1
 
* '''Nombre d'étudiants par groupe:''' 4
 
* '''Référence:''' http://www.aloul.net/Papers/faloul_tcad03_sym.pdf
 
 
 
<!-- Non proposé en 2012
 
 
=== <span id="contiki">Mise en place d'une suite de tests pour Contiki</span> ===
 
 
Ce projet a pour but de mettre en place une suite de tests pour le projet open source Contiki OS. Contiki est un OS destiné à des équipements embarqués contraints de type nœud capteur.
 
 
'''Sujet détaillé :''' http://intranet.ensimag.fr/KIOSK/Matieres/4MMRES/news/?page_id=659#contiki
 
 
''Le cadre fixé par ce sujet (taille des équipes, cahier des charges) n'est pas idéal pour l'application des '''méthodes agiles''', mais il est néanmoins possible de bénéficier partiellement d'un encadrement spécifique sur ce thème. Pour plus de détails, voir la page [[Méthodes agiles en projet de spécialité]].''
 
-->
 
  
 
== Sujets à l'initiative des étudiants ==
 
== Sujets à l'initiative des étudiants ==

Version du 11 juin 2015 à 15:41

AttentionCette page est maintenue par les enseignants et utilisée par les élèves de la matière concernée. Vos contributions sont les bienvenues, mais merci d'en discuter avant de faire des modifications non triviales de la page, pour être sûr de ne pas perturber le déroulement du cours.

CDROM.png  Projets de spécialité  Mycomputer.png  Deuxième Année  CDROM.png  Informatique 

Bienvenue sur la page des projets de spécialité « Génie logiciel et logiciel libre ».

Présentation

Cette page est juste un relais avec des liens vers les propositions connues à ce jour. Les sujets sont en général assez vastes, et à raffiner en discutant avec les encadrants potentiels. Prenez donc contact, au plus tôt (et en tous cas, largement avant les choix définitifs), avec les enseignants, qui seront ravis de répondre à vos questions.

Planning

Pour le dispositif « Agile », cf. le planning ici : Méthodes agiles en projet de spécialité#planning.

Pour toutes les équipes (obligatoire) :

  • Jeudi 11 juin 2015, 9h-10h30, salle H201 : Rétrospectives collectives
  • Vendredi 12 juin 2015 (et peut-être jeudi 11 après-midi), toute la journée, salle H201 : Soutenances. Si vous avez une impossibilité sur certains créneaux, dites-le vite.

Le planning 2015 est disponible sous forme de calendrier : à consulter en ligne et ICS à importer dans votre agenda électronique. Le calendrier est commun avec le calendrier agile, regarder le 12 juin seulement pour les soutenances GLLL.

Toutes les équipes sont conviées aux soutenances de toutes les autres. Je demande à chaque équipe d'assister au moins à une autre soutenance.

Les encadrants sont aussi les bienvenus s'ils veulent assister à d'autres soutenances que la leur. Pour chaque soutenance, le jury est constitué du ou des encadrants, plus au moins un extérieur (le coordinateur de la thématique si il n'est pas encadrant de cette équipe).

Evaluation, rapport, soutenance

En plus du travail technique effectivement réalisé, vous serez évalués sur deux critères plus scolaires. Dans l'ensemble, l'idée est quand même de passer en priorité le travail concret du projet, ne passez pas trop de temps sur le rapport et la soutenance.

Le travail technique

Il faut bien entendu vous assurer que vous encadrants ont à disposition toute la production technique que vous avez faite pendant le projet. Pour les équipes contribuant à des logiciels libres, ça veut dire envoyer les liens vers les pull-requests, les patchs postés sur les bugtrackers, ...

Un rapport écrit

Ces consignes sont générales pour la thématique GLLL. Discutez avec vos encadrants pour affiner (ou éventuellement modifier) les consignes au cas par cas.

Ce rapport sera court : 5 à 10 pages maximum, sauf si vous avez vraiment besoin de plus (le but n'est pas de faire du volume, c'est plutôt une bonne chose si vous êtes concis et faites moins). Il devra couvrir les points suivants :

  • Vue d'ensemble du travail réalisé (courte, attention à ne pas paraphraser le code) : le point de départ (et ses limitations => pourquoi votre problème est-il utile), la solution que vous avez proposé, et ce qui vous permet de penser que cette solution est bonne.
  • Si applicable, description de la communauté à laquelle vous avez contribué (organisation de la communauté, communication, flot et outils de développements, prises de décisions, ...), et de la manière dont vous avez interagit avec elle.
  • Si applicable : difficultés, essais infructueux, résultats négatifs
  • Bilan du projet : les bons et les mauvais points (de votre côté, et du côté de l'équipe enseignantes), les pistes d'améliorations.

Le rapport s'adresse à un informaticien, mais pas forcément à quelqu'un de familier avec le logiciel et la communauté à laquelle vous contribuez (même si en pratique l'enseignant qui le corrigera en saura sans doute plus que ça).

La documentation utilisateur ne fait pas partie du rapport. Si elle est nécessaire, elle sera directement ajoutée à la documentation de votre projet.

Bien sûr, les règles habituelles pour les documents écrits s'appliquent à ce rapport, sur le fond comme sur la forme. Lire et relire la page Rédaction_de_documents_écrits.

Le rapport sera rendu par email aux encadrants de votre projet (mettez le coordinateur de thématique en copie, mais il ne lira probablement pas votre rapport), au format PDF, le jeudi 11/06/2015 avant 14h.

Une soutenance

La soutenance reprendra rapidement les éléments du rapport (ci-dessus), et présentera la réalisation en s'appuyant au maximum sur des démonstrations concrètes. Vous utiliserez un video-projecteur (prenez votre machine pour projeter), et ferez en sorte que chaque membre de l'équipe s'exprime pendant la soutenance.

La soutenance dure 30 minutes (+/- 5 minutes), et sera suivie d'une séance de questions (total : 45 min y compris le temps de brancher son ordinateur).

Liste des sujets proposés en 2015

Logiciel de création de motifs cristallographiques pour cube à LEDs

En partenariat avec Cubicle 3D. Sujet détaillé : Media:Sujet_Cubicle_projet_specialite.pdf‎.

Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des méthodes agiles. Pour plus de détails, voir la page Méthodes agiles en projet de spécialité.

Firmware sur STM32 F4 pour cube à LEDs

En partenariat avec Cubicle 3D. Sujet détaillé : Média:Sujet Cubicle projet specialite firmware.pdf

Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des méthodes agiles. Pour plus de détails, voir la page Méthodes agiles en projet de spécialité.

Contribution à un logiciel libre

Le but du projet est de participer à un projet « de la vraie vie » (un logiciel activement développé, ayant déjà un bon nombre d'utilisateurs, ...). Un bon moyen d'atteindre cet objectif est de contribuer à un logiciel libre.

Vous (étudiants) devrez choisir une fonctionnalité à implémenter, et suivre son développement depuis l'idée jusqu'à l'acceptation du code par l'équipe de développeurs officielle.

Sujet détaillé : http://www-verimag.imag.fr/~moy/cours/spe/libre.html

Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des méthodes agiles. Pour plus de détails, voir la page Méthodes agiles en projet de spécialité.

Pour plus d'info, une page rédigée par les étudiants : Contribution à Mozilla-Firefox 2012.

Réalisation d'un logiciel de screencast open source : Dahu

L'objectif de ce projet est de continuer le développement démarré en 2013 sur le logiciel Dahu, une « vraie » alternative aux logiciels de Screencasting classiques, pour permettre de créer facilement des animations visualisables dans un navigateur web. En effet, même si il existe une large variété de logiciels proposant la réalisation de Screencasts, aucun de ces logiciels ne proposent de solutions efficaces regroupant les fonctionnalités/propriétés que l’on attend de ce genre d’outil.

Sujet détaillé : Réalisation d'un logiciel de screencast open source

Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des méthodes agiles. Pour plus de détails, voir la page Méthodes agiles en projet de spécialité.

AttentionCe sujet demande un bon niveau de programmation et nécessite la manipulation de nombreuses technologies: Java (JavaFx, Gradle, etc.) et JavaScript (Grunt, Backbone.js, Marionnete.js, Deck.js, etc.). Il est bien sûr possible d'apprendre ces technologies au fur et à mesure du projet.


Passerelle Bidirectionnelle entre Git et MediaWiki

Depuis 2011, une passerelle bidirectionnelle entre Git et MediaWiki a été développée (git-remote-mediawiki) par des étudiants Ensimag. Elle permet d'utiliser les commandes Git classiques (clone, pull, push, ...) pour éditer du contenu en ligne sur un Wiki comme EnsiWiki ou Wikipedia, sans utiliser de navigateur web.

L'objectif du projet est d'améliorer cet outil.

Sujet détaillé : http://www-verimag.imag.fr/~moy/cours/spe/git-wiki.html

Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des méthodes agiles. Pour plus de détails, voir la page Méthodes agiles en projet de spécialité.

Développement en mode Agile d'un jeu pour l'année de la Lumière

L'objectif de ce projet est de développer un jeu destiné au grand public pour l'année de la lumière. Ce jeu sera réalisé avec des technologies web portables dernières générations afin d'être déployé sur des plateformes hétérogènes: site web, desktop, android, iOS, etc. La réalisation de ce jeu sera effectuée en collaboration avec le CCSTI-La Casemate et des laboratoires de physique de Grenoble (CNRS-SIMAP, CEA, ESRF…).

Sujet détaillé : Réalisation d'un jeu sur la lumière

Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des méthodes agiles. Pour plus de détails, voir la page Méthodes agiles en projet de spécialité.

Spécification et mise en place d'un langage pour l'expression de règles de sécurité

Encadrant : A. Idani (akram.idani@imag.fr)

Nombre d'étudiants : de 3 à 4 étudiants

Sujet :

La plupart des outils d’identification de trous de sécurité dans les applications s’intéressent aux attaques dites externes comme l’intrusion, le déni de service, l’injection de code, l’usurpation d’identité, etc. Ces types d’attaque sont souvent analysées après l’implémentation du système car elles sont réalisées en exploitant des brèches dans le système informatique. Cependant, plusieurs vulnérabilités donnant lieu à des attaques sont issues de défauts dans la logique même de la politique de sécurité et pas dans les mécanismes de son implémentation (authentification, crypto, protocoles, etc). Des exemples connus peuvent être cités, notamment l’attaque de la « Société Générale » dans laquelle l’attaquant (J. Kerviel), au moyen d’actions autorisées du back-office, a pu dissimuler des opérations qu’il a faites sur le marché en introduisant dans le système informatique de la Société Générale des opérations inverses fictives les compensant. Les pertes engendrées s’élèvent à plusieurs dizaines de milliards d’euros. L’attaquant a réussi à masquer l'importance du risque de ces opérations grâce à sa très bonne connaissance des procédures de contrôle interne.

La plateforme B4MSecure (http://b4msecure.forge.imag.fr) a été développée à cet effet. Elle permet de concevoir une application fonctionnelle et raisonner via un langage de spécification formelle sur sa politique de sécurité. Aujourd’hui, la plateforme permet d’effectuer des vérifications fort utiles telle que l’identification de scénarios d’attaque et l’écriture de scénarios de tests valides ainsi que la simulation de ces différents scénarios. On souhaite, grâce à ce projet de spécialité, disposer d’un outil permettant de répercuter ces vérifications sur des applications cibles. Il s’agit de :

1) de définir la syntaxe d’un langage dédié à l’expression d’un filtre de sécurité permettant d’exprimer des règles d’accès aux fonctionnalités de l’application

2) de compiler et générer le code source (en java) de ce filtre de sécurité et de montrer qu’on peut l’utiliser pour sécuriser des applications existantes (comme des applications web).

Les différents scénarios (d’attaques ou normaux) peuvent être rejoués sur des applications cibles, grâce à votre filtre de sécurité et son implémentation.

Les étudiants sont encouragés à prendre contact avec l'encadrant pour exprimer leurs motivations et disposer de plus amples informations.

Liste des sujets proposés en 2014

AttentionCette liste est gardée pour mémoire mais n'est plus d'actualité


Développement en mode Agile d'un jeu pour l'année de la cristallographie

L'objectif de ce projet est de développer un jeu destiné au grand public sur un site Web pour l'année de la cristallographie. Ce jeu sera réalisé en collaboration avec le CCSTI-La Casemate et des laboratoires de physique de Grenoble (CNRS-SIMAP, CEA, ESRF…).

Sujet détaillé : Réalisation d'un jeu sur la cristallographie

Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des méthodes agiles. Pour plus de détails, voir la page Méthodes agiles en projet de spécialité.

Contribution à un logiciel libre

Le but du projet est de participer à un projet « de la vraie vie » (un logiciel activement développé, ayant déjà un bon nombre d'utilisateurs, ...). Un bon moyen d'atteindre cet objectif est de contribuer à un logiciel libre.

Vous (étudiants) devrez choisir une fonctionnalité à implémenter, et suivre son développement depuis l'idée jusqu'à l'acceptation du code par l'équipe de développeurs officielle.

Sujet détaillé : http://www-verimag.imag.fr/~moy/cours/spe-2014/libre.html

Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des méthodes agiles. Pour plus de détails, voir la page Méthodes agiles en projet de spécialité.

Pages rédigées par les étudiants

Contribution à Mozilla-Firefox 2012

Réalisation d'un logiciel de screencast open source : Dahu

L'objectif de ce projet est de continuer le développement démarré en 2013 sur le logiciel Dahu, une « vraie » alternative aux logiciels de Screencasting classiques, pour permettre de créer facilement des animations visualisables dans un navigateur web. En effet, même si il existe une large variété de logiciels proposant la réalisation de Screencasts, aucun de ces logiciels ne proposent de solutions efficaces regroupant les fonctionnalités/propriétés que l’on attend de ce genre d’outil.

Sujet détaillé : Réalisation d'un logiciel de screencast open source

Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des méthodes agiles. Pour plus de détails, voir la page Méthodes agiles en projet de spécialité.

Passerelle Bidirectionnelle entre Git et MediaWiki

Depuis 2011, une passerelle bidirectionnelle entre Git et MediaWiki a été développée (git-remote-mediawiki) par des étudiants Ensimag. Elle permet d'utiliser les commandes Git classiques (clone, pull, push, ...) pour éditer du contenu en ligne sur un Wiki comme EnsiWiki ou Wikipedia, sans utiliser de navigateur web.

L'objectif du projet est d'améliorer cet outil.

Sujet détaillé : http://www-verimag.imag.fr/~moy/cours/spe-2014/git-wiki.html

Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des méthodes agiles. Pour plus de détails, voir la page Méthodes agiles en projet de spécialité.

AUGH, contribution à un compilateur de circuit

Disclaimer pour ceux que l'archi rebute : ces sujets ne nécessitent aucunes compétences en archi. Vous pouvez lire jusqu'au bout.

AUGH est un outil de CAO open-source, qui permet à un informaticien non expert en matériel de générer automatiquement des accélérateurs matériels sur FPGA (circuit reprogrammable). D'une certaine manière, AUGH peut être vu comme un compilateur, qui prend en entrée une application décrite en C pour en générer une description VHDL compatible avec le FPGA ciblé.

Les contributions proposées sur ce projet sont détaillées sur la page suivante.

Pour ce sujet, il est possible de bénéficier d'un encadrement spécifique sur le thème des méthodes agiles. Pour plus de détails, voir la page Méthodes agiles en projet de spécialité.

Sujets à l'initiative des étudiants

  • GenTeX : développement d'un système de numérisation de notes de cours

Liens utiles