CSC/ECE 517 Fall 2009/wiki2 6 TDD: Difference between revisions
Line 7: | Line 7: | ||
system.[1]"</pre>'' | system.[1]"</pre>'' | ||
[[Image:softwaredevpic.jpg|thumb| | [[Image:softwaredevpic.jpg|thumb|figure 1]] | ||
<p> A software might range from a simple small application to a large and complex system in which the applications typically manage immense data sets and support complicated and extensive algorithms. Ad hoc approaches might sometimes work in developing small applications, because of the brilliance of the individuals developing it, but fails in most cases. | <p> A software might range from a simple small application to a large and complex system in which the applications typically manage immense data sets and support complicated and extensive algorithms. Ad hoc approaches might sometimes work in developing small applications, because of the brilliance of the individuals developing it, but fails in most cases. Figure 1 shows the effects of an improper development methodology. A software development process has requirements. The things that an organization must understand are what software system will be developed, how much time would the development take, and what would be the quality of the final product. The amount and the way the software system meets the requirements determines the quality of a software system, Hence, a software development methodology is a critical tool for reaching these, complex and difficult to manage, requirements [2].</p> | ||
Below are a list of few software development approaches. Till date we have development approaches like responsibility driven (RDD), [http://en.wikipedia.org/wiki/Test-driven_development test driven (TDD)], [http://en.wikipedia.org/wiki/Behavior_driven_development behavior driven (BDD)], [http://en.wikipedia.org/wiki/Domain-driven_design domain driven(DDD)], and [http://en.wikipedia.org/wiki/Model-driven_development model driven (MDD)]. All these approaches emphasize a core set of values and principles around which efficient software development practices, techniques, and tools have emerged. A developer should thoughtful choose among practices without losing their essence. But not all practices are congruent [3]. | Below are a list of few software development approaches. Till date we have development approaches like responsibility driven (RDD), [http://en.wikipedia.org/wiki/Test-driven_development test driven (TDD)], [http://en.wikipedia.org/wiki/Behavior_driven_development behavior driven (BDD)], [http://en.wikipedia.org/wiki/Domain-driven_design domain driven(DDD)], and [http://en.wikipedia.org/wiki/Model-driven_development model driven (MDD)]. All these approaches emphasize a core set of values and principles around which efficient software development practices, techniques, and tools have emerged. A developer should thoughtful choose among practices without losing their essence. But not all practices are congruent [3]. |
Revision as of 23:46, 9 October 2009
Survey of "Driven Development" Methodologies
Software Development Methodology
According to 1 :
"A software development methodology is a framework used to structure, plan, and control the process of developing a software system.[1]"
A software might range from a simple small application to a large and complex system in which the applications typically manage immense data sets and support complicated and extensive algorithms. Ad hoc approaches might sometimes work in developing small applications, because of the brilliance of the individuals developing it, but fails in most cases. Figure 1 shows the effects of an improper development methodology. A software development process has requirements. The things that an organization must understand are what software system will be developed, how much time would the development take, and what would be the quality of the final product. The amount and the way the software system meets the requirements determines the quality of a software system, Hence, a software development methodology is a critical tool for reaching these, complex and difficult to manage, requirements [2].
Below are a list of few software development approaches. Till date we have development approaches like responsibility driven (RDD), test driven (TDD), behavior driven (BDD), domain driven(DDD), and model driven (MDD). All these approaches emphasize a core set of values and principles around which efficient software development practices, techniques, and tools have emerged. A developer should thoughtful choose among practices without losing their essence. But not all practices are congruent [3].
Responsibility Driven Development(RDD)
Test Driven Development(TDD)
Behavior Driven Development(BDD)
Domain Driven Development(DDD)
Model Driven Development(MDD)
Conclusions
References
[1] http://en.wikipedia.org/wiki/Software_development_methodologies
[2] Larry Trussell, “Essential Software Development Methodology”, Power Engineering Society 1999 Winter Meeting, IEEE ,31 Jan.-4 Feb. 1999 Page(s):357 - 361 vol.1.
[3] Wirfs-Brock, R.J.;” Driven to ... Discovering Your Design Values”, IEEE Software, Volume 24, Issue 1, Jan.-Feb. 2007 Page(s):9 - 11
[4] Fraser, J.; Mattu, B.S.; "Test Driven Design Challenges for Faster Product Development", Systems Conference, 2007 1st Annual IEEE 9-13 April 2007 Page(s):1 - 5