In the context of software quality assessment, this paper proposes original flow analyses which propagate numerical estimates of blocking risks along an inter-procedural Control Flow Graph (CFG)and which combine these estimates
along the different CFG paths using fuzzy logics operations. Two specialized analyses can be further defined in terms of definite and possible fiow analysis. The definite analysis computes the minimum blocking risk levels that statements may encounter on every path, while the possible analysis computes the highest blocking risk levels encountered by statements on at least one path.
This paper presents original flow equations to compute the definite and possible blocking risk levels for statements in source code. The described fix-point algorithm presents a linear execution time and memory complexity and it is also fast in practice.
The experimental context used to validate the presented approach is described and results are reported and discussed for eight publicly available systems written in C whose total size is about 300 KLOC. Results show that the analyses can be used to compute, identify and compare definite and possible blocking risks in software systems. Furthermore, programs which are known to be synchronized like "samba "show a relatively high level of blocking risks. On the other hand, the approach allows to identify even low levels of blocking risks as those presented by programs like "gawk".
Suggestions for further research are also presented.