Program Design phase of SDLC | Activities undertaken during Program design
Program design consists of the steps a programmer should do before they start coding the program in a specific language. These steps when properly documented will make the completed program easier for other programmers to maintain in the future.
There are three broad areas of activity undertaken in the Program Design phase:
•Understanding the Program
•Using Design Tools to Create a Model
•Develop Test Data
Understanding the Program
If you are working on a project as one of many programmers, the system analyst may have created a variety of documentation items that will help you understand what the program is to do.
These could include screen layouts, narrative descriptions, documentation showing the processing steps, etc. If you are not on a project and you are creating a simple program you might be given only a simple description of the purpose of the program.
Understanding the purpose of a program usually involves understanding its:
This IPO approach works very well for beginning programmers. Sometimes, it might help to visualize the program running on the computer. You can imagine what the monitor will look like, what the user must enter on the keyboard, and what processing or manipulations will be done.
Using Design Tools to Create a Model
At first, you will not need a hierarchy chart because your first programs will not be complex. But as they grow and become more complex, you will divide your program into several modules (or functions).
The first modeling tool you will usually learn is pseudocode. You will document the logic or algorithm of each function in your program. At first, you will have only one function, and thus your pseudocode will follow closely the IPO approach above.
There are several methods or tools for planning the logic of a program. They include flowcharting, hierarchy or structure charts, pseudocode, HIPO, Nassi-Schneiderman charts, Warnier-Orr diagrams, etc.
Programmers are expected to be able to understand and do flowcharting and pseudocode. These methods of developing the model of a program are usually taught in most computer courses. Several standards exist for flowcharting and pseudocode and most are very similar to each other.
However, most companies have their own documentation standards and styles. Programmers are expected to be able to quickly adapt to any flowcharting or pseudocode standards for the company at which they work. The other methods that are less universal require some training which is generally provided by the employer that chooses to use them.
Later in your programming career, you will learn about using application software that helps create an information system and/or programs. This type of software is called Computer-Aided Software Engineering (CASE).
Understanding the logic and planning the algorithm on paper before you start to code is a very important concept. Many students develop poor habits and skipping this step is one of them.
Develop Test Data
Test data consists of the programmer providing some input values and predicting the outputs. This can be quite easy for a simple program and the test data can be used to check the model to see if it produces the correct results.
So here we have discussed the program design phase of the SDLC. The design phase is very important and devoting quality hours in this phase most of the time ensures a better system delivery, if other risks are well managed. If you want to have a quick brush up on SDLC then you may check our post on System Development Life Cycle(SDLC).
Attribution: This post is based on the content of an eBook named Programming Fundamentals by Authors and Contributors (KENNETH LEROY BUSBEE AND DAVE BRAUNSCHWEIG) and it is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License(https://creativecommons.org/licenses/by-sa/4.0/), except where otherwise noted.
Creative Commons Attribution CC-BY License
You are free to:
•Share — copy and redistribute the material in any medium or format
•Adapt — remix, transform, and build upon the material for any purpose, even commercially.
Under the following terms:
•Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
•No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
See https://creativecommons.org/licenses/by/4.0/ for more information.