Analysing software architecture of FLOSS projects for evolution and reusability