Naming Practices in Object-oriented Programming: An Empirical Study | Synapse