File dependency analysis - PicInfo sample application

This analysis finds circular file dependencies.
A circular dependency means that a group of files depend on each other so that
all the files are necessary for the other files to compile or run.
Circular dependencies are usual but they have a negative effect on reusability.

If any circular groups are found, consider restructuring the code to remove any
unnecessary dependencies or to split the group into smaller groups
of interdependent files.

File Group
Group 1
PicForm.frm 1
PicMain.bas 1
Individual files
PicBMP.cls -
PicGIF.cls -
PicInfo.cls -

Circular file groups

In a circular group, the files are mutually dependent on each other.

Group {PicForm.frm PicMain.bas}

Files in group ReqBy DepOn Req+Dep
PicForm.frm 1 1 2
PicMain.bas 1 1 2

Dependencies into/out of group

ROOT
-> PicInfo.cls, PicGIF.cls, PicBMP.cls

File-level dependencies PicMain.bas

inside group contributing to circularity
<- PicForm.frm
-> PicForm.frm
outside of group
<- None
-> None

File-level dependencies PicForm.frm

inside group contributing to circularity
<- PicMain.bas
-> PicMain.bas
outside of group
<- None
-> PicInfo.cls, PicGIF.cls, PicBMP.cls


Individual files

An individual file doesn't belong to any circular group.

PicInfo.cls

<- PicBMP.cls, PicGIF.cls, Group {PicForm.frm PicMain.bas}
LEAF

PicBMP.cls

<- Group {PicForm.frm PicMain.bas}
-> PicInfo.cls

PicGIF.cls

<- Group {PicForm.frm PicMain.bas}
-> PicInfo.cls


Circular dependency index


Circular groups 1
Files in circular groups 2
Total source files 5
Circular dependency index CDI 25%
CDI = (Files in circular groups - Groups) / (Files - 1)

Dependency tree


Roots 1  
Leafs 1
Total 4 files or file groups

Glossary

<- Required by
-> Depends on
ROOT is not required by any other files
LEAF does not depend on other files

Files in groups

ReqBy is the number of files inside the group that require this file (<-).
DepOn is the number of files inside the group that this file depends on (->).
A file with a high ReqBy or DepOn is a central file in the system.
A low DepOn, possibly with a high ReqBy, indicates is potential location
for redesign to break a dependency circle.

Tip

View File dependencies with Enterprise Diagrams to get a better understanding
of the dependency structure.