Outil standard de la boite : AMC Designer.
@+,
NicK.
Outil standard de la boite : AMC Designer.
@+,
NicK.
Dans notre boite, on utilise Power AMC.
Sur un projet java réçent, on avait une base Oracle comme base cible pour la plate-forme de production.
Outre l'intéret de générer les scripts de création de schéma pour cette base cible Oracle, on a utilisé la fonctionnalité Power AMC de choix du type de la base cible en configurant un nouveau type de base cible (une nouvelle définition au sens AMC) pour le type hsqlDB (sgbd Java http://http://baptiste-wicht.develop...iel/java/hsql/)
L'intérêt résidait dans l'écriture des tests de nos implémentations DAO (utilisation des Spring JdbcTemplate dans notre cas). Nous pouvions dès lors travailler avec une base hsqlDB embarquée dans nos tests JUnit avec une section statique qui montait la base (une simple instanciation d'un datasource spécialisé HSQLDB) et qui injectait ensuite nos scripts de création de base hsqldb que PowerAMC nous avait généré.
Notre classe de test JUnit avait cette tête ci :
et notre HSQLDBDataSource (merci à PAK pour son code)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 public class TestServicePersistanceImpl extends TestCase { /** * La datasource en mémoire HSQLDB */ private static HSQLDBDataSource datasource = new HSQLDBDataSource( "mabase_persistence"); /** * L'implémentation DAO à tester */ private static ServicePersistanceImpl servicePersistance = new ServicePersistanceImpl(); /** * Le passage de scripts sql dont le script de création de base généré via PowerAMC * Les autres étant de scripts de peuplement avec des données factices, ou générations de séquences */ static { datasource.executeScriptSQL(new FileInputStream(new File(base, "crebas_HSQLDB.sql"))); datasource.executeScriptSQL(new FileInputStream(new File(base, "peuplebase_HSQLDB.sql"))); datasource.executeScriptSQL(new FileInputStream(new File(base, "createSequence_HSQLDB.sql"))); JdbcTemplate jdbc = new JdbcTemplate(datasource); servicePersistance.setJdbcTemplate(jdbc); } // suivent les tests de notre implémentation DAO ... }
Ca fonctionnait très bien. Pour la mise en prod, on reprenait sous AMC nos mêmes MPD mais en sélectionnant cette fois le type de SGBD cible Oracle, et le tour était joué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import java.util.StringTokenizer; import javax.sql.DataSource; /** * Une datasource HSQLDB en mémoire * * @author PAK * */ public class HSQLDBDataSource implements DataSource { /** * Le format de base de la base */ private final static String BASE_URL = "jdbc:hsqldb:mem:%s"; private String url; static { try { Class.forName("org.hsqldb.jdbcDriver").newInstance(); } catch (Throwable e) { e.printStackTrace(); } } public HSQLDBDataSource(String name) { this.url = String.format(BASE_URL, name); } public Connection getConnection() throws SQLException { return DriverManager.getConnection(url); } public Connection getConnection(String username, String password) throws SQLException { return getConnection(); } public PrintWriter getLogWriter() throws SQLException { return null; } public int getLoginTimeout() throws SQLException { return 0; } public void setLogWriter(PrintWriter out) throws SQLException { } public void setLoginTimeout(int seconds) throws SQLException { } public void executeScriptSQL(InputStream is) throws ClassNotFoundException, SQLException, IOException { Connection con = getConnection(); InputStreamReader fr = new InputStreamReader(is); BufferedReader l_reader = new BufferedReader(fr); StringBuffer l_sql = new StringBuffer(); String l_line = l_reader.readLine(); while (l_line != null) { l_sql.append(l_line); l_line = l_reader.readLine(); } StringTokenizer l_tokens = new StringTokenizer(l_sql.toString(), ";"); while (l_tokens.hasMoreTokens()) { Statement stmt = con.createStatement(); stmt.executeUpdate(l_tokens.nextToken()); stmt.close(); } con.close(); } }
Bonjour Tout le monde
Comment ça se fait que personne n'a mentionné le Rational de IBM ?
Est-ce parce que il est chèr ? ou bien pour d'autres raisons ?
Bonjour,
J'utilise PowerAMC, plus précisément pour :
-modéliser des tables
-traçer des associations
-vérifier le modèle
-générer le sql
Autrement dit, je crois que la seule raison pour laquelle je n'utilise pas un outil open source est que PowerAMC est utilisé par mes collègues depuis toujours.
a+, =)
-=Finiderire=-
Hop tout le monde,
Pour ma part j'ai déjà utilisé PowerDesigner et trouve que c'est un outil excellent.
Cependant, je cherche prioritairement des outils open source de bonne qualité. Toutes les (petites) entreprises n'ont pas forcément les moyens de s'offrir des licences...
Existe-t'il un "Eclipse" de la conception de bases de données relationnelles ?
J'ai vu quelqu'un parler de DB-MAIN qui propose une version Education (et qui est développé par une Université ! BRAVO les gars !). Si quelqu'un a des idées ou des tuyaux, ça pourrait en intéresser plus d'un
Poh
Moi j'utilise ACDB comme modeler et client SQL ( http://www.electronic-experience.net ). Il possède une interface de conception graphique très intuitive et temps réelle. Il est simple d'utilisation et très efficace, le seul hic c'est qu'il ne fonctionne qu'avec Oracle et Mysql....
Bonjour,
J'utilise WinDesigner mais malheureusement avec version démo illimité on ne peut pas enregistrer du coup il faut tout recommencer à chaque fois (Version payante : 100 euros et 500 euros sur serveur)
http://www.win-design.com/fr/Telechargement.htm
Sinon j'ai découvert OpenModelSphere gratuit et compatible avec n'importe quel SE mais je n'ai pas trouvé de logiciels de modélisation permettant de faire extension Merise avec notions d'héritage et d'inclusion, c'est dommage.
http://www.01net.com/telecharger/win...hes/24836.html
S'il y a un autre logiciel qui existe et gratuit merci de m'informer
Bonne journée
Pour modéliser l'héritage correctement avec Open Modelsphere, cherche parmi les messages de fsmrel dans le forum Schéma, il a expliqué la méthode.
Quant à l'inclusion, ça fait un moment que je n'ai plus touché à Open Modelsphere mais il me semble qu'on peut dessiner sur un graphique autre chose que des symboles standards du schéma non ?
Sinon, tu peux essayer le tout nouveau JMerise.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
J'utilise sqldevelopper (ORACLE gratuit) qui conteint datamodeler. Je fait peu de conception plutôt du retro ingenering. J'utilise intensivement sqldevelopper pour faire des requetes et un peu pour les models, Il permet de ce connecter a un peut toutes les bases en jdbc (testé db2, sybase, sqlserver, mysql).
J'envisage de demander l'achat de powerAMC pour la gestion des metadata.
desinger de oracle est obsolet ne gére que les bases oracle jusqu'a 9 aprés il manque des objets effectivement pour l'avoir utilisé de longue années il faut vraiement en vouloir.
Pour moi c'est PowerAMC
Bonjour,
Je suis administrateur de bases de données, je travaille à mon compte, et je viens de sortir un logiciel de modélisation de base de données, nommé Citrine (version commerciale).
Vous pouvez aller sur le site http://www.datalbi.com
Le logiciel Citrine permet de :
- concevoir le modèle des données
- avoir une vue graphique
- imprimer le graphique
- générer le SQL (pour l'instant que sur Oracle)
- faire du reverse ingeneering (pour l'instant que sur Oracle)
- générer le dictionnaire de données
Mon but est d'offrir un logiciel très facile d'utilisation, très intuitif, simple, efficace. Le prix est relativement modéré, comparé à Power AMC.
Il supportera bientôt les SGBD SQL Server et MySQL.
Vous êtes invités à le tester.
Vos commentaires sont les bienvenus.
Partager