When you choose a software development model, it is important to choose one that fits the project and the environment it is intended for. As discussed in the next section, the traditional models work for more static projects. By "static" we mean projects whose requirements do not change very much during the project and where the technical uncertainty is very low. More dynamic models, such as Extreme Programming, Adaptive Software Development, and Scrum, try to take into account the dynamics of changing requirements, uncertainty in technologies, and changing project goals, and therefore these models are more successful in dynamic circumstances.
Based on the descriptions provided here, we will choose the most suitable model for the Online Photo Shop project. If you have a solid background in software engineering models, you may want to skip the following section and go directly to section 2.4.
Introducing Software Engineering
A .NET Prototype
The Photo Editor Application
GDI+ Graphics Extensions
Advanced GDI+ Operations
Dynamic Loading of Components
Accessing System Resources
Performance Optimization, Multithreading, and Profiling
Building the Web Application with ASP.NET
Security and Database Access