No matter what field of work you choose, you may have to solve problems. Many of these can be solved quickly and easily. Still others require considerable planning and forethought if the solution is to be appropriate and efficient.
Creating a program is no different because a program is a solution developed to solve a particular problem. As such, writing a program is almost the last step in a process of first determining what the problem is and the method that will be used to solve the problem.
One technique used by professional software developers for understanding the problem that is being solved and for creating an effective and appropriate software solution is called the software development procedure. The procedure consists of three overlapping phases
- Development and Design
- Documentation
- Maintenance
As a discipline, software engineering is concerned with creating readable, efficient, reliable, and maintainable programs and systems.
Phase I: Development and Design
The first phase consists of four steps:
1. Analyze the problem
This step is required to ensure that the problem is clearly defined and understood. The person doing the analysis has to analyze the problem requirements in order to understand what the program must do, what outputs are required and what inputs are needed. Understanding the problem is very important. Do not start to solve the problem until you have understood clearly the problem.
2. Develop a Solution
Programming is all about solving problems. In this step,
you have to develop an algorithm to solve a given problem. Algorithm is a sequence of steps that describes how the data are to be processed to produce the desired outputs.
An algorithm should be (at least)
–complete (i.e. cover all the parts)
–unambiguous (no doubt about what it does)
–finite (it should finish)
3. Code the solution
This step consists of translating the algorithm into a computer program using a programming language.
4. Test and correct the program
This step requires testing of the completed computer program to ensure that it does, in fact, provide a solution to the problem. Any errors that are found during the tests must be corrected.
Table 1 lists the relative amount of effort that is typically expended on each of these four development and design steps in large commercial programming projects.
Table 1: Effort expended in Phase 1
| Step |
Effort |
| Analyze the problem |
10% |
| Develop a solution |
20% |
| Code the solution |
20% |
| Test and correct the program |
50% |
Phase II: Documentation
Documentation requires collecting critical documents during the analysis, design, coding, and testing.
There are five documents for every program solution:
- Program description
- Algorithm development and changes
- Well-commented program listing
- Sample test runs
- User’s manual
Phase III: Maintenance
This phase is concerned with the ongoing correction of problems, revisions to meet changing needs and the addition of new features. Maintenance is often the major effort, and the longest lasting of the three phases. While development may take days or months, maintenance may continue for years or decades.