Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit the project requirements. In Agile, the tasks are divided to time boxes (small time frames) to deliver specific features for a release.
Iterative approach is taken and working software build is delivered after each iteration. Each build is incremental in terms of features; the final build holds all the features required by the customer.Agile is based on the adaptive software development methods, whereas the traditional SDLC models like the waterfall model is based on a predictive approach.
In software engineering, a
design pattern is a general repeatable solution to a
commonly occurring problem in software design. A design pattern isn't a
finished design that can be transformed directly into code. It is a
description or template for how to solve a problem that can be used in
many different situations.