This document provides an overview of software and software engineering. It defines software, discusses the characteristics of software, and describes different types of software applications. It then defines software engineering as the application of a systematic approach to the development and maintenance of software. Some key aspects of software engineering discussed include software quality, stakeholders, layered technology, software processes, umbrella activities, and principles of practice. Common myths in software development are also addressed.