The Major Types of Software