At this point, the basic structure of the program is finished. Here are some steps that I have followed in order to decided what kind of structure that I want to use.
1. Investigate the project: this involves an initial talk with whoever is in charge of the project. See what kind of program is he or she expecting. This does not need to be in detail of how the program should be, but this should allow the designer to have a good understanding of the process which the program is for at the moment what should be included in the program.
2. Identifying important users and functions: after the interview, the designer should be able to design what kind of functions need to be included. Each user should be rated to show their importance. Each function should include a basic description.
3. Check in again with the client: this should be a relative quick meeting. The designer needs to show the client the user list and the function list. The next step should not be processed until this gets fully approved by the client.
4. Write out the use case for each function. A use case is a chart that shows the steps in the program that how the program should react when receive a signal from an outside source. This should included all possibilities including error messages.
5. Group functions and design the interfaces(part 1): When writing out the use cases, the programmer should have a pretty good understanding of how he wants the program layout to be. At this point, he should group all the functions that he wants to be in the same interfaces and start to design the interfaces.
6. Design interfaces(part 2): After figuring out which function should be together, programmer should figure out how he wants to connect each interfaces with each other. In specific, he should know each bottom that will be on any interface and which pages the bottoms are leading to,
7. Demands: there are two parts of the demands from the clients, functional and non-functional. The functional demands are those demands generated by the functions required by the functions. The non-functional demands are those non on the function list but are essential to the program. The most common non-functional demand would be the security level. Most program with multi-user would need a security system that keeps those data safe in a way.