CSC/ECE 517 Fall 2009/wiki3 7 Agile: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
Line 7: Line 7:
===Introduction===
===Introduction===


Software Development Methodology (SDM) or Software Development Life Cycle (SDLC) is the documented collection of policies, processes and procedures used to conduct a Software Engineering project. Software Engineering project involves various stages viz. analysis, design, developement, testing, documentation, implementation and  evaluation.
Software Development Methodology (SDM) or Software Development Life Cycle (SDLC) is documented collection of policies, processes and procedures used to conduct a Software Engineering project. Software Engineering project involves various stages viz. analysis, design, developement, testing, documentation, implementation and  evaluation.


The art of Software Development requires a clear understanding of the project or business goals by both the customer commissioning the project and the technical team. It is the software devlopers role to then communicate with the project sponsor and translate a business concept into a working software system in a timely and effective manner.
The art of Software Development requires a clear understanding of the project or business goals by both the customer commissioning the project and the technical team. It is the software devlopers role to then communicate with the project sponsor and translate a business concept into a working software system in a timely and effective manner.
Line 14: Line 14:




Software Development Methodolgies involve four key steps
Software Development Methodolgies involve following four key steps


1. Requirements
1. Requirements
Line 27: Line 27:
4. Testing
4. Testing
Testing is performed on discrete units of the computer system as well as the solution as a whole. A tracibility matrix can be used to ensure that each functional objective set in the requirements phase has been solved.  
Testing is performed on discrete units of the computer system as well as the solution as a whole. A tracibility matrix can be used to ensure that each functional objective set in the requirements phase has been solved.  
A wide variety of Software Development Methodolgies have evolved over the years.Each have its own recognized strengths and weaknesses. One system development methodology is not necessarily suitable for use by all projects. Each of the available methodologies is best suited to specific kinds of projects, based on various technical, organizational, project and team considerations.
Few of them are listed below.
1. Agile software development.
2. Waterfall model.
3. Spiral model.
4. Test-driven development (TDD).
5. Design-driven development (D3).
====General Problems faced during software development====
It is often very hard to create exactly what the customer wants in software development. Often the customer does not even knows what he wants, or it gets misinterpreted. With large software companies, the real ‘requirements’ can get mangled on so many levels. The below picture depicts it all:
[[Image:software_development_parties.jpg|650px|thumb|center| Milestone of version control development.]]


====Waterfall model====
====Waterfall model====
====Prototyping====
====Prototyping====
====Incremental====
====Incremental====
Line 35: Line 63:
====Agile====
====Agile====
----
----


===How can Agile complement other development methodologies===
===How can Agile complement other development methodologies===

Revision as of 02:54, 18 November 2009

Similar to the design pattern which give structure and name to commonly occuring problem, Software development methodology or system development methodology is a frame work which is used to structure, plan, and control the process of developing an information system.


Development methodologies

Introduction

Software Development Methodology (SDM) or Software Development Life Cycle (SDLC) is documented collection of policies, processes and procedures used to conduct a Software Engineering project. Software Engineering project involves various stages viz. analysis, design, developement, testing, documentation, implementation and evaluation.

The art of Software Development requires a clear understanding of the project or business goals by both the customer commissioning the project and the technical team. It is the software devlopers role to then communicate with the project sponsor and translate a business concept into a working software system in a timely and effective manner.

The use of systematic processes for the development of software reduces the risk that is inherent in any software project. These processes must be put in place in a careful manner to allow technical team members to solve problems in a creative and skillful manner.


Software Development Methodolgies involve following four key steps

1. Requirements This is the phase where the Business Analyst or Project Manager works with the Customer to understand the project goals and translate this into a desired set of functional objectives.

2. Design In this phase a solution is mapped out with 'pen and paper'. The solution describes how the final software will operate and includes other practical components including the technologies to be used, hardware requirements, impact on other information systems and the time and resources required to implement the software.

3. Implementation This is the time where the agreed project plans are coded into a practical working system.

4. Testing Testing is performed on discrete units of the computer system as well as the solution as a whole. A tracibility matrix can be used to ensure that each functional objective set in the requirements phase has been solved.


A wide variety of Software Development Methodolgies have evolved over the years.Each have its own recognized strengths and weaknesses. One system development methodology is not necessarily suitable for use by all projects. Each of the available methodologies is best suited to specific kinds of projects, based on various technical, organizational, project and team considerations.

Few of them are listed below.

1. Agile software development. 2. Waterfall model. 3. Spiral model. 4. Test-driven development (TDD). 5. Design-driven development (D3).


General Problems faced during software development

It is often very hard to create exactly what the customer wants in software development. Often the customer does not even knows what he wants, or it gets misinterpreted. With large software companies, the real ‘requirements’ can get mangled on so many levels. The below picture depicts it all:

Milestone of version control development.


Waterfall model

Prototyping

Incremental

Spiral

Rapid Application Development (RAD)

Agile


How can Agile complement other development methodologies



Agile Vs waterFall



Conclusion



References

[1]