Forward and Reverse Engineering
Forward Engineering
To forward engineer a component diagram,
- For each component, identify the classes or collaborations that the component implements
- Show this with a manifest relationship
- 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 your models
Reverse Engineering
To reverse engineer a component diagram,
- Choose the target you want to reverse engineer
- Source code can be reverse engineered to discover components and then classes
- ⃝Binary libraries can be reverse engineered to uncover their interfaces
- Executable's can be reverse engineered the least
- Using a tool, point to the code you want to reverse engineer
- Use the tools to generate a new model or to modify an existing one that was previously forward engineered
- Using the tool, create a component diagram by querying the model
- Expose or hide the details of the contents of this component diagram as necessary to communicate your intent