Objective: Before you begin the modernization process, you must first understand the as-is architecture of the system and understand: Which are the technologies being used? How do they interact? Are there isolated layers which code is not referenced? What are the frameworks in place and are they compatible with the target platform? etc.
For the purposes of this workshop, we are going to discover 2 applications: one of them is a Java/MySQL online store application and the other one is a .NET-based cooking recipes management webapp.
Select the application named eCommerce. Information on the application size, number of lines of code, number of objects, etc. are displayed along with several navigation scenarios to drill-down and discover the application and its dependencies.
Choose the Application Architecture scenario to explore the objects composing this application grouped by technology types. You can drill down in the different levels of abstraction describing the several layers of the application architecture:
Choose the Level 5 of the navigation perspective. You see that eCommerce is composed of a UI layer in JSP and Javascript. Struts and Hibernate are also in use with a MySQL database.
CAST Imaging provides navigation capabilities to help you understand the inner architecture of the application and answer questions such as:
You can change the Graph Layout to Hierarchical or Force to have a better display.
You can double click on the edge between two nodes to visualize the detailed references.
You can double click on the node itself to visualize the sub-nodes and explore the dependencies.
Double-click on the API Apache Log4j node. On the left-hand menu, you can change the Drill Down Options to Children + caller/callee to visualize the Log4J classes and their direct callers/callees.
Now select the application named Recipe and apply the same navigation steps than above.
You understand rapidly the high level characteristics of Recipe application:
But are those SQL Server Procedures really used by the C# layer ? Right click on the node SQL Server Procedures > Children+caller/callee to identify the adherence with the C# Classes.
You now see the all the callers and callees of the SQL Server Procedures grouped by object type: C# Classes, SQL Server Functions, SQL Server Tables, and SQL Server Views.
Now hide the type SQL Server Tables in the right hand legend to render a more readable view: you see only a few SQL Server Procedures that show no references to neither SQL Server Functions nor C# Classes.
📝 This confirms that the SQL Server Procedures are really used by the C# layer, the code they contain needs to be maintained.
You now have, rapidly in a few clicks, gathered valuable insights on the applications:
This will help you to move on to the next step of the journey and study several modernization scenarios.
Close the view to get back to the Level 5 perspective and prepare for the next exercise.