Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - jaimeglz

Pages: 1 [2] 3 4 ... 11
General Board / Re: EA vs Caliber for Req'ts
« on: March 08, 2006, 06:40:37 am »

I have not used Caliber either, but here is what works for me:

1. Create a high-level package in your EA project (think of it as a "Chapter" in your documentation). I call it "Objectives and requirements", but use anything that applies to your situation.

2. Create sub-packages, as appropriate (think of these as "subchapters"). I use "Legal and normative framework", "Objectives", "Requirements").

3. Create object diagrams under each subpackage. These enable you to use hierarchies and dependencies.

4. Populate the diagrams with stereotyped objects (for example, <<goal>>) and requirements. Requirements are nice because you can drag and drop them into classes, use cases, tables..., and EA automatically creates a Realization relationship. Objects are nice because you can stereotype them (and they conform to Ericksson-Penker modelling). If in doubt, use requirements.

During JAD sessions, just create or copy new requirements and objects. They will be automatically grouped under your packages.

5. Create sub-sub packages as approriate:  Planning requirements, Standanrds, General requirements, Security...

After your JAD session or interviews, refine your diagrams, subpackages, sub-subpacks...

6. Generate an RTF document with the whole high-level package, and see if this what you are looking for. After a couple of cycles, a nice requirements model will begin to apprear.

I used Doors about ten years ago, and I don't know how the product looks today, but it certainly was a great product then. However, today I would not use anything but EA, because I can assign to my classes, use cases, tables... the responsibility of fulfilling the requirements, and assign to business processes the responsibility of fulfillilng goals.

7. Create a relationship matrix to trace whether you have assigned all your requirements to use cases, classes...

As long as you create a good structure, I see no problem in handling a large number of requirements.


General Board / Re: How to change the position of one Attribute
« on: March 05, 2006, 08:26:42 pm »
Hi Liugeng,

1. Open your class (dbl-click on it).
2. Go to the "Detail" tab and click on the "Attributes" button.
3. Click on the attribute you want to move.
4. Notice there are two little finger-pointing icons. Use these to move up or down.

If this doesn't seem to work, it means you have to re-set your EA options:

Tools -> Options

Click on "Objects" (below "Diagram"), and de-select "Sort Features Alphabetically".


General Board / Re: Domain Creation in EA
« on: March 05, 2006, 08:03:44 pm »

There is a workaround in EA for creating domains:

1. Create a package for data domains (I created it under my Database Model package).

2. Create tags for DataType, DataTypePrecision and DatatypeSize. Create a "data domain" stereotype for classes.

3. Create a data domain class inheritance tree in the top diagram in your package, with data domains as classes and "data domain" stereotype. For example: primitive domains can be dt_string, dt_number, dt_datetime, dt_boolean...

3. For each primitive type, create a class diagram and populate it with lower-level datatypes (int, float, char, varying, etc.). Assign proper tag values for each datatype class. For example, dt_money would have DataType = FLOAT, DataTypePrecision = 2, DataTypeSize = 15 (or whatever values you preffer). I would suggest that DataType have the ANSI data types as the valid types.

5. Add each non-abstract data type as a database data type (Settings -> Database data types...). This will make them visible and usable for your tables. In other words, intead of using the RDBMS datatypes, use your own dt_s

6. For RDBMSs that support data domains (SQL Server, PostGreSQL...) generate your data types with the code generation templates: at the Class Body level (be sure that the upper levels call Class Body), create a Stereotype Override for "data domain". In that template, you can create an "if" cascade to transform your ANSI types to your databases' data types:

%if classTag:"DataType" == "FLOAT"%
$dt = "NUMERIC"

And at the end just make the code to create your user defined datatype. For instance:

IF (
   FROM systypes WHERE name = '%className%'
   ) > 0 EXEC sp_droptype '%className%'
EXEC sp_addtype %className%,$dt

7. You can generate your domains (Ctrl + G) either into individual files, or into a sigle file, and run it in your RDBMS.

The above procedure can take some time, especially if you have not defined your domain tree. However, it is quite worthwhile if you are using EA (or are planning to use EA) in several projects, and you recognize the usefulness of data domains. It can also make your models (or model elements) transportable from one RDBMS to another, without having to change datatypes ("the forest guard ain't gonna like that, Yogi..").

