LISEZ-MOI
LOGICIEL D'ASSISTANCE À L'UTILISATION DE LA MÉTHODE EBIOS® V2
=======================================================================
Contenu du Fichier LISEZ-MOI
=======================================================================
1. Description de l'Arborescence
--------------------------------
1.1 Arborescence principale
1.1.1 Présentation de l'arborescence
1.1.2 Docsmisc
1.1.3 Releases
1.1.4 Sources
1.2 Arborescence de développement
2. Installation & lancement du logiciel
---------------------------------------
2.1 Pré-Requis
2.2 Windows
2.3 Linux sur plate-forme Intel
2.4 Linux sur plate-forme PowerPC
2.5 Solaris
3. Documentations fournies
--------------------------
3.1 Présentation de l'arborescence
3.2 Description des documentations
3.2.1 Documents de spécification
3.2.2 Documents de réalisation
4. Outils complémentaires
-------------------------
4.1 ArgoUML
4.1.1 Description
4.1.2 Installation & lancement
4.1.3 Liens
4.2 CVS
4.3 Machines virtuelles JAVA (JDKs)
4.4 Spécifique Windows
5. Développement du logiciel
----------------------------
5.1 Arborescence de développement
5.1.1 Présentation de developpement
5.1.2 Mise en place de l'arborescence
5.2 Plate-formes supportées & Pré-requis
5.2.1 Windows
5.2.2 Linux sur plate-forme Intel
5.2.3 Linux sur plate-forme PowerPC
5.2.4 Solaris
5.3. Développement du logiciel
5.3.1 Organisation
5.3.2 Compilation du projet
a) Compilation générale
b) Compilation partielle
5.3.3 Débuggage de l'application
5.3.4 Épuration des répertoires
5.3.5 Création des livrables
5.3.6 Développpements spécifiques aux plate-formes
a) Windows : création du binaire de lancement
b) Plate-formes UNIX
5.4 Fonctions annexes
5.4.1 Documentation JAVADOC
5.4.2 Listing des sources
6. Mémento pour créer sous LINUX un CD EBIOS
--------------------------------------------
6.1 Installer un Linux
6.1.1 Compte à utiliser
6.1.2 Options d'installation
6.1.3 Shell
6.2 Installer un JDK 1.3
6.3 Installer les sources EBIOS (fichiers .JAVA et cie)
6.3.1 Monter le lecteur de CDROM
6.3.2 Reste des opérations : suivre le fichier LISEZ-MOI.txt
6.4 Configurer le système
6.4.1 Indiquer au système où se trouve le compilateur JAVA (JAVAC)
6.4.2 Positionner la variable d'environnement CLASSPATH
6.4.3 Pour éviter les carrés blancs à la place des caractères accentués hard codés
6.5 Compiler les sources
6.5.1 Compilation générale
6.5.2 Compilation partielle
6.6 Tester l'application en mode DEBUG
6.7 Créer les release
6.7.1 Vérifier la conformité des paramètres applicatifs EBIOS
6.7.2 Création des releases
6.8 Tester les releases faites sous Linux
6.9 Epuration des .CLASS
=======================================================================
1. Description de l'Arborescence
=======================================================================
-----------------------------------------------------------------------
1.1 Arborescence principale
-----------------------------------------------------------------------
1.1.1 Présentation de l'arborescence
.
|-- 1-Presentation
|-- 2-Guide
|-- 3-MeilleuresPratiques
|-- 4-EtudeDeCas
|-- 5-Logiciel
| |-- 1-Installation
| |-- 2-Documentation
| | |-- 1-Procedures
| | |-- 2-Specifications
| | | |-- 1-ModeleAbstrait
| | | |-- 2-CasUtilisation
| | | |-- 3-MaquetteIHM
| | | |-- 4-ModelisationUML
| | | |-- 5-SpecificationInterfaces
| | | `-- SchemasArgoUML
| | `-- 3-Realisation
| | |-- 1-ModelesXML
| | |-- 2-DocumentationSources
| | `-- 3-DocumentationDeConception
| |-- 3-Sources
| `-- 4-Formulaires
`-- index_fichiers
1.1.2 Presentation
Ce répertoire contient la documentation de présentation de
la méthode et du logiciel EBIOS (mémento, plaquettes).
1.1.3 Guide
Ce répertoire contient l'ensemble des guides relatifs à la méthode EBIOS :
. Section 1 - Introduction
. Section 2 - Démarche
. Section 3 - Techniques
. Section 4 - Outillage pour l'appréciation des risques SSI
. Section 5 - Outillage pour le traitement des risques SSI
1.1.4 MeilleuresPratiques
Ce répertoire contient l'ensemble des guides de meilleures pratiques expliquant
comment utiliser EBIOS dans le cadre de différentes approches, par exemple :
. Étude d'un système à concevoir
. Élaboration d'une politique de sécurité des systèmes d'information (PSSI)
. Élaboration d'un schéma directeur de sécurité des systèmes d'information (SDSSI)
. Rédaction d'une fiche d'expression rationnelle des objectifs de sécurité (FEROS)
. Rédaction d'un SSRS (System-specific Security Requirement Statement, OTAN)
. Rédaction d'un profil de protection (PP)
. Rédaction d'une cible de sécurité pour un produit
. Rédaction d'une cible de sécurité pour un SI
. Élaboration d'une politique de certification (PC)
. Référentiel de compétences EBIOS
1.1.5 EtudeDeCas
Ce répertoire contient une étude de cas EBIOS réalisé à l'aide de la méthode EBIOS
Il est destiné à compléter la méthode dans le but d'apporter un exemple concret de
son utilisation.
1.1.6 Logiciel
Ce répertoire contient l'ensemble des ressources relatives au logiciel EBIOS.
1.1.6.1 Installation
Ce répertoire contient l'ensemble des versions d'installation du logiciel sur les
différentes plate-formes supportées. Ces livrables prennent la forme
de fichiers TAR gzippés dont la nomenclature est la suivante :
ebios-'plate-forme'-'date de création du livrable'.tgz
EX : EBIOS-v2-win32-2004-08-17.tgz correspond au livrable du logiciel
EBIOS v2 pour la plate-forme Windows (9x, NT4, 2000, XP)
et créée le 17 août 2004.
L'utilisation de ces livrables est décrite dans la section
`2. Installation & lancement du logiciel'.
1.1.6.2 Documentation
Ce répertoire contient l'ensemble de la documentation concernant le projet
EBIOS. L'arborescence est divisée en 2 branches principales :
A. Spécifications
Cette section regroupe l'ensemble de la documentation produite
en amont de la réalisation. Elle comprend d'une part les
spécifications fonctionnelles de l'application, et d'autre part
la modélisation objet à employer pour l'implémentation.
B. Réalisation
Les documents contenus dans cette branche sont liés directement
à l'implémentation en JAVA du logiciel. On y retrouve :
. les modèles de documents XML employés par le logiciel
. la documentation de conception du logiciel
. la documentation des sources fournie en format JAVADOC
. l'ensemble des données fournies pour la réalisation
1.1.6.3 Sources
Ce répertoire contient l'ensemble des fichiers constituant l'arborescence
de gestion et développement du projet. Pour des raisons de commodité, cette
arborescence est TAR gzippée (problèmes de fichiers en read-only et
conservation des liens symboliques).
La description détaillée de cette arborescence est disponible en section
`2.2 Arborescence de développement'.
1.1.6.4 Formulaires
Ce répertoire contient l'ensembles des formulaires à envoyer autour
du logiciel EBIOS :
. Formulaire de contribution au logiciel EBIOS
. Formulaire de constatation d'erreur sur le logiciel EBIOS
. Formulaire d'expression de nouveaux besoins pour le logiciel EBIOS
-----------------------------------------------------------------------
1.2 Arborescence de developpement
-----------------------------------------------------------------------
Veuillez vous référer a la section 5 (Développement du logiciel) afin
d'obtenir une description précise et complète de l'arborescence de
développement et des méthodes mises en place pour la modification,
compilation et création de l'outil.
=======================================================================
2. Installation & lancement du logiciel
=======================================================================
-----------------------------------------------------------------------
2.1 Pre-Requis
-----------------------------------------------------------------------
Développé dans son intégralité en JAVA 2 (JDK 1.3), les pré-requis
du logiciel rejoignent ceux définis par SUN pour l'exploitation de
leur machine virtuelle (JDK ou Java Development Kit).
Processeur : Equivalent à un Intel PentiumII 400 / AMD K6-2 400
Mémoire : Minimum 64Mo (sans fonctionnalités d'impression)
Recommandé >= 128Mo (Fonctionnalités d'impression)
Le logiciel a éte testé sur les machines suivantes :
. Sun Ultra 5 / 128 Mo
. G4 350 Mhz / 128 Mo
. Intel PII 233 / 128 Mo
. Celeron 400 / 128 Mo
-----------------------------------------------------------------------
2.2 Windows
-----------------------------------------------------------------------
1. Copier le fichier EBIOS-v2-win32-*.tgz du répertoire Releases.
(* correspond à la date du dernier livrable fourni).
2. Décompresser le fichier en utilisant un utilitaire de décompression
tel powerArchiver (fourni avec le CD) ou Tar (fourni dans le logiciel CygWin
fourni avec le CD).
3. Lancer au niveau de la racine du répertoire crée lors de la
décompression du logiciel le fichier `ebios.exe'.
-----------------------------------------------------------------------
2.3 Linux sur plate-forme Intel
-----------------------------------------------------------------------
1. Copier le fichier EBIOS-v2-linux-i386-*.tgz du répertoire Releases.
(* correspond à la date du dernier livrable fourni).
2. Déplacez-vous dans le répertoire où vous avez copié le fichier et
lancez la commande 'tar -zxvf ebios-linux-i386-*.tgz'
3. Exécutez la commande 'cd ebios-linux-i386-*' pour vous déplacez
dans le répertoire généré.
3. Exécutez la commande 'bash ./ebios.sh' pour lancer l'application.
Dans le cas où vous ne disposez pas du shell bash sur votre machine,
utilisez un shell annexe (csh, tcsh, ksh...)
-----------------------------------------------------------------------
2.4 Linux sur plate-forme PowerPC
-----------------------------------------------------------------------
1. Copier le fichier EBIOS-v2-linux-ppc-*.tgz du répertoire Releases.
(* correspond à la date du dernier livrable fourni).
2. Déplacez-vous dans le répertoire où vous avez copié le fichier et
lancez la commande 'tar -zxvf ebios-linux-ppc-*.tgz'
3. Exécutez la commande 'cd ebios-linux-ppc-*' pour vous déplacez
dans le répertoire généré.
3. Exécutez la commande 'bash ./ebios.sh' pour lancer l'application.
Dans le cas où vous ne disposez pas du shell bash sur votre machine,
utilisez un shell annexe (csh, tcshdéveloppement , ksh...)
-----------------------------------------------------------------------
2.5 Solaris
-----------------------------------------------------------------------
1. Copier le fichier EBIOS-v2-solaris-*.tgz du répertoire Releases.
(* correspond à la date du dernier livrable fourni).
2. Déplacez-vous dans le répertoire où vous avez copié le fichier et
lancez la commande 'tar -zxvf ebios-solaris-*.tgz'
3. Exécutez la commande 'cd ebios-solaris-*' pour vous déplacez
dans le répertoire généré.
3. Exécutez la commande 'bash ./ebios.sh' pour lancer l'application.
Dans le cas où vous ne disposez pas du shell bash sur votre machine,
utilisez un shell annexe (csh, tcsh, ksh...)
=======================================================================
3. Arborescence de documentation
=======================================================================
-----------------------------------------------------------------------
3.1 Présentation de l'arborescence
-----------------------------------------------------------------------
.
|-- 1. Procedures
| |-- Procédure de compilation
| |-- Procédure de création de versions du logiciel EBIOS
| `-- Procédure d'installation du logiciel CYGWIN
|
|-- 2. Specifications
| |-- 1-ModeleAbstrait
| |-- 2-CasUtilisation
| |-- 3-MaquetteIHM
| |-- 4-ModelisationUML
| |-- 5-SpecificationInterfaces
| `-- SchemasArgoUML
|
`-- 2. Realisation
|-- 1-ModelesXML
|-- 2-DocumentationSources
`-- 3-DocumentationDeConception
-----------------------------------------------------------------------
3.2 Description des documentations
-----------------------------------------------------------------------
3.2.1 Documents de spécification
Cette section regroupe l'ensemble de la documentation produite
en amont de la réalisation. Elle comprend d'une part les
spécifications fonctionnelles de l'application, et d'autre part
la modélisation objet à employer pour l'implémentation.
a) Modèle abstrait
Ce document présente l'ensemble des éléments du logiciel et les types
de manipulation possibles sur chacun de ces éléments.
b) Cas d'utilisation
Ce document présente l'ensemble des cas d'utilisation du logiciel.
Ces cas d'utilisation permettent de déterminer l'ensemble des
fonctionnalités devant être implémentées dans l'application.
Les cas d'utilisation sont modélisés sous la forme de diagrammes
UML de cas d'utilisation.
c) Modélisation UML
Ce document répond au document précédent en présentant les objets devant
être implémentés afin d'assurer la mise en oeuvre des différents cas
d'utilisation. Ces objets sont définis au sein de diagrammes de collaboration
UML, permettant ainsi de visualiser les interactions possibles entre les
différents objets.
d) Maquette IHM
Ce document présente l'interface graphique du logiciel. Sont présentées
les différentes fenêtres et interfaces d'édition constituant l'application.
e) Spécification des interfaces
Ce document permet de spécifier plus précisémment comment est utilisée
l'API XML afin de permettre les procédures de chargement / sauvegarde /
signature de document s XML et prévoir les migrations ultérieurs possibles
de l'appplication vers d'autres supports de données autres que des fichiers plats.
f) Documentation de prise en main
Ce document est une aide à l'utilisateur relative aux différentes fonctionalités
du logiciel.
3.2.2 Documents de réalisation
Les documents contenus dans cette branche sont liés directement
à l'implémentation en JAVA du logiciel.
a) Modèles XML
Sont stockées dans ce répertoire l'ensemble des DTDs XML correspondant
aux différents documents XML manipulés par l'outil. Ils permettent ainsi
de connaître facilement la structure de données de chaque document.
b) Documentation des sources
La documentation des sources est générée automatiquement par l'outil
JAVADOC fourni dans la machine virtuelle JAVA de SUN. Elle présente
sous format HTML l'ensemble des classes et packages constituant le logiciel,
où chaque attribut et méthode des classes est explicité.
c) Documentation de conception
Ce document rassemble l'ensemble des informations concernant la gestion
et le développement du projet. Toute personne désirant modifier l'application
se doit de lire cette documentation.
=======================================================================
4. Outils complémentaires
=======================================================================
Les outils présentés ci-dessous ont été utilisés durant les phases
de conception, de spécification et de réalisation du logiciel EBIOS.
-----------------------------------------------------------------------
4.1 ArgoUML
-----------------------------------------------------------------------
4.1.1 Description
L'ensemble des diagrammes et objets UML a été réalisé avec le logiciel
libre ArgoUML développé par la société TIGRIS.
Veuillez consulter le site `http://www.argouml.tigris.com' pour récupérer
la dernière version du logiciel.
Suivez les instructions fournies dans le fichier LISEZ-MOI pour
installer le logiciel.
4.1.2 Installation & lancement
+ Pré-Requis
. PLATE_FORME : Toute plate-forme disposant d'une machine virtuelle JAVA,
version 1.2 ou superieure
. PROCESSEUR : Equivalent a un Pentium 300Mhz ou superieur
. MEMOIRE : Superieure ou egal a 64Mo
+ Installation
#> cd 'install_rep'
#> tar -zxvf ArgoUML-0.8.1a.tgz
PS : Une machine virtuelle JAVA version 1.2 ou superieure doit
aussi etre installee sur votre systeme.
+ Lancement
#> cd 'install_rep'
#> java -jar argouml-0.8.1a.jar
4.1.3 Liens
Site officiel : http://www.argouml.tigris.org
-----------------------------------------------------------------------
4.2 CVS
-----------------------------------------------------------------------
CVS est présenté dans le cadre de reprise des librairies de
développement du logiciel Ebios.
Le principe de cette procédure, visant à gérer les versions
de fichiers, est de créer un dépot de sources de programmation
controlé par le logiciel de CVS, ce dernier se chargeant de
coordonner les différentes versions, ainsi que les repertoire et
fichiers s'y rapportant.
-----------------------------------------------------------------------
4.3 Machines virtuelles JAVA (JDKs)
-----------------------------------------------------------------------
La machine virtuelle Java est indispensable pour compiler les fichiers
sources JAVA. Des versions pour chaque plate-forme sont disponibles
sur le site 'http://sun.java.com'.
-----------------------------------------------------------------------
4.4 Spécifique Windows
-----------------------------------------------------------------------
. CygWin : Environnement de développement sous Windows.
Ce logiciel est disponible sur le site `http://www.cygwin.com'.
Lancer le fichier setup.exe pour lancer l'installation
directement à partir du CD. Sélectionnez l'installation
locale et choisissez comme répertoire contenant les packages
le répertoire où se trouve le fichier setup.exe.
En cas de probleme lors de l'installation ou bien de
l'utilisation locale de CygWin, il est conseiller de se
reporter, pour de plus amples informations, au site Internet
`http://www.cygwin.com'
.PowerArchiver: Ce logiciel permet de décompresser les fichiers
TAR gzippés.
=======================================================================
5. Developpement du Logiciel
=======================================================================
-----------------------------------------------------------------------
5.1 Arborescence de développement
-----------------------------------------------------------------------
5.1.1 Présentation de developpement
L'arborescence de développement est contenue dans un fichier unique TAR
gzippé situé au sein du répertoire Sources.
Sa structure est la suivante :
.
|-- arch
| |-- linux-i386
| | |-- bin
| | |-- lib
| | `-- releases
| |-- linux-ppc
| | |-- bin
| | |-- lib
| | `-- releases
| |-- solaris
| | |-- bin
| | |-- lib
| | `-- releases
| `-- win32
| |-- bin
| |-- lib
| `-- releases
|-- data
| |-- help
| | |-- french
| | `-- pictures
| |-- kbase
| |-- lang
| |-- study
| |-- synthesis
| `-- tutorial
| `-- french
|-- images
|-- javadoc
|-- lib
| `-- scssi
| `-- ebios
| |-- error
| |-- graphics
| |-- gui
| | |-- admin
| | |-- help
| | |-- knowledge
| | | `-- editors
| | |-- print
| | |-- study
| | | `-- activities
| | |-- synthesis
| | |-- tutorial
| | `-- user
| |-- knowledge
| |-- print
| | `-- models
| |-- signature
| | `-- dsa
| |-- study
| |-- synthesis
| | `-- translators
| | `-- html
| |-- user
| | `-- password
| `-- xml
| |-- editors
| |-- mappers
| `-- objects
| |-- ebios
| `-- security
`-- releases
a) Branche arch
Cette branche contient un ensemble de sous-répertoires contenant les fichiers
spécifiques à chaque plate-forme supportée. Ces sous-répertoires sont
architecturés de la manière suivante :
.
|-- bin
|-- lib
`-- releases
. bin & lib : Le JRE (Java Runtime Environment) pour la plate-forme.
Cet outil fournit les binaires et librairies nécessaires
à l'exécution d'applicatrions JAVA.
. releases : Contient les fichiers sources utilisés pour créer le
fichier binaire ou script utilisé pour lancer l'application
Les plate-formes supportées sont les suivantes
.linux-i386 : Linux pour plate-forme Intel x86
.linux-ppc : Linux pour plate-forme PowerPC
.solaris : Solaris SPARC/x86
.win32 : Windows 95, 98, NT4, 2000, XP
b) Branche data
Ce répertoire contient l'ensemble des fichiers externes utilisés par
le logiciel. La totalité de ce répertoire est inséré dans les livrables
du logiciel.
data
|-- help -> Répertoire principal de l'aide au logiciel
| | Il contient entre autre le fichier XML de
| | définition du contenu de l'aide (rubriques)
| |-- french -> Version francaise de l'aide
| `-- pictures -> Images utilisées par l'aide
|
|-- kbase -> Répertoire de stockage par défaut des bases de connaissances
|-- lang -> Répertoire d'internationalisation. Il rassemble
| les différents dictionnaires utilisables par le logiciel.
|-- study -> Répertoire de stockage par défaut des études EBIOS®
|-- synthesis -> Répertoire contenant les fichiers utilisés par
| l'activité `Création du document de synthèse'.
`-- tutorial -> Répertoire principal de l'auto-formation au logiciel.
| Il contient entre autre le fichier de XML de
| définition des rubriques de l'assistane
`-- french -> Version francaise des rubriques de l'assistant
Une description plus détaillée de ces répertoires est disponible dans
la documentation de conception du logiciel.
c) Branche images
Ce répertoire contient l'ensemble des images utilisées par le logiciel.
d) Branche lib
L'ensemble des fichiers sources JAVA est contenu dans ce répertoire.
Conformément au développement JAVA, chaque répertoire correspond
à un package défini dans le logiciel :
.
`-- scssi
`-- ebios
|-- error
|-- graphics
|-- gui
| |-- admin
| |-- help
| |-- knowledge
| | `-- editors
| |-- print
| |-- study
| | `-- activities
| |-- synthesis
| |-- tutorial
| `-- user
|-- knowledge
|-- print
| `-- models
|-- signature
| `-- dsa
|-- study
|-- synthesis
| `-- translators
| `-- html
|-- user
| `-- password
`-- xml
|-- editors
|-- mappers
`-- objects
|-- ebios
`-- security
Le répertoire lib contient de plus la librairie externe JAXP, développée
par SUN, et utilisée pour la gestion des fichiers XML.
La librairie JAXP consiste en deux fichiers :
- jaxp.jar
- parser.jar
Pour de plus amples informations sur l'API JAXP, veuillez consulter le
site `http://java.sun.com/xml'.
e) Branche releases
Elle correspond au répertoire de géneration des livrables du logiciel.
Il permet ainsi de tester les livrables avant de les intégrer au
répertoire principal `Releases'.
5.1.2 Mise en place de l'arborescence
L'arborescence est stockée dans un seul fichier TAR gzippé dont le
nom est EbiosSources-DATE.tgz, où DATE correspond à une date formatée
de la facon suivante : JJMMAA.
a) Décompresser l'archive contenant les sources
- sous Windows:
.Décompresser avec powerArchiver le fichier à
l'emplacement que vous désirez.
- sous Linux / Solaris :
1. Copier le fichier EbiosSources-DATE.tgz dans un répertoire.
2. À partir du répertoire précédent, lancez la commande
`tar -zxvf EbiosSources-DATE.tgz'
b) Definir le CLASSPATH
Lors des procédures de compilation, la machine virtuelle JAVA
a besoin de connaître les chemins où sont stockées d'une part
l'arborescence des fichiers sources JAVA, et d'autre part les
librairies JAR externes.
Pour cela, vous devez définir la variable d'environnement
CLASSPATH de la facon suivante :
- sous Windows :
$JDKCLASSPATH;$INSTALL/Sources/lib;$INSTALL/Sources/lib/jaxp.jar;$INSTALL/Sources/lib/parser.jar;.
- sous Linux / Solaris :
$JDKCLASSPATH:$INSTALL/Sources/lib:$INSTALL/Sources/lib/jaxp.jar:/$INSTALL/Sources/lib/parser.jar:.
où $JDKCLASSPATH correspond au CLASSPATH spécifique à la machine virtuelle JAVA
et $INSTALL le répertoire où vous avez décompressé l'arborescence de développement
-----------------------------------------------------------------------
5.2. Plate-formes supportées & Pré-requis
-----------------------------------------------------------------------
Les plate-formes supportées par l'application sont les suivantes :
. Windows : 95, 98, NT4, 2000, XP
. Linux sur plate-forme Intel
. Linux sur plate-forme PowerPC
. Solaris Sparc/x86
5.2.1 Windows
Les pré-requis pour le développement sous environnement Windows sont les
suivants :
. Environnement de développement JAVA : JDK 1.3 Win32
. Environnement CygWin :
5.2.2 Linux sur plate-forme Intel
Les pré-requis pour le développement sous environnement Linux plate-forme
Intel sont les suivants :
. Environnement de développement JAVA : JDK 1.3 Linux-ix86
5.2.3 Linux sur plate-forme PowerPC
Les pré-requis pour le développement sous environnement Linux plate-forme
PowerPC sont les suivants :
. Environnement de développement JAVA : JDK 1.2.2 Linux-ppc
5.2.4 Solaris
Les pré-requis pour le développement sous environnement Solaris
sont les suivants :
. Environnement de développement JAVA : JDK 1.3 solaris
-----------------------------------------------------------------------
5.3. Developpement du logiciel
-----------------------------------------------------------------------
5.3.1 Organisation
La gestion du projet s'architecture autour de fichiers Makefile présent
dans chaque répertoire de l'arborescence de développement.
Sont contenus dans ces fichiers différentes règles permettant de gérer
différentes procédures comme :
.Compilation
.Création des livrables
.Création de la documentation ...
La présence des Makefile à chaque niveau de l'arborescence permet de plus
une exécution récursive des procédures, automatisant le travail des
développeurs.
Sont présentées dans les sections suivantes les règles connues dans les
fichiers Makefile.
Le raccourci SRC est utilisé dans les sections suivantes afin de
définir le répertoire principal `Sources' de l'arborescence de
développement.
5.3.2 Compilation du projet
a) Compilation générale
#~> cd SRC
#SRC> make
Cette règle lance la compilation générale du projet. Tous les fichiers
sources JAVA situés dans le sous-répertoire `lib' sont compilés
b) Compilation partielle
Deux règles peuvent être utilisées afin de ne compiler qu'une partie
de l'arborescence de développement :
make : compile tous les fichiers présents dans le répertoire courant
make all : compile la sous-arborescence à partir du répertoire courant
(inclue ce répertoire)
EXAMPLES:
EX1: Compile les sources du package `scssi.ebios.xml.editors'
#~> cd SRC/lib/scssi/ebios/xml/editors
#editors> make
EX2: Compile les sources des packages
`scssi.ebios.synthesis'
`scssi.ebios.synthesis.translators'
`scssi.ebios.synthesis.translators.html'
#~> cd SRC/lib/scssi/ebios/synthesis
#synthesis> make all
EX3: Compile le projet dans son intégralité
#~> cd SRC/lib
#lib> make all
5.3.3 Débuggage de l'application
Une fois le projet compilé, il est possible de le tester directement
sans avoir à créer de livrable.
Les commandes pour cela sont les suivantes :
#~> cd SRC
#SRC> make debug.PLATE-FORME
où PLATE-FORME doit être remplacée par la plate-forme sur laquelle est
installée le projet :
. win32
. linux-ppc
. linux-i386
. solaris
L'ensemble des informations de débuggage (tels System.out.println...)
sont affichées directement au niveau de la sortie standard, permettant
ainsi de débugger l'application.
L'environnemt JAVA utilisé pour lancer le logiciel est celui se trouvant
dans le sous-répertoire de `SRC/arch' correspondant à la plate-forme courante.
Les fichiers externes utilisés par l'application se trouvent quant à eux
dans l'arborescence `data' de SRC.
5.3.4 Épuration des répertoires
Deux règles ont été définies pour effacer les fichiers .class générés
lors de la compilation du projet.
make clean : efface tous les fichiers .class présents dans le
répertoire courant
make allclean : efface à partir du répertoire courant tous les fichiers
.class se trouvant dans la sous-arborescence.
(inclue ce répertoire)
EXAMPLES:
EX1: Efface les fichiers .class du package `scssi.ebios.xml.editors'
#~> cd SRC/lib/scssi/ebios/xml/editors
#editors> make clean
EX2: Efface tous les fichiers .class des packages
`scssi.ebios.synthesis'
`scssi.ebios.synthesis.translators'
`scssi.ebios.synthesis.translators.html'
#~> cd SRC/lib/scssi/ebios/synthesis
#synthesis> make allclean
EX3: Efface tout les fichiers .class du projet
#~> cd SRC/lib
#lib> make allclean
ou
#~> cd SRC
#SRC> make clean
5.3.5 Création des livrables
Pour créer un livrable pour une plate-forme spécifique, les commandes
sont :
#~> cd SRC
#SRC> make releases.PLATEFORME
où PLATEFORME doit être remplacée par la plate-forme sur laquelle est
installée le projet :
. win32
. linux-ppc
. linux-i386
. solaris
Un fichier TAR gzippé ebios-PLATEFORME-DATE.tgz est alors créé dans le
répertoire `releases' de SRC, où DATE de la forme JJMMAA.
5.3.6 Développpements spécifiques aux plate-formes
a) Windows : création du binaire de lancement
Un développement spécifique a éte réalisé sous Windows pour permettre
de lancer le logiciel sans faire apparaître de fenêtre DOS. Ce fichier
(ebios.exe) ainsi que ses sources (à compiler sous Visual C++) sont
disponibles dans le répertoire `SRC/arch/win32/releases'
b) Plate-formes UNIX
Un fichier script a éte créé afin de permettre de lancer directment
l'application sans avoir à définir auparavant de CLASPATH et installer
d'environnement JAVA. Ce script appelé `ebios' est disponible
dans le répertoire `SRC/arch/UNX-PLATEFORME/releases'
où UNX-PLATEFORME est à remplacer par solaris, linux-ppc ou linux-i386.
-----------------------------------------------------------------------
5.4. Fonctionnalités diverses
-----------------------------------------------------------------------
Diverses autres règles ont été définies afin de compléter la gestion
du projet.
5.4.1 Documentation JAVADOC
Il est possible de générer la documentation au format HTML (JAVADOC) de
l'ensemble des sources du projet. Lancer pour cela les commandes suivantes:
.Sous windows:
#~> cd SRC/javadoc
#javadoc> make javadoc.win32
.Sous plate-formes UNIX:
#~> cd SRC/javadoc
#javadoc> make javadoc.unx
5.4.2 Listing des sources
Les commandes suivantes permettent de créer un fichier nommé
`Source.listing.DATE', où DATE de la forme JJMMAA.
#~> cd SRC
#javadoc> make listing
=======================================================================
6. Mémento pour créer sous LINUX un CD EBIOS
=======================================================================
-----------------------------------------------------------------------
6.1 Installer un Linux
-----------------------------------------------------------------------
6.1.1 Compte à utiliser
Toutes les opérations décrites ci-dessous sont possibles sous le compte
root. On peut néanmoins utiliser un autre compte. Dans la suite de ce
document, le compte utilisé est appelé : USER. Le répertoire /USER est
le répertoire racine du compte.
6.1.2 Options d'installation
Plusieurs alternatives possibles, la suivante a porté ses fruits :
- Choisir l'option "Poste de travail" et ajouter manuellement le binaire
make (il est disponible sur 'ftp://ftp.gnu.org/pub/gnu/make/')
- Pour les autres sujets : choisir le choix par défaut.
6.1.3 Shell
'bash' est le shell par défaut à l'issue de l'installation. Il n'y a donc
rien à faire. Dans le cas où un système Linux déjà existant est utilisé,
vérifier que bash est le shell en lançant la commande 'set'. La ligne
"SHELL=/bin/bash" doit apparaître. Si tel n'est pas le cas, modifiez
en tant qu'utilisateur root le fichier /etc/passwd afin de configurer
le shell en '/bin/bash' (si bash est installé dans le répertoire /bin).
-----------------------------------------------------------------------
6.2 Installer un JDK 1.3
-----------------------------------------------------------------------
Le JDK se trouve déjà sur le CD, sous forme d'une archive autodécompactable :
- Monter le CD-ROM (voir 6.3.1)
- Copier le fichier j2sdk-1_3_0-linux.sh du CD vers le répertoire choisi
pour installer le JDK, par exemple dans /opt/jdk1.3/
- Décompacter le JDK : #> ./j2sdk-1_3_0-linux.sh
-----------------------------------------------------------------------
6.3 Installer les sources EBIOS (fichiers .JAVA et cie)
-----------------------------------------------------------------------
6.3.1 Monter le lecteur de CDROM
#> mount /mnt/cdrom
(désormais, Linux monte automatiquement le lecteur de CDROM)
6.3.2 Reste des opérations
Voir la section 5.1.2. Mise en place de l'arborescence
-----------------------------------------------------------------------
6.4 Configurer le système
-----------------------------------------------------------------------
6.4.1 Indiquer au système où se trouve le compilateur JAVA (JAVAC)
Supposons que le compilateur JAVA, javac , soit dans /opt/jdk1.3/bin.
Il faut mettre le chemin dans la variable PATH associée au compte :
- Ouvrir le fichier .bshrc situé à la racine du compte utilisé, donc /USER/.bashrc
- Rajouter "/opt/jdk1.3/bin:" dans le PATH (avec vi par exemple)
Ex. de valeur pour PATH :
PATH=/opt/jdk1.3/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:.
- Sauvegarder le fichier (:x ou :x! avec vi)
6.4.2 Positionner la variable d'environnement CLASSPATH
Supposons que les sources EBIOS sont installés dans le répertoire /EBIOS
du compte utilisé. Plus précisément, supposons que src.tgz ait été
décompressé dans /USER/EBIOS.
Pour la positionner de façon permanente :
- Ouvrir le fichier .bashrc situé à la racine du compte utilisé
- Rajouter la ligne suivante :
CLASSPATH="/USER/EBIOS/lib:/USER/EBIOS/lib/jaxp.jar:/USER/EBIOS/lib:parser.jar:."
- Sauvegarder le fichier (:x ou :x! avec vi)
Pour la positionner pour une session seulement, utiliser la commande export :
#>export CLASSPATH="/USER/EBIOS/lib:/USER/EBIOS/lib/jaxp.jar:/USER/EBIOS/lib:parser.jar:."
6.4.3 Pour éviter les carrés blancs à la place des caractères accentués hard codés
La présence de textes hard codés est obligatoire pour tous les textes à
afficher avant que les traitements capables d'exploiter XML soient chargés
en mémoire.
ATTENTION :
La cause n'est pas clairement identifiée à ce jour, le remède non plus. Ce
qui est constaté, c'est que la compilation et la création des releases sous
une machine avec la Mandrake 8.2 installé en suivant les choix par défaut
permet de s'affranchir du problème.
-----------------------------------------------------------------------
6.5 Compiler les sources
-----------------------------------------------------------------------
Consiste à lancer un script qui utilise la commande make pour générer
les .CLASS à partir des .JAVA.
6.5.1 Compilation générale
- Se placer dans le répertoire racine des sources, /USER/EBIOS
Ce répertoire contient les sous-répertoires /arch, /data, /images,
/javadoc, /lib et /releases
- Lancer la commande make :
#> make
Avec un Toshiba SatellittePro 4200, cela prend moins de 5 minutes.
Voir aussi la section 5.3.2 a) Compilation générale
6.5.2 Compilation partielle
Voir la section 5.3.2 b) Compilation partielle
-----------------------------------------------------------------------
6.6 Tester l'application en mode DEBUG
-----------------------------------------------------------------------
- Se placer dans le répertoire racine des sources, /USER/EBIOS
- Lancer la commande: #> make debug.linux-i386
-----------------------------------------------------------------------
6.7 Créer les release
-----------------------------------------------------------------------
6.7.1 Vérifier la conformité des paramètres applicatifs EBIOS
Notamment :
- Vérifier que la fenêtre principale EBIOS sera visible :
Dans le fichier data/configuration.xml, on doit avoir la valeur '0'
pour les constantes X-POS et Y-POS (par ex. : )
Si on développe et teste le logiciel avec deux écrans et que la
fenêtre principale est sur le second et que l'on ne remet pas à zéro
les constantes ci-dessus le résultat est que, avec un seul écran,
le soft se lance très bien mais on ne voit rien ! Le fichier
'configuration.xml' peut être édité après l'installation d'une release
mais il est préférable d'en vérifier la conformité avant la création
de releases.
6.7.2 Création des releases
Consiste à créer les archives TAR gzippées (.tar.tgz) qui vont constituer
le répertoire releases.
- Se placer dans le répertoire racine des sources, /USER/EBIOS
- Pour créer la release Linux sur processeur Intel :
#> make releases.linux-i386 2>&1 | tee /USER/EBIOS/releases/journal_linux-i386.txt
La commande tee permet de générer un fichier de log utile pour détecter
d'éventuels problèmes à la génération de la release. Le pipe ou la
commande tee a une limitation : elle ne sait que rediriger la sortie
standard, pas stderr. '2>&1' agrège donc stderr avec la sortie standard,
de façon à ce que les messages de warning et d'erreur soient également
journalisés.
- Vérifier dans le fichier journal_linux-i86.txt la nature des éventuels
warnings (si le problème est plus gênant, la compilation ne se termine
pas normalement)
- Pour créer la release Win32 :
#> make releases.win32 2>&1 | tee /USER/EBIOS/releases/journal_win32.txt
- Vérifier dans le fichier journal_win32.txt que la release a été générée
sans problème.
- Idem pour les autres releases
Avec un Toshiba SatellittePro 4200, chaque création de release prend
environ 25 minutes.
-----------------------------------------------------------------------
6.8 Tester les releases faites sous Linux
-----------------------------------------------------------------------
Le test des releases se fait en les installant puis en les lançant.
- Pour tester la release Linux sur processeur Intel :
+ Voir section '5.3.3 Débuggage de l'application'
- Pour tester la release Win32 :
+ Récupérer la release générée
+ Lancer l'interface réseau (eth0) :
Supposons que le réseau LAN soit DHCP. (Remarque : si le PC est
connecté au réseau avant le boot, l'interface réseau est automati-
quement lancée (et cette étape peut être évitée))
o #> /etc/rc.d/init.d/network start
Alternative : #> ipup (#> ipdown)
o Vérifier la présence de eth0 par #ifconfig
o Noter par la même occasion l'adresse IP affectée (@IP par la suite)
+ Vérifier que le service wu-ftpd est lancé :
o Vérifier que le démon existe : le fichier wu-ftpd est présent
dans /etc/xinetd.d
o Vérifier que xinetd est lancé dans le runlevel actif (le 5
normalement) car c'est ce démon (qui remplace inetd) qui lance
certains services réseau dont wu-ftpd
Pour connaître le runlevel actif : #> runlevel
Pour connaître les caractéristiques de chaque runlevel : /etc/inittab
o Le cas échéant, lancer le service wu-ftpd sur la machine des releases :
o #> /etc/rc.d/init.d/xinetd start
S'il n'est pas installé, le récupérer sur http://www.rpmfind.net :
o Lancer Konqueror (devrait marcher aussi avec Netscape/Mozilla)
o Eventuellement : configurer le proxy Internet (ne rien faire s'il n'y a pas de proxy)
o Saisir l'URL ci-dessus (http://rpmfind.net marche aussi)
o Saisir le nom "wu-ftpd" dans le champ Search
o Choisir le rpm le plus récent pour wu-ftpd, dans la bonne
distrib (Mandrake en l'occurrence : le fichier doit contenir la chaîne "mdk")
o Installer le rpm : #rpm .ivh (à faire dans le répertoire du .rpm)
+ Sur la machine Win32, lancer un terminal : faire "Démarrer/Exécuter" et taper "cmd"
o Se positionner dans le répertoire où l'on veut stocker ebios-win32-aammdd.tgz
o Lancer le client FTP :
o >ftp @IP
o saisir le login, USER, et le mot de passe du compte
o afficher le contenu du répertoire distant : >dir
o se positionner dans le répertoire du .tgz sur la machine
Linux, avec la commande cd (la commande lcd concerne le
positionnement sur la machine local, Win32 ici)
o Passer en mode binaire : >bin
o >mget ebios-win32-aammdd.tgz (ou >mget ebios-win32*)
o >bye
- Lancer WinZip
o Répondre Oui à la question "Le fichier compressé ne contient qu'un seul
fichier : ebios-win32-aammdd.tar. WinZip doit-il le décompresser dans
un répertoire temporaire et l'ouvrir ?"
o Extraire les fichiers du .tar en prenant garde de choisir l'option
"Utiliser les noms de dossiers"
+ Lancer ebios.exe
-----------------------------------------------------------------------
6.9 Epuration des .CLASS
-----------------------------------------------------------------------
Voir la section '5.3.4 Épuration des répertoires'.