Nous sommes aujourd'hui même dans la dernière séance de notre projet de première année qui consistait à parler d'un sujet de génie logicielle sur un blog qui devra être référencé sur Google.
Nous pensons donc qu'il est venu l'heure du bilan de ce projet de manière à synthétiser nos résultats :
- Nous pensons tout d'abord que nous avons réussi à entrer dans le vif du sujet de l'introspection. En effet des plugins comme le JAR loader ou le ClassExplorer nous ont permis d'en apprendre un peu plus sur le fameux package java.reflect, tellement utile dans notre démarche d'introspection.
- Nous avons pu améliorer le concept du processeur sur suggestion de notre professeur référent et ainsi faire naitre une plateforme stable sur laquelle nous avons pu apprendre à développer des plugins et ainsi approcher le concept de chargement dynamique des plugins.
- Nous pensons enfin, Yann et moi même, avoir réussi une bonne répartition du travail pendant ce projet de manière à maintenir notre blog régulièrement à jour et nous avons pu aussi faire découvrir à l'autre les connaissances acquises dans l'introspection lors du développement respectif des applications pour notre XProcessor.
Tous ces facteurs font que nous sommes relativement content de notre projet et de notre travail. En espérant que notre sentiment sera cohérent avec notre note ! :-)
mercredi 11 juin 2008
[Projet] Blian de notre projet de première année
[Projet] XProcessor nouvelle version
Juste une mise à jour pour fêter la nouvelle version de notre programme, avec l'ensemble des fichiers de langues ainsi que un petit plus... le nouveau splashscreen!
[Projet] Mise à jour
Désormais accessible sur le serveur FTP du site:
- Processor.jar
- Processor-src.jar
- XConsole.jar
- XConsole-src.jar
- QuickGUI.jar
- QuickGUI-src.jar
[Projet] XConsole pour XProcessor
Pour que notre nouvelle librairie "Processor" deviennent compatible XProcessor il faut qu'elle hérite d'un JPanel. Deux solutions: soit modifier Processor et lui créer un magnifique JPanel ou alors rajouter une couche graphique à Processor, et c'est ce que nous allons faire. Le nom de ce projet: XConsole. Son but est simple, remplacer une console Dos, normalement utilisée pour Processor, par une jolie console à base de Swing.
Création du projet sous éclipse:
Le programme est très simple et utilise la librairie Processor. On créé donc un plugin pour XProcessor de façon à avoir une vue comme celle-ci:
On remarque dans la partie centrale un JTextAera auquel on a ajouter un OutputStream, ainsi on pourra préciser simplement à Processor quel OutputStream il doit utiliser et toutes les informations s'afficheront d'elles même dans le JTextArea.
Ensuite dans le bas un simple JTextField dans lequel on saisit des commandes, mais il est un peut plus que ça, en effet pour la beauté de la chose on a ajouté la possibilité en appuyant sur les touches 'haut' et 'bas' le défilement des anciennes commandes lancées.
XConsole possède aussi une methode main pour le lancer seul.
[Projet] La librairie "Processor"
Aujourd'hui'hui nous cherchons à améliorer XProcessor en lui permettant d'ajouter des plugins évolutifs. Non plus limité à des JPanel, XProcessor pourra charger des 'Systèmes' auquels seront liés des 'Commandes'. Plus aucunes limites dans les possibilitées, XProcessor gérera ainsi à la fois des application fenetrés et des applications consoles.
Pour cela nous réutilisons un programme nommé "Processor" travaillé en cours cette année.
Le but de ce programme et de prendre en paramètre un systéme, qui peut être n'importe quoi et donc hérite d'un Objet. Par dessus on rajoute des commandes qui pourront êtres utilisées pour modifier ce système. Imaginez un système "Compteur" on pourrait avoir deux commandes:
- inc (pour décrémenter)
- dec (pour décrémenter)
De plus Processor se compose lui aussi de commandes de bases comme:
- menu (affiche la liste des commandes)
- load (charge un système contenu dans un fichier .jar)
- exit (pour quitter le Processor)
Pour commencer il faut savoir que la version actuelle de Processor est beaucoup plus evoluée que celle travaillée en cours, voici une liste des ameliorations aportées:
- Distinction entre les commandes de bases et les commandes du système chargé
- Reconnaissance automatique des commandes à moité tapées.
- Ajout des commandes:
- unload (décharge un système)
- help (affiche un commentaire sur une commande)
- history (affiche les liste des derniéres commandes tappées)
- script (lance une liste de commandes contenu dans un fichier texte)
- version (donne la numero actuel de Processor ainsi que le système chargé)
Voici la réprésentation de l'architecture du programme "Processor":
Processor contient une methode 'main' il est donc utilisable seul et n'est pas compatible XProcessor pour l'instant vue qu'il n'hérite pas d'un JPanel.
dimanche 8 juin 2008
[Divers] QuickGUI amélioration MVC + Observateur
Nous revenons rapidement sur QuickGUI qui je le rappel est une librairie externe développée pour simplifier la réalisation d'interfaces graphiques en java. Développée en interne elle est la base de XProcessor et se voit aujourd'hui enrichie de 2 nouvelles classes qui donne tout leur sens à 2 classes déjà présentes mais inutilisées jusqu'à présent, à savoir Controler, View sensées permettre de réaliser des application basées sur le pattern MVC (Model View Controler).
Les 2 nouvelles classes sont Observer et Observable, ce qui donne la nouvelle arborescence de QuickGUI:
Le package "main.support.ui.base" contient tout ce qu'il faut pour développer des application basées sur le patterns MVC.
Mais pourquoi ajouter ces 2 nouvelles classes? Sont elles vraiment utiles?
En effet réaliser un programme basé sur MVC est simple et permet un grande "fiabilité" de codage. Cela est valable tant que l'on ne dispose que d'une seule vue en lien avec un modèle. Dés que l'on possède au moins 2 vues qui sont liées au modèle cela devient plus compliqué. On considère alors l'idée que le modèle puisse être Observé et que les Vues observent le modèle. Lorsque le modèle est modifié il demande une mise à jour des vues qui l'observent pour qu'elles actualisent leur contenu. Voici un schéma de l'idée:
(Source: http://msdn.microsoft.com/en-us/library/ms978748.des_MVC_Fig03(en-us,MSDN.10).gif)
Vue du code source de la classe Observer:
package main.support.ui.base;
public interface Observer{
public void update(Observable o);
}
Vue du code source de la classe Observable:
package main.support.ui.base;
public interface Observable {
public void addObserver(Observer o);
public void removeObserver(Observer o);
public void notifyObservers();
}
Mise en œuvre:
Une vue s'ajoute en tant qu'observer au modèle avec la méthode addObserver(this).
Le modèle implémente Observable et réalise un notifyObservers() quand il est modifié, après cette méthode parcourt tout les Observateur et réalise un update(). C'est tout simple! A vous de voir ce qu'il faut mettre dans la méthode update() de votre vue, un repaint() par exemple.
Actuellement XProcessor n'est pas basé sur le pattern MVC, il se peut qu'avec l'ajout de cette fonctionnalité à QuickGUI, XProcessor puisse subir une profonde modification bientôt.
mercredi 4 juin 2008
[Divers] Les news du FTP
Le FTP du projet se voit s'enrichir d'une nouvelle rubrique: "plugins" où seront stockés les futurs programmes intégrable dans XProcessor, ainsi vous pourrez télécharger ceux qui vous intéresses plus facilement. Rendez-vous en bas du blog, partie "ressources en lignes".
[Projet] Nouveau plugin: JARLauncher
Voici un nouveau programme intégrable dans XProcessor. Son but charger un fichier .jar, afficher un ensemble d'informations utiles. Par la suite vous pouvez exécuter le fichier pré chargé en spécifiant par avance des arguments d'entrées.
jeudi 29 mai 2008
[Divers] Modification sur le blog
Comme vous avez pu surement le remarquer, après quelques suggestions, le blog est un petit peu modifié. En effet nous avons ajoutés des sections qui sont représentées entre crochets avant chaque titre de sujet.
De cette manière vous serez plus à même de suivre les évolutions dans les différents domaines que nous traitons dans notre projet.
Vous trouverez donc dorénavant une section Projet et une section Divers.
Qui sait, il y en aura peut être d'autres au fil de notre avancée !
lundi 26 mai 2008
[Projet] Premier upload de notre projet
Il est enfin temps de rendre disponible à tout les internautes le fruit de notre travail. Pour cela nous sommes heureux de vous permettre de télécharger la 1ere version de QuickGUI ainsi que celle de XProcessor.
Voici les liens :
QuickGUI
XProcessor
Vous pouvez aussi vous rendre dans la partie "Ressources en ligne" en bas à droite du blog.
