
A fundamental idea in software development is the Software
Development Life Cycle (SDLC). You need to understand it because everyone
references it when describing how they work - whether they follow it closely
or not.
The SDLC is an attempt to isolate the tasks that must be completed
to take a software system from initial conception to doing production work.
Here's my personal working chart for the SDLC.
| Phase | Task | Example/Comment |
| Feasability | Can this project be done and is the cost-benefit differential great enough to proceed? | Should we develop a web ordering system for our customers? |
| Requirements | What must the system do? Interfaces to other systems? | Must allow authorized customers to order. It must capture charging info to send to our billing system. |
| Phase | Task | Example/Comment |
| High Level Design | Partition the tasks so that they work together properly | Yet have separation so that if one part needs changing the entire system does not need to be rewritten? |
| Detail Design | Detail the individual programs to be written? | What data travels between them? |
| Code & Unit Test | Write the code to meet the detail design. Prove that the program takes defined info and generates specified output. | I was once asked - Why was the design such as it was? I answered. "I was not in the planning. I've started in the installation, where ought and should are replaced by is and do." |
| System Test | Run the output of each program into the next program. |