Software engineering involves the study and application of engineering for software design, development, and maintenance. Computer software consists of machine-readable instructions for a computer's processor, which can be classified into various types including system software, application software, and embedded software. Key characteristics of software include being logical, custom-built, and non-manufactured, distinguishing it from hardware.