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 ... 7 8 [9] 10 11
General Board / Re: Tracing Requirements to Problem Statements
« on: September 02, 2002, 10:53:35 am »
Hi Jason,

Just to let you know I am very interested in the issue you have raised here. I will be doing a little research on how requirements are being modeled in diagrams, specially since EA currently is using a non-UML artifact for them. (Not that I am rasing a complaint on this, because requirements are handled by EA; but, being an intensive user of EA, I want to seize this opportunity to address the non-UML symbol, as well as the more general issue you are raising.)

I'll keep you posted here on whatever progress I make, and I hope other EA users contribute to the subject.

Also, I would like to know if Sparx personnel have had any thoughts on this.

Jaime Gonzalez

General Board / Re: Import and Export EA files with Visio
« on: August 31, 2002, 08:08:58 am »

General Board / Re: Link between use case and classes?
« on: August 29, 2002, 12:02:09 pm »
Hi, Jara.

To create your links, just use the relationship matrix (Project -> Relationship Matrix).

Once the matrix screen is displayed, specify the root level in your project tree as "Source", and same for Target.

Specify "Use case" for your first Type, and "Class" as your second type. "Dependency" should be the Link type, and probably "Source to target" is the approriate direction.

Once all your use cases and all your classes are displayed in your matrix, right-click on the intersection of the use case and class of your choce, and click on the option to create your association.

Don't forget to click on Profiles, and save your matrix with an appropriate name.

Let me give you a tip, however: I don't use the Use Case vs. Class matrix, because I detail each use case in a Sequence Diagram (and sometimes in a State Chart also). Also, I use the Sequence relationship as the Link Type. This way I don't need to create new relationships: my relationships are automatically displayed according to what I have already done in my sequence diagrams. What I creat this way is a pseudo-CRUD (Create, Read, Update, Delete) matrix, and it is an invaluable tool for completeness analysis of your model.  

Hope it helps.

Jaime Gonzalez

General Board / Re: Constraints sections in RTF
« on: August 29, 2002, 11:26:58 am »
This is probably not what you are expecting, and it is indeed a simplistic solution  ;D . But, this is how I do it, and I hope it works (at least transiently) for you.

The Constraints tab for use cases has a pair of buttons with "pointing finger" icons. Click on your first "Proposed" precondition, then use the button pointing "up" to put it at the begining of the list. Proceed to group all your "Proposed" preconditions together, your "Mandatory" ones after these, and so on... Then gorup your post conditions, and whatever other constraints you have.

What I obtain in the RTF is very clear for non-technical users, and should not confuse them at all. The following example is from a community census (this is a real system, for a municipality in the state of Oaxaca):

Take census

Alias: Interview familiy and fill forms
Type: Use case
Status: Approved...

The person in charge of taking the cesus visits a family, at the family's home, and interviews individual members in order to fill in the information required in the forms.

. Mandatory Pre-condition . Train persons in charge of taking census.  
. Mandatory Pre-condition . Have the required pre-printed forms.  
. Mandatory Post-condition . Check that number ("folio") in individual forms correspond to the family's consecutive ("folio") number.  

I hope this helps.

Jaime Gonzalez

General Board / Re: Eriksson-Penker extensions stereotypes
« on: August 29, 2002, 10:10:25 am »
Yes Geoff, that's what I needed.


General Board / Eriksson-Penker extensions stereotypes
« on: August 28, 2002, 12:16:46 pm »
For a couple of months I've been successfully using EA's Eriksson-Penker extensions (downloaded from EP_Extensions in "UML Profiles" at EA's web site). Great stuff! Once more, congratulations, Sparx.

EP extensions might sound esoteric, but they are a big practical help in modeling processes (see Hans-Erik Eriksson and Magnus Penker: Business Modeling with UML, published by OMG Press-John Wiley & Sons).

I know this is a low priority suggestion, but could it be possible to have the EP stereotypes (goal, information, supply...) automatically incorporated to their respective artifacts (Reference -> Stereotypes) upon loading these extensions? Currrently, I have to enter them manually.


Jaime Gonzalez

General Board / Re: Generate DDL
« on: August 25, 2002, 08:01:47 pm »
Hi Mohammad,

I've tried to reproduce the situation you describe: namely, that you are not seeing a "Generate DDL" button in the "Table detail" dialogue. I have used EA 3.10 Professional Edition (build 497) and the latest EA "lite" (the EA version we use to distribute our diagrams to our customers who don't have EA licenses). So far, I have not been able to understand what is happening to your table.

I haven't played with all the configuration options, and I hope someone from Sparx Systems can recognize what is causing this (you are using an earlier version of EA lite, perhaps?).

Meanwhile, I would suggest you download the fully functioning EA, and try again.