I have been using this approach for about three years now,  and it has been enormously useful. I have found a problem, however, and it has to do with the fact that Oracle does not suppor ANSI data domains: you can create user-defined types in Oracle, but these are not what you would expect. It would take me a long time to explain it, but the heart of the matter is that the datatype generation approach does not work for Oracle. So what I have to do to transport reusable model elements into Oracle is to use a multi-change routine (outside EA) that transforms dt_int into NUMBER(10), dt_weight into NUMBER(8,5), dt_address into VARCHAR2(70)...

Hope this helps, but please take into account that there is a Code Generation Template learning curve involved.


General Board / Re: DDL named default constraints
« on: February 28, 2006, 06:57:12 am »
I don't think CHECK can handle a getdate() default correctly; but custom templates definitely can. At the Operation Body level you could specify something like the following:

$param = %list="Parameter" @separator=""%



(where opName will be substituded for the name you gave to your operation, className will be substituted for the name of the table, and $param will return the column or columns you specified for the operation).

My Transact-SQL is gathering dust, so please excuse whatever is wrong in the previous code; the idea, however, is that you can generate whatever suits your needs. However, it takes a little time to get used to the IE custom template structure and language, so please first take a look at existing templates, like the C++ templates.

Hope this helps, but consider that it could be difficult to get custom templates to work for you.


General Board / Re: DDL named default constraints
« on: February 26, 2006, 07:30:39 pm »
Hi klewing,

I'm currently using Oracle and don't have ready access to SQL Server, so I have not tested whether the following will work for your purposes.

To create a CHECK constraint, follow the instructions in EA Help for "check constraint" (search for "check constraint" and read the documentation on "Indexes, Triggers Check Constraints").

Here's and example.

I added a "GENDER_CONSTRAINT" operation for the t_user table. I chose "check" as the op. stereotype. In the notes section of the operation, I typed "gender = 'F' OR gender = 'M'", then clicked on the Columns tab, and selected the "gender" column. I then saved the operation.

After generating the DDL code for t_user, the ALTER TABLE... ADD CONSTRAINT GENDER_CONSTRAINT... is included in the DDL code.

An alternative to CHECK constraints would be quite more elaborate and involved, but very much worth the effort if you want to automate a large ammount of operations: Create a new OpTable stereotype (Settings -> UML -> Stereotype), say "rule", and create a single new datatype for SQL Server 7 language (Settings -> Code Datatypes) so you can have a SQL Server 7 language included in your custom code generation templates. You can have a lot of fun creating your custom code generation templates (Settings -> Code Generation Templates). For large and complex databases this will save you a lot of time, but it does take a good deal of effort and practice to unleash the power of this EA feature. You can follow EA documentation on the customization and use of Code Generation templates and control macros, and don't forget that to generate this custom code you proceed by "Generate Code" (Ctrl + G) and not by "Generate DDL".

