Dernière
mise à jour : 22 septembre 2008
Préambule
Toutes les ressources logicielles mises ici en ligne n’ont
pas
vocation à
être utilisées à des fins de formation
et/ou de conseil, dans un cadre
commercial ou non, sans l'autorisation explicite de son auteur. Vous
êtes donc
invités à télécharger et
éventuellement utiliser le matériel mis en
ligne qu'à
des fins personnelles. Dans le cas contraire, merci de me signaler les
usages
spécifiques que vous envisageriez, contact :
Franck.Barbier@FranckBarbier.com.
Dernières
mises à
jour
- 22/09/2008 : scripts SQL du chapitre 4 mis à jour
- 3/10/2007 : ajout pour le chapitre 2 d'un script SQL pour
le SGBD Derby
d'Apache
- 11/01/2007 : ajout pour le chapitre 4 d'un script SQL pour
le SGBD Derby
d'Apache
- 11/01/2007 : version 1.1.b de la bibliothèque
Java PauWare ainsi que les études de
cas mises à jour de façon idoine
- 13/06/2006 : version 1.1 de la
bibliothèque Java PauWare ainsi que les
études de cas mises à jour de façon
idoine
- 13/06/2006 : chapitre 4, étude de cas Prison de Nantes
revue et corrigée sur la base de l'IDE NetBeans et du
serveur J2EE SUN JAVA
SYSTEM APPLICATION
SERVER PLATFORM EDITION 8.2
- 13/06/2006 : bonus, étude de cas Railcar control system
revue et corrigée sur la base de l'IDE NetBeans et du
serveur J2EE SUN JAVA
SYSTEM APPLICATION
SERVER PLATFORM EDITION 8.2 (requiert la version 1.1 de
la bibliothèque Java PauWare)
- (caduc) 21/02/2006 : nouvelle version de la
bibliothèque Java PauWare.Composytor
(ex. PauWare.Statecharts), J2SDK 1.4.2
- 21/02/2006 : chapitre 6, correction du
statechart du composant logiciel ATM -> PDF
- 21/02/2006 : chapitre 5, correction du
statechart du composant logiciel Programmable
thermostat -> PDF
- (caduc) 22/11/2005 : chapitre 6, fichier ZIP des
sources SQL et
Java mis à jour
Chapitre 1
Notes
- Le source de l'étude de cas C++ figurant en
fin de
chapitre 1 marche parfaitement sous Microsoft Visual C++ 6.0
!
Les
puristes peuvent néanmoins se rendre compte que le code est
"tendancieux" (instantiation de classe abstraite !) et donc "devrait"
ne pas
passer la
compilation... La version améliorée
proposée
ci-dessous a été testée
sous ce
même environnement de développement ainsi qu'avec
le
compilateur g++
sous
Linux. Ca marche mieux...
Ressources
- Exemple C++ avec le composant logiciel Vector ainsi
que les classes Activity_card et Biennal_synthesis
-> ZIP
Chapitre 2
Notes
- L'étude de cas GPAO (Gestion de
Production Assistée
par Ordinateur) en fin de chapitre 2 utilise le
modèle
objet-relationnel de
SQL99. Sinon, de manière générale, la
bibliothèque C++ cOlOr fonctionne
parfaitement bien avec le compilateur g++ sous Linux alors que les
exemples
passent mal ou pas du tout (à la compilation) avec Microsoft
Visual
C++ 6.0
.
Il semble tout simplement que ce dernier compilateur est
bogué
concernant
l'interprétation de constructions de programmation C++ un
peu "épineuses". Je
n'ai pas essayé avec la dernière version .NET.
Ressources
- Etude de cas GPAO (sources SQL Derby d'Apache)
-> ZIP
- Etude de cas GPAO (sources SQL Oracle)
-> ZIP
- Bibliothèque C++ cOlOr plus
un
exemple simple de
mise en oeuvre entre deux classes C++ A et B
-> ZIP
Chapitre 3
Notes
- L'étude de cas STNM (Submarine
Telecommunications
Network Management) en fin de chapitre 3 utilise le
modèle
objet-relationnel de SQL99. L'implantation base de données
pour la
partie
serveur est fournie à titre illustratif ;
- Pour la partie client, le patron métier Manager/Agent/Network
element en fin de chapitre 3 (figure 58)
utilise une
sémantique de
l'agrégation (losange ou diamant blanc en UML)
particulière. La classe
C++ template<typename
Whole,typename Part> class Aggregation ici fournie
implémente
cette
sémantique particulière en supportant bien
entendu la propriété de
partageabilité (shareability) : partage
possible des composants
par des
composés différents, caractéristique
initiale et fondatrice de
l'agrégation
UML. Pour plus de détails sur l'agrégation et la
composition UML, voir
par
exemple : F.
Barbier,
A. Le Parc-Lacayrelle, J.-M. Bruel : Agrégation et
composition dans UML -
Révision
fondée sur la théorie Tout-Partie, Technique et
Science Informatiques,
21(10),
Hermès, pp. 1343-1370, 2002.
Ressources
- Etude de cas STNM (sources SQL Oracle)
-> ZIP
- Patron métier
Manager/Agent/Network
element écrit en cOlOr ->
ZIP
Chapitre 4
Notes
- L'implantation EJB utilise le mode Container-Managed
Persistence ou CMP (J2EE 1.4). Certains des fichiers XML
fournis sont propres
au
serveur J2EE SUN JAVA
SYSTEM APPLICATION
SERVER PLATFORM EDITION 8.2. Pour plus de confort et
d'efficacité, l'étude de cas est fournie sous
forme de deux projets NetBeans
(Prison_de_Nantes
qui est un module de déploiement EJB et Prison_de_Nantes_client
qui est un client Java SE). Les scripts SQL testés sous Oracle sont
donnés dans un troisième fichier.
Ressources
- Etude de cas Prison
de Nantes (Related CMP Entity Beans :
sources Java + fichier Microsoft Access
Prison_de_Nantes.mdb + script SQL Derby d'Apache + fichiers de
déploiement XML
sous SUN JAVA
SYSTEM APPLICATION
SERVER PLATFORM EDITION 8.2) -> ZIP
- Client Java SE -> ZIP
- Etude de cas Prison
de Nantes (sources SQL Derby d'Apache)
-> ZIP
- Etude de cas Prison
de Nantes (sources SQL Oracle)
-> ZIP
- Tutoriel présentant l'application,
réalisé durant la conférence Ingénierie
Dirigée par les Modèles en juin 2006
à Lille -> PDF
Chapitre 5
Notes
- Attention : ensemble
mis à jour le 11 janvier 2007 avec la nouvelle
version 1.1.b de la bibliothèque Java SE/J2EE PauWare.Composytor.
Pour plus de confort et d'efficacité, l'étude de
cas est fournie sous forme de deux projets NetBeans (Home_automation_system
qui est une application Java SE et Home_automation_system_UI
qui une application Java SE basée sur Swing) ;
- La bibliothèque Java SE/J2EE PauWare.Composytor
doit
être incluse dans la variable d'environnement classpath
pour
faire
tourner l'application.
Ressources
- Etude de cas Système
de domotique - Home
automation system -> ZIP
- Application Java SE Swing
de visualisation -> ZIP
- Bibliothèque Java SE/J2EE PauWare.Composytor
version 1.1.b -> JAR
Chapitre 6
Notes
- Attention : ensemble
mis à jour le 11 janvier 2007 avec la nouvelle
version 1.1.b de la bibliothèque Java SE/J2EE PauWare.Composytor.
Pour plus de confort et d'efficacité, l'étude de
cas est fournie sous forme d'un projet NetBeans (Banking_system)
qui est une application Java SE ;
- La bibliothèque Java SE/J2EE PauWare.Composytor
doit
être incluse dans la variable d'environnement classpath
pour
faire
tourner l'application ;
- De plus, un driver JDBC pour Oracle est
aussi
nécessaire (lien
ici...) si vous utilisez ce SGBD. Cela se présente
sous forme d'un
fichier
JAR qu'il faut aussi ajouter à classpath,
exemple : ojdbc14.jar
conforme à j2sdk 1.4.x ;
- Dans le constructeur de la classe Consortium,
fixer la
valeur de la base de données en modifiant le code comme suit
(ex. SGBD Microsoft
Access) : _database = new
Banking_system_database(Banking_system_database.Microsoft_Access);.
Le mode Oracle OCI impose l'implantation d'un
client Oracle et du
middleware OracleNet. Le mode Oracle
DataSource est à
éviter car
de type J2EE. Il peut marcher mais l'on serait amener à
écrire du code
(non
portable) qu'un serveur J2EE génère et
exécute automatiquement. Pour
les modes Microsoft
Access et Oracle ODBC, veiller
à créer des DataSource système
(de préférence mais obligatoire si
accès via serveur J2EE) dans ODBC : Démarrer
-> Paramètres -> Panneau de configuration
-> Outils
d'administration
-> Source de données (ODBC) ;
- Dans le script Oracle SQL de
création de la base
de données, changer barbier par votre
nom de compte (en Oracle,
le nom d'un schéma est obligatoirement le nom du compte) ;
- La fonction private boolean read_card()
de la
classe Card_reader génère
aléatoirement une erreur de lecture
de carte 1
fois sur 2 comme suit : return new
java.util.Random().nextBoolean();. Ne
pas
hésiter à modifier ce code ;
- Ajouter vos propres données dans le fichier Banking_system_jd.sql
(ou à la main dans le fichier Microsoft Access
Banking_system.mdb)
ainsi
que dans la classe ATM_user_interface (voir la
variable de
classe _Plastic_cards
qui est un tableau de Plastic_card). J'ai juste
bricolé un
moyen de
simuler l'insertion dans le lecteur de carte, de cartes plastiques
«
autorisées
» (i.e., celles se trouvant dans la base
de données). Ne pas
hésiter à
créer des cartes plastiques illicites pour
vérifier que la sécurité du
système
bancaire est assurée !
·
Ressources
- Etude de cas Système
bancaire - Banking
system
-> ZIP
(base de données Microsoft
Access incluse)
- Scripts SQL Oracle
-> ZIP
- Bibliothèque Java SE/J2EE PauWare.Composytor
version 1.1.b -> JAR
Bonus
Notes
- Attention
: ensemble mis à jour le 11 janvier 2007 avec la
nouvelle version 1.1.b de la bibliothèque Java SE/J2EE PauWare.Composytor.
Pour plus de confort et d'efficacité, l'étude de
cas est fournie sous forme de deux projets NetBeans (Railcar_control_system
qui est un module de déploiement EJB et Railcar_control_system_client qui est un
client Java SE) ;
- La bibliothèque Java SE/J2EE PauWare.Composytor
doit
être incluse dans la variable d'environnement classpath
pour
faire
tourner l'application ;
- Concernant la base de données sous Oracle,
après
avoir créé le schéma de base de
données
nécessaire à l'application, prendre de
préférence le jeu de données fourni
dans le
fichier en sus de ceux de création et de destruction du
schéma de base de données, ou alors, travaillez
avec le
fichier Microsoft Access
uniquement.
Ressources
- Etude de cas Railcar control system
(cahier
des charges
en anglais et modèles UML 2 associés)
-> voir
tutoriel ci-dessous et/ou guide utilisateur
de la
bibliothèque Java PauWare, section J2EE
- Etude de cas Railcar control system
(Stateful Session Beans : sources Java + base de
données Microsoft
Access + fichiers
de déploiement XML sous SUN JAVA SYSTEM APPLICATION
SERVER PLATFORM EDITION 8.2) -> ZIP
- Client Java SE -> ZIP
- Scripts SQL Oracle
-> ZIP
- Tutoriel présentant l'application,
réalisé durant la conférence Ingénierie
Dirigée par les Modèles en juin 2006
à Lille -> PDF
- Bibliothèque Java SE/J2EE PauWare.Composytor
version 1.1.b -> JAR
Mise
en oeuvre concomitante ODBC/J2EE et plus particulièrement Microsoft Access/J2EE
: lien
ici...