37
Outils de Prototypage Rapide Multi-Dispositifs : Wcomp .NET Jean-Yves Tigli, tigli @ essi.fr Enseignant Chercheur Université de Nice Sophia Antipolis Polytech’Nice Sophia Antipolis Département Informatique Filière Systèmes Embarqués et Applications Mobiles Equipe Rainbow, laboratoire I3S UMR 6070 CNRS UNSA

C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, [email protected]@essi.fr Enseignant Chercheur Université de Nice Sophia

Embed Size (px)

Citation preview

Page 1: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

COutils de Prototypage Rapide Multi-Dispositifs : Wcomp .NET

Jean-Yves Tigli, [email protected] Enseignant ChercheurUniversité de Nice Sophia Antipolis

Polytech’Nice Sophia AntipolisDépartement InformatiqueFilière Systèmes Embarqués et Applications Mobiles

Equipe Rainbow, laboratoire I3S UMR 6070 CNRS UNSA

Page 2: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

C

Wcomp .NET (2004-2005)

Daniel Cheung Foo Wo,

[email protected] Rainbow

Samuel Weibel,

[email protected]énieur ESSI - Polytech Nice Sophia Antipolis

Wagner De Morais

[email protected] de Master recherche

ESSI - Polytech Nice Sophia Antipolis

Avec le soutien de

Et un grand nombre de projets d’étudiants du Département d’Informatique de l’EcolePolytechnique de l’Université de Nice Sophia Antipolis…

Page 3: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

C

Partie 1 : Contexte de Travail

Page 4: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

C Futur : un grand nombre de dispositifs

Exemples : Pour les ordinateurs « portables » du futur Pour les bâtiments

Contexte les systèmes Multi-dispositifs

Page 5: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Wearable Computer

“Controllable by the user, is always on, always accessible and do not disturbs the user attention. [Mann]”

Page 6: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Multi-dispositifs Alternatifs

Dispositifs d’entrée textuelle Chord Keyboard - Wrist Keyboard - Virtual keyboard

Dispositifs de pointage Essential Reality P5 Glove

Page 7: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Multi-dispositifs Alternatifs

Dispositifs de sortie Eyeglasses

Page 8: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Même problématique dans le BHT …

Collaboration avec le CSTB Sophia Antipolis

Page 9: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Partie 2 : Notre Approche de RAD dans ce contexte …

Page 10: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

RAD dans les IHMs

Cycle en spyral

Bien connu Pour les GUI …

Mais aussi pour les systèmes multi-dispositifs en général

Page 11: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

RAD et Programmation Evénementielle

Programmation Evénementielle<< L’approche événementielle intervient

principalement dans l’interface entre le logiciel et l’utilisateur, mais aussi dans la liaison dynamique du logiciel avec le système, et enfin dans la sécurité. >>

Page 12: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

RAD et Programmation Visuelle Programmation Visuelle Deux approches :

Basée sur le Rendu Graphique (Visual Studio) Nous aide et simplifie notre tâche dans la construction

du dialogue homme-machine Approche multi-dispositifs [Phidget]

Basée sur le Graphe événementiel (notre approche)

Intéressante pour la perspectives multi-dispositifs car pas forcémment de fonction graphique [ICON, WComp]

Page 13: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Approche Wcomp …

Objectifs :

Outils de programmation visuelle et événementielle orienté graphe événementiel

Utilisant des composants Mixtes logiciel/matériel

Page 14: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Approche Wcomp …

Vers une méthodologie de RAD matériel / logiciel :

1. Connecter les dispositifs utilisés pour utiliser les composants logiciels associés

2. Construire, si besoin est, de nouveaux composants logiciels

3. Créer le graphe événementiel de l’application

Page 15: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Partie 3 : Les outils Wcomp .Net

Page 16: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Les Outils

Wcomp Dev Center Visual Studio Add-On

Page 17: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Architecture Générale Wcomp Dev Center

Générateur de Code Import / Export XML Générateur de Bean SOAP

Page 18: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Visual Studio Add-on : Bean .Net builder

