complex problems
 

How could I break down complex problems ? How good your ability in breaking problems is actually depends on your experience in programming. But, I can only tell you this :



  1. Identify your problem correctly.
    Suppose you have to make a program to record employee data for a bank. What is it for ? Employee data for just an information or for salary statistics or what ?
  2. Separate one process from another.
    Suppose you do employee data for information. The processes are record it to disk, edit data, delete data, sort data, or print and display data, or search data.
  3. List the solution steps of each process.
    Suppose you first do record data. You take input from keyboard and record it to disk. You ask if user wants to input again or not.
  4. List the data requirements.
    Employe data may require name, position, residence, office location, civil status, age, sex, years of service, and so on.
  5. Determine the output requirements.
    You may design the output like a list of employee data. It is useful for comparison reason. Or may be you would love to make it like an archive form for complete document. Or you ask the user and they can choose.
  6. Construct an algorithm to do the process.
    Suppose taking data from keyboard, may sound : input name, input age, input position, and so on. Then prepare file, record the data to disk, close the file. Ask user if they want to input some more. If they do, repeat the whole process, otherwise quit.
  7. Use your creativity to expand the input, process and output.
    Don't stick the model from input to output. You may add your creativity. Client may want the output format exactly the same as they wish. Perhaps you could give suggestions in arranging them, or perhaps if you think some data is important to display or print, go tell the client.
  8. Think of all other useful things to add in program.
    Suppose you want to add the feature of Auto-Correct, to minimize the human-error. You probably record some usual names, like Jim, Dave, and so on. If user types Dabe, for example, your program can give suggestion to change it to Dave. Yeah, somethings like that.
  9. Implement it, step by step.
    Don't let all dreams be dreams. Let it comes true.
  10. Combine all the programs to tackle the problem.
    All the module of each process should be gathered. You may want to generalize your input procedure to fit in each module to save energy and time. Combine them using menus. And don't forget to make finishing touches, to make the software looks great.

(c) Shilpa Sayura Foundation 2006-2017