Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Development - Methodologies

Similar presentations


Presentation on theme: "Software Development - Methodologies"— Presentation transcript:

1 Software Development - Methodologies

2 Methodologies of Software Development Life Cycle
By now you will have learnt about every stage of the SDLC (Software Development Life Cycle. Maintenance will continue over the life of the system. However, eventually every system will become obsolete and so will need replacing or finally switched off. Therefore the cycle may start all over again in order to create the new system. The SDLC may be in a nice orderly circle as depicted in the diagram. But in practice there may be many additional loops going back and forth between stages. For example, the system may be in its testing stage but then a new or changed user requirement happens. Now part of the process needs to go back and work through the design and implementation stages once more.

3 Methodologies of Software Development Life Cycle
Various modified versions of these methods tries to take account of the looping. They are called… The Waterfall lifecycle Rapid Application Development (RAD) Spiral Model Agile Programming Extreme Programming

4 The Waterfall lifecycle
With the waterfall method, if everything goes perfectly, then the project 'cascades' through the System Life Cycle stages, one after another. A variation of the waterfall model allows for the fact that if something changes, such as the user requirements, then part of the project has to go back to an earlier stage. The Waterfall method is good for well understood and stable user requirements such as upgrading a well-used existing system. Pro’s Clearly defined stages. Well understood milestones. Easy to arrange tasks. Cons No working software is produced until late during the life cycle. High amounts of risk and uncertainty. Poor model for long and ongoing projects.

5 Rapid Application Development (RAD)
The RAD (Rapid Application Development) model is based on prototyping and iterative development with no specific planning involved. The process of writing the software itself involves the planning required for developing the product. Rapid Application development focuses on gathering customer requirements through workshops or focus groups, early testing of the prototypes by the customer using iterative concept, reuse of the existing prototypes (components), continuous integration and rapid delivery.

6 Rapid Application Development (RAD)
Pro’s Changing requirements can be accommodated. Productivity with fewer people in short time. Results in high usability. Reduced development time. Cons Continual contact with customer needed. Doesn’t handle large projects well. Suitable for project requiring shorter development times.

7 Spiral Model With the spiral model, the project is carried out as a series of complete loops that go through most of the system life cycle process (except maintenance of course). The spiral model combines the idea of iterative development with the systematic, controlled aspects of the waterfall model. Spiral model is a combination of iterative development process model and sequential linear development model i.e. waterfall model with very high emphasis on risk analysis. It allows for incremental releases of the product, or incremental refinement through each iteration around the spiral.

8 Spiral Model Pro’s Greatly reduces risk and ideal for large projects with potential for high risk. Users see the system early. Cons Management is more complex. End of project may not be known early. Large number of intermediate stages requires excessive documentation.

9 Agile Programming / Extreme Programming
Extreme programming (XP) is a SDLC methodology (or actually a collection of other methodologies!) which is intended to improve software quality and responsiveness to changing customer requirements. It will often involve a representative of the customer becoming part of the development team. The team develop ‘User Stories’ (requirements) and test these with the customer. As a type of Agile Programming, it advocates frequent “version releases" in short development cycles (much shorter than RAD, often just a week long) which is intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted. Where RAD produces prototypes, each iteration in XP will produce Versions of the system (maybe lacking some of the user requirements) but good enough quality to be used in the final version. Each phase is started with ‘the planning game’ which involves deciding what set of user stories the team will tackle next.

10 Agile Programming / Extreme Programming
One of the key features of XP is pair programming. This is where code is produces by two programmers working closely. Typically one (often the driver) will produce code while the other (the navigator) will analyse, test and optimise the code. They will switch roles regularly and this will advocate better quality code as it quality assures and tests the work as it is being produced Pro’s With such an emphasis on programming the quality of the final code is likely to be high. Debugging and testing is an ongoing function therefore saving time on a testing phase. Cons Requires the developers to work with a very high level of collaboration, this may not work well globally. The customer needs to have to commit a member of staff to the development cycle.

11 Practice Questions!! Explain which methodology you would recommend and why for the following scenarios: Building a website for a shop. Building an operating system. Building a computer game. Find out about and describe an Agile method other than XP. ‘Waterfall is dead, long live agile…’ Discuss to what extent you agree with this statement.


Download ppt "Software Development - Methodologies"

Similar presentations


Ads by Google