The Simplified Software Development Cycle

(how programs get written)

A software development cycle is a process that  involves the likely repetition of a sequence of several steps. The length of the sequence (the number of steps) depends upon both the programming language and the development environment (in our case, Java and CodeWarrior). The amount of repetition (the number of times you have to repeat these steps) will depend on your level of programming maturity.

As you start out learning a language you'll have to do more repetitions of the cycle. As you learn more about a language, you'll find that the number of iterations decrease.
The software development cycle is not just for introductory programmers.  Even professional programmers adhere to a software development cycle. When it becomes appropriate (later in the semester), we'll go from this simple idea of the cycle to something a little more complex. If you take more courses in CS, you'll learn of even broader forms of the cycle. However, the simple cycle presented here is still at the core of every software development cycle.
The study of how large scale programs are developed is called software engineering. One aspect of software engineering is to determine the appropriate software development model to use for a particular project. A software development model is also a cycle. It addresses how programmers are expected to deal with some of the more advanced components of the basis software development cycle.
At the beginning of any introductory programming course, here is the basic general form of the software development cycle:
  1. Edit a source file containing human readable language statements
  2. Compile that source file into "computer" code
  3. Test (run) that file (program)
  4. Observe its behaviour
  5. If the program has flaws, go back to step 1
Here's how I see the basic simple cycle:

The exact number of steps for the software development cycle depends upon the programming environment. Often the Compile step is broken down into a sequence of substeps.  For example, with CodeWarrior, the basic Run command will actually

  1. Compile any changed code,
  2. Link (or Make) the code, and
  3. Execute the program.
If the first substep (compiling) doesn't work, the other two substeps aren't attempted. There are advanced commands in CW that allow you to do each of the three stages separately -- but separating compiling from linking and executing isn't important when you're beginning.

When first programming in Java using CodeWarrior, the link or make step is unimportant.  If you didn't use an IDE, there would still be some "linking" issues on programs that you might write in the second half of the course. In other languages, such as C or C++, the link step can be a source of potential errors that may send you back to editing. In such languages, the basic software development cycle would look like the following: