Software Development Models
Very few software developers can resist the allure of the waterfall model. Software Experts agree that the information gathered downstream can be responsible for altering decisions which were made upstream, and because of this, they violate the basic sequence development algorithms.
The conceptualization of a process for development where an individual can backtrack from any point to a previous one has brought about the introduction of the fountain idea, where you assume that the requirements are located near the bottom of the target system.
The development process may be comprised of some feedback loops, but it may also be comprised of the fountain model, but the one which is considered must be dependent on a number of factors.
First, the clarity for the starting requirements is a factor which is really important. When you do not know much about the target system, you will have more to learn along the way, and when you change your mind a lot, this can bring about backtracking.
An additional factor that must be considered is the integration level for the tools which support the process for development. The development environment which is highly integrated must encourage those explorations which are necessary, as this can cause more backtracking.
At the same time, without the tool support, you may choose to think deeper about every stage prior to moving to the next, and the reason for this is because backtracking can become expensive.
It is also said that the object oriented programming paradigm is altering the standard distinctions that have existed among implementation and analysis. In addition to this, it has sometimes been said that the differences among the phases are decreasing, and the reason for this is because the phases must properly blur into one another.
Some people opine that object oriented paradigm allows each programmer to become something of a designer, and designers themselves will become analysts. You must be willing to hold this view only in part. There is evidence which has demonstrated that the projects for which the object that have been found within the phase for requirements is maintained until implementation.
Differences Between Phases
One must always keep in mind that there are differences between each phase. The goal of analysis is to clarify the definition of the task, and will not be involved with activities which are related to problem solving.
The implementation and design are responsible for handling the specification of tasks in such a way that it is possible to easily figure out the details which are related to the solution.
The designer will communicate via the implementor, and the hardware will be used to execute and carry out the final design. Just the same, you do not want to blur the differences that exist among the implementation and the design.
The standard object oriented languages have a number of limitations that do not make them useful for when it comes to thinking media.
Prototyping
One concept that you must think carefully about is prototyping. Prototyping is an important part of OO analysis, as well as the implementation along with the design. Prototyping can play an important role when it comes to dealing with system aspects that may not be described because of a reduction for insight.
Many times, people may choose what they do not want, but they may not be capable of describing the indications for what must be created.
One of the best examples of this are GUIs, or Graphical User Interfaces. You have to ask yourself what are the factors that make a screen layout effective. Would the system need to maintain control for the interaction of human users by making use of menu choices, or allowing the user to give input which is structured?
These questions are challenging to answer, and the truth of the matter is that it will often be necessary to make use of prototyping layouts in order to help. The situation can be likened to the architect who makes some draft sketches so that the customer may be capable of formulating numerous preferences.