Table des matières

TP Netbeans

I. Introduction à Netbeans

Netbeans (http://netbeans.org) est un EDI (Environnement de Développement Intégré) ou IDE en Anglais (Integrated Development Environment). C’est un produit issu de chez Sun (maintenant supporté par Oracle), qui est OpenSource depuis plus de dix ans.

1. Netbeans : outil, plateforme et communauté

Netbeans est à la fois un outil (un environnement de développement) et une plateforme (un ensemble de composants que l’on peut réutiliser pour développer ses propres applications). Dans ce deuxième cas, on parle de RCP (Rich Client Platform). On retrouve le même principe sous Eclipse, avec Eclipse RCP. L’intérêt de telles approches de réutilisation de composants est que, une fois l’outil maîtrisé, on gagne beaucoup de temps dans la phase de développement. Ceci est particulièrement pratique dans les phases de prototypage, mais permet aussi le développement d’applications robustes, homogènes en termes d’interfaces (bien intégrées dans un environnement graphique), et interopérables (utilisation de standards largement partagés).

Les outils OpenSource tels que Netbeans ou Eclipse sont souvent bien documentés, et surtout, ils reposent sur une communauté d’utilisateurs très riche. Il est donc assez facile (et assez immédiat) d’obtenir de l’aide de la part de la communauté d’utilisateurs.

2. Les fonctionnalités de Netbeans

Netbeans contient une grande partie des fonctionnalités que l’on est en droit d’attendre dans un EDI : éditeur de code, coloration syntaxique, exécution pas à pas, gestion de projets, saisie intuitive, auto-complétion, etc.

3. Les plugins

Netbeans peut être étendu grâce à des plugins (extensions). Les plugins, permettent de répondre à des besoins non couverts initialement par l’outil (par exemple un client de gestion de versions). En général, les plugins sont développés par ceux que l’on appelle les « 3rd party developers », c’est-à-dire par des développeurs qui ne font pas officiellement partie de l’équipe de développement de Netbeans, mais qui contribuent néanmoins à son amélioration.

Netbeans embarque également des frameworks connus pour Java ou pour PHP, facilitant ainsi grandement la tâche des développeurs. Un framework est un ensemble de composants logiciels réutilisables qui permet d’accélérer le développement d’applications. Enfin, Netbeans peut prendre en charge l’exécution de serveurs (Glassfish, Tomcat, etc.).

II. Premiers pas sous Netbeans

Ouvrez l’EDI Netbeans afin de repérer les différentes fonctionnalités offertes en standard par Netbeans. En particulier, faites bien attention aux éléments suivants.

Dossiers et fichiers associés à un projet

Le répertoire build contient les classes compilées, dist contient le .jar de l’application s’il a été créé (via build, ou après une sauvegarde du projet), nbproject contient des fichiers propres à Netbeans pour la configuration de l’espace projet (ce qui soulève de nombreux problèmes en cas de mauvaise mise en place d’une gestion de versions), src contient les fichiers sources (les .java). À la racine, build.xml contient les instructions de compilation.

Tout ceci est hautement configurable, dans l’onglet Projet, bouton droit ⇒ Project / properties. Lorsque plusieurs VM (Virtual Machine) sont installées sur le système, il est possible de définir des configurations différentes, utilisant des VM (ou des options de VM) différentes. Ce système de gestion de configurations pour la compilation et l’exécution est très utile pour tester la compatibilité d’un programme.

III. Netbeans par la pratique

Les sources (Sudoku.zip) utilisées dans ce TP sont mises à disposition par Patrick Chan (31/12/05) et très légèrement modifiées par Amélie Cordier.

Mise en route

Question 1 


Le fichier contient des erreurs de syntaxe. Repérez-les rapidement et corrigez-les. Quel outil avez vous utilisé pour cela ? 


Question 2


Exécutez le programme. Si la classe main n'est pas définie, définissez-la. Que se passe-t-il ? A quelle ligne l'erreur se produit ?
 Rendez-vous à cette ligne et essayez de comprendre la cause de l'erreur. 


Question 3 


Configurez l'exécution du programme pour passer le fichier sudokus.txt en paramètres.

Question 4 


Essayez à nouveau d'exécuter le programme.
Que se passe-t-il ? Pourquoi ? Au besoin, utilisez l'exécution pas à pas pour comprendre ce qui se passe. 
Corrigez l'erreur. Insérez un point d'arrêt dans la boucle qui pose problème et utilisez le mode d'exécution pas à pas pour comprendre le dysfonctionnement.

Quelques aides pour comprendre l'exécution pas à pas :

Managing Breakpoints (manager les points d’arrêt), http://docs.oracle.com/cd/E40938_01/doc.74/e40142/run_debug_japps.htm#BABIIDHH

Question 5 


Si tout va bien, le programme compile enfin. Malheureusement, il semble qu'il ne fasse pas exactement ce qu'il est supposé faire. Avant de chercher l'erreur, nous allons essayer d'avoir rapidement une vision synthétique de sa structure. Pour cela, utilisez ArgoUML pour faire une rétroconception du code.

Question 6

Maintenant que vous avez une vision plus schématique du code de ce SudokuSolver, utilisez tous les outils que Netbeans met à votre disposition pour trouver la portion de code incorrecte et la corriger.

Question 7

En Utilisant la fonctionnalité de refactoring, trouver et renommez la variable « ch » en « character ».

Question 8

Générer la Javadoc de votre projet. Après l’avoir généré, où se trouve cette documentation dans votre projet ?

Question 9

À votre avis, quelle est la partie du code qui consomme le plus de temps d'exécution ? Et le plus de mémoire ? Utilisez les outils de profiling.

Combien de fois la méthode solve est-elle invoquée ? Et la méthode create ? Comment expliquez-vous cette différence ? Aide pour comprendre comment utiliser les outils de profiling dans NetBeans: Introduction to Profiling Java Applications in NetBeans IDE, https://netbeans.org/kb/docs/java/profiler-intro.html

Question 10

Utilisez la bibliothèque Swing de Java pour créer une interface graphique qui vous permet d’ajouter un sélecteur de fichier. Ce dernier doit vous permettre de charger le résultat du sudoku dans une zone de texte. Pour cela vous pouvez suivre le tutoriel fournit.