The Impact of Mutability on Cyclomatic Complexity in Java

Marat Bagaev,Alisa Khabibrakhmanova,Georgy Sabaev,Yegor Bugayenko
2024-10-14
Abstract:In Java, some object attributes are mutable, while others are immutable (with the "final" modifier attached to them). Objects that have at least one mutable attribute may be referred to as "mutable" objects. We suspect that mutable objects have higher McCabe's Cyclomatic Complexity (CC) than immutable ones. To validate this intuition, we analysed 862,446 Java files from 1,000 open-GitHub repositories. Our results demonstrated that immutable objects are almost three times less complex than mutable ones. It can be therefore assumed that using more immutable classes could reduce the overall complexity and maintainability of the code base.
Software Engineering
What problem does this paper attempt to address?