Application Dependences

The assessment tool identifies the dependencies between the application components analyzing different aspects of the source code, including:

• Application references. Explicit references to user components indicate that there is a dependence relationship between different user projects.

• Variable declarations. When a variable is declared using a type that is defined in a different module or project, a dependence relationship between different modules or projects is established.

• Member accesses. Member accesses also produce dependences between subroutines, functions, or properties.

The assessment tool identifies dependencies between members of project groups. When a project references another project that forms part of the same project group, the assessment tool identifies the referenced project as a user component and informs the user about the relationship between these projects.

Knowledge about the usage relationships between components is essential for different aspects of the upgrade plan, including upgrade order definition, testing, and debugging. For more information about upgrade planning, see Chapter 5, "The Visual Basic Upgrade Process."

Based on the dependence relationships analysis, the assessment tool generates an Upgrade Order report in the DetailedReport.xls file that includes a suggestion of the file upgrade order. An example of this report is illustrated in Figure 3.8.

Project

File

AdminUI G G G G G G G

\D e p ot\M i c ro s oft\VB6 M igratio n\Te st\S ample s\R ichClientSampl e\Ad m i n U l\frm P ro d u ct Ad dition.frm \D e p ot\M i c ro s oft\VB6 M i g rat i o n\Te st\S ample s\R ichClientSampl e\Ad m i n U l\m d i Ad m i n. frm \Depot\Microsoft\VB6Migration\Test\Samples\RichClientSampleV\dminUI\frmProductUpdate.frm \Depot\Microsoft\VB6Migration\Test\Samples\RichClientSampleV\dminUI\frmCustomerAdditionirm \Depot\MicrosoftYv'TO

\Depot\MicrosoftVvB6Migratiori\Test\Samples\RichClientSampleV\dminUI\frm

\D e p ot\M i c ro s oft WEIB M i g rat i o n\Te st\S ample s\R ichClientSampl e\Ad m i n U l\frm S u p p 1 i e rU p d at e. frm

Figure 3.8

Example Upgrade Order report

Figure 3.8

Example Upgrade Order report

The report is divided into sections that correspond to each of the application's projects. The files in each group are ordered according to the dependences between the files in the group. The first file in each group has no dependences on other user-defined files in the same group. As a result, this file can be upgraded and tested independently. The next file in the list can be upgraded and tested based on the previous upgraded file.

Each of these files can be upgraded in a staged way, providing increasing levels of functionality. The assessment tool produces the Upgrade Order report by looking for modules that depend on the minimum quantity of user components, and then a new dependency level is generated based on the components included in the previous level. In this way, each level is built on the functionality provided by previous levels. This report is useful for identifying possible upgrade paths; if a horizontal upgrade strategy is going to be used, the suggested upgrade order can be followed. It is also possible to upgrade modules from different groups at the same time if a vertical upgrade strategy will be executed for some pieces of the application.

0 0

Post a comment