The Software Development Life Cycle

Step 1 – Acquiring Problem Specifications

Getting a problem from a client or identify the problem yourself
This includes information about the data or information used in the problem
How should the task receive Input?
How should it produce Output?

Step 2 – Problem Analysis


Analyze the problem, procedure, and given specifications.
may reveal hidden specifications or problems that were not evident in Step 1
If needed, go back to step 1 to verify new specifications
Create testing scenarios.
Define expected outputs for given inputs

Step 3 – Algorithm Design


Design a solution to the problem (DO NOT WRITE CODE YET)
Create an algorithm to solve the problem and test it against scenarios from Step 2
Algorithm: A descriptive process (step-by-step solution) that ends at a solution to a problem.
Consists of a finite number of steps (or instructions).
Each step is well defined and understandable by a computing agent
The algorithm must stop at a solution.
The algorithm should be generalizable to a set of problem instances
There are potentially infinite variations for algorithms that solve the same problem.

Step 4 – Program Implementation


Convert the Algorithm into the target programming language
Programs should be well documented using docstrings and in-line comments
Check code with test scenarios used created in Step 2 and used in Step 3

Step 5 – Program Deployment

Put the program in active use by:
releasing it to the client and possible installing it into their system.
integrating it into an existing software package using an existing API (application programming interface).

Step 6 – Program Maintenance

Updating the program for specifications that may have changed or to allow for functionality with new components if part of a software package.
Receive error reports, which may require a problem statement re-definition and analysis (go back to step 1)
Use of constants instead of literal values and good documentation makes this much easier.

Leave a Reply

Your email address will not be published. Required fields are marked *