There are many ways to create an application. Plenty of pundits and consultants have become wealthy by creating and pitching system development lifecycle models to companies. Not surprisingly, having many ways of doing something leads to many diverse development models. In each model, steps may be called different things, will have different collaborators, and may even occur in different orders. However, most have these steps in common:
- Requirements Gathering: What do you want the program to do?
- System Design: How is the program designed? What is the structure of the program? How does it interact with other systems? How will the program address each identified requirement?
- Development: Code is written at this stage.
- Testing: Does the application work? Will the program negatively affect other existing systems?
- Acceptance: Do your customers actually like the product? Will it fulfill their business needs?
- Deployment: Pushing the code out to production.
It is not uncommon for each step to use different tools. You may simply use a word processor for the requirements gathering. If you use Unified Modeling Language (UML) for system design, you’ll need a graphical diagramming tool. Traditional IDEs are used in the development stage to write code. An IDE may have a debugger to help with testing, or deployment tools, but this is not always the case. If you use a simple editor like Macromedia HomeSite, you’ll certainly need other tools to test and deploy, and even build if necessary.
An IDE, therefore, is just one tool used in developing an application. As one would expect, use of multiple tools drives up development costs by way of license purchases, training, and integration hassles. Eclipse, however, was built to solve this problem.