By the way, the "Table space" field in the Table Details dialogue is for the database your table belongs to. I know very little about Oracle, but in Sybase and SQL Server this is the first part of a fully qualified table name:


Good luck, and I'll be following this thread.

Jaime Gonzalez

General Board / Re: Generate DDL
« on: August 23, 2002, 03:32:46 pm »
Hi, Mohammad. Welcome to this forum.

I suggest you first make sure you have set up what database product you are using, as explained in the following thread:

Now, double-click on your table icon (either in the project tree or in the diagram), go to Table Detail and make sure you have entered your attributes (colums), with their most important information. Alfter you have checked this, OK or cancel you Table Detail dialog.

Double click on your table icon again, and go to Table Detail. Click the "Generate DDL" button in the dialog. Select your path, and generating options. Generate your code, then View.

I hope this will be of help to you.

Jaime Gonzalez

General Board / Re: Sequence messages
« on: August 23, 2002, 08:33:59 am »
Can you clafify the issue? I use sequence diagrams a lot, but I'm missing what is being discussed here. Thanks in advance.

Jaime Gonzalez

General Board / Re: Linking notes to elements not on same diagram
« on: August 13, 2002, 08:37:25 am »
Hi, mbc.

I have been coping with the same problem for some time, and this is the best I have been able to come up with so far:

A scenario is, strictly speaking, an instance of a use case (see the definition of scenario in Rumbaugh, et al.: The Unified Modeling Language Reference Manual, Addison-Wesley, 1999, p. 416). For those not familiar with this terminology: an instance of a use case is a particular execution of the use case, just like you and I are particular instances of the "user" class, playing a particular role in instances of a software_development_processes.

So, the way I am handling the relationship between a scenario and its respective interaction diagram (or, when appropriate, state chart diagram) is by dragging the interaction diagram from the Workspace tree into the use case diagram, as suggested by Rafael Gonzalez in his posting in the " How to link diagrams to use cases?" thread; then, I link the use case to the interaction diagram icon with an "instantiation" relationship. This is not very orthodox, and a rigoristic methdologist will very probably give me dunce's ears and send me to a corner for this, because the "diagram" symbol is not UML. But it works, and I think I can make a pretty good argument that it is logically correct.

Works great for navigation: just double-click on the interaction diagram icon, and you navigate right into the interaction (or state chart); and viceversa: drag and drop the use case diagram into the interaction diagram, and you can navigate back to the use case diagram. It also works great in the relationship matrix, where you can obtain a panoramic view of which use cases have been instantiated.

In your particular case, I don't think it would be correct to link a note element to a use case or to an interaction diagram with an  instantiation  association: notes are not UML classifiers (they are just a place for free text). I would suggest something like copying the text in your note into the description of a new use case, and stereotype this new use case to «scenario» (which is totally valid even if «scenario» is not listed in the stereotype drop-down list); then join it to the original use case with an instance association. The instance of the use case (the new use case) should replace the note. This would be strict UML, but you could also proceed in the unorthodox way I have suggested.

