Given complete requirements for a system, including system components and interfaces between high level components, design usually begins with lower the content of those components.


Within requirements and design phases, the technologies that a system will employ are chosen. Since clients are often searching for expertise with specific technologies, consultants' web sites all seem to have a list of technologies. This one is no exception.


The usage here of Analysis, Design, and Implementation, with reference to a waterfall model does not imply allegiance to a particular development methodology. Suitability of different methodologies (and tools that go with them) depends upon the project and the organization working it. (One would probably not, for example, develop a very large system with the overall use of Agile methodology.) The terms are useful in a general sense because

  • Analysis, Design, Implementation, and Maintenance are applicable to most projects, in most environments, and
  • Outside of general hourly work, requirements are central to most programming contracts.