Hello,
Well the short answer is "no."
And the long answer is "you're doing it wrong."

EA strictly separates the stored model content from its visualization, and the client is essentially stateless. This is a good thing.
What this means is that the only things you can undo/redo are purely visual changes, ie moving things around in a diagram. Anything to do with actual content changes, such as adding / deleting elements, moving classes in the package structure, modifying attributes, all that is write-through: it gets stored in the underlying database immediately. (There's always a database, even in an .EAP file: that's good ol' Access in there, my friend.)
[The above is mostly true, however there are some undoings / redoings going on with connectors. Best ignored.]
Part of the reason for this behaviour is that EA comes with team support built in, meaning that several modellers can work in the same model simultaneously.
You may also have noticed the absence of a search-and-replace function. This is because if you change a name, or some other property, in an element, all diagrams are immediately updated to reflect this. The diagrams
display model content, but the content exists regardless of how many diagrams display it.
So maybe it helps if you get in the mindset of a database manager instead. How much undo functionality does SQL Server Management Studio offer? Can you simply Ctrl-Z after issuing a "delete from table"? That is in fact what you're doing, just using a fancy graphical client.
Ways to manage this:
- Use baselines.
- Make a copy of your project for "what-if" type changes.
- Enable User Security and lock those parts of the model you wish to protect from accidental changes.
So essentially, yes, back up your files and/or use EA's version control or its locking mechanism. I'm sorry if that's not what you want to hear, but this is a case of "you've got to understand how the tool works, and it's not Notepad" sort of thing.
HTH,
/Uffe