Software availability is defined as the attribute that the software intensive system is operable and available whenever we want to use it and one of the user-oriented quality characteristics of software systems. This paper surveys the current research in software availability assessment techniques. At first we discuss the basic ideas of software availability modeling and the difference between modeling for software and hardware systems. Markov processes are applied to the descriptions of the time-dependent behaviors of software systems alternating between up and down states; then the processes of software reliability growth and the increase in difficulty of restorations are incorporated as well. We also refer to several extended models reflecting the software failure-occurrence phenomenon and the restoration scenario peculiar to the user-operational phase, considering computation performance, and combining a hardware and a software subsystem. Furthermore, numerical illustrations for software availability measurement with respective models are presented.