Outline and explain the logical steps necessary for the development of a computer program.
Examples: software development life cycle, structured programming