Design and development of software for complex network analysis: from centralities and communities to epidemics