Project Analyzer

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 1
PicMain 1
Individual files  
IPicInfo -
PicBMP -
PicGIF -

Circular file groups

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

Group {PicForm PicMain}

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

Dependencies into/out of group

< ROOT: Not required by others
> IPicInfo, PicGIF, PicBMP

File-level dependencies PicMain

inside group contributing to circularity
< PicForm
> PicForm
outside of group
< None
> None

File-level dependencies PicForm

inside group contributing to circularity
< PicMain
> PicMain
outside of group
< None
> IPicInfo, PicGIF, PicBMP


Individual files

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

IPicInfo

< PicBMP, Group {PicForm PicMain}, PicGIF
> LEAF: Does not require others

PicBMP

< Group {PicForm PicMain}
> IPicInfo

PicGIF

< Group {PicForm PicMain}
> IPicInfo


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.