Topic > Types of Software Development Methodologies - 1224

This section will focus on analyzing different sources of material before making a decision regarding the course of action this project will take. This will include examining different development methodologies, Microsoft SharePoint, ways to develop the system, methods to gather requirements and design the system, and different testing procedures.2.1 Development MethodologyA software development methodology is a framework used when developing a system; this framework gives structure to development projects, ensuring the process remains under control. There are two main methodologies (software development lifecycle methodology and Agile methodology) and a set of templates for each of these methodologies.1. Software development life cycle methodologya. Waterfallb. Vc process. Spiral. Incremental them. Incremental model ii. Evolutionary delivery. Prototyping2. Agile methodology. Scrub. Extreme Programming (XP) Each methodology and model is suited to particular projects and has unique strengths and weaknesses; so it is important to choose the right one. Software Development Life Cycle (SDLC) Methodology: This is a generic model for software development containing 5 main phases: requirements, design, creation, testing and implementation, as shown in the following diagram [5]. The amount of overlap between phases depends on the model. Agile methodology: While waterfall methodologies are based on phases with checkpoints at each phase, agile methods feature iterations rather than phases. The output of each iteration is a working feature that can be used to respond to changing needs. This is achieved through collaboration between self-organizing and cross-functional teams. S...... half of the document ...... it can happen. During system development, for example, it may become apparent that certain requirements are missing. It would be foolish to refuse to add further requirements just because this stage has already been passed. Incremental models allow for the most variation and perhaps suggest the most realistic approach; but that doesn't mean you want an incremental approach at every stage. At certain points in a software development project, incremental methodologies can be useful; for example towards the end when more complex functionality is added, or perhaps at the beginning to provide stakeholders with functionality to check that the system is being developed along the right lines. This shows that it is therefore important to use a combination of these methods when completing the system and not follow a hard and fast format that these models promote.