You need to start at the beginning of course!
Please take the time to research the problem before you post your question. The experts here are more than willing to help you with a specific problem but you have to do your part to learn the basics. Please take the time to read over the
posting guidelines specifically the section on
Before you post your question.
To get you started, there are some basic steps to developing software:
- System Concept: in this step you're brainstorming ideas about the application...determining what it should do etc.
- Gathering Software Requirements: In this stage you're talking to the client you're developing the software for to determine exactly what is expected
- Software Requirements Specification: in this step you write down the what the system requirements are. This document specifies every expectation that you and your client have for the application. It's where you state things like "the application shall do this thing and that thing"...it's where you state what the application does, the technologies that your application is going to be using, and any rules that your application should follow. You can refer to this document at any time to make sure that you're developing what is expected.
- Software System Design: in this step your going through the SRS (Software Requirements Specification) and breaking it down so that you know what components you need to develop to make the application work. This is where you outline the classes, functions etc that your application needs to actually work. It's a good idea to use UML (Unified Modeling Language) for this so that you have a clear picture of what needs to be done. You can even use the top-level UML that you produce to show your client what you will be doing...but it's mainly for you as a developer to use so that you know what you need to do and how each component fits together.
- Coding/Unit Testing: Now you start actually coding something. This is the stage when you actually implement (code) the classes, functions (etc) that you have outlined in the design stage. You should always be testing. It's a good idea to use unit testing to test each component. You can get the majority of your unit tests from the Software Requirements Specifications that you created.
- Beta Testing/Release/Maintenance: At this stage you release the software to the client to try out. You'll probably find a whole bunch of things that need to be modified at this point....it's best to get the client involved with trying out the software before this stage to make sure you're giving them what they want.
At any point in these steps you will probably be revisiting a previous step. For example, usually the client states what they want and then changes their mind. This means that you'll have to go back to Step 1 and make all the necessary changes so that everything is clearly defined.
Even if you're developing an application for your own purposes it's still a good idea to follow these steps. This way you have a clear understanding of what you need to do so that implementing (coding) the solution is easy.
-Frinny