Software development methodology is a framework used to structure, plan and control the process of developing a new information system. [Software Development Methodologies. 2014]. There are many of such methods to develop a new system, and each is optimized for the development of specific kinds of information systems. These methodologies include;
Agile Software Development
Dynamic Systems Development Model
Systems Development Life Cycle(SDLC)
Rapid Application Development(RAD)
Rational Unified Process(RUP)
Joint application Development(JAD)
Feature Driven Development(FDD)
Crystal Methods, and
1-AGILE SOFTWARE DEVELOPMMENT METHODOLOGY:-
Agile Software development is a methodology or group of methods that anticipate the need for flexibility and also require a higher level of practicality when developing software. In this methodology, solutions evolve through a lot of team collaboration and communication. Agile methodology promotes iterative software development. [Agile software development methodologies and how to apply them - CodeProject. 2014] that is, developing software in short time boxes called iterations, which lasts one to four weeks. Each iteration is like a miniature software development project, where the team strives to develop software at the end. Types of agile development involve; Crystal Methods, DSDM (Dynamic Systems Development Model), Extreme Programming, Feature Driven Development and Scrum.
Manifesto for Agile Software Development
We are uncovering better ways of developing
software by doing it and helping others do it
through this work we have come to value:
Individuals and interactions over processes and tools
working software over comprehensive documentation
Customer collaboration over contract negotiation
responding to change over following a plan
[Manifesto for Agile Software Development. 2014.] 2-DYNAMIC SYSTEMS DEVELOPMENT MODEL:-
Developed in the U.K in the mid 1990s, DSDM is a type of Agile development methodology. DSDM operates on a “right product at the right time” basis. It is similar to Scrum and Exteme Programming, but has iyts best uses when the time requirement is fixed. [What Is DSDM? - CodeProject. 2014.].DSDM has the following 9 principles:-
Active user involvement.
Empowered teams that the authority to can make decisions.
A focus on frequent delivery of products.
Using fitness for business purpose as the essential criterion for acceptance of deliverables.
Iterative and incremental development to ensure convergence on an accurate business solution.
Reversible changes during development.
Requirements that is baselined at a high level.
Integrated testing throughout the life cycle.
Collaboration and cooperation between all stakeholders.
[Dynamic Systems Development Model Methodology. 2014]
[DSDM methodology. 2014]
This is a type of agile, risk driven approach to software development, and is best applied when risk management is of prior importance. Spiral has four basic stages; planning stage: where requirements for the project are gathered, risk analysis stage: which is the most important stage in this model and involves the evaluation of potential risks to the software.in the event of any high risk, a new prototype is developed till risk is minimized to acceptable level, product development stage:where the product is developed and tested, and customer evaluation stage: where the customer then evaluates the end product of the project before the project continues to the nest spiral.[B. W. Boehm, 1988]
This is also another form of agile software development where products are developed piece by piece in short iterations called sprints. Each sprint is preceded by meetings called scrum, during which progress is explained, upcoming work and obstacles are also made known. In these meetings, the requirements for the next sprint will be defined and there will be brief talk about the previous sprint. Scrum is made easier by a member whose job is assuring the removal of impediments to each sprint. This member is called the Scrum master. [What is Scrum? - Definition from WhatIs.com. 2014]
5-SYSTEMS DEVELOPMENT LIFE CYCLE:-
These are the stages involved in the development of a new information system. SDLC is a type of waterfall model and could be classified into five basic stages. Planning; where the current situation is analysed and potential changes are identified before any system planning is done that is, a feasibility study is conducted to be sure that a brand new information system is the best possible solution. Analysis;This Is where the current system is analysed and problems are identified. Possible solutions are proposed, including requirements for new system. Design; this is basically the theoretical design of the new system including system environment, features, limitations, and GUI. Implementation; this is the creation stage of the new system. Here the theoretical designs are put in practice through coding and the new system is tested at various levels. After which the system is deployed Maintenance; having deployed the system, a constant maintenance procedure is required so as To ensure the systems operates properly.
This is one of the oldest models of software development. As the name indicates, it operates as a waterfall. This model has distinct goals for each phase of development and development is carried out phase after phase in order. Once the next phase has begun, the previous phase is no longer edited or reviewed. Unlike Agile development methodology, the waterfall model prioritises complete application description in written documents before any actual coding is done
[Waterfall Development Methodology. 2014]
7-RAPID APPLICATION DEVELOPMENT (RAD):-
This is a software development model that utilizes CASE (Computer assisted software engineering) tools, user driven prototyping, and stringent project delivery time limits to provide high quality productivity in the short4est possible time range. It therefore increases the quality of products while reducing the time taken to build them.
[Khalid, Noor, K.B and N.Z, 2013.]
8-RATIONAL UNIFIED PROCESS (RUF):-
This is a software development process developed and maintained by Rational Software, a branch of IBM. This model signifies a more logical and rational approach to software development by accurate division of labour. That is, assigning managing task and responsibilities to software development team. [RUF. 2014]
9-LEAN DEVELOPMENT (LD):-
Lean development is a form of agile software development developed in the ealy 1990s. lean has sevne basic principles. See figure below.
[Lean Software Development Principles. 2014.]
10-JOINT APPLICATION DEVLOPMENT (JAD):-
Developed in the late 70s by Chuck Morris and Tony Crawford, JAD is a software development model best suited for business systems development, but can also be used in systems software. Unlike the waterfall model, JAD focuses on the business problem rather than the technical details. [Joint Application Design/Development. 2014]. JAD possesses nine key steps;
Prepare, inform, educate the workshop participants
Coordinate workshop logistics
11-FEATURE DRIVEN DEVELOPMENT (FDD):-
This model was developed in 1997 by Jeff De Luca and Peter Coad. FDD has the following assertions.
A system for building systems is necessary in order to scale to larger projects.
A simple, but well-define process will work best.
Process steps should be logical and their worth immediately obvious to each team member.
“Process pride” can keep the real work from happening.
Good processes move to the background so team members can focus on results.
Short, iterative, feature-driven life cycles are best.
[Software Development Methodologies. 2014. ]
Crystal Methods or Crystal Clear Methods are a form of agile programming methodologies developed by Alistair Cockburn. This methodology is focused more on people than processes or artefacts; hence the clients are a very active role in the development process. Crystal clear Methodology is not one methodology but a family of methods that all involve frequent delivery, close communication, and reflective improvement. [Alistair, A.C, 2004.]
13-EXTREME PROGRAMMING (XP):-
Extreme Programming is a methodology that focuses on code-centred development and documentation, high costumer integration and intensive testing. [Jeremy, J.K, 2000.]. In this model, software is developed mainly through hard coding and testing and customer evaluation.
LIST OF REFERENCES
Software Development Methodologies. 2014. Software Development Methodologies. [ONLINE] Available at: http://www.itinfo.am/eng/software-development-methodologies/. [Accessed 09 November 2014].
Agile software development methodologies and how to apply them - CodeProject. 2014. Agile software development methodologies and how to apply them - CodeProject. [ONLINE] Available at: http://www.codeproject.com/Articles/604417/Agile-software-development-methodologies-and-how-t. [Accessed 09 November 2014].
Manifesto for Agile Software Development. 2014. Manifesto for Agile Software Development. [ONLINE] Available
at: http://agilemanifesto.org/. [Accessed 09 November 2014].
What Is DSDM? - CodeProject. 2014. What Is DSDM? - CodeProject. [ONLINE] Available at: http://www.codeproject.com/Articles/5097/What-Is-DSDM. [Accessed 09 November 2014].
Dynamic Systems Development Model Methodology. 2014. Software Development Methodologies. [ONLINE] Available at: http://www.itinfo.am/eng/software-development-methodologies/. [Accessed 09 November 2014]
DSDM methodology, (2014), DSDM [ONLINE]. Available at: http://dsdmofagilemethodology.wikidot.com/[Accessed 09 November 14].
Barry, B. W. Boehm, 1988. A spiral model of software development and enhancement. Computer, [Online]. (Volume: 21, Issue: 5), 61 - 72. Available at: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=59&tag=1 [Accessed 09 November 2014].
What is Scrum? - Definition from WhatIs.com. 2014. What is Scrum? - Definition from WhatIs.com. [ONLINE] Available at: http://searchsoftwarequality.techtarget.com/definition/Scrum. [Accessed 09 November 2014].
Systems development life cycle - Wikipedia, the free encyclopedia. 2014. Systems development life cycle - Wikipedia, the free encyclopedia. [ONLINE] Available at: http://en.wikipedia.org/wiki/Systems_development_life_cycle. [Accessed 09 November 2014].
Dzonatas, (2008), SDLC [ONLINE]. Available at:http://en.wikipedia.org/wiki/Systems_development_life_cycle#mediaviewer/File:SDLC-Maintenance-Highlighted.png [Accessed 11 November 14].
Waterfall Development Methodology. 2014. Waterfall Development methodology. [ONLINE] Available at:http://learnaccessvba.com/application_development/waterfall_method.htm. [Accessed 12 November 2014].
Khalid, Noor, K.B and N.Z, 2013. Software Development Techniques for Constructive Information Systems Design. 1st ed. United states: Idea Group Inc. (IGI), 2013. [Accessed 12 November 2014].
RUF. 2014. . [ONLINE] Available at:http://ovais.khan.tripod.com/papers/Rational_Unified_Process.pdf. [Accessed 12 November 2014].
Lean Software Development Principles. 2014. Lean Software Development Principles. [ONLINE] Available at: http://www.slideshare.net/jpvajda/lean-software-development-principles. [Accessed 11 November 2014].
Joint Application Design/Development. 2014. Joint Application Design/Development. [ONLINE] Available at:http://www.umsl.edu/~sauterv/analysis/JAD.html. [Accessed 12 November 2014].
Alistair, A.C, 2004. Crystal Clear: A Human-Powered Methodology for Small Teams. 1st ed. United States: Pearson Education.[Accessed 12 November]
Jeremy, J.K, 2000. Extreme programming: a university team design experience. Electrical and Computer Engineering, 2000 Canadian Conference on, [Online]. Volume: 2, 816-820. Available at:http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=849579 [Accessed 13 November 2014].