using System; using WComp.Beans; namespace Bean2 { /// <summary> /// Description rsume de Class1. /// </summary> [Bean] public class Class1 { // // TODO: ajoutez ici les proprits et les mthodes de ce Bean // } }

Page 19: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

DEMO ….

Wcomp Dev Center Création d’un lien simple Connexion d’un lien incompatible

Visual Studio Add Ons Création d’un Beanet

Exemple : Texttospeech

Page 20: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Partie 4 : Quelques éléments d’implémentation …

De Wcomp Java à .Net

Page 21: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Les événements en Java Une première approche basée sur les

Beans en Java est le pattern « observateur » ou source/listener

Page 22: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Les événements en .Net

Déjà pris en charge grâce à la délégation : Un abonné est une méthode Un événement est un délégué particulier

Page 23: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

La Délégation

Declarer un delegate

Instancier un delegate

Appeler un delegate

delegate void MyDelegate1(string s);delegate void MyDelegate1(string s);

MyDelegate1 a = new MyDelegate1(MyClass.Hello); MyClass p = new MyClass(); MyDelegate1 b = new MyDelegate1(p.AMethod);

MyDelegate1 a = new MyDelegate1(MyClass.Hello); MyClass p = new MyClass(); MyDelegate1 b = new MyDelegate1(p.AMethod);

a("World");a("World");

Page 24: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Les événements Déclarer un événement

Souscrire à un événement

Emettre un événement

public delegate void MouseClickedEventHandler();public class Mouse { public static event MouseClickedEventHandler

MouseClickedHandler;}

public delegate void MouseClickedEventHandler();public class Mouse { public static event MouseClickedEventHandler

MouseClickedHandler;}

private void MouseClicked() {...}Mouse.MouseClickedHandler += new

MouseClickedEventHandler(MouseClicked);

private void MouseClicked() {...}Mouse.MouseClickedHandler += new

MouseClickedEventHandler(MouseClicked);

if (MouseClickedHandler != null) MouseClickedHandler();

if (MouseClickedHandler != null) MouseClickedHandler();

Page 25: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Les attributs personnalisés

On peut étendre le .NET Framework avec ses propres attributs appelés attributs personnalisés

Ecrire une classe dérivant de System.Attribute

les informations contenues dans les métadonnées sont accessibles via les méthodes des classes proposées par l'espace de nom System.Reflection

Page 26: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Les attributs personnalisés Déclaration d’un attribut personnalisé

Utilisation d’un attribut personnalisé

public class MyClass{ [MyAttribute] public virtual void MyMethod() { //... }}

public class MyClass{ [MyAttribute] public virtual void MyMethod() { //... }}

public class MyAttribute :Attribute{}

public class MyAttribute :Attribute{}

Page 27: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Le Bean .Net Evénementsusing System; using System.ComponentModel; using WComp.Beans; namespace Bean4 { /// <summary> /// Description rsume de Class1. /// </summary> [Bean] public class Class1 { // delegate implicite de void EventHandler(object sender, EventArgs e) public event EventHandler MyEvent; // graphiquement ce qui sera fait : // MyEvent += new EventHandler(func) // avec private void func(object sender, EventArgs e)

Attribut Personnalisé

Evénement

Page 28: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Le Bean .Net

Propriétés… // Nom de la propriété avec minuscule // variable de sauvegarde propriété protected int myprop = 1; //meta donnée : valeur par défaut propriété [DefaultValue(1)] // déclaration propriété : public <type> Nom public int Myprop { get { return myprop; } set { if (myprop < 1) { throw new ArgumentException("positif !"); } // mot clef value myprop = value; } } …

Propriété

Attribut Personnalisé

Page 29: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Le Bean .Net

Méthodes

// méthodes public void MyStep(int val1, int val2) { if (myprop >= max) { myprop=1; MyEvent(this, null); } else myprop++; }

Page 30: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Partie 5 : Application

Sur une idée d’Eric Mittelette (Microsoft

France)…

Page 31: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Dirigeable : Evolution 1

http://www.plantraco.com/main.html

http://www.airpubimpact.com

Page 32: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Dirigeable Wcomp .NET

Page 33: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Partie 5 : Conclusion

Page 34: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Limites de Wcomp .Net

Extension Compact .Net Framework : absence de mécanisme de réflexion

.Net Framework 2.0, enfin SerialCom en code managé !

Page 35: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Perspectives de Wcomp .Net

[Pédagogie] Wearable Computer ou

Ordinateur Porté, Xybernaut MA V sous windows XP

[Recherche] Vers Wcomp supérieures

pour l’adaptation dynamique des applications

Page 36: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Remerciements Pierre Louis Xech, MSR Eric Mittelette, Laurent Ellerbach,

Laurent Herbulot, Microsoft France …

Les étudiants de Polytech’ Nice Sophia Antipolis : Daniel, Samuel, Wagner, Geoffroy, etc.

Page 37: C Outils de Prototypage Rapide Multi- Dispositifs : Wcomp.NET Jean-Yves Tigli, tigli@essi.frtigli@essi.fr Enseignant Chercheur Université de Nice Sophia

CC

Quelques Références

Equipe Rainbow : http://rainbow.essi.fr Wcomp : http://parpaouin.essi.fr

Wcomp Java Wcomp .NET

Mann Steeve, http://wearcam.org/steve.html Phidget : http://www.phidgets.com/ ICON : http://liihs.irit.fr/dragice/icon/

Steve Mann,” Definition of Wearable Computer”,http://wearacam.org/wearcompdef.html

“What's a Wearable?”, http://wearables.www.media.mit.edu/projects/wearables/

M. Billinghurst, J. Bowskill, N. Dyer and J. Morphett, “An Evaluation of Wearable Information Spaces”