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% |
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 understandingof the dependency structure.