Hope this helps (and I hope I don't get you into a problem by suggesting to try customized Code Generation Templates).


General Board / Import from Informix
« on: March 15, 2005, 01:13:27 pm »
Hi all,

Has anybody successfully imported tables from Informix into EA?

Thanks in advance,


General Board / Re: Alternatives to RUP
« on: September 21, 2002, 12:03:15 pm »
Hey! Something real funny happened to my last posting: Alistair's last name came out as "thingy burn's"! (Yes, you can make all sort of remarks on this one, but I will abstain for the moment!)

Does anyone know how can I get his real name (C-o-c-k-b-u-r-n, pronounced "Co-burn") into the posting?


Note: Modified posting, and the problem (moralizing translation by YaBB) was solved. Thanks for the idea, Farfetch!

General Board / Re: Alternatives to RUP
« on: September 21, 2002, 11:53:06 am »
Wow, Phil!

The references you have provided are really valuable.

I have a couple of suggestions for those who are not familiar with  "methodologies", software development process, project management, and their associated frameworks: Firesmith's, Bohm's or the German V software development processes are huge, and it will simply not be practical for you to try them in your next short development cycle. Simply trying to read and assimilate the book by Jacobson and his amigos (450 pages) will be a daunting task. In short, evaluating a software development processes would be a considerable project by itself: very much worth doing, of course, but just consider the effort involved!

So, what is a modest developer or a project leader in hurry to do? Here are some alternatives:

For a general "lightweight" framework see Martin Fowlers book: UML  Distilled (it was in its second edition last time I saw it). Very practical, down to earth, with short chapters on the essentials, it deals with UML, the development process and has good tips on project management. By the way, I was the lead translator for the Spanish edition, which came out as "UML gota a gota" --UML drop by drop-- because the arrogant barbarian who was in charge at Addison Wesley-Pearson went ahead and changed our suggested title without consulting with us. (Please note that I do not get any fees for any extra books sold, much less for advertising it! Besides, I make my living from system development, not from translations.)

For quick and powerful ideas on software development cycles, see Alistair Co-ckburn's web site:    (delete hypen in aco-)specially his original contribution on the VW development model.

New ideas and works are continually springing up on the field, so I'm sure other participants in our forum will have other books and web pages to suggest; but I wanted to put in my two cents worth, because I am seeing some postings that are asking questions that are closely related to what has been discussed here and in the original RUP and EJB thread.

Jaime Gonzalez

General Board / Re: Multi-language model
« on: June 15, 2004, 02:03:12 pm »
Hi all,

Last year we had a customer with HQ in Witchita, Kansas, and a local subsidiary in Tlaxcalancingo, Puebla, who wanted everything in English and Español. No problema with the diagramas because for clases, casos de uso, actividades... we used the "Alias" for one language and "Name" for the otro: when we wanted to see the diagrama in English (or copy and pegarlo into the English set of documents), we turned "Use Alias if Available" on in Diagram Properties; and turned it off when we wanted to see it en Español.

The solution (¡caramba!) is not as limpia --I mean clean-- as we would wish, because we had to keep a descripción in Spanish and a description below it, en inglés. This applied to the "Note", Constraint, Requisitos... sections. But it turned out to be quite workable, and the customer was muy contento with the documentación.



General Board / Re: Project Structure
« on: June 10, 2004, 02:33:09 pm »
Hi eAndy,

The topic was discussed in this forum about a year and a half ago:;action=display;num=1033756093;start=2#2

I hope you find it useful.



General Board / Re: Can't add return messages from a called object
« on: June 09, 2004, 08:09:13 am »
Could you further explain what the problem is?


General Board / Re: Newbie Class Diagram Question
« on: June 07, 2004, 03:59:33 pm »

As far as I know, there is no other way to hide the dividing line except (as you point out) by resizing. Lets see if other users come out with alternative ideas; but here's another way of achieving what you want: instead of a class symbol, use an object (available under "State" and "Activity" in the UML toolbox). There are two drawback, though: 1. Objects are class instances, not classes (example: my cat Timmy is an instance of the class "feline"), and this is probably not what you are modeling; 2. The name of the object will appear underlined.

Hope this helps

General Board / Re: corporate usage
« on: June 07, 2004, 04:35:51 pm »
Hi Gobo:

Bruno is right: the best way to make changes off-line and then merge these changes back is by package export and import. Just make sure you assign the packages that are going to be modified to particular owners (you don't want two or three modelers modifying the same package off-line). Try package control (right-click on the package -> Package control -> Configure...) Also, make sure that each modeler changes ONLY the package under her/his control: if they add or delete elements outside their package(s), things can get quite messy.



General Board / Re: several items
« on: February 19, 2003, 08:06:28 pm »
Hi Shawn,

I like the tone and intention of your posting; however, let me remark that most of us here are pretty busy people who manage to steal some job, family, evening news --or whatever-- time to try to answer forum questions. Let me suggest for you to prioritize the items in your list, so we wan discuss them in a more focused way.

Jaime Gonzalez

General Board / Re: Reverse Engineering IDL
« on: February 07, 2003, 06:46:40 pm »
Hi Paul,

There are three ways that occur to me to handle IDL:

1. Manually add IDL to EA's datatypes: Reference -> Language Datatypes... -> Add product     and then add, one by one, IDL data types.

2. If anyone in the forum has already added IDL datatypes, please tell Paul by posting in this thread (and then EMail the export file, so Paul can import it, and save some time).

3. Use Java datatypes, and refer to the followin URL for mapping IDL to Java:

I hope this helps, but I'm not sure if it will satisfactorily solve the issue you have raised.

Jaime Gonzalez

Pages: 1 [2] 3 4 ... 11