Software diversity is a well-accepted security principle for active cyber defense against the spread of Internet worms and other malicious attacks. In recent years, various software assignment techniques have been designed to introduce heterogeneity into network hosts for the maximum network survivability. However, few work consider practical constraints involved in the software assignment process. To close such a gap, in this work we model the software assignment problem as a multi-objective optimization problem, which incorporates several real-world criteria simultaneously, including network survivability, system feasibility and usability. To solves this multi-objective problem efficiently, we propose an ant colony optimization (ACO) based algorithm, where colonies of artificial ants work collaboratively through both heuristic information and pheromone-mediated communication to iteratively search for better solutions. To validate the generalizability of the proposed method, we experiment our algorithm on various types of network topologies with different parameter settings. The results show that our model can be applied as an effective method for assigning software for multiple objectives. The experimental results also provide interesting insights for optimal software assignment.