01.01.2015 Views

UML Weekend Crash Course™ - To Parent Directory

UML Weekend Crash Course™ - To Parent Directory

UML Weekend Crash Course™ - To Parent Directory

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Session 30—<strong>UML</strong> Modeling <strong>To</strong>ols 311<br />

provide integration with a tool like Program Version Control Software (PVCS), StarTeam from<br />

Starbase, ClearCase/ClearQuest from Rational, Visual SourceSafe from Microsoft, and others.<br />

The remaining vendors save their projects as an encyclopedia or directory of some sort that<br />

is easily identified and managed by any third-party version control package.<br />

Version control is also especially valuable with object-oriented modeling. The diagrams<br />

are used throughout the development process. The same diagram initially created in the<br />

early phases is continuously changed through analysis and design and finally through<br />

implementation. Without version control, you lose the history of the diagrams that explains<br />

how you arrived at the current image.<br />

Extended features<br />

The rest of the features listed don’t appear in all tools; however, they are very valuable.<br />

These features and how well they are implemented can set a tool apart from the rest. They<br />

can also add substantially to the cost.<br />

Round-trip engineering<br />

Round-trip engineering is a hotly debated subject. It sounds great but can be challenging<br />

to accomplish. The concept involves four types of translation between models and code.<br />

Figure 30-2 provides a visual explanation to reference while you read through the following<br />

definitions:<br />

Forward engineering: A Class diagram is used to generate code that never existed<br />

before.<br />

Reverse engineering: Code is used to create a Class diagram that never existed before.<br />

Maintenance involves work in both directions:<br />

Diagram updates the code: The diagram changes so you need to regenerate the code.<br />

Some tools replace the existing code, while others are smart enough to isolate the<br />

changes and even comment out the replaced or deleted code.<br />

Code updates the diagram: The code has changed so you need to update the diagram<br />

to keep in sync. This is not as easy as it sounds. Always do it in very small increments.<br />

Also, some diagram concepts, like aggregation and composition, are not<br />

reflected in code. So you will need to modify the diagram to make certain that it<br />

continues to represent your model accurately.<br />

The maintenance phase is one of the reasons that vendors introduced markers. The markers<br />

can represent modeling concepts that do not have code equivalents. Using this technique,<br />

they can preserve the non-code constructs when the code is converted back into a<br />

diagram during reverse engineering and code-to-diagrams updates.<br />

Data modeling integration<br />

Nearly every application requires a database. Most databases nowadays are relational. The<br />

better tools have taken measures to incorporate data modeling options into their product.<br />

Others have partnered with data modeling or database management vendors to provide the<br />

linkage between a Class diagram and a data model.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!