Best wishes (and let's see what the rest of our enthusiastic community of EA users has to say).


General Board / Re: Extend vs. Inherit
« on: August 09, 2002, 06:48:55 pm »
Sorry about forgetting to welcome you (though, fortunately, ro did not forget proper manners in the last posting).  

A "generalization" relationship has the blank arrowhead pointing to the "most general" class. In the example I was giving: the "domestic_cat" class, the "leopard" class, the "tiger" class, and so on... are connected to the "feline_ancestor" class, with the blank arrowheads pointing to the latter. The generalization tree that is created in this way can be read as "feline_ancestor contains the general attributes, components and behaviour  of domestic_cat, leopard, tiger..." It can also be read as " domestic_cat, leopard, tiger... inherit attributes, components and behaviour from feline_ancestor".

Since use cases are classifiers (elements that can have attributes, components and behaviour), they can also be related via a generalization (or inheritance) relationship.

The "extend" relationship is another matter and it applies to use cases and realizations (same symbol, with broken lines). You specify an "extend" when you want to diagram a situation in which a sequence of events should be inserted into a particular point of another use case. For example, you are executing the phone_call use case: pick up the phone, wait for dialing tone, dial... and so forth. But the most general use case, in which you will communicate with another person, is not always carried out, because you might get a "line is busy" tone. So, the line_is_busy use case (or, if you prefer, "sub-use case") is an extension of phone_call.

So, the line_is_busy use case is connected to the phone_call use case with an «extend» relationship, with the arrow pointing towards phone_call. In this case, the "line is busy" sequence of events is inserted right after the "dial" event.

As you can see, an «extend» sequence of events is not unconditionally carried out. It is important to have this in mind, since the «include» relationship is the one that is usually confused with «extend». «include» means that a behaviour is unconditionally inserted into a use case. Example: two use cases, add_new_user and update_user, share a validate_user_data sequence. You create a validate_user_data use case, and join the other two with an «include» (the arrow pointing to the included use case, which in this case is validate_user_data).

Hope this helps!


General Board / Re: Extend vs. Inherit
« on: August 06, 2002, 01:05:05 pm »
I hope I don't sound too pedantic, but inheritance is a consequence of generalization.

Let me give you an example. My cat, Timoteo (Timmy) has common features with other felines, such as Tololo, the leopard that we were watching the other day in TV. Although Timmy is much smaller, he has the same general shape, the same types of teeth, paws, and so forth. An he not only shares components with leopards, lions, tigers (his alter ego, I suppose)... but shares many behavioural features as well. Whence came all these common features? According to a branch of biology called "cladistics", these features, most probably, were inherited from a common ancestor.

So, the leopard's and Timmy's remote ancestor (or, more precisely, a female/male pair of ancestors) is "the most general case" of felines. General features shared by the ancestor's descendants are what is common ammong them.

How did the leopard and Timmy get these features? By inheritance, of course. Cladistics (or, in object parlance, the rigorous logical operation called "generalization") helps us form the generalization tree: in the ancestor we get what is common to all descendants. Inheritance, on the other hand,  is a consequence of generalization, which enforces what general features are shared by descendants.

Generalization and inheritance are logical operations we apply to what is known in UML as "classifiers" (classes, use cases, realizations...).

I hope this helps clarify the issue.


General Board / Re: EA's documenation features and templates
« on: July 29, 2002, 11:04:40 am »
This is probably not the exact answer you are looking for, but I hope it is usefull.

The best solution I've come across to the model-documents problem is to arrange your project tree (the packages in the project browser, that is) so that every package, diagram, element and so forth is arranged in the precise order it sould come out in the hard-copy doc.

I do not the Use Case View, Dynamic View, Logical... arrangement, but instead I create a package with the appropriate title, which is the title I want to see at the top the hard copy documentation. I also write a small description of the project or subsystem in the "Note:" section of the package. Under this project package, I usually begin with a "1. Requirements" package that contains a requirements diagram, with all formal requirements, and so forth; then I create a "2. Business process" package, under the project package, with the processes diagrams and their description; then "3. Use cases", with use cases, and interaction diagrams under their corresponding use case... and so forth.

This way, when I generate the RTF (right-click on the project package, Documentation, Rich Text...) the documentation comes out in the appropriate order for formal system documentation.

You can play with the RTF generation options, for a finer result, and there are lots of tricks you can come out with to make the document much nicer. But the main issue here is that you should achieve locality of change/maintenance for your model and your hard-copy documentation.

The documents I have been able to produce this way have proved to be excellent as formal descriptions (those that have to be approved and signed by the customer) of the projected system or as guides to the system once it has been build. And the economy of time we have been able to achieve is surprising.

General Board / Re: checking/validating diagrams in EA
« on: July 30, 2002, 10:50:34 am »
EA has a great model-integrity feature: the relationship matrix. Click on "Project" in the menu bar, then on "Relationship Matrix...; choose the source and target packages (I suggest you choose the project root for both), choose your most important dynanic/behavioural elements as the first "Type" (Sequence, preferably, if you are using sequence diagrams), then your most important structural element as the second type (Class, if you have not already converted your classes into tables), then choose the appropriate Link Type (Sequence, if you are using sequence diagrams): you will obtain a pseudo-CRUD (Create, Read, Update, Delete) matrix, in which you can check for model completeness and integrity.

All non-abstract classes should be linked by a sequence message to a dynamic/behavioural element. Instances of the most critical classes, at least, should be Created, Read, Updated and Deleted by behavioural elements; otherwise you're missing something: suppose you have an operation that reads instances of Customer, but your model does not have the operation that should create those customers in the first place...

If a class does not have a link to the appropriate behavioural elements (for instance, a log-in interface does not have a link to User in the matrix) it means your model is definitely incomplete.

This, of course, is only one of the possible uses of the matrix: you can also check for "realization" of requirements in use cases, and many, many other consistency criteria as well.

This is not a fully automated feature, but I should say it comes pretty close.

General Board / Re: looping in sequence diagram?
« on: July 26, 2002, 11:41:14 am »
Probably the simplest way to loop in a sequence diagram is to check "Is Iteration" in Message Properties. (To get toMessage Properties, double-click on the message arrow).

The condition ("if xyz ...) can be specified in the Condition box text. You should create the Return message (that is, the message that closes the loop) by creating a new message below the one that has the condition, and then marking it as "Is Return" in Message Properties.

The iteration box which box which G Sparx mentioned can be very useful in case you want to encompass imbeded conditions (or embeded behaviour) in-between the message and its return, but it is not necessary if you have a simple loop.

Hope this is useful!

Pages: 1 ... 7 8 [9] 10 11