Problem Initiation includes define necessary input, output, storage etc. Define what the problem really is. State a goal to be achieved
A problem initiation will describe:
- required input (what data has to be acquired to produce the output?)
- required output (i.e. what information is the system supposed to produce?)
Problem analysis breaks the problem down into its parts and describes them. Note that this step
does not care what solution will be used to solve the problem. The analysis lays down the basic requirements that the eventual solution must achieve (a
logical design).
During problem initiation, one of the first things to do is to define the problem correctly. If you get this wrong (or skip it completely) everything you do afterwards could be a complete waste of time and money.
The most important task in creating a software product is extracting the
requirements. Customers typically know what they want, but not what software should do, while incomplete, ambiguous or contradictory requirements are recognized by skilled and experienced software engineers. Frequently demonstrating live code may help reduce the risk that the requirements are incorrect.
Problem Initiation is the task of precisely describing the software to be written, possibly in a rigorous way. In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical software systems are often carefully specified prior to application development. Specifications are most important for external interfaces that must remain stable.