https://air.imag.fr/api.php?action=feedcontributions&user=Marwan.Hallal&feedformat=atomair - User contributions [en]2024-03-28T11:24:30ZUser contributionsMediaWiki 1.35.13https://air.imag.fr/index.php?title=ECOM2016_Covoiturage&diff=32285ECOM2016 Covoiturage2016-12-14T21:08:13Z<p>Marwan.Hallal: /* Livrables */</p>
<hr />
<div>[[ECOM-RICM| '''Lien vers la page des projets ECOM-RICM''']]<br />
<br />
= Objectif du projet =<br />
Le but du projet est de réaliser un site de réservation de Taxi. La particularité de nos Taxis est que ce sont des voiture Autonome. <br />
L'application permettra de réserver des trajets en individuel mais aussi en covoiturage.<br />
Les voyages seul seront des voyages porte à porte disponible à n'importe quelle heure tandis que les voyages en covoiturage s'effectueront entre différents points de rendez-vous à des horaires précis.<br />
<br />
= Équipe =<br />
* LECORPS Germain (Chef de projet)<br />
* VOUTAT Manuel<br />
* MATHIEU Tanguy<br />
* HALLAL Marwan (Scrum Master)<br />
* FOUNAS Abdelaziz<br />
<br />
= Livrables =<br />
* [[Fiche de suivi - Coivoiturage_taxi| '''Fiche de suivi''']]<br />
* [[Dossier de Conception Système - Coivoiturage_taxi| '''Dossier de Conception Système''']]<br />
* [[Diagramme Relationnel - Base de Données| '''Diagramme Relationnel - Base de Données''']]<br />
* [[Media:etudeeComG4.pdf| '''Analyse des besoins''']]<br />
* [[Maquette - Coivoiturage_taxi| '''Maquette''']]<br />
* [[SRS - Coivoiturage_taxi| '''SRS''']]<br />
* [[Modèle de tâches - Coivoiturage_taxi| '''Modèle de tâches''']]<br />
* [[Scrum - Coivoiturage_taxi| '''Scrum''']]<br />
* [https://github.com/marwanh/ecomEJB '''Dépôt Git -- EJB''']<br />
* [https://github.com/abdelazizFounas/ECOM_GlassfishApp '''Dépôt Git -- Website''']<br />
* [https://github.com/abdelazizFounas/ECOM_Application '''Dépôt Git -- Génération EAR''']<br />
* [[Media:Presentation_conception_g4.pdf| '''Présentation de Conception''']]<br />
* [[Media:Soutenance_finale_groupe4.pdf| '''Présentation finale''']]</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=ECOM2016_Covoiturage&diff=32284ECOM2016 Covoiturage2016-12-14T21:03:20Z<p>Marwan.Hallal: /* Livrables */</p>
<hr />
<div>[[ECOM-RICM| '''Lien vers la page des projets ECOM-RICM''']]<br />
<br />
= Objectif du projet =<br />
Le but du projet est de réaliser un site de réservation de Taxi. La particularité de nos Taxis est que ce sont des voiture Autonome. <br />
L'application permettra de réserver des trajets en individuel mais aussi en covoiturage.<br />
Les voyages seul seront des voyages porte à porte disponible à n'importe quelle heure tandis que les voyages en covoiturage s'effectueront entre différents points de rendez-vous à des horaires précis.<br />
<br />
= Équipe =<br />
* LECORPS Germain (Chef de projet)<br />
* VOUTAT Manuel<br />
* MATHIEU Tanguy<br />
* HALLAL Marwan (Scrum Master)<br />
* FOUNAS Abdelaziz<br />
<br />
= Livrables =<br />
* [[Fiche de suivi - Coivoiturage_taxi| '''Fiche de suivi''']]<br />
* [[Dossier de Conception Système - Coivoiturage_taxi| '''Dossier de Conception Système''']]<br />
* [[Diagramme Relationnel - Base de Données| '''Diagramme Relationnel - Base de Données''']]<br />
* [[Media:etudeeComG4.pdf| '''Analyse des besoins''']]<br />
* [[Maquette - Coivoiturage_taxi| '''Maquette''']]<br />
* [[SRS - Coivoiturage_taxi| '''SRS''']]<br />
* [[Modèle de tâches - Coivoiturage_taxi| '''Modèle de tâches''']]<br />
* [[Scrum - Coivoiturage_taxi| '''Scrum''']]<br />
* [https://github.com/marwanh/ecomEJB '''Dépôt Git -- EJB''']<br />
* [https://github.com/abdelazizFounas/ECOM_GlassfishApp '''Dépôt Git -- Website''']<br />
* [https://github.com/abdelazizFounas/ECOM_Application '''Dépôt Git -- Génération EAR''']<br />
* [http://ecom45743.cloudapp.net/AutomaticAuto '''Apllication en ligne''']<br />
* [[Media:Presentation_conception_g4.pdf| '''Présentation de Conception''']]<br />
* [[Media:Soutenance_finale_groupe4.pdf| '''Présentation finale''']]</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=File:Soutenance_finale_groupe4.pdf&diff=32283File:Soutenance finale groupe4.pdf2016-12-14T21:02:19Z<p>Marwan.Hallal: Marwan.Hallal uploaded a new version of &quot;File:Soutenance finale groupe4.pdf&quot;</p>
<hr />
<div></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=ECOM2016_Covoiturage&diff=32282ECOM2016 Covoiturage2016-12-14T20:58:25Z<p>Marwan.Hallal: /* Livrables */</p>
<hr />
<div>[[ECOM-RICM| '''Lien vers la page des projets ECOM-RICM''']]<br />
<br />
= Objectif du projet =<br />
Le but du projet est de réaliser un site de réservation de Taxi. La particularité de nos Taxis est que ce sont des voiture Autonome. <br />
L'application permettra de réserver des trajets en individuel mais aussi en covoiturage.<br />
Les voyages seul seront des voyages porte à porte disponible à n'importe quelle heure tandis que les voyages en covoiturage s'effectueront entre différents points de rendez-vous à des horaires précis.<br />
<br />
= Équipe =<br />
* LECORPS Germain (Chef de projet)<br />
* VOUTAT Manuel<br />
* MATHIEU Tanguy<br />
* HALLAL Marwan (Scrum Master)<br />
* FOUNAS Abdelaziz<br />
<br />
= Livrables =<br />
* [[Fiche de suivi - Coivoiturage_taxi| '''Fiche de suivi''']]<br />
* [[Dossier de Conception Système - Coivoiturage_taxi| '''Dossier de Conception Système''']]<br />
* [[Diagramme Relationnel - Base de Données| '''Diagramme Relationnel - Base de Données''']]<br />
* [[Media:etudeeComG4.pdf| '''Analyse des besoins''']]<br />
* [[Maquette - Coivoiturage_taxi| '''Maquette''']]<br />
* [[SRS - Coivoiturage_taxi| '''SRS''']]<br />
* [[Modèle de tâches - Coivoiturage_taxi| '''Modèle de tâches''']]<br />
* [[Scrum - Coivoiturage_taxi| '''Scrum''']]<br />
* [https://github.com/marwanh/ecomEJB '''Dépôt Git -- EJB''']<br />
* [https://github.com/abdelazizFounas/ECOM_GlassfishApp '''Dépôt Git -- Website''']<br />
* [https://github.com/abdelazizFounas/ECOM_Application '''Dépôt Git -- Génération EAR''']<br />
* [http://ecom45743.cloudapp.net/AutomaticAuto '''Apllication en ligne''']<br />
* [[Media:Presentation_conception_g4.pdf| '''Présentation de Conception''']]<br />
* [[ '''Présentation finale''']]</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=ECOM2016_Covoiturage&diff=32281ECOM2016 Covoiturage2016-12-14T20:57:54Z<p>Marwan.Hallal: Undo revision 32280 by Marwan.Hallal (talk)</p>
<hr />
<div>[[ECOM-RICM| '''Lien vers la page des projets ECOM-RICM''']]<br />
<br />
= Objectif du projet =<br />
Le but du projet est de réaliser un site de réservation de Taxi. La particularité de nos Taxis est que ce sont des voiture Autonome. <br />
L'application permettra de réserver des trajets en individuel mais aussi en covoiturage.<br />
Les voyages seul seront des voyages porte à porte disponible à n'importe quelle heure tandis que les voyages en covoiturage s'effectueront entre différents points de rendez-vous à des horaires précis.<br />
<br />
= Équipe =<br />
* LECORPS Germain (Chef de projet)<br />
* VOUTAT Manuel<br />
* MATHIEU Tanguy<br />
* HALLAL Marwan (Scrum Master)<br />
* FOUNAS Abdelaziz<br />
<br />
= Livrables =<br />
* [[Fiche de suivi - Coivoiturage_taxi| '''Fiche de suivi''']]<br />
* [[Dossier de Conception Système - Coivoiturage_taxi| '''Dossier de Conception Système''']]<br />
* [[Diagramme Relationnel - Base de Données| '''Diagramme Relationnel - Base de Données''']]<br />
* [[Media:etudeeComG4.pdf| '''Analyse des besoins''']]<br />
* [[Maquette - Coivoiturage_taxi| '''Maquette''']]<br />
* [[SRS - Coivoiturage_taxi| '''SRS''']]<br />
* [[Modèle de tâches - Coivoiturage_taxi| '''Modèle de tâches''']]<br />
* [[Scrum - Coivoiturage_taxi| '''Scrum''']]<br />
* [https://github.com/marwanh/ecomEJB '''Dépôt Git -- EJB''']<br />
* [https://github.com/abdelazizFounas/ECOM_GlassfishApp '''Dépôt Git -- Website''']<br />
* [https://github.com/abdelazizFounas/ECOM_Application '''Dépôt Git -- Génération EAR''']<br />
* [http://ecom45743.cloudapp.net/AutomaticAuto '''Apllication en ligne''']<br />
* [[Media:Presentation_conception_g4.pdf| '''Présentation de Conception''']]<br />
* [[Media:Soutenance_finale_groupe4.pdf| '''Présentation finale''']]</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=ECOM2016_Covoiturage&diff=32280ECOM2016 Covoiturage2016-12-14T20:56:27Z<p>Marwan.Hallal: /* Livrables */</p>
<hr />
<div>[[ECOM-RICM| '''Lien vers la page des projets ECOM-RICM''']]<br />
<br />
= Objectif du projet =<br />
Le but du projet est de réaliser un site de réservation de Taxi. La particularité de nos Taxis est que ce sont des voiture Autonome. <br />
L'application permettra de réserver des trajets en individuel mais aussi en covoiturage.<br />
Les voyages seul seront des voyages porte à porte disponible à n'importe quelle heure tandis que les voyages en covoiturage s'effectueront entre différents points de rendez-vous à des horaires précis.<br />
<br />
= Équipe =<br />
* LECORPS Germain (Chef de projet)<br />
* VOUTAT Manuel<br />
* MATHIEU Tanguy<br />
* HALLAL Marwan (Scrum Master)<br />
* FOUNAS Abdelaziz<br />
<br />
= Livrables =<br />
* [[Fiche de suivi - Coivoiturage_taxi| '''Fiche de suivi''']]<br />
* [[Dossier de Conception Système - Coivoiturage_taxi| '''Dossier de Conception Système''']]<br />
* [[Diagramme Relationnel - Base de Données| '''Diagramme Relationnel - Base de Données''']]<br />
* [[Media:etudeeComG4.pdf| '''Analyse des besoins''']]<br />
* [[Maquette - Coivoiturage_taxi| '''Maquette''']]<br />
* [[SRS - Coivoiturage_taxi| '''SRS''']]<br />
* [[Modèle de tâches - Coivoiturage_taxi| '''Modèle de tâches''']]<br />
* [[Scrum - Coivoiturage_taxi| '''Scrum''']]<br />
* [https://github.com/marwanh/ecomEJB '''Dépôt Git -- EJB''']<br />
* [https://github.com/abdelazizFounas/ECOM_GlassfishApp '''Dépôt Git -- Website''']<br />
* [https://github.com/abdelazizFounas/ECOM_Application '''Dépôt Git -- Génération EAR''']<br />
* [http://ecom45743.cloudapp.net/AutomaticAuto '''Apllication en ligne''']<br />
* [[Media:Presentation_conception_g4.pdf| '''Présentation de Conception''']]<br />
* [[ '''Présentation finale''']]</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=ECOM2016_Covoiturage&diff=32279ECOM2016 Covoiturage2016-12-14T20:55:02Z<p>Marwan.Hallal: /* Livrables */</p>
<hr />
<div>[[ECOM-RICM| '''Lien vers la page des projets ECOM-RICM''']]<br />
<br />
= Objectif du projet =<br />
Le but du projet est de réaliser un site de réservation de Taxi. La particularité de nos Taxis est que ce sont des voiture Autonome. <br />
L'application permettra de réserver des trajets en individuel mais aussi en covoiturage.<br />
Les voyages seul seront des voyages porte à porte disponible à n'importe quelle heure tandis que les voyages en covoiturage s'effectueront entre différents points de rendez-vous à des horaires précis.<br />
<br />
= Équipe =<br />
* LECORPS Germain (Chef de projet)<br />
* VOUTAT Manuel<br />
* MATHIEU Tanguy<br />
* HALLAL Marwan (Scrum Master)<br />
* FOUNAS Abdelaziz<br />
<br />
= Livrables =<br />
* [[Fiche de suivi - Coivoiturage_taxi| '''Fiche de suivi''']]<br />
* [[Dossier de Conception Système - Coivoiturage_taxi| '''Dossier de Conception Système''']]<br />
* [[Diagramme Relationnel - Base de Données| '''Diagramme Relationnel - Base de Données''']]<br />
* [[Media:etudeeComG4.pdf| '''Analyse des besoins''']]<br />
* [[Maquette - Coivoiturage_taxi| '''Maquette''']]<br />
* [[SRS - Coivoiturage_taxi| '''SRS''']]<br />
* [[Modèle de tâches - Coivoiturage_taxi| '''Modèle de tâches''']]<br />
* [[Scrum - Coivoiturage_taxi| '''Scrum''']]<br />
* [https://github.com/marwanh/ecomEJB '''Dépôt Git -- EJB''']<br />
* [https://github.com/abdelazizFounas/ECOM_GlassfishApp '''Dépôt Git -- Website''']<br />
* [https://github.com/abdelazizFounas/ECOM_Application '''Dépôt Git -- Génération EAR''']<br />
* [http://ecom45743.cloudapp.net/AutomaticAuto '''Apllication en ligne''']<br />
* [[Media:Presentation_conception_g4.pdf| '''Présentation de Conception''']]<br />
* [[Media:Soutenance_finale_groupe4.pdf| '''Présentation finale''']]</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=File:Soutenance_finale_groupe4.pdf&diff=32278File:Soutenance finale groupe4.pdf2016-12-14T20:53:39Z<p>Marwan.Hallal: </p>
<hr />
<div></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=File:BD.pdf&diff=31249File:BD.pdf2016-10-18T06:32:53Z<p>Marwan.Hallal: Marwan.Hallal uploaded a new version of &quot;File:BD.pdf&quot;</p>
<hr />
<div></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=File:BD.pdf&diff=31246File:BD.pdf2016-10-18T06:31:48Z<p>Marwan.Hallal: Marwan.Hallal uploaded a new version of &quot;File:BD.pdf&quot;</p>
<hr />
<div></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=File:BD.pdf&diff=31243File:BD.pdf2016-10-18T06:29:40Z<p>Marwan.Hallal: </p>
<hr />
<div></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=Diagramme_Relationnel_-_Base_de_Donn%C3%A9es&diff=31242Diagramme Relationnel - Base de Données2016-10-18T06:29:29Z<p>Marwan.Hallal: Created page with "upright=4"</p>
<hr />
<div>[[File:BD.pdf|thumb|center|upright=4]]</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=ECOM2016_Covoiturage&diff=31241ECOM2016 Covoiturage2016-10-18T06:28:37Z<p>Marwan.Hallal: /* Livrables */</p>
<hr />
<div>[[ECOM-RICM| '''Lien vers la page des projets ECOM-RICM''']]<br />
<br />
= Objectif du projet =<br />
Le but du projet est de réaliser un site de réservation de Taxi. La particularité de nos Taxis est que ce sont des voiture Autonome. <br />
L'application permettra de réserver des trajets en individuel mais aussi en covoiturage.<br />
Les voyages seul seront des voyages porte à porte disponible à n'importe quelle heure tandis que les voyages en covoiturage s'effectueront entre différents points de rendez-vous à des horaires précis.<br />
<br />
= Équipe =<br />
* LECORPS Germain (Chef de projet)<br />
* VOUTAT Manuel<br />
* MATHIEU Tanguy<br />
* HALLAL Marwan (Scrum Master)<br />
* FOUNAS Abdelaziz<br />
<br />
= Livrables =<br />
* [[Fiche de suivi - Coivoiturage_taxi| '''Fiche de suivi''']]<br />
* [[Dossier de Conception Système - Coivoiturage_taxi| '''Dossier de Conception Système''']]<br />
* [[Diagramme Relationnel - Base de Données| '''Diagramme Relationnel - Base de Données''']]<br />
* [[Media:etudeeCom_voitureautonome.pdf| '''Analyse des besoins''']]<br />
* [[Maquette - Coivoiturage_taxi| '''Maquette''']]<br />
* [[SRS - Coivoiturage_taxi| '''SRS''']]<br />
* [[Diagramme UML - Coivoiturage_taxi| '''Diagramme UML''']]<br />
* [[Modèle de tâches - Coivoiturage_taxi| '''Modèle de tâches''']]<br />
* [[Scrum - Coivoiturage_taxi| '''Scrum''']]<br />
* [http://github.com/ '''Dépôt Git''']<br />
* [[Application en ligne - Coivoiturage_taxi| '''Application en ligne''']]<br />
* [[Présentation de Conception - Coivoiturage_taxi| '''Présentation de Conception''']]<br />
* [[Présentation finale - Coivoiturage_taxi| '''Présentation finale''']]</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=SRS_-_Coivoiturage_taxi&diff=31235SRS - Coivoiturage taxi2016-10-17T22:47:50Z<p>Marwan.Hallal: /* 2.1 Le but du produit */</p>
<hr />
<div>[[ECOM2016_Covoiturage| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* LECORPS Germain (Chef de projet)<br />
* VOUTAT Manuel<br />
* MATHIEU Tanguy<br />
* HALLAL Marwan (Scrum Master)<br />
* FOUNAS Abdelaziz<br />
<br />
= 1. Introduction =<br />
== 1.1 Objectif du projet ==<br />
<br />
L'objectif du projet est de réaliser un site de réservation de Taxi. La particularité de nos Taxis est que ce sont des voiture Autonome. L'application permettra de réserver des trajets en individuel mais aussi en covoiturage. Les voyages seul seront des voyages porte à porte disponible à n'importe quelle heure tandis que les voyages en covoiturage s'effectueront entre différents points de rendez-vous à des horaires précis.<br />
<br />
== 1.2 Portée du produit ==<br />
<br />
Le site web se doit d'être assez simple d'utilisation puisqu'il peut être utilisé par n'importe qui et ce dans n'importe quelle tranche d'âge (à partir de 18 ans). Le site doit être développé pour une version desktop ainsi qu'une version mobile / tablette.<br />
<br />
=2. Description générale=<br />
==2.1 Le but du produit==<br />
<br />
Le but du projet est de proposer une solution de transport innovante à mi-chemin entre le taxi et le covoiturage. En effet, il est possible de réserver des trajets seul, ce qui réduit le prix par rapport à un taxi tout en conservant la qualité du transport. Il est aussi possible de réserver des trajets en covoiturage, réduisant ainsi encore plus le prix mais en "sacrifiant" alors un peu de confort.<br />
Ce site se doit d'être simple et rapide d'utilisation. Des utilisateurs sans expérience en informatique sont à même de l'utiliser. De plus, il doit être rapide de réserver un trajet pour conserver une certaine compétitivité face aux concurrents.<br />
<br />
==2.2 Fonctionnalités==<br />
<br />
Pour les clients :<br />
* Créer un compte<br />
* S'identifier<br />
* Réserver un trajet<br />
* Consulter ses trajets (éventuellement les annuler)<br />
* Éditer son profil<br />
<br />
Pour les administrateurs :<br />
* S'identifier<br />
* Ajouter une voiture taxi<br />
* Ajouter une voiture pour le covoiturage<br />
* Supprimer une voiture taxi<br />
* Supprimer une voiture de covoiturage<br />
* Ajouter un nouveau trajet de covoiturage<br />
* Editer des comptes Admin et Client<br />
<br />
==2.3 Utilisateurs potentiels==<br />
<br />
Remarques globales<br />
<br />
- Les utilisateurs de sites de covoiturage sont une bonne source de clients potentiels, ce sont généralement des personnes habitué à voyager à plusieurs, à se soucier de l'environnement, qui peuvent y trouver également le contact humain.<br />
<br />
- Notre cible est une clientèle relativement jeune, avec des ressources financières faibles ou moyennes, le prix doit pouvoir concurrencer les autres sites de covoiturage ou de taxi.<br />
<br />
- Sur un échantillon de près de 300 individus, plus de 75% se disent prêt à tenter l'aventure dans des voitures autonomes mais parmi eux les 3/4 se disent peu confiant dans l'utilisation des voitures autonomes.<br />
<br />
- A large majorité (>90%), les personnes interrogés préfèrent utiliser le service en covoiturage, ce qui parait logique au vus de notre étude ciblé principalement sur des jeunes utilisateurs.<br />
<br />
<br />
Plan d'affaires<br />
<br />
- 40% des utilisateurs pourraient éventuellement souhaités souscrire à un abonnement plutôt qu'à des prix unitaire par trajet.<br />
<br />
- L'étude a aussi permis de calculer le prix psychologique et d’acceptabilité des utilisateurs et nous donne comme résultat un prix idéal de environ 1.00 euro par kilomètre parcouru sur de petits trajets (citadins) et de environ 0.65 euro par kilomètre sur de plus long trajets (> 15 km).<br />
<br />
<br />
Accessibilité<br />
<br />
- Pour consulter le site commercial, les personnes questionnées préfère assez largement avoir l'application sur téléphone (94,4%) puis sur ordinateur (64,4%)<br />
<br />
- Les personnes interrogées utilisent majoritairement google chrome, puis en second lieu vient Firefox et enfin Safari en 3ème position.<br />
<br />
<br />
Les non-intéressés<br />
<br />
- Parmi les remarques recueillies au personnes qui ne souhaitaient pas utiliser un tel service, nous retrouvons souvent les même réponses : la peur de la machine, du bug/crash, des situations particulière impossibles à résoudre pour le logiciel pilotant les véhicules autonomes. Mais aussi la perte du plaisir de conduire, la suppression de postes liés à la conduite de transports en commun ou autre.<br />
<br />
==2.4 Cas d'utilisations==<br />
<br />
* S'identifier :<br />
<br />
Un utilisateur, s'il possède un compte, peut s'identifier grâce au bouton en haut à droite qui le redirigera vers la page d'identification. S'il ne possède pas de compte, il passera à l'étape créer un compte.<br />
<br />
* Créer un compte :<br />
<br />
Sur la page d'identification, s'il ne possède pas de compte, un utilisateur peut cliquer sur le bouton Créer un compte. Ce bouton redirige vers une page permettant de créer un compte. Il devra renseigner son Nom/Prénom, son mail, son mot de passe ainsi que son numéro de téléphone.<br />
<br />
* Se déconnecter :<br />
<br />
Il est possible pour un utilisateur de se déconnecter à tout moment une fois identifié.<br />
<br />
* Réserver un trajet :<br />
Une fois qu'un utilisateur est connecté, il peut réserver un trajet. Dans un premier temps, il devra choisir s'il veut effectuer le trajet seul ou en covoiturage grâce à un menu déroulant. A tout moment, si l'utilisateur navigue vers une autre page via le menu ou s'il se déconnecte, la réservation est réinitialisée<br />
** Trajet seul<br />
Si un utilisateur décide d’effectuer un trajet seul, il doit indiquer l'adresse son point de départ ainsi que l'adresse de son point d'arriver grâce à des champs de textes. Il doit ensuite choisir la date ainsi que l'heure de départ (la date et l'heure d'arrivée seront alors estimés et affichés). L'itinéraire du trajet est alors affiché sur une carte. Il est alors possible de valider le trajet. L'utilisateur est alors redirigé vers une nouvelle page affichant le récapitulatif du trajet.<br />
** Trajet à plusieurs<br />
Si un utilisateur décide d’effectuer un trajet à plusieurs, il doit choisir son point de départ ainsi que son point d'arrivée dans une liste de points de rendez-vous pré-définis. Il doit ensuite choisir une date ainsi qu'un créneau horaire pour le départ (la date et l'heure d'arrivée seront alors estimés et affichés). L'itinéraire du trajet est alors affiché sur une carte. Il est alors possible de valider le trajet. L'utilisateur est alors redirigé vers une nouvelle page affichant le récapitulatif du trajet.<br />
<br />
* Payer :<br />
<br />
Un fois sur la page du récapitulatif, les détails du trajet ainsi que le prix sont affichés. Il est alors possible de cliquer sur le bouton "Payer". Ce bouton redirige vers une page de paiement sécurisé. Sur la page de récapitulatif, il est possible de naviguer vers d'autres pages sans que la réservation soit annulée. Une réservation restée trop longtemps non payée sera automatiquement annulée.<br />
<br />
* Consulter ses réservations<br />
<br />
Cette page est accessible depuis n'importe où via le menu. Elle affiche une liste des réservations en cours. Un résumé du détail de ces réservations est affiché à côté. Une réservation est cliquable et redirige vers le récapitulatif (cette fois plus détaillé) de la réservation.<br />
<br />
* Annuler une réservation :<br />
<br />
Via la page "Nos réservations", il est possible d'annuler un trajet. Il y a deux façons de procéder. Un utilisateur peut soit cliquer sur le bouton "Annuler" dans la liste de ses réservations, soit cliquer sur "Annuler" dans le récapitulatif de la réservation. Dans les deux cas, une page demandant la confirmation de l'annulation sera affichée. Comme chez Blabla Car, une commission peut être récupérée au moment de l'annulation.<br />
<br />
* Consulter les voitures mises à disposition :<br />
<br />
Il est possible pour un utilisateur d’accéder à "Nos voitures" via le menu. Cette page affiche une liste des voitures disponibles. Avec le même principe que les réservation, un résumé rapide des caractéristiques de la voiture est affiché dans la liste. Ces éléments sont cliquable pour afficher les caractéristiques complètes de la voiture.<br />
<br />
* Administrer :<br />
<br />
Un administrateur se connecte via le pannel administrateur et doit pouvoir gérer la base de données (soit pouvoir gérer les utilisateurs, les voitures, les trajets...)<br />
<br />
==2.5 Contraintes générales==<br />
<br />
* Avoir une connexion internet<br />
* Un utilisateur doit être connecté pour utiliser le service<br />
* Le site doit être simple et les prix doivent être assez bas pour attirer le client. (Il faut justifier le fait de ne pas avoir de chauffeur)<br />
* Le site doit être disponible en version mobile et tablette étant donné que beaucoup d'utilisateurs vont sûrement réserver avec ces supports</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=SRS_-_Coivoiturage_taxi&diff=31234SRS - Coivoiturage taxi2016-10-17T22:46:18Z<p>Marwan.Hallal: /* 2.4 Cas d'utilisations */</p>
<hr />
<div>[[ECOM2016_Covoiturage| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* LECORPS Germain (Chef de projet)<br />
* VOUTAT Manuel<br />
* MATHIEU Tanguy<br />
* HALLAL Marwan (Scrum Master)<br />
* FOUNAS Abdelaziz<br />
<br />
= 1. Introduction =<br />
== 1.1 Objectif du projet ==<br />
<br />
L'objectif du projet est de réaliser un site de réservation de Taxi. La particularité de nos Taxis est que ce sont des voiture Autonome. L'application permettra de réserver des trajets en individuel mais aussi en covoiturage. Les voyages seul seront des voyages porte à porte disponible à n'importe quelle heure tandis que les voyages en covoiturage s'effectueront entre différents points de rendez-vous à des horaires précis.<br />
<br />
== 1.2 Portée du produit ==<br />
<br />
Le site web se doit d'être assez simple d'utilisation puisqu'il peut être utilisé par n'importe qui et ce dans n'importe quelle tranche d'âge (à partir de 18 ans). Le site doit être développé pour une version desktop ainsi qu'une version mobile / tablette.<br />
<br />
=2. Description générale=<br />
==2.1 Le but du produit==<br />
<br />
Le but du projet est de proposer une solution de transport innovante à mis chemin entre le taxi et le covoiturage. En effet, il est possible de réserver des trajets seul, ce qui réduit le prix par rapport à un taxi tout en conservant la qualité du transport. Il est aussi possible de réserver des trajets en covoiturage, réduisant ainsi encore plus le prix mais en "sacrifiant" alors un peu de confort.<br />
Ce site se doit d'être simple et rapide d'utilisation. Des utilisateurs sans expérience en informatique sont à même de l'utiliser. De plus, il doit être rapide de réserver un trajet pour conserver une certaine compétitivité face aux concurrents.<br />
<br />
==2.2 Fonctionnalités==<br />
<br />
Pour les clients :<br />
* Créer un compte<br />
* S'identifier<br />
* Réserver un trajet<br />
* Consulter ses trajets (éventuellement les annuler)<br />
* Éditer son profil<br />
<br />
Pour les administrateurs :<br />
* S'identifier<br />
* Ajouter une voiture taxi<br />
* Ajouter une voiture pour le covoiturage<br />
* Supprimer une voiture taxi<br />
* Supprimer une voiture de covoiturage<br />
* Ajouter un nouveau trajet de covoiturage<br />
* Editer des comptes Admin et Client<br />
<br />
==2.3 Utilisateurs potentiels==<br />
<br />
Remarques globales<br />
<br />
- Les utilisateurs de sites de covoiturage sont une bonne source de clients potentiels, ce sont généralement des personnes habitué à voyager à plusieurs, à se soucier de l'environnement, qui peuvent y trouver également le contact humain.<br />
<br />
- Notre cible est une clientèle relativement jeune, avec des ressources financières faibles ou moyennes, le prix doit pouvoir concurrencer les autres sites de covoiturage ou de taxi.<br />
<br />
- Sur un échantillon de près de 300 individus, plus de 75% se disent prêt à tenter l'aventure dans des voitures autonomes mais parmi eux les 3/4 se disent peu confiant dans l'utilisation des voitures autonomes.<br />
<br />
- A large majorité (>90%), les personnes interrogés préfèrent utiliser le service en covoiturage, ce qui parait logique au vus de notre étude ciblé principalement sur des jeunes utilisateurs.<br />
<br />
<br />
Plan d'affaires<br />
<br />
- 40% des utilisateurs pourraient éventuellement souhaités souscrire à un abonnement plutôt qu'à des prix unitaire par trajet.<br />
<br />
- L'étude a aussi permis de calculer le prix psychologique et d’acceptabilité des utilisateurs et nous donne comme résultat un prix idéal de environ 1.00 euro par kilomètre parcouru sur de petits trajets (citadins) et de environ 0.65 euro par kilomètre sur de plus long trajets (> 15 km).<br />
<br />
<br />
Accessibilité<br />
<br />
- Pour consulter le site commercial, les personnes questionnées préfère assez largement avoir l'application sur téléphone (94,4%) puis sur ordinateur (64,4%)<br />
<br />
- Les personnes interrogées utilisent majoritairement google chrome, puis en second lieu vient Firefox et enfin Safari en 3ème position.<br />
<br />
<br />
Les non-intéressés<br />
<br />
- Parmi les remarques recueillies au personnes qui ne souhaitaient pas utiliser un tel service, nous retrouvons souvent les même réponses : la peur de la machine, du bug/crash, des situations particulière impossibles à résoudre pour le logiciel pilotant les véhicules autonomes. Mais aussi la perte du plaisir de conduire, la suppression de postes liés à la conduite de transports en commun ou autre.<br />
<br />
==2.4 Cas d'utilisations==<br />
<br />
* S'identifier :<br />
<br />
Un utilisateur, s'il possède un compte, peut s'identifier grâce au bouton en haut à droite qui le redirigera vers la page d'identification. S'il ne possède pas de compte, il passera à l'étape créer un compte.<br />
<br />
* Créer un compte :<br />
<br />
Sur la page d'identification, s'il ne possède pas de compte, un utilisateur peut cliquer sur le bouton Créer un compte. Ce bouton redirige vers une page permettant de créer un compte. Il devra renseigner son Nom/Prénom, son mail, son mot de passe ainsi que son numéro de téléphone.<br />
<br />
* Se déconnecter :<br />
<br />
Il est possible pour un utilisateur de se déconnecter à tout moment une fois identifié.<br />
<br />
* Réserver un trajet :<br />
Une fois qu'un utilisateur est connecté, il peut réserver un trajet. Dans un premier temps, il devra choisir s'il veut effectuer le trajet seul ou en covoiturage grâce à un menu déroulant. A tout moment, si l'utilisateur navigue vers une autre page via le menu ou s'il se déconnecte, la réservation est réinitialisée<br />
** Trajet seul<br />
Si un utilisateur décide d’effectuer un trajet seul, il doit indiquer l'adresse son point de départ ainsi que l'adresse de son point d'arriver grâce à des champs de textes. Il doit ensuite choisir la date ainsi que l'heure de départ (la date et l'heure d'arrivée seront alors estimés et affichés). L'itinéraire du trajet est alors affiché sur une carte. Il est alors possible de valider le trajet. L'utilisateur est alors redirigé vers une nouvelle page affichant le récapitulatif du trajet.<br />
** Trajet à plusieurs<br />
Si un utilisateur décide d’effectuer un trajet à plusieurs, il doit choisir son point de départ ainsi que son point d'arrivée dans une liste de points de rendez-vous pré-définis. Il doit ensuite choisir une date ainsi qu'un créneau horaire pour le départ (la date et l'heure d'arrivée seront alors estimés et affichés). L'itinéraire du trajet est alors affiché sur une carte. Il est alors possible de valider le trajet. L'utilisateur est alors redirigé vers une nouvelle page affichant le récapitulatif du trajet.<br />
<br />
* Payer :<br />
<br />
Un fois sur la page du récapitulatif, les détails du trajet ainsi que le prix sont affichés. Il est alors possible de cliquer sur le bouton "Payer". Ce bouton redirige vers une page de paiement sécurisé. Sur la page de récapitulatif, il est possible de naviguer vers d'autres pages sans que la réservation soit annulée. Une réservation restée trop longtemps non payée sera automatiquement annulée.<br />
<br />
* Consulter ses réservations<br />
<br />
Cette page est accessible depuis n'importe où via le menu. Elle affiche une liste des réservations en cours. Un résumé du détail de ces réservations est affiché à côté. Une réservation est cliquable et redirige vers le récapitulatif (cette fois plus détaillé) de la réservation.<br />
<br />
* Annuler une réservation :<br />
<br />
Via la page "Nos réservations", il est possible d'annuler un trajet. Il y a deux façons de procéder. Un utilisateur peut soit cliquer sur le bouton "Annuler" dans la liste de ses réservations, soit cliquer sur "Annuler" dans le récapitulatif de la réservation. Dans les deux cas, une page demandant la confirmation de l'annulation sera affichée. Comme chez Blabla Car, une commission peut être récupérée au moment de l'annulation.<br />
<br />
* Consulter les voitures mises à disposition :<br />
<br />
Il est possible pour un utilisateur d’accéder à "Nos voitures" via le menu. Cette page affiche une liste des voitures disponibles. Avec le même principe que les réservation, un résumé rapide des caractéristiques de la voiture est affiché dans la liste. Ces éléments sont cliquable pour afficher les caractéristiques complètes de la voiture.<br />
<br />
* Administrer :<br />
<br />
Un administrateur se connecte via le pannel administrateur et doit pouvoir gérer la base de données (soit pouvoir gérer les utilisateurs, les voitures, les trajets...)<br />
<br />
==2.5 Contraintes générales==<br />
<br />
* Avoir une connexion internet<br />
* Un utilisateur doit être connecté pour utiliser le service<br />
* Le site doit être simple et les prix doivent être assez bas pour attirer le client. (Il faut justifier le fait de ne pas avoir de chauffeur)<br />
* Le site doit être disponible en version mobile et tablette étant donné que beaucoup d'utilisateurs vont sûrement réserver avec ces supports</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=VT2016_Go&diff=31025VT2016 Go2016-10-15T17:08:10Z<p>Marwan.Hallal: </p>
<hr />
<div>=Présentation=<br />
* Sujet : Go, un langage pour les serveurs<br />
* Auteur : Marwan Hallal<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 14/10/2016<br />
<br />
<br />
* Mots-clés : Go, langage, système, concurrence <br />
<br />
<br />
<br />
=Historique=<br />
<br />
Le langage Go a été crée en 2007 au sein de Google par une équipe de trois ingénieurs: Robert Griesemer, Ken Thompson (Unix) et Rob Pike (UTF-8). Le projet devient open-source le 10 Novembre 2009. <br />
<br />
Le nouveau langage était une réponse à certains grands problèmes rencontrés lors du développement de l'infrastructure interne de Google:<br />
* lenteur du processus de build<br />
* mauvaise gestion des dépendances<br />
* coût des mises à jour<br />
* illisibilité du code, mauvaise documentation<br />
<br />
<br />
=Introduction=<br />
<br />
Go est un langage compilé, statiquement typé, concurrent et avec une gestion automatique de la mémoire (garbage-collection). Aujourd'hui, beaucoup de projets utilisent le langage Go, notamment Docker, Vitess (système de clustering pour MySQL, utilisé pour l'infrastructure de YouTube), InfluxDB, ainsi que le serveur de téléchargement de Google. C'est un langage de la famille C (syntaxe de base), mais qui s'est inspiré aussi des langages Pascal et Modula (déclarations, packages). Le modèle de concurrence de Go repose sur le langage formel dit CSP de Tony Hoare. Cependant, Go emprunte la notion d'interfaces et de méthodes aux langages orienté objets.<br />
<br />
Une librairie standard exhaustive permet aux développeurs de créer des applications qui accédent au réseau en sécurité (crypto), d'internationaliser (i18n) leur programmes (support Unicode), et de manipuler les données dans beaucoup des base de données les plus utilisées (drivers SQL). <br />
<br />
==Syntaxe de base==<br />
<br />
La syntaxe du langage Go est proche de celle du langage C; Les strucutres de contrôle (if..else, for, switch) s'écrivent presque de la même façon. Les instructions en Go ne se terminent pas par un point-virgule, celles-ci étant ajoutées automatiquement par le compilateur.<br />
<br />
Il existe deux façons de déclarer une variable en Go:<br />
* Déclaration sans initialisation<br />
<syntaxhighlight lang="go"><br />
var x int<br />
var y string<br />
<br />
// ou même les pointeurs<br />
var iptr *int = &x<br />
</syntaxhighlight><br />
* Déclaration avec initialisation<br />
<syntaxhighlight lang="go"><br />
var x = 5 // inférence de type<br />
// ou<br />
x := 5<br />
</syntaxhighlight><br />
<br />
Exemples de code (structures de contrôles):<br />
<syntaxhighlight lang="go"><br />
// if..else<br />
if num := 9; num < 0 {<br />
fmt.Println("is negative")<br />
} else if num < 10 {<br />
fmt.Println("has 1 digit")<br />
} else {<br />
fmt.Println("has multiple digits")<br />
}<br />
<br />
//for<br />
for j := 7; j <= 9; j++ {<br />
fmt.Println(j)<br />
}<br />
<br />
for {<br />
fmt.Println("loop")<br />
break<br />
}<br />
<br />
//switch<br />
switch time.Now().Weekday() {<br />
case time.Saturday, time.Sunday:<br />
fmt.Println("It's the weekend")<br />
defautl:<br />
fmt.Println("It's a weekday")<br />
}<br />
</syntaxhighlight><br />
<br />
=Les types=<br />
Au delà des types primitifs du langage (int, string, float, ...), il est possible de définir des types plus complexes à l'aide des structures.<br />
<syntaxhighlight lang="go"><br />
type rect struct {<br />
width int<br />
height int<br />
}<br />
</syntaxhighlight><br />
<br />
==Fonctions et Méthodes==<br />
Les fonctions dans Go sont similaires à celles du langage C, mais peuvent avoir plusieurs valeurs de retour.<br />
<syntaxhighlight lang="go"><br />
func plus(a int, b int) int {<br />
return a + b<br />
}<br />
<br />
func plusMinus(a int, b int) int {<br />
return a + b, a - b<br />
}<br />
<br />
// comment récupérer plusieurs valeurs de retour ?<br />
x , y := plusMinus(2, 5)<br />
// ou si on veut ignorer une/plusieurs valeurs<br />
x, _ := plusMinus(2, 5)<br />
</syntaxhighlight><br />
<br />
Les méthodes permettent de définir le comportement d'un type (comme en orienté-objet). Une méthode en Go a un type récepteur (sur lequel cette méthode agit) et est définie de la façon suivante:<br />
<syntaxhighlight lang="go"><br />
func (r rect) perim() int {<br />
return 2 * r.width + 2 * r.height<br />
}<br />
</syntaxhighlight><br />
<br />
==Les interfaces==<br />
Une interface introduit la notion de contrat qu'on retrouve aussi en orienté-objet. Une interface est un ensemble de méthodes, et un type implémente une interface s'il implémente toutes ses méthodes.<br />
<syntaxhighlight lang="go"><br />
type geometry interface {<br />
area() float64<br />
perim() float64<br />
}<br />
<br />
type circle struct {<br />
radius float64<br />
}<br />
<br />
// le type circle implémente l'interface geometry puisqu'il définit ses 2 méthodes<br />
func (c circle) area() float64 {<br />
return math.Pi * c.radius * c.radius<br />
}<br />
<br />
func (c circle) perim() float64 {<br />
return 2 * math.Pi * c.radius<br />
}<br />
</syntaxhighlight></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=VT2016_Go&diff=31024VT2016 Go2016-10-15T17:01:21Z<p>Marwan.Hallal: </p>
<hr />
<div>=Présentation=<br />
* Sujet : Go, un langage pour les serveurs<br />
* Auteur : Marwan Hallal<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 14/10/2016<br />
<br />
<br />
* Mots-clés : Go, langage, système, concurrence <br />
<br />
<br />
<br />
=Historique=<br />
<br />
Le langage Go a été crée en 2007 au sein de Google par une équipe de trois ingénieurs: Robert Griesemer, Ken Thompson (Unix) et Rob Pike (UTF-8). Le projet devient open-source le 10 Novembre 2009. <br />
<br />
Le nouveau langage était une réponse à certains grands problèmes rencontrés lors du développement de l'infrastructure interne de Google:<br />
* lenteur du processus de build<br />
* mauvaise gestion des dépendances<br />
* coût des mises à jour<br />
* illisibilité du code, mauvaise documentation<br />
<br />
<br />
=Introduction=<br />
<br />
Go est un langage compilé, statiquement typé, concurrent et avec une gestion automatique de la mémoire (garbage-collection). Aujourd'hui, beaucoup de projets utilisent le langage Go, notamment Docker, Vitess (système de clustering pour MySQL, utilisé pour l'infrastructure de YouTube), InfluxDB, ainsi que le serveur de téléchargement de Google. C'est un langage de la famille C (syntaxe de base), mais qui s'est inspiré aussi des langages Pascal et Modula (déclarations, packages). Le modèle de concurrence de Go repose sur le langage formel dit CSP de Tony Hoare. Cependant, Go emprunte la notion d'interfaces et de méthodes aux langages orienté objets.<br />
<br />
Une librairie standard exhaustive permet aux développeurs de créer des applications qui accédent au réseau en sécurité (crypto), d'internationaliser (i18n) leur programmes (support Unicode), et de manipuler les données dans beaucoup des base de données les plus utilisées (drivers SQL). <br />
<br />
==Syntaxe de base==<br />
<br />
La syntaxe du langage Go est proche de celle du langage C; Les strucutres de contrôle (if..else, for, switch) s'écrivent presque de la même façon. Les instructions en Go ne se terminent pas par un point-virgule, celles-ci étant ajoutées automatiquement par le compilateur.<br />
<br />
Il existe deux façons de déclarer une variable en Go:<br />
* Déclaration sans initialisation<br />
<syntaxhighlight lang="go"><br />
var x int<br />
var y string<br />
<br />
// ou même les pointeurs<br />
var iptr *int = &x<br />
</syntaxhighlight><br />
* Déclaration avec initialisation<br />
<syntaxhighlight lang="go"><br />
var x = 5 // inférence de type<br />
// ou<br />
x := 5<br />
</syntaxhighlight><br />
<br />
Exemples de code (structures de contrôles):<br />
<syntaxhighlight lang="go"><br />
// if..else<br />
if num := 9; num < 0 {<br />
fmt.Println("is negative")<br />
} else if num < 10 {<br />
fmt.Println("has 1 digit")<br />
} else {<br />
fmt.Println("has multiple digits")<br />
}<br />
<br />
//for<br />
for j := 7; j <= 9; j++ {<br />
fmt.Println(j)<br />
}<br />
<br />
for {<br />
fmt.Println("loop")<br />
break<br />
}<br />
<br />
//switch<br />
switch time.Now().Weekday() {<br />
case time.Saturday, time.Sunday:<br />
fmt.Println("It's the weekend")<br />
defautl:<br />
fmt.Println("It's a weekday")<br />
}<br />
</syntaxhighlight><br />
<br />
==Les types==<br />
Au delà des types primitifs du langage (int, string, float, ...), il est possible de définir des types plus complexes à l'aide des structures.<br />
<syntaxhighlight lang="go"><br />
type rect struct {<br />
width int<br />
height int<br />
}<br />
</syntaxhighlight><br />
<br />
=Fonctions et Méthodes=<br />
Les fonctions dans Go sont similaires à celles du langage C, mais peuvent avoir plusieurs valeurs de retour.<br />
<syntaxhighlight lang="go"><br />
func plus(a int, b int) int {<br />
return a + b<br />
}<br />
<br />
func plusMinus(a int, b int) int {<br />
return a + b, a - b<br />
}<br />
<br />
// comment récupérer plusieurs valeurs de retour ?<br />
x , y := plusMinus(2, 5)<br />
// ou si on veut ignorer une/plusieurs valeurs<br />
x, _ := plusMinus(2, 5)<br />
</syntaxhighlight><br />
<br />
Les méthodes permettent de définir le comportement d'un type (comme en orienté-objet). Une méthode en Go a un type récepteur (sur lequel cette méthode agit) et est définie de la façon suivante:<br />
<syntaxhighlight lang="go"><br />
func (r rect) perim() int {<br />
return 2 * r.width + 2 * r.height<br />
}<br />
</syntaxhighlight><br />
<br />
==Les interfaces==<br />
Une interface introduit la notion de contrat qu'on retrouve aussi en orienté-objet. Une interface est un ensemble de méthodes, et un type implémente une interface s'il implémente toutes ses méthodes.<br />
<syntaxhighlight lang="go"><br />
type geometry interface {<br />
area() float64<br />
perim() float64<br />
}<br />
<br />
type circle struct {<br />
radius float64<br />
}<br />
<br />
// le type circle implémente l'interface geometry puisqu'il définit ses 2 méthodes<br />
func (c circle) area() float64 {<br />
return math.Pi * c.radius * c.radius<br />
}<br />
<br />
func (c circle) perim() float64 {<br />
return 2 * math.Pi * c.radius<br />
}<br />
</syntaxhighlight></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=VT2016_Go&diff=31023VT2016 Go2016-10-15T17:00:43Z<p>Marwan.Hallal: /* Les types */</p>
<hr />
<div>=Présentation=<br />
* Sujet : Go, un langage pour les serveurs<br />
* Auteur : Marwan Hallal<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 14/10/2016<br />
<br />
<br />
* Mots-clés : Go, langage, système, concurrence <br />
<br />
<br />
<br />
=Historique=<br />
<br />
Le langage Go a été crée en 2007 au sein de Google par une équipe de trois ingénieurs: Robert Griesemer, Ken Thompson (Unix) et Rob Pike (UTF-8). Le projet devient open-source le 10 Novembre 2009. <br />
<br />
Le nouveau langage était une réponse à certains grands problèmes rencontrés lors du développement de l'infrastructure interne de Google:<br />
* lenteur du processus de build<br />
* mauvaise gestion des dépendances<br />
* coût des mises à jour<br />
* illisibilité du code, mauvaise documentation<br />
<br />
<br />
=Introduction=<br />
<br />
Go est un langage compilé, statiquement typé, concurrent et avec une gestion automatique de la mémoire (garbage-collection). Aujourd'hui, beaucoup de projets utilisent le langage Go, notamment Docker, Vitess (système de clustering pour MySQL, utilisé pour l'infrastructure de YouTube), InfluxDB, ainsi que le serveur de téléchargement de Google. C'est un langage de la famille C (syntaxe de base), mais qui s'est inspiré aussi des langages Pascal et Modula (déclarations, packages). Le modèle de concurrence de Go repose sur le langage formel dit CSP de Tony Hoare. Cependant, Go emprunte la notion d'interfaces et de méthodes aux langages orienté objets.<br />
<br />
Une librairie standard exhaustive permet aux développeurs de créer des applications qui accédent au réseau en sécurité (crypto), d'internationaliser (i18n) leur programmes (support Unicode), et de manipuler les données dans beaucoup des base de données les plus utilisées (drivers SQL). <br />
<br />
==Syntaxe de base==<br />
<br />
La syntaxe du langage Go est proche de celle du langage C; Les strucutres de contrôle (if..else, for, switch) s'écrivent presque de la même façon. Les instructions en Go ne se terminent pas par un point-virgule, celles-ci étant ajoutées automatiquement par le compilateur.<br />
<br />
Il existe deux façons de déclarer une variable en Go:<br />
* Déclaration sans initialisation<br />
<syntaxhighlight lang="go"><br />
var x int<br />
var y string<br />
<br />
// ou même les pointeurs<br />
var iptr *int = &x<br />
</syntaxhighlight><br />
* Déclaration avec initialisation<br />
<syntaxhighlight lang="go"><br />
var x = 5 // inférence de type<br />
// ou<br />
x := 5<br />
</syntaxhighlight><br />
<br />
Exemples de code (structures de contrôles):<br />
<syntaxhighlight lang="go"><br />
// if..else<br />
if num := 9; num < 0 {<br />
fmt.Println("is negative")<br />
} else if num < 10 {<br />
fmt.Println("has 1 digit")<br />
} else {<br />
fmt.Println("has multiple digits")<br />
}<br />
<br />
//for<br />
for j := 7; j <= 9; j++ {<br />
fmt.Println(j)<br />
}<br />
<br />
for {<br />
fmt.Println("loop")<br />
break<br />
}<br />
<br />
//switch<br />
switch time.Now().Weekday() {<br />
case time.Saturday, time.Sunday:<br />
fmt.Println("It's the weekend")<br />
defautl:<br />
fmt.Println("It's a weekday")<br />
}<br />
</syntaxhighlight><br />
<br />
==Les types==<br />
Au delà des types primitifs du langage (int, string, float, ...), il est possible de définir des types plus complexes à l'aide des structures.<br />
<syntaxhighlight lang="go"><br />
type rect struct {<br />
width int<br />
height int<br />
}<br />
</syntaxhighlight><br />
<br />
=Fonctions et Méthodes=<br />
Les fonctions dans Go sont similaires à celles du langage C, mais peuvent avoir plusieurs valeurs de retour.<br />
<syntaxhighlight lang="go"><br />
func plus(a int, b int) int {<br />
return a + b<br />
}<br />
<br />
func plusMinus(a int, b int) int {<br />
return a + b, a - b<br />
}<br />
<br />
// comment récupérer plusieurs valeurs de retour ?<br />
x , y := plusMinus(2, 5)<br />
// ou si on veut ignorer une/plusieurs valeurs<br />
x, _ := plusMinus(2, 5)<br />
</syntaxhighlight><br />
<br />
Les méthodes permettent de définir le comportement d'un type (comme en orienté-objet). Une méthode en Go a un type récepteur (sur lequel cette méthode agit) et est définie de la façon suivante:<br />
<syntaxhighlight lang="go"><br />
func (r rect) perim() int {<br />
return 2 * r.width + 2 * r.height<br />
}<br />
</syntaxhighlight><br />
<br />
==Les interfaces==<br />
Une interface introduit la notion de contrat qu'on retrouve aussi en orienté-objet. Une interface est un ensemble de méthodes, et un type implémente une interface s'il implémente toutes ses méthodes.<br />
<syntaxhighlight lang="go"><br />
type geometry interface {<br />
area() float64<br />
perim() float64<br />
}<br />
<br />
type circle struct {<br />
radius float64<br />
}<br />
<br />
// le type circle implémente l'interface geometry puisqu'il définit ses 2 méthodes<br />
func (c circle) area() float64 {<br />
return math.Pi * c.radius * c.radius<br />
}<br />
<br />
func (c circle) perim() float64 {<br />
return 2 * math.Pi * c.radius<br />
}<br />
</syntaxhighlight></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=VT2016_Go&diff=31022VT2016 Go2016-10-15T17:00:20Z<p>Marwan.Hallal: </p>
<hr />
<div>=Présentation=<br />
* Sujet : Go, un langage pour les serveurs<br />
* Auteur : Marwan Hallal<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 14/10/2016<br />
<br />
<br />
* Mots-clés : Go, langage, système, concurrence <br />
<br />
<br />
<br />
=Historique=<br />
<br />
Le langage Go a été crée en 2007 au sein de Google par une équipe de trois ingénieurs: Robert Griesemer, Ken Thompson (Unix) et Rob Pike (UTF-8). Le projet devient open-source le 10 Novembre 2009. <br />
<br />
Le nouveau langage était une réponse à certains grands problèmes rencontrés lors du développement de l'infrastructure interne de Google:<br />
* lenteur du processus de build<br />
* mauvaise gestion des dépendances<br />
* coût des mises à jour<br />
* illisibilité du code, mauvaise documentation<br />
<br />
<br />
=Introduction=<br />
<br />
Go est un langage compilé, statiquement typé, concurrent et avec une gestion automatique de la mémoire (garbage-collection). Aujourd'hui, beaucoup de projets utilisent le langage Go, notamment Docker, Vitess (système de clustering pour MySQL, utilisé pour l'infrastructure de YouTube), InfluxDB, ainsi que le serveur de téléchargement de Google. C'est un langage de la famille C (syntaxe de base), mais qui s'est inspiré aussi des langages Pascal et Modula (déclarations, packages). Le modèle de concurrence de Go repose sur le langage formel dit CSP de Tony Hoare. Cependant, Go emprunte la notion d'interfaces et de méthodes aux langages orienté objets.<br />
<br />
Une librairie standard exhaustive permet aux développeurs de créer des applications qui accédent au réseau en sécurité (crypto), d'internationaliser (i18n) leur programmes (support Unicode), et de manipuler les données dans beaucoup des base de données les plus utilisées (drivers SQL). <br />
<br />
==Syntaxe de base==<br />
<br />
La syntaxe du langage Go est proche de celle du langage C; Les strucutres de contrôle (if..else, for, switch) s'écrivent presque de la même façon. Les instructions en Go ne se terminent pas par un point-virgule, celles-ci étant ajoutées automatiquement par le compilateur.<br />
<br />
Il existe deux façons de déclarer une variable en Go:<br />
* Déclaration sans initialisation<br />
<syntaxhighlight lang="go"><br />
var x int<br />
var y string<br />
<br />
// ou même les pointeurs<br />
var iptr *int = &x<br />
</syntaxhighlight><br />
* Déclaration avec initialisation<br />
<syntaxhighlight lang="go"><br />
var x = 5 // inférence de type<br />
// ou<br />
x := 5<br />
</syntaxhighlight><br />
<br />
Exemples de code (structures de contrôles):<br />
<syntaxhighlight lang="go"><br />
// if..else<br />
if num := 9; num < 0 {<br />
fmt.Println("is negative")<br />
} else if num < 10 {<br />
fmt.Println("has 1 digit")<br />
} else {<br />
fmt.Println("has multiple digits")<br />
}<br />
<br />
//for<br />
for j := 7; j <= 9; j++ {<br />
fmt.Println(j)<br />
}<br />
<br />
for {<br />
fmt.Println("loop")<br />
break<br />
}<br />
<br />
//switch<br />
switch time.Now().Weekday() {<br />
case time.Saturday, time.Sunday:<br />
fmt.Println("It's the weekend")<br />
defautl:<br />
fmt.Println("It's a weekday")<br />
}<br />
</syntaxhighlight><br />
<br />
==Les types==<br />
Au delà des types primitifs du langage (int, string, float, ...), il est possible de définir des types plus complexes à l'aide des structures.<br />
<syntaxhighlight lang="go"><br />
type rect struct {<br />
width int<br />
height int<br />
}<br />
</syntaxhighlight><br />
<br />
==Fonctions et Méthodes==<br />
Les fonctions dans Go sont similaires à celles du langage C, mais peuvent avoir plusieurs valeurs de retour.<br />
<syntaxhighlight lang="go"><br />
func plus(a int, b int) int {<br />
return a + b<br />
}<br />
<br />
func plusMinus(a int, b int) int {<br />
return a + b, a - b<br />
}<br />
<br />
// comment récupérer plusieurs valeurs de retour ?<br />
x , y := plusMinus(2, 5)<br />
// ou si on veut ignorer une/plusieurs valeurs<br />
x, _ := plusMinus(2, 5)<br />
</syntaxhighlight><br />
<br />
Les méthodes permettent de définir le comportement d'un type (comme en orienté-objet). Une méthode en Go a un type récepteur (sur lequel cette méthode agit) et est définie de la façon suivante:<br />
<syntaxhighlight lang="go"><br />
func (r rect) perim() int {<br />
return 2 * r.width + 2 * r.height<br />
}<br />
</syntaxhighlight><br />
<br />
==Les interfaces==<br />
Une interface introduit la notion de contrat qu'on retrouve aussi en orienté-objet. Une interface est un ensemble de méthodes, et un type implémente une interface s'il implémente toutes ses méthodes.<br />
<syntaxhighlight lang="go"><br />
type geometry interface {<br />
area() float64<br />
perim() float64<br />
}<br />
<br />
type circle struct {<br />
radius float64<br />
}<br />
<br />
// le type circle implémente l'interface geometry puisqu'il définit ses 2 méthodes<br />
func (c circle) area() float64 {<br />
return math.Pi * c.radius * c.radius<br />
}<br />
<br />
func (c circle) perim() float64 {<br />
return 2 * math.Pi * c.radius<br />
}<br />
</syntaxhighlight></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=VT2016_Go&diff=31021VT2016 Go2016-10-15T16:59:39Z<p>Marwan.Hallal: </p>
<hr />
<div>=Présentation=<br />
* Sujet : Go, un langage pour les serveurs<br />
* Auteur : Marwan Hallal<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 14/10/2016<br />
<br />
<br />
* Mots-clés : Go, langage, système, concurrence <br />
<br />
<br />
<br />
=Historique=<br />
<br />
Le langage Go a été crée en 2007 au sein de Google par une équipe de trois ingénieurs: Robert Griesemer, Ken Thompson (Unix) et Rob Pike (UTF-8). Le projet devient open-source le 10 Novembre 2009. <br />
<br />
Le nouveau langage était une réponse à certains grands problèmes rencontrés lors du développement de l'infrastructure interne de Google:<br />
* lenteur du processus de build<br />
* mauvaise gestion des dépendances<br />
* coût des mises à jour<br />
* illisibilité du code, mauvaise documentation<br />
<br />
<br />
=Introduction=<br />
<br />
Go est un langage compilé, statiquement typé, concurrent et avec une gestion automatique de la mémoire (garbage-collection). Aujourd'hui, beaucoup de projets utilisent le langage Go, notamment Docker, Vitess (système de clustering pour MySQL, utilisé pour l'infrastructure de YouTube), InfluxDB, ainsi que le serveur de téléchargement de Google. C'est un langage de la famille C (syntaxe de base), mais qui s'est inspiré aussi des langages Pascal et Modula (déclarations, packages). Le modèle de concurrence de Go repose sur le langage formel dit CSP de Tony Hoare. Cependant, Go emprunte la notion d'interfaces et de méthodes aux langages orienté objets.<br />
<br />
Une librairie standard exhaustive permet aux développeurs de créer des applications qui accédent au réseau en sécurité (crypto), d'internationaliser (i18n) leur programmes (support Unicode), et de manipuler les données dans beaucoup des base de données les plus utilisées (drivers SQL). <br />
<br />
==Syntaxe de base==<br />
<br />
La syntaxe du langage Go est proche de celle du langage C; Les strucutres de contrôle (if..else, for, switch) s'écrivent presque de la même façon. Les instructions en Go ne se terminent pas par un point-virgule, celles-ci étant ajoutées automatiquement par le compilateur.<br />
<br />
Il existe deux façons de déclarer une variable en Go:<br />
* Déclaration sans initialisation<br />
<syntaxhighlight lang="go"><br />
var x int<br />
var y string<br />
<br />
// ou même les pointeurs<br />
var iptr *int = &x<br />
</syntaxhighlight><br />
* Déclaration avec initialisation<br />
<syntaxhighlight lang="go"><br />
var x = 5 // inférence de type<br />
// ou<br />
x := 5<br />
</syntaxhighlight><br />
<br />
Exemples de code (structures de contrôles):<br />
<syntaxhighlight lang="go"><br />
// if..else<br />
if num := 9; num < 0 {<br />
fmt.Println("is negative")<br />
} else if num < 10 {<br />
fmt.Println("has 1 digit")<br />
} else {<br />
fmt.Println("has multiple digits")<br />
}<br />
<br />
//for<br />
for j := 7; j <= 9; j++ {<br />
fmt.Println(j)<br />
}<br />
<br />
for {<br />
fmt.Println("loop")<br />
break<br />
}<br />
<br />
//switch<br />
switch time.Now().Weekday() {<br />
case time.Saturday, time.Sunday:<br />
fmt.Println("It's the weekend")<br />
defautl:<br />
fmt.Println("It's a weekday")<br />
}<br />
</syntaxhighlight><br />
<br />
==Les types==<br />
Au delà des types primitifs du langage (int, string, float, ...), il est possible de définir des types plus complexes à l'aide des structures.<br />
<syntaxhighlight lang="go"><br />
type rect struct {<br />
width int<br />
height int<br />
}<br />
</syntaxhighlight><br />
<br />
==Fonctions vs. Méthodes==<br />
Les fonctions dans Go sont similaires à celles du langage C, mais peuvent avoir plusieurs valeurs de retour.<br />
<syntaxhighlight lang="go"><br />
func plus(a int, b int) int {<br />
return a + b<br />
}<br />
<br />
func plusMinus(a int, b int) int {<br />
return a + b, a - b<br />
}<br />
<br />
// comment récupérer plusieurs valeurs de retour ?<br />
x , y := plusMinus(2, 5)<br />
// ou si on veut ignorer une/plusieurs valeurs<br />
x, _ := plusMinus(2, 5)<br />
</syntaxhighlight><br />
<br />
Les méthodes permettent de définir le comportement d'un type (comme en orienté-objet). Une méthode en Go a un type récepteur (sur lequel cette méthode agit) et est définie de la façon suivante:<br />
<syntaxhighlight lang="go"><br />
func (r rect) perim() int {<br />
return 2 * r.width + 2 * r.height<br />
}<br />
</syntaxhighlight><br />
<br />
==Les interfaces==<br />
Une interface introduit la notion de contrat qu'on retrouve aussi en orienté-objet. Une interface est un ensemble de méthodes, et un type implémente une interface s'il implémente toutes ses méthodes.<br />
<syntaxhighlight lang="go"><br />
type geometry interface {<br />
area() float64<br />
perim() float64<br />
}<br />
<br />
type circle struct {<br />
radius float64<br />
}<br />
<br />
// le type circle implémente l'interface geometry puisqu'il définit ses 2 méthodes<br />
func (c circle) area() float64 {<br />
return math.Pi * c.radius * c.radius<br />
}<br />
<br />
func (c circle) perim() float64 {<br />
return 2 * math.Pi * c.radius<br />
}<br />
</syntaxhighlight></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=VT2016_Go&diff=31020VT2016 Go2016-10-15T16:58:33Z<p>Marwan.Hallal: </p>
<hr />
<div>=Présentation=<br />
* Sujet : Go, un langage pour les serveurs<br />
* Auteur : Marwan Hallal<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 14/10/2016<br />
<br />
<br />
* Mots-clés : Go, langage, système, concurrence <br />
<br />
<br />
<br />
=Historique=<br />
<br />
Le langage Go a été crée en 2007 au sein de Google par une équipe de trois ingénieurs: Robert Griesemer, Ken Thompson (Unix) et Rob Pike (UTF-8). Le projet devient open-source le 10 Novembre 2009. <br />
<br />
Le nouveau langage était une réponse à certains grands problèmes rencontrés lors du développement de l'infrastructure interne de Google:<br />
* lenteur du processus de build<br />
* mauvaise gestion des dépendances<br />
* coût des mises à jour<br />
* illisibilité du code, mauvaise documentation<br />
<br />
<br />
=Introduction=<br />
<br />
Go est un langage compilé, statiquement typé, concurrent et avec une gestion automatique de la mémoire (garbage-collection). Aujourd'hui, beaucoup de projets utilisent le langage Go, notamment Docker, Vitess (système de clustering pour MySQL, utilisé pour l'infrastructure de YouTube), InfluxDB, ainsi que le serveur de téléchargement de Google. C'est un langage de la famille C (syntaxe de base), mais qui s'est inspiré aussi des langages Pascal et Modula (déclarations, packages). Le modèle de concurrence de Go repose sur le langage formel dit CSP de Tony Hoare. Cependant, Go emprunte la notion d'interfaces et de méthodes aux langages orienté objets.<br />
<br />
Une librairie standard exhaustive permet aux développeurs de créer des applications qui accédent au réseau en sécurité (crypto), d'internationaliser (i18n) leur programmes (support Unicode), et de manipuler les données dans beaucoup des base de données les plus utilisées (drivers SQL). <br />
<br />
==Syntaxe de base==<br />
<br />
La syntaxe du langage Go est proche de celle du langage C; Les strucutres de contrôle (if..else, for, switch) s'écrivent presque de la même façon. Les instructions en Go ne se terminent pas par un point-virgule, celles-ci étant ajoutées automatiquement par le compilateur.<br />
<br />
Il existe deux façons de déclarer une variable en Go:<br />
* Déclaration sans initialisation<br />
<syntaxhighlight lang="go"><br />
var x int<br />
var y string<br />
<br />
// ou même les pointeurs<br />
var iptr *int = &x<br />
</syntaxhighlight><br />
* Déclaration avec initialisation<br />
<syntaxhighlight lang="go"><br />
var x = 5 // inférence de type<br />
// ou<br />
x := 5<br />
</syntaxhighlight><br />
<br />
Exemples de code (structures de contrôles):<br />
<syntaxhighlight lang="go"><br />
// if..else<br />
if num := 9; num < 0 {<br />
fmt.Println("is negative")<br />
} else if num < 10 {<br />
fmt.Println("has 1 digit")<br />
} else {<br />
fmt.Println("has multiple digits")<br />
}<br />
<br />
//for<br />
for j := 7; j <= 9; j++ {<br />
fmt.Println(j)<br />
}<br />
<br />
for {<br />
fmt.Println("loop")<br />
break<br />
}<br />
<br />
//switch<br />
switch time.Now().Weekday() {<br />
case time.Saturday, time.Sunday:<br />
fmt.Println("It's the weekend")<br />
defautl:<br />
fmt.Println("It's a weekday")<br />
}<br />
</syntaxhighlight><br />
<br />
==Les types==<br />
Au delà des types primitifs du langage (int, string, float, ...), il est possible de définir des types plus complexes à l'aide des structures.<br />
<syntaxhighlight lang="go"><br />
type rect struct {<br />
width int<br />
height int<br />
}<br />
</syntaxhighlight><br />
<br />
=Fonctions vs. Méthodes=<br />
Les fonctions dans Go sont similaires à celles du langage C, mais peuvent avoir plusieurs valeurs de retour.<br />
<syntaxhighlight lang="go"><br />
func plus(a int, b int) int {<br />
return a + b<br />
}<br />
<br />
func plusMinus(a int, b int) int {<br />
return a + b, a - b<br />
}<br />
<br />
// comment récupérer plusieurs valeurs de retour ?<br />
x , y := plusMinus(2, 5)<br />
// ou si on veut ignorer une/plusieurs valeurs<br />
x, _ := plusMinus(2, 5)<br />
</syntaxhighlight><br />
<br />
Les méthodes permettent de définir le comportement d'un type (comme en orienté-objet). Une méthode en Go a un type récepteur (sur lequel cette méthode agit) et est définie de la façon suivante:<br />
<syntaxhighlight lang="go"><br />
func (r rect) perim() int {<br />
return 2 * r.width + 2 * r.height<br />
}<br />
</syntaxhighlight><br />
<br />
=Les interfaces=<br />
Une interface introduit la notion de contrat qu'on retrouve aussi en orienté-objet. Une interface est un ensemble de méthodes, et un type implémente une interface s'il implémente toutes ses méthodes.<br />
<syntaxhighlight lang="go"><br />
type geometry interface {<br />
area() float64<br />
perim() float64<br />
}<br />
<br />
type circle struct {<br />
radius float64<br />
}<br />
<br />
// le type circle implémente l'interface geometry puisqu'il définit ses 2 méthodes<br />
func (c circle) area() float64 {<br />
return math.Pi * c.radius * c.radius<br />
}<br />
<br />
func (c circle) perim() float64 {<br />
return 2 * math.Pi * c.radius<br />
}<br />
</syntaxhighlight></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=VT2016_Go&diff=31019VT2016 Go2016-10-15T16:21:57Z<p>Marwan.Hallal: </p>
<hr />
<div>=Présentation=<br />
* Sujet : Go, un langage pour les serveurs<br />
* Auteur : Marwan Hallal<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 14/10/2016<br />
<br />
<br />
* Mots-clés : Go, langage, système, concurrence <br />
<br />
<br />
<br />
=Historique=<br />
<br />
Le langage Go a été crée en 2007 au sein de Google par une équipe de trois ingénieurs: Robert Griesemer, Ken Thompson (Unix) et Rob Pike (UTF-8). Le projet devient open-source le 10 Novembre 2009. <br />
<br />
Le nouveau langage était une réponse à certains grands problèmes rencontrés lors du développement de l'infrastructure interne de Google:<br />
* lenteur du processus de build<br />
* mauvaise gestion des dépendances<br />
* coût des mises à jour<br />
* illisibilité du code, mauvaise documentation<br />
<br />
<br />
=Introduction=<br />
<br />
Go est un langage compilé, statiquement typé, concurrent et avec une gestion automatique de la mémoire (garbage-collection). Aujourd'hui, beaucoup de projets utilisent le langage Go, notamment Docker, Vitess (système de clustering pour MySQL, utilisé pour l'infrastructure de YouTube), InfluxDB, ainsi que le serveur de téléchargement de Google.<br />
<br />
C'est un langage de la famille C (syntaxe de base), mais qui s'est inspiré aussi des langages Pascal et Modula (déclarations, packages). Le modèle de concurrence de Go repose sur le langage formel dit CSP de Tony Hoare.<br />
<br />
Une librairie standard exhaustive permet aux développeurs de créer des applications qui accédent au réseau en sécurité (crypto), d'internationaliser (i18n) leur programmes (support Unicode), et de manipuler les données dans beaucoup des base de données les plus utilisées (drivers SQL). <br />
<br />
==Syntaxe de base==<br />
<br />
La syntaxe du langage Go est proche de celle du langage C; Les strucutres de contrôle (if..else, for, switch) s'écrivent presque de la même façon. Les instructions en Go ne se terminent pas par un point-virgule, celles-ci étant ajoutées automatiquement par le compilateur.<br />
<br />
Il existe deux façons de déclarer une variable en Go:<br />
* Déclaration sans initialisation<br />
<syntaxhighlight lang="go"><br />
var x int<br />
var y string<br />
</syntaxhighlight><br />
* Déclaration avec initialisation<br />
<syntaxhighlight lang="go"><br />
var x = 5 // inférence de type<br />
// ou<br />
x := 5<br />
</syntaxhighlight></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=VT2016_Go&diff=31018VT2016 Go2016-10-15T16:21:05Z<p>Marwan.Hallal: </p>
<hr />
<div>=Présentation=<br />
* Sujet : Go, un langage pour les serveurs<br />
* Auteur : Marwan Hallal<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 14/10/2016<br />
<br />
<br />
* Mots-clés : Go, langage, système, concurrence <br />
<br />
<br />
<br />
=Historique=<br />
<br />
Le langage Go a été crée en 2007 au sein de Google par une équipe de trois ingénieurs: Robert Griesemer, Ken Thompson (Unix) et Rob Pike (UTF-8). Le projet devient open-source le 10 Novembre 2009. <br />
<br />
Le nouveau langage était une réponse à certains grands problèmes rencontrés lors du développement de l'infrastructure interne de Google:<br />
* lenteur du processus de build<br />
* mauvaise gestion des dépendances<br />
* coût des mises à jour<br />
* illisibilité du code, mauvaise documentation<br />
<br />
<br />
=Introduction=<br />
<br />
Go est un langage compilé, statiquement typé, concurrent et avec une gestion automatique de la mémoire (garbage-collection). Aujourd'hui, beaucoup de projets utilisent le langage Go, notamment Docker, Vitess (système de clustering pour MySQL, utilisé pour l'infrastructure de YouTube), InfluxDB, ainsi que le serveur de téléchargement de Google.<br />
<br />
C'est un langage de la famille C (syntaxe de base), mais qui s'est inspiré aussi des langages Pascal et Modula (déclarations, packages). Le modèle de concurrence de Go repose sur le langage formel dit CSP de Tony Hoare.<br />
<br />
Une librairie standard exhaustive permet aux développeurs de créer des applications qui accédent au réseau en sécurité (crypto), d'internationaliser (i18n) leur programmes (support Unicode), et de manipuler les données dans beaucoup des base de données les plus utilisées (drivers SQL). <br />
<br />
==Syntaxe de base==<br />
<br />
La syntaxe du langage Go est proche de celle du langage C; Les strucutres de contrôle (if..else, for, switch) s'écrivent presque de la même façon. Les instructions en Go ne se terminent pas par un point-virgule, celles-ci étant ajoutées automatiquement par le compilateur.<br />
<br />
Il existe deux façons pour déclarer une variable en Go:<br />
* Déclaration sans initialisation<br />
<syntaxhighlight lang="go"><br />
var x int<br />
var y string<br />
</syntaxhighlight><br />
* Délcaration avec initialisation<br />
<syntaxhighlight lang="go"><br />
var x = 5 // inférence de type<br />
// ou<br />
x := 5<br />
</syntaxhighlight</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=VT2016_Go&diff=31017VT2016 Go2016-10-15T16:06:00Z<p>Marwan.Hallal: Created page with "=Présentation= * Sujet : Go, un langage pour les serveurs * Auteur : Marwan Hallal * Enseignants : Didier Donsez, Georges-Pierre Bonneau * Date : 14/10/2016 * Mots-clés : ..."</p>
<hr />
<div>=Présentation=<br />
* Sujet : Go, un langage pour les serveurs<br />
* Auteur : Marwan Hallal<br />
* Enseignants : Didier Donsez, Georges-Pierre Bonneau<br />
* Date : 14/10/2016<br />
<br />
<br />
* Mots-clés : Go, langage, système, concurrence <br />
<br />
<br />
<br />
=Historique=<br />
<br />
Le langage Go a été crée en 2007 au sein de Google par une équipe de trois ingénieurs: Robert Griesemer, Ken Thompson (Unix) et Rob Pike (UTF-8). Le projet devient open-source le 10 Novembre 2009. <br />
<br />
Le nouveau langage était une réponse à certains grands problèmes rencontrés lors du développement de l'infrastructure interne de Google:<br />
* lenteur du processus de build<br />
* mauvaise gestion des dépendances<br />
* coût des mises à jour<br />
* illisibilité du code, mauvaise documentation<br />
<br />
<br />
==Introduction==<br />
<br />
Go est un langage compilé, statiquement typé, concurrent et avec une gestion automatique de la mémoire (garbage-collection). Aujourd'hui, beaucoup de projets utilisent le langage Go, notamment Docker, Vitess (système de clustering pour MySQL, utilisé pour l'infrastructure de YouTube), InfluxDB, ainsi que le serveur de téléchargement de Google.<br />
<br />
C'est un langage de la famille C (syntaxe de base), mais qui s'est inspiré aussi des langages Pascal et Modula (déclarations, packages). Le modèle de concurrence de Go repose sur le langage formel dit CSP de Tony Hoare.<br />
<br />
==Syntaxe==</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=File:VT2016_Go_pres.pdf&diff=30988File:VT2016 Go pres.pdf2016-10-14T13:50:10Z<p>Marwan.Hallal: </p>
<hr />
<div></div>Marwan.Hallalhttps://air.imag.fr/index.php?title=VT2016&diff=30956VT20162016-10-13T14:31:13Z<p>Marwan.Hallal: /* 14/10 */</p>
<hr />
<div>[[VT2015|<< Etudes 2015]] [[VT|Sommaire]] [[VT2017|Etudes 2017 >>]]<br />
<br />
<br />
=Veille Technologique et Stratégique=<br />
* Enseignants: Georges-Pierre Bonneau, Didier Donsez<br />
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en RICM5<br />
<br />
L'objectif de cette UE est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance<br />
<br />
Dans votre futur vie d'ingénieur, vous aurez à d'une part, vous former par vous-même sur une technologie émergente et d'autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.<br />
Il s'agira de réaliser<br />
* le positionnement par rapport au marché<br />
* d'être critique<br />
<br />
Votre synthèse fait l'objet d'une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.<br />
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d'une démonstration.<br />
<br />
Votre présentation sera noté et commenté par tous vos camarades via un formulaire (téléphone mobile). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.<br />
<br />
La présentation peut être réalisée avec [[reveal.js]]<br />
<br />
[[File:presentation-VT-RICM5-1617.pdf|transparents d'introduction à l'UE]]<br />
<br />
=Planning=<br />
<br />
[[Image:vt2016-planning.png|center]]<br />
<br />
* DDP : Xueyong Qian<br />
* ???? : ???? (Etudiant UFBA en échange)<br />
<br />
=Seances=<br />
==30/09==<br />
* Le GeoFencing (HATTINGUAIS Julian) [[Geofencing|Fiche de synthèse]], [[Media:Présentation_Geofencing.pdf|Transparents]]<br />
* [[CaaS]] : [[Docker]] Container-as-a-Service (Quentin FAURE) [[VT2016_CaaS|Fiche de synthèse]], [[Media:VT-2016_-_CaaS.pdf |Transparents]]<br />
* [[Gradle]] : application à [[eCOM]] avec [[Docker]] Plugin (GATTAZ Rémi) [[VT2016_Gradle|Fiche de synthèse]], [http://slides.com/gattazr/vt2016_gradle Transparents]<br />
* [[GPGPU]] et [[OpenCL]] (Florian POPEK) [[VT2016_GPGPU|Fiche de synthèse]], [[Media:VT2016_GPGPU_pres.pdf|Transparents]]<br />
<br />
==14/10==<br />
<br />
* Le langage [[Go]] (HALLAL Marwan) [[VT2016_Go|Fiche de synthèse]], [[Media:VT2016_Go_pres.pdf|Transparents]]<br />
* [[Twitter Fabric]] (Nom Prénom) [[VT2016_Fabric|Fiche de synthèse]], [[Media:VT2016_Fabric_pres.pdf|Transparents]]<br />
* [[Chatbots for the Enterprise]] (Niogret Edwin) [[VT2016_Chatbots|Fiche de synthèse]], [[Media:ChatBot NIOGRET.pdf|Transparents]]<br />
* [[Swagger]] (Nom Prénom) [[VT2016_Swagger|Fiche de synthèse]], [[Media:VT2016_Swagger_pres.pdf|Transparents]]<br />
<br />
==21/10==<br />
* [[Serverless Architectures]] : démonstration de [[AWS Lambda]], démonstration d'IBM Bluemix [[Openwhisk]] (Prénom Nom) [[VT2016_Serverless_Architectures|Fiche de synthèse]], [[Media:VT2016_Serverless_Architectures_pres.pdf|Transparents]]<br />
* [[Cuba Plateform]] (Germain Lecorps) [[VT2016_Cuba Plateform|Fiche de synthèse]], [[Media:VT2016_Cuba Plateform_pres.pdf|Transparents]]<br />
* [[The RAIL Performance Model]] : démonstration avec les outils de Profiling de [https://developers.google.com/web/tools/chrome-devtools/profile/?hl=en Chrome DevTools] (Prénom Nom) [[VT2016_RAIL Performance Model|Fiche de synthèse]], [[Media:VT2016_RAIL Performance Model_pres.pdf|Transparents]]<br />
* [[Polymer]] (Prénom Nom) [[VT2016_Polymer|Fiche de synthèse]], [[Media:VT2016_Polymer_pres.pdf|Transparents]]<br />
<br />
==04/11==<br />
<br />
* Caméras Thermiques https://twitter.com/FablabAIR/status/690175639530397696 (Prénom Nom) [[VT2016_XXXXXX|Fiche de synthèse]], [[Media:VT2016_XXXXXX_pres.pdf|Transparents]]<br />
* [[Java 9 Modules and Services]] (Prénom Nom) [[VT2016_XXXXXX|Fiche de synthèse]], [[Media:VT2016_XXXXXX_pres.pdf|Transparents]]<br />
* [[OpenTSDB]] (Prénom Nom) [[VT2016_XXXXXX|Fiche de synthèse]], [[Media:VT2016_XXXXXX_pres.pdf|Transparents]]<br />
* [[TensorFlow]] (Prénom Nom) [[VT2016_XXXXXX|Fiche de synthèse]], [[Media:VT2016_XXXXXX_pres.pdf|Transparents]]<br />
<br />
==18/11==<br />
<br />
* [[IoT cloud platforms]] (Prénom Nom) [[VT2016_IoT cloud platforms|Fiche de synthèse]], [[Media:VT2016_IoT_cloud_platforms_pres.pdf|Transparents]] <br />
* [[Thread]] : démonstration d'[[OpenThread]] (Prénom Nom) [[VT2016_Thread|Fiche de synthèse]], [[Media:VT2016_Thread_pres.pdf|Transparents]]<br />
* [[IoTivity]] (Prénom Nom) [[VT2016_IoTivity|Fiche de synthèse]], [[Media:VT2016_IoTivity_pres.pdf|Transparents]]<br />
* [[Fog Computing]] (Prénom Nom) [[VT2016_Fog Computing|Fiche de synthèse]], [[Media:VT2016_Fog_Computing_pres.pdf|Transparents]]<br />
* [[JerryScript|IoT.js et JerryScript]] : Démonstration sur [[STM32 Nucleo|STM32F4 Nucleo]] (Prénom Nom) [[VT2016_JerryScript|Fiche de synthèse]], [[Media:VT2016_JerryScript_pres.pdf|Transparents]]<br />
<br />
==25/11==<br />
<br />
* Le langage [[Julia]] (Prénom Nom) [[VT2016_Julia|Fiche de synthèse]], [[Media:VT2016_Julia_pres.pdf|Transparents]]<br />
* [[Apache Stratos]] (Prénom Nom) [[VT2016_Stratos|Fiche de synthèse]], [[Media:VT2016_Stratos_pres.pdf|Transparents]]<br />
* [[CloudFoundry]] (Prénom Nom) [[VT2016_CloudFoundry|Fiche de synthèse]], [[Media:VT2016_CloudFoundry_pres.pdf|Transparents]]<br />
* [[Zephyr]] : démonstration avec un [[Arduino 101]] et un STM32 F7 (Prénom Nom) [[VT2016_Zephyr|Fiche de synthèse]], [[Media:VT2016_Zephyr_pres.pdf|Transparents]]<br />
* [[DDP]] : démonstration avec [[Meteor]] et ddp-analyzer-proxy (Prénom Nom) [[VT2016_DDP|Fiche de synthèse]], [[Media:VT2016_DDP_pres.pdf|Transparents]]<br />
<br />
=Sujets=<br />
<br />
<br />
# Le langage [[Go]]<br />
# Le GeoFencing [[Geofencing|Fiche de synthèse]], [[Media:Présentation_Geofencing.pdf|Transparents]]<br />
# Insport Video<br />
# Le langage [[Julia]]<br />
# Gestionnaires de contenu : démonstration de [[Apache Jackrabbit]] dans le projet [[eCOM]]<br />
# [[Twitter Fabric]]<br />
# Caméras Thermiques https://twitter.com/FablabAIR/status/690175639530397696<br />
# [[Memory-centric virtual distributed storage system]]<br />
# [[Performance Monitoring]]<br />
# [[ADEPT]] : [[Blockchain]] at Home<br />
# [[CaaS]] : [[Docker]] Container-as-a-Service<br />
# [[Gradle]] : application à [[eCOM]] avec [[Docker]] Plugin<br />
# [[ESB]] : démonstration de [[Mule ESB]]<br />
# [[Serverless Architectures]] : démonstration de [[AWS Lambda]], démonstration d'IBM Bluemix [[Openwhisk]]<br />
# [[IoT cloud platforms]]<br />
# [[Access Network Query Protocol (ANQP)]]<br />
# [[Cuba Plateform]]<br />
# [[Thread]] : démonstration d'[[OpenThread]]<br />
# [[IoTivity]]<br />
# [[JCache]] : démonstration avec [[Apache Ignity]]<br />
# [[MemCached]]<br />
# [[Chatbots for the Enterprise]]<br />
# [[Apache Stratos]]<br />
# [[Fog Computing]]<br />
# [[CloudFoundry]]<br />
# [[GlusterFS]]<br />
# [[Swagger]]<br />
# [[Fabric8]]<br />
# [[DDP]] : démonstration avec [[Meteor]] et ddp-analyzer-proxy<br />
# [[Zephyr]] : démonstration avec un [[Arduino 101]] et un STM32 F7<br />
# [[gceasy]] : Universal garbage collection log Analyser<br />
# [[OpenWhisk]]<br />
# [[Flow-based data processing]] : démonstration de [[Apache NiFi]]<br />
# [[Cdoe Obofsucaitn]]<br />
# [[Apache Phoenix]] : SQL layer on top of HBase to support the most common SQL-like operations<br />
# [[Java 9 Modules and Services]]<br />
# [[The RAIL Performance Model]] : démonstration avec les outils de Profiling de [https://developers.google.com/web/tools/chrome-devtools/profile/?hl=en Chrome DevTools]<br />
# [[Wildfly Swarm]]<br />
# [[Fog Computing]] : démonstration de [[iFogSim]]<br />
# [[OpenTSDB]]<br />
# [[TensorFlow]]<br />
# [[JerryScript|IoT.js et JerryScript]] : Démonstration sur [[STM32 Nucleo|STM32F4 Nucleo]]<br />
# [[Apache Solr]] : Démonstration avec [http://hortonworks.com/hadoop-tutorial/indexing-and-searching-text-within-images-with-apache-solr/ Tesseract OCR]<br />
# [[Valgrind]]<br />
# [[OpenMP]]<br />
# [[GPGPU]] et [[OpenCL]]<br />
# [[Polymer]]<br />
# [[Prometheus]]</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=VT2016&diff=30955VT20162016-10-13T14:30:44Z<p>Marwan.Hallal: /* 14/10 */</p>
<hr />
<div>[[VT2015|<< Etudes 2015]] [[VT|Sommaire]] [[VT2017|Etudes 2017 >>]]<br />
<br />
<br />
=Veille Technologique et Stratégique=<br />
* Enseignants: Georges-Pierre Bonneau, Didier Donsez<br />
* UE/Module: EAM (HPRJ9R6B) et EAR (HPRJ9R4B) en RICM5<br />
<br />
L'objectif de cette UE est de réaliser un travail de synthèse et d’évaluation sur une technologie / spécification / tendance<br />
<br />
Dans votre futur vie d'ingénieur, vous aurez à d'une part, vous former par vous-même sur une technologie émergente et d'autre part à réaliser une veille technologique (et stratégique) par rapport à votre entreprise et projet.<br />
Il s'agira de réaliser<br />
* le positionnement par rapport au marché<br />
* d'être critique<br />
<br />
Votre synthèse fait l'objet d'une présentation orale convaincante devant un auditoire (dans le futur, vos collègues, vos chefs ou vos clients) avec des transparents et un discours répété.<br />
Pour finir de convaincre (Saint Thomas), vous ferez la présentation d'une démonstration.<br />
<br />
Votre présentation sera noté et commenté par tous vos camarades via un formulaire (téléphone mobile). Leurs notes et leurs commentaires seront notés en fonction de leur exactitude de jugement.<br />
<br />
La présentation peut être réalisée avec [[reveal.js]]<br />
<br />
[[File:presentation-VT-RICM5-1617.pdf|transparents d'introduction à l'UE]]<br />
<br />
=Planning=<br />
<br />
[[Image:vt2016-planning.png|center]]<br />
<br />
* DDP : Xueyong Qian<br />
* ???? : ???? (Etudiant UFBA en échange)<br />
<br />
=Seances=<br />
==30/09==<br />
* Le GeoFencing (HATTINGUAIS Julian) [[Geofencing|Fiche de synthèse]], [[Media:Présentation_Geofencing.pdf|Transparents]]<br />
* [[CaaS]] : [[Docker]] Container-as-a-Service (Quentin FAURE) [[VT2016_CaaS|Fiche de synthèse]], [[Media:VT-2016_-_CaaS.pdf |Transparents]]<br />
* [[Gradle]] : application à [[eCOM]] avec [[Docker]] Plugin (GATTAZ Rémi) [[VT2016_Gradle|Fiche de synthèse]], [http://slides.com/gattazr/vt2016_gradle Transparents]<br />
* [[GPGPU]] et [[OpenCL]] (Florian POPEK) [[VT2016_GPGPU|Fiche de synthèse]], [[Media:VT2016_GPGPU_pres.pdf|Transparents]]<br />
<br />
==14/10==<br />
<br />
* Le langage [[Go]] (Hallal Marwan) [[VT2016_Go|Fiche de synthèse]], [[Media:VT2016_Go_pres.pdf|Transparents]]<br />
* [[Twitter Fabric]] (Nom Prénom) [[VT2016_Fabric|Fiche de synthèse]], [[Media:VT2016_Fabric_pres.pdf|Transparents]]<br />
* [[Chatbots for the Enterprise]] (Niogret Edwin) [[VT2016_Chatbots|Fiche de synthèse]], [[Media:ChatBot NIOGRET.pdf|Transparents]]<br />
* [[Swagger]] (Nom Prénom) [[VT2016_Swagger|Fiche de synthèse]], [[Media:VT2016_Swagger_pres.pdf|Transparents]]<br />
<br />
==21/10==<br />
* [[Serverless Architectures]] : démonstration de [[AWS Lambda]], démonstration d'IBM Bluemix [[Openwhisk]] (Prénom Nom) [[VT2016_Serverless_Architectures|Fiche de synthèse]], [[Media:VT2016_Serverless_Architectures_pres.pdf|Transparents]]<br />
* [[Cuba Plateform]] (Germain Lecorps) [[VT2016_Cuba Plateform|Fiche de synthèse]], [[Media:VT2016_Cuba Plateform_pres.pdf|Transparents]]<br />
* [[The RAIL Performance Model]] : démonstration avec les outils de Profiling de [https://developers.google.com/web/tools/chrome-devtools/profile/?hl=en Chrome DevTools] (Prénom Nom) [[VT2016_RAIL Performance Model|Fiche de synthèse]], [[Media:VT2016_RAIL Performance Model_pres.pdf|Transparents]]<br />
* [[Polymer]] (Prénom Nom) [[VT2016_Polymer|Fiche de synthèse]], [[Media:VT2016_Polymer_pres.pdf|Transparents]]<br />
<br />
==04/11==<br />
<br />
* Caméras Thermiques https://twitter.com/FablabAIR/status/690175639530397696 (Prénom Nom) [[VT2016_XXXXXX|Fiche de synthèse]], [[Media:VT2016_XXXXXX_pres.pdf|Transparents]]<br />
* [[Java 9 Modules and Services]] (Prénom Nom) [[VT2016_XXXXXX|Fiche de synthèse]], [[Media:VT2016_XXXXXX_pres.pdf|Transparents]]<br />
* [[OpenTSDB]] (Prénom Nom) [[VT2016_XXXXXX|Fiche de synthèse]], [[Media:VT2016_XXXXXX_pres.pdf|Transparents]]<br />
* [[TensorFlow]] (Prénom Nom) [[VT2016_XXXXXX|Fiche de synthèse]], [[Media:VT2016_XXXXXX_pres.pdf|Transparents]]<br />
<br />
==18/11==<br />
<br />
* [[IoT cloud platforms]] (Prénom Nom) [[VT2016_IoT cloud platforms|Fiche de synthèse]], [[Media:VT2016_IoT_cloud_platforms_pres.pdf|Transparents]] <br />
* [[Thread]] : démonstration d'[[OpenThread]] (Prénom Nom) [[VT2016_Thread|Fiche de synthèse]], [[Media:VT2016_Thread_pres.pdf|Transparents]]<br />
* [[IoTivity]] (Prénom Nom) [[VT2016_IoTivity|Fiche de synthèse]], [[Media:VT2016_IoTivity_pres.pdf|Transparents]]<br />
* [[Fog Computing]] (Prénom Nom) [[VT2016_Fog Computing|Fiche de synthèse]], [[Media:VT2016_Fog_Computing_pres.pdf|Transparents]]<br />
* [[JerryScript|IoT.js et JerryScript]] : Démonstration sur [[STM32 Nucleo|STM32F4 Nucleo]] (Prénom Nom) [[VT2016_JerryScript|Fiche de synthèse]], [[Media:VT2016_JerryScript_pres.pdf|Transparents]]<br />
<br />
==25/11==<br />
<br />
* Le langage [[Julia]] (Prénom Nom) [[VT2016_Julia|Fiche de synthèse]], [[Media:VT2016_Julia_pres.pdf|Transparents]]<br />
* [[Apache Stratos]] (Prénom Nom) [[VT2016_Stratos|Fiche de synthèse]], [[Media:VT2016_Stratos_pres.pdf|Transparents]]<br />
* [[CloudFoundry]] (Prénom Nom) [[VT2016_CloudFoundry|Fiche de synthèse]], [[Media:VT2016_CloudFoundry_pres.pdf|Transparents]]<br />
* [[Zephyr]] : démonstration avec un [[Arduino 101]] et un STM32 F7 (Prénom Nom) [[VT2016_Zephyr|Fiche de synthèse]], [[Media:VT2016_Zephyr_pres.pdf|Transparents]]<br />
* [[DDP]] : démonstration avec [[Meteor]] et ddp-analyzer-proxy (Prénom Nom) [[VT2016_DDP|Fiche de synthèse]], [[Media:VT2016_DDP_pres.pdf|Transparents]]<br />
<br />
=Sujets=<br />
<br />
<br />
# Le langage [[Go]]<br />
# Le GeoFencing [[Geofencing|Fiche de synthèse]], [[Media:Présentation_Geofencing.pdf|Transparents]]<br />
# Insport Video<br />
# Le langage [[Julia]]<br />
# Gestionnaires de contenu : démonstration de [[Apache Jackrabbit]] dans le projet [[eCOM]]<br />
# [[Twitter Fabric]]<br />
# Caméras Thermiques https://twitter.com/FablabAIR/status/690175639530397696<br />
# [[Memory-centric virtual distributed storage system]]<br />
# [[Performance Monitoring]]<br />
# [[ADEPT]] : [[Blockchain]] at Home<br />
# [[CaaS]] : [[Docker]] Container-as-a-Service<br />
# [[Gradle]] : application à [[eCOM]] avec [[Docker]] Plugin<br />
# [[ESB]] : démonstration de [[Mule ESB]]<br />
# [[Serverless Architectures]] : démonstration de [[AWS Lambda]], démonstration d'IBM Bluemix [[Openwhisk]]<br />
# [[IoT cloud platforms]]<br />
# [[Access Network Query Protocol (ANQP)]]<br />
# [[Cuba Plateform]]<br />
# [[Thread]] : démonstration d'[[OpenThread]]<br />
# [[IoTivity]]<br />
# [[JCache]] : démonstration avec [[Apache Ignity]]<br />
# [[MemCached]]<br />
# [[Chatbots for the Enterprise]]<br />
# [[Apache Stratos]]<br />
# [[Fog Computing]]<br />
# [[CloudFoundry]]<br />
# [[GlusterFS]]<br />
# [[Swagger]]<br />
# [[Fabric8]]<br />
# [[DDP]] : démonstration avec [[Meteor]] et ddp-analyzer-proxy<br />
# [[Zephyr]] : démonstration avec un [[Arduino 101]] et un STM32 F7<br />
# [[gceasy]] : Universal garbage collection log Analyser<br />
# [[OpenWhisk]]<br />
# [[Flow-based data processing]] : démonstration de [[Apache NiFi]]<br />
# [[Cdoe Obofsucaitn]]<br />
# [[Apache Phoenix]] : SQL layer on top of HBase to support the most common SQL-like operations<br />
# [[Java 9 Modules and Services]]<br />
# [[The RAIL Performance Model]] : démonstration avec les outils de Profiling de [https://developers.google.com/web/tools/chrome-devtools/profile/?hl=en Chrome DevTools]<br />
# [[Wildfly Swarm]]<br />
# [[Fog Computing]] : démonstration de [[iFogSim]]<br />
# [[OpenTSDB]]<br />
# [[TensorFlow]]<br />
# [[JerryScript|IoT.js et JerryScript]] : Démonstration sur [[STM32 Nucleo|STM32F4 Nucleo]]<br />
# [[Apache Solr]] : Démonstration avec [http://hortonworks.com/hadoop-tutorial/indexing-and-searching-text-within-images-with-apache-solr/ Tesseract OCR]<br />
# [[Valgrind]]<br />
# [[OpenMP]]<br />
# [[GPGPU]] et [[OpenCL]]<br />
# [[Polymer]]<br />
# [[Prometheus]]</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=Projets_2015-2016&diff=29313Projets 2015-20162016-04-08T21:57:28Z<p>Marwan.Hallal: /* Projet Semestre S8 */</p>
<hr />
<div><<[[Projets 2014-2015]] | [[Projets]] | [[Projets 2016-2017]]>><br />
=RICM=<br />
==RICM3==<br />
<br />
==RICM4==<br />
===Projet Semestre S8===<br />
<br />
Enseignants responsables : Olivier Richard, Didier Donsez<br />
<br />
<br />
* '''Evaluation à mi-parcours le lundi 7 mars''': Format: 10min (5min de présentation 3 slides au plus, 5min de discussion). Cette évaluation sera prise en compte dans la note finale.<br />
<br />
'''Consignes générales:'''<br />
<br />
* '''Vous devez être pro-actifs !!!''': Si des points sont pas ou mals spécifiés, vous le faîtes et vous justifiez vos choix. Pour les problèmes techniques éventuels vous pouvez: vous creusez la question, vous contactez l'auteur du code si il y a lieux, vous faites un rapport de bug ('''Attention:''' ca se prépare !), vous soumettez un patch, vous contactez l'enseignant ou la personne suivant le projet.<br />
<br />
* '''Vous devez maintenir une fiche de suivi de projet''': elle doit être mise à jour chaque semaine, elle rassemble les élements essentiels du projet, elle <br />
indique les évolutions du projet et présente sa feuille de route. '''Note:''' le nom de la fiche doit être composé du nom du projet et suffixé par ricm4_2015_2016.<br />
<br />
* '''Vous devez utiliser un logiciel de gestion de version''' pour vos développements comme [http://en.wikipedia.org/wiki/Git_%28software%29 git ] et nous vous conseillons d'utiliser le site [https://github.com github] pour l'hébergement de votre dépôt public.<br />
<br />
* Les document public (exemple sur github) doivent être rédigés en anglais (README, documentation, commentaires de code, nom de variables et de fonctions). Une bonnification sera accordée si le rapport et les transparents sont en anglais (la soutenance sera en francais).<br />
<br />
{|class="wikitable alternance"<br />
|+ Affectation des projets RICM4 2015-2016<br />
|-<br />
|<br />
!scope="col"| Sujet<br />
!scope="col"| Etudiants<br />
!scope="col"| Enseignant(s)<br />
!scope="col"| Fiche de suivi<br />
!scope="col"| Dépot git<br />
|-<br />
<br />
!scope="row"| 1<br />
| [[Dashboard pour gestionnaire de tâches et de ressources]]<br />
| CROUZET, MATHIEU<br />
| Richard<br />
| [[Projets-2015-2016-DashBoard| '''Fiche''']] - [[DashBoard-UML| '''UML''']] - [[DashBoard-SRS| '''SRS''']]<br />
| [https://github.com/MatthieuCrouzet/Projet4A '''github''']<br />
| [[Media:RapportProjetDashBoard.pdf|Rapport]] - [[Media:TransparentsDashboard.pdf|Transparents]] - [[Media:FlyerProjet1.pdf|Flyer]] - [[Media:gl_groupe1.pdf|Rapport Consultant]] - [[Media:Paterns.pdf|Patterns]] - [[Media:PresentationDashboard.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 2<br />
| [[Speeding Simplified Script Language]]<br />
| POPEK, BERTRAND-DALECHAMPS, WEI<br />
| Richard<br />
| [[Projets-2015-2016-SSSL| '''Fiche''']] - [[SSSL-UML| '''UML''']] - [[Projets-2015-2016-SSSL-SRS | '''SRS''']] <br />
| [https://github.com/FlorianPO/Speeding-Simplified-Script-Language.git '''github''']<br />
| [[Media:RapportProjet2.pdf|Rapport]] - [[Media:Groupe2_AIR.pdf|Rapport Consultant]] - [[Media:PresentationIntermediaireProjet2.pdf|Presentation_Intermediaire]] - [[Media:PresentationFinalProjet2.pdf|Presentation_finale]] - [[Media:FlyerProjet2.pdf|Flyer]]<br />
|-<br />
<br />
!scope="row"| 3<br />
| [[Borne interactive]] <br />
| DUNAND - NAVARRO - REVEL<br />
| Maisonnasse<br />
| [[Projets-2015-2016-Borne-Interactive| '''Fiche''']] - [[Projets-2015-2016-Borne-Interactive-SRS | '''SRS''']] - [[Projets-2015-2016-Borne-Interactive/UML_Diagrams | '''UML''']]<br />
| [https://github.com/Kant73/InteractiveDisplay '''github''']<br />
| [[Media:RapportProjet3.pdf|Rapport]] - [[Media:FlyerProjet3.pdf|Flyer]] - [[Media:IPopo.pdf|Rapport Consultant]] - [[Media:PatternDesign.pdf | '''Design Pattern''']] - [[Media:PresentationInteractiveDisplay.pdf|Présentation Intermédiaire]] - [[Media:BorneInteractive2016pres.pdf|Présentation finale]]<br />
|-<br />
<br />
!scope="row"| 4<br />
| [[Sonotone]]<br />
| LECORPS, VOUTAT, Hattinguais <br />
| Maisonnasse, Richard<br />
| [[Projets-2015-2016-Sonotone| '''Fiche''']] - [[Projets-2015-2016-Sonotone-SRS | '''SRS''']] - [[Projets-2015-2016-Sonotone-UML | '''UML''']]<br />
| [https://github.com/Gorgorot38/Sonotone-RICM4 '''github''']<br />
| [[Media:RapportProjetf.pdf|Rapport]] - [[Media:SlidesSonotone.pdf|Transparents]] - [[Media:FlyerProjet4.pdf|Flyer]] - [[Media:SRS_Consultant_Sonotone_4.pdf|Rapport_Consultant]] - [[Media:pattern_sonotone.pdf|Pattern]] - [[Media:Soutenance.pdf|Soutenance_miparcours]]<br />
|-<br />
<br />
!scope="row"| 5<br />
| [[Sous-titre_en_temps_r%C3%A9el_d%27un_cours| Sous-titre d'un cours en temps réel]]<br />
| LECHEVALLIER, BUI, OUNISSI <br />
| Maisonnasse<br />
| [[LiveSubtitles| '''Fiche''']]- [[Media:UMLLS.pdf|UML]] - [[LiveSubtitlesSRS | '''SRS''']]<br />
| [https://github.com/Lechevallier/RealTimeSubtitles '''github''']<br />
| [[Media:Real-Time-Subtitles-Report.pdf|Rapport]] - [[Media:Real-Time-Subtitles.pdf|Transparents]] - [[Media:RealTimeSubtitles-Leaflet.pdf|Flyer]] - [[Media: SRS_Groupe_5.pdf| Rapport Consultant]]<br />
|-<br />
<br />
!scope="row"| 6<br />
| [[GrenobloisFuté]]<br />
| MOURET, DELAPORTE, LUCIDARME<br />
| Nicolas Palix<br />
| [[GrenobleFuté| '''Fiche''']] - [[SRS - GrenobloisFuté | '''SRS''']] - [[UML Grenoblois Fute | '''UML''']]<br />
| [https://github.com/Lucidarme/Osmand.git '''github''']<br />
| [[Media:RapportGrenobloisfute.pdf|Rapport]] - [[Media:midPresentation.pdf|Mid Presentation]] - [[Media:Flyer GrenobloisFute(3).pdf|Flyer]] - [[Media:gl_G14.pdf|Rapport Consultant]] - [[Media:Présentation GrenobloisFuté.pdf|Transparents]]<br />
|-<br />
<br />
!scope="row"| 7<br />
| [[Streaming en stéréoscopie]]<br />
| ZHAO ZILONG, HAMMOUTI<br />
| Maisonnasse<br />
| [[Projets-2015-2016-Streaming-Stereoscopie| '''Fiche''']] - [[SRS - Streaming en stéréoscopie | '''SRS''']] - [[Projets-2015-2016-streaming_stereo-UML | '''UML''']]<br />
| [https://github.com/zhao-zilong/streaming_stereo '''github''']<br />
| [[Media:Rapport_ZHAO_HAMMOUTI.pdf|Rapport]] - [[Media:TransparentsProojet.pdf|Transparents]] - [[Media:FlyerProjet6.pdf|Flyer]] - [[Media:bruel_medewou_ndiaye.pdf|Rapport_consultant]] - [[Media:streaming.pdf|mi-parcours]] - [[Media:Soutenance_ZHAO_HAMMOUTI.pdf|Soutenance]]<br />
|-<br />
<br />
!scope="row"| 8<br />
| [[PersyCup2016]]<br />
| BIN, ZEGAOUI, ELLAPIN <br />
| Donsez, Maisonnasse<br />
| [[PersyCup| '''Fiche''']] - [[SRS - PersyCup | '''SRS''']]<br />
| [https://github.com/legominstorm/lego '''github''']<br />
| [[Media:RapportProjet.pdf|Rapport_consultant]] - [[Media:TransparentsProojet.pdf|Transparents]] - [[Media:FlyerProjet7.pdf|Flyer]] - [[Media:SoutenanceMiParcours-Persycup2016.pdf|Soutenance Mi-parcours]]<br />
|-<br />
<br />
!scope="row"| 9<br />
| [[Services étendus pour le modèle de composants iPOPO pour Python]]<br />
| FOUNAS, HALLAL, GATTAZ <br />
| Calmant & Donsez<br />
| [[Proj-2015-2016-Extensions_IPOPO | '''Fiche''']] - [[Proj-2015-2016-Extensions_IPOPO/SRS | '''SRS''']] - [[Proj-2015-2016-Extensions_IPOPO/UML | '''UML''']] <br />
| [https://github.com/abdelazizFounas/ipopo/tree/tlsremote '''github IPOPO'''] <br /> [https://github.com/gattazr/IPOPO-Remote-Client '''github IPOPO Client''']<br />
| [[Media:9_RapportProjet9.pdf|Rapport]] - [[Media:9_TransparentsProojet.pdf|Transparents]] - [[Media:9_FlyerProjet8.pdf|Flyer]] - [[Media:9_PatternStrat.pdf|Pattern Design]] - [[Media:9_Mid-Presentation.pdf|Mid Presentation]] - [[Media:9_Gantt.pdf|Gantt]] - [[Media:9_sources.pdf|Sources]]<br />
|-<br />
<br />
!scope="row"| 10<br />
| [[IndoorGeoloc2016]]<br />
| ARRADA - CRASTES - FAURE - STOIAN <br />
| Donsez<br />
| [[Proj-2015-2016-IndoorGeoloc/Fiche| '''Fiche''']] - [[Proj-2015-2016-IndoorGeoloc/SRS|SRS]]<br />
| [https://github.com/QuentinFA/Geoloc_Indoor '''github''']<br />
| [[Media:Rapport_final_Geoloc.pdf|Rapport]] - [[Media:Présentation_Geoloc.pdf|Transparents]] - [[Media:Flyer_geoloc.pdf|Flyer]] - [[Media: SRSGroupe17.pdf| Rapport Consultant]] - [[Media:Mi_parcours.pdf|Mid presentation]] - [[Media:DESIGN_PATTERN_GEOLOC.pdf|Mid presentation]]<br />
|-<br />
<br />
!scope="row"| 11<br />
| [[UPnPOpenHAB2016]]<br />
| Medewou , Ndiaye Yacine , Bruel Anna <br />
| Didier Donsez<br />
| [[Proj-Openhab-2016| '''Fiche''']] - [[Proj-2015-2016-Int%C3%A9gration_de_cam%C3%A9ra_de_surveillance_UPnP_%C3%A0_Openhab/SRS| '''SRS''']] - [[Proj-Openhab/UML| '''UML''']]<br />
| [https://github.com/openHab-UPnP '''github''']<br />
| [[Media:RapportProjet111.pdf|Rapport]] - [[Media:FlyerProjetAnglais111.pdf|EnglishFlyer]] - [[Media:FlyerProjet10.pdf|FrenchFlyer]] - [[Media:soutenace111.pdf|Soutenance]] - [[Media:TransparentsProojet111.pdf|Rapport Analyste]] - [[Media:gl_ZHAO_HAMMOUTI.pdf|Rapport Consultant]] - [[Media:pattern_ZHAO_HAMMOUTI.pdf|Patterns]] - [[Media:fichier111.pdf|Mini soutenance]]<br />
|-<br />
<br />
!scope="row"| 12<br />
| [[Sign2Speech]]<br />
| NIOGRET, NOGUERON, TITH<br />
| Didier Donsez<br />
| [[sign2speech_ricm4_2015_2016| '''Fiche''']] - [[SRS - Sign2Speech | '''SRS''']] - [[UML | '''UML''']]<br />
| [https://github.com/SignToSpeech-Project '''github'''] [[Media:Sign2Speech_2015_2015.tar.gz|'''Sign2Speech Client''']] [[Media:Sign2Speech-server_2015_2015.tar.gz|'''Sign2Speech Server''']]<br />
| [[Media:RapportProjet12_Sign2Speech_2015_2016.pdf|Rapport]] - [[Media:TransparentsProjet12_Sign2Speech_2015_2016.pdf|Transparents]] - [[Media:FlyerProjet11_Sign2Speech_2015-2016.pdf|Flyer]] - [[Media:12-Sign2Speech-RapportConsultant.pdf|Rapport Consultant]] - [[Media:12-Sign2Speech-MidPres.pdf|Mid presentation]] - [[Sign2Speech_RICM4_2015-2016_User_Manual|User Manual]]<br />
|-<br />
<br />
!scope="row"| 13<br />
| [[AstroImage]] <br />
| RACHEX, BLANC, GERRY<br />
| Olivier Richard et Bruno Bzeznik<br />
| [[Proj-2015-2016-Astroimage/Fiche| '''Fiche''']] - [[AstroImage/SRS | '''SRS''']] - UML[[Media:AstroImage-UML.png | '''1''']] + [https://github.com/nicolas-blanc/AstroImage---NightFall/blob/master/nightfallUML.pdf 2]<br />
| [https://github.com/nicolas-blanc/AstroImage '''github''']<br />
| [[Media:DossierAstroImage.pdf|Rapport]] - [[Media:TransparentsProojet.pdf|Transparents]] - [[Media:FlyerAstroImage.pdf|Flyer]] - [[Media:13-AstroImage-RapportConsultant.pdf|Rapport Consultant]] - [https://docs.google.com/presentation/d/15F8DRktwmOuSNabdxMASniyr-TIiRzGNNG1mOhcoSnk/edit?usp=sharing '''Patterns'''] - [https://prezi.com/wacg-8dk6kme/astroimage '''Soutenance'''] <br />
|-<br />
<br />
!scope="row"| 14<br />
| [[Tachymètre]]<br />
| MACE, NOUGUIER, RAMEL<br />
| Olivier Gattaz<br />
| [[Fiche - Tachymètre | '''Fiche''']] - [[SRS - Tachymètre| '''SRS''']] - [[UML - Tachymètre| '''UML''']]<br />
| [https://github.com/Quego/Tachymetre '''github - Tachymètre''']<br />
| [[Media:Projet_Tachym%C3%A8tre_-_MACE_NOUGUIER_RAMEL.pdf|Rapport]] - [[Media:Pr%C3%A9sentation_projet_Tachym%C3%A8tre_-_MACE_NOUGUIER_RAMEL.pdf|Transparents]] - [[Media:D%C3%A9pliant_Tachym%C3%A8tre_-_MAC%C3%89_NOUGUIER_RAMEL.pdf|Flyer]] - [[Media:srs_tachymetre.pdf|Rapport consultant]] - [[Media:14_PatternDesign.pdf | Pattern Design]] - [[Media:Tachymetre_Presentation.pdf | Présentation de milieu de projet]]<br />
|-<br />
<br />
!scope="row"| 15<br />
| [[SmartProjector]]<br />
| BRANGER, HABLOT<br />
| Donsez, Maisonnasse<br />
| [[Fiche_SmartProjector_ricm4_2015_2016| '''Fiche''']] - [[SRS - SmartProjector| '''SRS''']] - [[UML - SmartProjector| '''UML''']]<br />
| [https://github.com/P0ppoff/SmartProjector '''github''']<br />
| [[Media:Expose final.pdf|Rapport]] - [[Media:PresentationPorjet.pdf|Transparents Présentation]] - [[Media:Flyer_SmartProjector.pdf|Flyer]] - [[Media:Gl_groupe16.pdf|Rapport Consultant]] - [http://air.imag.fr/index.php/Patron_de_conception_-_SmartProjector Patterns] - [[Media:Soutenance_SP.pdf|Soutenance finale]] - [[Media:archive.zip|Code Source]]<br />
|-<br />
<br />
|}<br />
<br />
===Liste de projets===<br />
<br />
* [[Dashboard pour gestionnaire de tâches et de ressources]], Olivier Richard<br />
* [[Moteur distribué d'exécution de commande]], Olivier Richard<br />
* [[Environnement d'expérimentation de pour NVIDIA Shield (Tegra X1)]], Olivier Richard <br />
* [[Speeding Simplified Script Language]], Olivier Richard<br />
<br />
* Aide (Open-Source)au Handicap Auditif, avec Didier Donsez, Jérome Maisonnasse, Marie-Paule Balicco (SAH UGA) et Nicolas Vuillerme<br />
** [[Borne interactive]] (1 sujet)<br />
** [[Sonotone]] (1 sujet)<br />
** [[Sous-titre en temps réel d'un cours]] (1 sujet)<br />
* [[GrenobloisFuté]] Couche trafic sur OsmAnd avec un greffon. Données dynamique de la métro. Dvp Android. Nicolas Palix.<br />
* [[GeoDiff]] Production, visualisation, fusion de variations (diff) sur de l'information géocodée : Nicolas Palix<br />
* [[Smart campus augmenté et contributif]] Didier Donsez, Vivien Quema<br />
<br />
* [[Streaming en stéréoscopie]] sur [[WebRTC]] avec rendu sur [[Oculus]] pour le robot [[RobAIR]], Jérôme Maisonnasse. ([http://gstconf.ubicast.tv/videos/stereoscopic-3d-video/ voir]).<br />
* [[STM32F7]] : Mise en oeuvre de la chaîne de compilation sous Linux avec [[OpenSTM32]] et [[OpenOCD]]. Nicolas Palix<br />
* [[PersyCup2016]] : Persyval Robocup, Didier Donsez, Vivien Quema, Jérome Maisonnasse. (3 étudiants)<br />
* [[Services étendus pour le modèle de composants iPOPO pour Python]], Didier Donsez & Thomas Calmant. (2 étudiants)<br />
* [[SmartClassRoom2016|Développement d'une interface partagée pour tables tactiles (projet SmartClassRoom)]], Didier Donsez, Jérôme Maisonnasse. (2 étudiants)<br />
* [[iRock2016|iRock : surveillance de glissement de terrains]], Didier Donsez & Vivien Quema<br />
* [[IndoorGeoloc2016|Géolocalisation in-door au moyen de balises (beacon) BLE et Wifi à base de STM32 et de balises iBeacon & AltBeacon]], Didier Donsez & Vivien Quema<br />
* [[UPnPOpenHAB2016|Intégration et gestion de caméras de surveillance UPnP dans la plateforme domotique open-source OpenHAB et myOpenHAB]], Didier Donsez & Jérome Maisonnasse.<br />
<br />
'''Projets non prioritaires'''<br />
<br />
* [[Liveprogramming with Kivy]], Olivier Richard<br />
* [[AstroImage]] production d'image d'astronomie, Olivier Richard et Bruno Bzeznik<br />
* [[G-code Cruncher]] Controle de machine CNC (Nucleo grbl + esp8266 + Sdcard), Olivier Richard<br />
* [[Intégration OpenHAB / OpenTele]] Nicolas Palix<br />
<br />
==RICM5==<br />
<br />
===Projet Semestre S10===<br />
<br />
Enseignant responsable : Didier Donsez<br />
<br />
Démarrage : Lundi 25/01 à 10H30-12H30, P253 (Rendez-vous devant la salle AIR) - Visioconf pour Thibaut Cordier<br />
<br />
Soutenance : Jeudi 17/03 à 13H00-17H00, salle P043 (Polytech Grenoble)puis en salle C005 (Batiment C) <br />
<br />
Etudiants : RICM5 + 8 étudiants Avosti DUT RT<br />
<br />
Rappel séances MPI<br />
* Séance 1 : mardi 26 janvier après midi - Stéphanie Diligent<br />
* Séance 2 : mardi 2 février après midi - Stéphanie Diligent<br />
* Séance 3 : lundi 8 février matin - Emmanuelle Tréhoust<br />
* Séance 4 : jeudi 11 février matin - Emmanuelle Tréhoust<br />
* Séance 5 : lundi 21 mars matin - Stéphanie Diligent et Emmanuelle Tréhoust<br />
<br />
=====Soutenances=====<br />
Planning:<br />
* Bossa (13H00-13H40 en salle P043)<br />
* Immersion EDF (13H45-14H25 en salle P043)<br />
* IaaS Docker (14H30-15H10 en salle P043)<br />
* SmartCampus (15H15-15H55 en salle P043 et salle P259 AIR)<br />
* SmartClassRoom (16H15-16H55 en C005)<br />
* Pot d' "Au Revoir" (17H00-1800 en C005)<br />
<br />
Instructions:<br />
*Chaque soutenance comporte 15 minutes de présentation, 15 minutes de démonstration et 10 minutes de questions. Un transparent doit être consacré au travail confié et réalisé par les étudiants en DUT (AVOSTI).<br />
* Répétez plusieurs fois votre présentation et votre démonstration.<br />
* L'ensemble des documents (y compris photos, vidéos et ''[[Logiciels#Screencast|screencast]]s'') doivent être accessibles depuis le tableau ci-dessous et dans chaque fiche de suivi. Prévoyez une copie sur clé USB.<br />
* Les étudiants vous accompagnent lors de votre soutenance.<br />
* '''TOUT Le matériel prêté devra être rapporté et restitué dans un sac cabas lors de la soutenance.'''<br />
<br />
=====Projets=====<br />
{|class="wikitable alternance"<br />
|+ Affectation des projets RICM5 2015-2016<br />
|-<br />
|<br />
!scope="col"| Sujet<br />
!scope="col"| Etudiants<br />
!scope="col"| Enseignant(s)<br />
!scope="col"| Fiche de suivi<br />
!scope="col"| Dépot git<br />
!scope="col"| Documents<br />
|-<br />
<br />
!scope="row"| 1<br />
| [http://air.imag.fr/index.php/IaaS_collaboratif_avec_Docker IaaS - Docker]<br />
| Eudes Robin, Damotte Alan, Barthelemy Romain, Mammar Malek, Guo Kai<br />
| Didier Donsez<br />
| [[Projets-2015-2016-IaaS_Docker| '''Fiche''']] - [[Projets-2015-2016-IaaS_Docker-SRS| '''SRS''']]<br />
| [https://github.com/EudesRobin/iaas-collaboratif '''github''']<br />
| [[Media:RapportMPI_Iaas.pdf|Rapport MPI]] - [[Media:Transparents_IaaS.pdf|Transparents]] - [[Media:Flyer_IaaS.pdf|Flyer]] - [https://youtu.be/qtqgZNrgcRc '''Screencast''']<br />
|-<br />
!scope="row"| 2<br />
| [http://air.imag.fr/index.php/Portage_de_Bossa Portage de Bossa sur le Kernel Linux 4x]<br />
| Eric Michel Fotsing, Ombeline Rossi, Longfei Yao<br />
| Nicolas Palix, Didier Donsez<br />
| [[Projets-2015-2016-Portage_Bossa| '''Fiche''']] - [[Projets-2015-2016-Portage_Bossa-SRS| '''SRS''']]<br />
| Private repository<br />
| [[Media:Rapport_Bossa.pdf|Rapport]] - [[Media:Transparents_Bossa.pdf|Transparents]] - [[Media:Flyer_Bossa.pdf|Flyer]] - Photos - Vidéos <br />
|-<br />
<br />
!scope="row"| 3<br />
| [[Visite immersive en réalité virtuelle dans une usine avec EDF]]<br />
| Adam Christophe, Aissanou Sarah, Klipffel Tararaina, Qian Jean, Zominy Laurent<br />
| Didier Donsez, Georges-Pierre Bonneau, Thibaut Cordier (EDF)<br />
| [[Projets-2015-2016-VisiteImmersiveEDF| '''Fiche''']]<br />
| [https://github.com/VisiteImmersiveEDF '''github''']<br />
| [[Media:RapportProjetX.pdf|Rapport]] - [[Media:TransparentsProojetX.pdf|Transparents]] - [[Media:FlyerProjetX.pdf|Flyer]] - Photos - Vidéos<br />
|-<br />
<br />
!scope="row"| 4<br />
| [[Contribution à OpenSmartCampus]] (voir http://data.beta.metropolegrenoble.fr/)<br />
| Quentin Torck, Vivien Michel, Jérémy Hammerer, Rama Codazzi, Zhengmeng Zhang<br />
| Didier Donsez, Vivien Quéma<br />
| [[Projets-2015-2016-OpenSmartCampus| '''Fiche''']]<br />
| [https://github.com/quentin74/SmartCampus.git '''github''']<br />
| [[Media:RapportProjetOpenSmartCampus2016.pdf|Rapport]] - [[Media:TransparentsProojetOpenSmartCampus2016.pdf|Transparents]] - [[Media:FlyerProjetOpenSmartCampus2016.pdf|Flyer]] - Photos - Vidéos<br />
|-<br />
<br />
!scope="row"| 5<br />
| [[Contribution à SmartClassRoom]] (Interfaces tactiles distribuées et partagées)<br />
| Saussac Thibault, Toussaint Sébastien, Hamdani Youcef, Zoppello Sebastien, Melik sak, Mesnier Vincent<br />
| Jérôme Maisonnasse, Didier Donsez<br />
| [[Projets-2015-2016-SmartClassRoom| '''Fiche''']] - [[Projets-2015-2016-SmartClassRoom/SRS| '''SRS''']]<br />
| [https://github.com/vince0508/SmartClassroom-TiledDisplayPart-master_Main '''github''']<br />
| [[Media:RapportProjetSmartClassRoom.pdf|Rapport]] - [[Media:TransparentsProjetSmartClassRoom.pdf|Transparents]] - [[Media:FlyerProjetSmartClassRoom.pdf|Flyer]] - [https://youtu.be/FEwoA4S9rsM '''Screencast/Vidéo''']<br />
|-<br />
<br />
<br />
|}<br />
<br />
===Projets annulés et reportés===<br />
* Projet avec [[Tango Project]] (Annulé)<br />
* Hack the Beam, Didier Donsez & Jérôme Maisonnasse.<br />
* [[Algorithmes de suivi de personnes pour robot de téléprésence RobAIR]] (Jérôme Maisonnasse, Didier Donsez)<br />
<br />
=M2PGI=<br />
==[[Projets M2PGI Services Machine-to-Machine|Projet Services Machine-to-Machine]]==<br />
* [[PM2M/2016/TP|Sujet et groupes]]</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=Proj-2015-2016-Extensions_IPOPO/SRS&diff=28612Proj-2015-2016-Extensions IPOPO/SRS2016-04-04T09:45:34Z<p>Marwan.Hallal: /* 3.3 Requirement 3 : Creation of a Certificate Authority */</p>
<hr />
<div> {|class="wikitable alternance"<br />
|+ Document History<br />
|-<br />
|<br />
!scope="col"| Version<br />
!scope="col"| Date<br />
!scope="col"| Authors<br />
!scope="col"| Description<br />
!scope="col"| Validator<br />
!scope="col"| Validation Date<br />
|-<br />
!scope="row" |<br />
| 0.1.0<br />
| January 18, 2016<br />
| Marwan HALLAL, Rémi GATTAZ, Abdelaziz FOUNAS<br />
| Creation of the document<br />
| TBC<br />
| TBC<br />
<br />
|}<br />
<br />
<br />
=1. Introduction=<br />
==1.1 Purpose of the requirements document==<br />
This Software Requirements Specification (SRS) identifies the requirements for project StartAir Safe.<br />
In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves.<br />
<br />
==1.2 Scope of the product==<br />
The goal of the project is to add to IPOPO an encrypted remote shell without using external modules as much as possible. Adding this shell would allow the use of sensitive data, such as passwords, from a client to an IPOPO application.<br />
<br />
==1.3 Definitions, acronyms and abbreviations==<br />
* IPOPO : A Python-based Service-Oriented Component Model [http://ipopo.coderxpress.net/wiki/doku.php Documentation officielle]<br />
* Shell : A shell is a user interface for access to an operating system's services. It is accessed through a command-line interface (CLI)<br />
* CLI (Command Line Interface) : A means of interacting with a computer program where the user (or client) issues commands to the program in the form of successive lines of text (command lines)<br />
* IPOPO internal shell : IPOPO component allowing the management of a running IPOPO application.<br />
* IPOPO Remote shell : IPOPO component allowing a remote access to an IPOPO internal shell.<br />
* PKI (Public Key Infrastructure) : a set of roles, policies, and procedures needed to create, manage, distribute, use, store, and revoke digital certificates[1] and manage public-key encryption<br />
<br />
==1.4 References==<br />
The main page of the project: [[Services étendus pour le modèle de composants iPOPO pour Python | '''IPOPO Projects''']]<br />
<br />
==1.5 Overview of the remainder of the document==<br />
The next chapter, the Overall Description section, of this document gives an overview of the functionality of the product. It describes the informal requirements and is used to establish a context for the technical requirements specification in the next chapter. The third chapter, Requirements Specification section, of this document is written primarily for the developers and describes in technical terms the details of the functionality of the product. Both sections of the document describe the same software product in its entirety, but are intended for different audiences and thus use different language.<br />
<br />
<br />
=2. General description=<br />
==2.1 Product perspective==<br />
The goal of this project to create two IPOPO extensions :<br />
* An encrypted version of the IPOPO remote shell<br />
* The creation of a PKI<br />
<br />
The first extension will use the PKI to handle a set of users using certificates.<br />
<br />
==2.2 Product functions==<br />
Using these two extensions, an ipopo application administrator will be able to manage users and their secured access to the IPOPO remote shell.<br />
<br />
==2.3 User characteristics==<br />
The users of these two extensions are any IPOPO users.<br />
<br />
==2.4 General constraints==<br />
* Developed in python<br />
* Compatible with python2 and python3<br />
* Without external dependencies<br />
* Compatible Linux and Windows<br />
<br />
==2.5 Assumptions and dependencies==<br />
If necessary, the compatibility with Windows can be ignored at first.<br />
<br />
=3. Specific requirements, covering functional, non-functional and interface requirements=<br />
<br />
==3.1 Requirement 1 : An encrypted remote shell server ==<br />
<br />
'''Description''':<br />
Service allowing a client to connect with an encrypted connexion to an IPOPO remote shell. The client and the server are mutually authenticated.<br />
<br />
'''Inputs''': <br />
* Server Key<br />
* Server Certificate<br />
* Chain of certification<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
* A secured remote shell connection is created for every client providing an accepted certificated<br />
<br />
'''Destination''': IPOPO application administrator<br />
<br />
'''Action''':<br />
* Creation of a TCP server<br />
* SSL wrapping of every new connection<br />
* Verification of client certificates<br />
* Reception/Emission of encrypted messages to client<br />
<br />
'''Non functional requirements''':<br />
* The Server Key, certificates and chain of certification must exist<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
==3.2 Requirement 2 : An encrypted remote shell client ==<br />
<br />
'''Description''':<br />
Client using a secured connection to an encrypted IPOPO remote shell server. The client and the server are mutually authenticated.<br />
<br />
'''Inputs''':<br />
* Client Key<br />
* Client Key<br />
* Chain of certification<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
* A secured remote shell connection <br />
<br />
'''Destination''': Any IPOPO user<br />
<br />
'''Action''':<br />
* Creation of a TCP socket<br />
* SSL wrapping of the socket<br />
* Verification of server's certificates<br />
* Reception/Emission of encrypted messages<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
* The Server Key, certificates and chain of certification must exist<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
<br />
==3.3 Requirement 3 : Creation of a Certificate Authority ==<br />
<br />
'''Description''':<br />
The administrator of an iPOPO application can create a certification authority that will allow to generate client certificates.<br />
<br />
'''Inputs''':<br />
* Name of the authority to be created<br />
* A root certificate authority<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
* An intermediate certificate authority<br />
<br />
'''Destination''': An iPOPO application<br />
<br />
'''Action''':<br />
* Creation of a certificate chain with a root certificate<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
* A root certificate exists on the server<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
==3.4 Requirement 4 : Creation of a Server's Key and Certificate ==<br />
==3.5 Requirement 5 : Creation of a Client's Key and Certificate ==<br />
==3.6 Requirement 6 : Revocation of a Client's Certificate ==<br />
<br />
=4. Product evolution=<br />
<br />
=5. Appendices=<br />
<br />
==5.1. SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=6. Index=</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=Proj-2015-2016-Extensions_IPOPO/SRS&diff=25836Proj-2015-2016-Extensions IPOPO/SRS2016-01-18T14:13:16Z<p>Marwan.Hallal: /* 1.1 Purpose of the requirements document */</p>
<hr />
<div> {|class="wikitable alternance"<br />
|+ Document History<br />
|-<br />
|<br />
!scope="col"| Version<br />
!scope="col"| Date<br />
!scope="col"| Authors<br />
!scope="col"| Description<br />
!scope="col"| Validator<br />
!scope="col"| Validation Date<br />
|-<br />
!scope="row" |<br />
| 0.1.0<br />
| January 18, 2016<br />
| Marwan HALLAL, Rémi GATTAZ, Abdelaziz FOUNAS<br />
| IPOPO description<br />
| TBC<br />
| TBC<br />
<br />
|}<br />
<br />
<br />
=1. Introduction=<br />
==Purpose of the requirements document==<br />
This Software Requirements Specification (SRS) identifies the requirements for project StartAir Safe.<br />
In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves.<br />
<br />
==Scope of the product==<br />
<br />
==1.3 Definitions, acronyms and abbreviations==<br />
==1.4 References==<br />
*The main page of the project: [[Proj-2013-2014-StartAIR-2]]<br />
<br />
==1.5 Overview of the remainder of the document==<br />
=2. General description=<br />
==2.1 Product perspective==<br />
==2.2 Product functions==<br />
==2.3 User characteristics==<br />
==2.4 General constraints==<br />
==2.5 Assumptions and dependencies==<br />
=3.Specific requirements, covering functional, non-functional and interface requirements=<br />
* document external interfaces,<br />
* describe system functionality and performance<br />
* specify logical database requirements,<br />
* design constraints,<br />
* emergent system properties and quality characteristics.<br />
<br />
==3.1 Requirement X.Y.Z (in Structured Natural Language)==<br />
'''Function''':<br />
<br />
'''Description''':<br />
<br />
'''Inputs''':<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
<br />
'''Destination''':<br />
<br />
'''Action''':<br />
* Natural language sentences (with MUST, MAY, SHALL)<br />
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)<br />
* Mathematical Notations<br />
* Tabular notations for several (condition --> action) tuples<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
=4. Product evolution=<br />
<br />
=5. Appendices=<br />
<br />
==5.1. SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=6. Index=</div>Marwan.Hallalhttps://air.imag.fr/index.php?title=Proj-2015-2016-Extensions_IPOPO/SRS&diff=25835Proj-2015-2016-Extensions IPOPO/SRS2016-01-18T14:12:59Z<p>Marwan.Hallal: /* 1.2 Scope of the product */</p>
<hr />
<div> {|class="wikitable alternance"<br />
|+ Document History<br />
|-<br />
|<br />
!scope="col"| Version<br />
!scope="col"| Date<br />
!scope="col"| Authors<br />
!scope="col"| Description<br />
!scope="col"| Validator<br />
!scope="col"| Validation Date<br />
|-<br />
!scope="row" |<br />
| 0.1.0<br />
| January 18, 2016<br />
| Marwan HALLAL, Rémi GATTAZ, Abdelaziz FOUNAS<br />
| IPOPO description<br />
| TBC<br />
| TBC<br />
<br />
|}<br />
<br />
<br />
=1. Introduction=<br />
==1.1 Purpose of the requirements document==<br />
This Software Requirements Specification (SRS) identifies the requirements for project StartAir Safe.<br />
In case of a open source project, we must present the requirement to others potential contributors. This document is a guideline about the functionalities offered and the problems that the system solves.<br />
<br />
==Scope of the product==<br />
<br />
==1.3 Definitions, acronyms and abbreviations==<br />
==1.4 References==<br />
*The main page of the project: [[Proj-2013-2014-StartAIR-2]]<br />
<br />
==1.5 Overview of the remainder of the document==<br />
=2. General description=<br />
==2.1 Product perspective==<br />
==2.2 Product functions==<br />
==2.3 User characteristics==<br />
==2.4 General constraints==<br />
==2.5 Assumptions and dependencies==<br />
=3.Specific requirements, covering functional, non-functional and interface requirements=<br />
* document external interfaces,<br />
* describe system functionality and performance<br />
* specify logical database requirements,<br />
* design constraints,<br />
* emergent system properties and quality characteristics.<br />
<br />
==3.1 Requirement X.Y.Z (in Structured Natural Language)==<br />
'''Function''':<br />
<br />
'''Description''':<br />
<br />
'''Inputs''':<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
<br />
'''Destination''':<br />
<br />
'''Action''':<br />
* Natural language sentences (with MUST, MAY, SHALL)<br />
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)<br />
* Mathematical Notations<br />
* Tabular notations for several (condition --> action) tuples<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
=4. Product evolution=<br />
<br />
=5. Appendices=<br />
<br />
==5.1. SRS structure==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=6. Index=</div>Marwan.Hallal