Software encompasses computer programs, data structures, and documentation. It is developed through software engineering processes and methods rather than manufactured. While software doesn't physically deteriorate, it does deteriorate over time due to changes. Software engineering aims to develop software through systematic, disciplined, and quantifiable approaches to achieve reliable and efficient software economically.