Software Development Lifecycle The software development lifecycle emerged as the guiding principle for software development. The software development lifecycle describes how a computer program moves from concept through development, release, main- tenance, and eventual removal. This cycle acknowledges that development is not over once a program is written and placed into production, as shown in Figure 1-8. Over time, modifications may be required. When this occurs, the process of software development is repeated to create a new version. The cycle may be repeated several times before the end of the program’s life. The accuracy of the original code must be maintained throughout these modifications. The original programmer likely will not make the revisions. Therefore, communication between team members is critical. A maxim devel- oped to “write the program for the next programmer.” This means using self- documenting names for data. It also means including comments in the code to guide the next programmer. Software Platform A big problem in software development is that each version of a computer has its own instruction set. These instructions will not match those of a dif- ferent computer. Each computer environment is called a platform. Programs needed to be written in different languages to suit each platform. This was a headache of major proportions. Often a different programming team was used for each platform. Keeping the software functions similar over each platform took a massive coordination and communication effort. Programmers sought a cross-platform approach to coding: write it once and run it everywhere. Object- oriented programming emerged to meet this need. There are two basic types of software: system software and application soft- ware. System software works to help the CPU find programs, assign memory, run devices, and provide utility programs. Application software is the software that performs the user’s work, such as writing term papers, sending e-mail, pay- ing taxes, editing photos, playing games, and taking online courses. There are five general types of application software: productivity, entertainment, educa- tional, utility, and development. The type of application software you will use in this course to help you write Java programs is development software. Object-Oriented Programming With many people working on the same project, the code and data were often not secure. This meant the code and data were open to use by the entire team, but they could also be misused. To solve this problem, both the code and Goodheart-Willcox Publisher Figure 1-8. The software development lifecycle includes not only creating the software, but maintaining it over time. Concept Design and Development Release Updates Removal Copyright Goodheart-Willcox Co., Inc. 16 Introduction to Computer Science: Java Programming