Forward and Reverse Engineering
Forward Engineering
To forward engineer a component diagram,
- For each component, identify the classes or collaborations that the component implements
- Choose the form for each component
- The choice is between source code (a form that can be manipulated by development tools) or a binary library or executable (a form that can be dropped into a running system)
- Use tools to forward engineer the models
Reverse Engineering
To reverse engineer a deployment diagram,
- Choose the target that you want to reverse engineer, in some cases, you'll want to sweep across your entire network; in others, you can limit your search
- Choose also the precision of your reverse engineering, in some cases, it's sufficient to reverse engineer just to the level of all the system's processors; in others, you'll want to reverse engineer the system's networking peripherals as well
- Use a tool that walks across your system, discovering its hardware topology
- Record that topology in a deployment mode
- Along the way, you can use similar tools to discover the artifacts that live on each node, which you can also record in a deployment model
- Using your modeling tools, create a deployment diagram by querying the model
- For example, you might start with visualizing the basic client/server topology, then expand on the diagram by populating certain nodes with components of interest that live on them