CSC/ECE 517 FALL 2009/wiki2 1 HJ: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 34: Line 34:
=== Strength ===
=== Strength ===


BDD increases feedback and communication in a software development.
1] BDD increases feedback and communication in a software development.
Behavior-driven developers use both their native language and the language of Domain Driven Design to describe the purpose and benefit of their code.
2] Behavior-driven developers use both their native language and the language of Domain Driven Design to describe the purpose and benefit of their code.


=== Weakness ===
=== Weakness ===

Revision as of 01:23, 15 October 2009

Responsibility-Driven Development (RDD)

Overview

Responsibility-Driven Design (or RDD) relies on objects and component technology to design complex software systems.


Strength

Weakness

Test Driven Development (TDD)

Overview

Test Driven Development (or TDD) uses the repetition of a very short development cycle. The developer writes a failing automated test case that defines a new function, then writes the code to pass that test and finally refactors the new code.

This picture from [1] summarizes the TDD method.

Strength

Weakness

Behavior Driven Development (BDD)

Behavior Driven Development (or BDD) focused on the language and interactions used in the process of software development. BDD encourages collaboration between developers and non-technical or business participants in a software project. This allows the developers to focus on why the code should be created, rather than the technical details, and minimizes translation between the technical language in which the code is written and the domain language spoken by the business, users, stakeholders, project management etc. BDD is an Agile software development technique.

Strength

1] BDD increases feedback and communication in a software development. 2] Behavior-driven developers use both their native language and the language of Domain Driven Design to describe the purpose and benefit of their code.

Weakness

BDD depends on the success of TDD.

Domain Driven Development (DDD)

Overview

Domain-driven design (or DDD) is a technique to design software, where the complex domain design which is based on a model, and that focus on the domain and domain logic.


Strength

DDD uses the strengths of Object-Oriented software development techniques to simulate the core of the problem.

Weakness

Model Driven Development (MDD)

Overview

Model Driven Development(or MDD) focuses on creating models, closer to some particular domain concepts rather than algorithmic concepts to create new software.

Strength

Weakness

Use of the different Driven Development Technology

References

RDD

[1] http://www.xpday.net/html/Xpday2008/rdd_with_mockito.pdf

[2] http://www.wirfs-brock.com/Design.html

[3] http://codebetter.com/blogs/jeremy.miller/articles/131726.aspx

[4] http://www.cs.colorado.edu/~kena/classes/6448/s05/lectures/lecture05.pdf

TDD

[5] http://en.wikipedia.org/wiki/Test-driven_development

[6] http://www.agiledata.org/essays/tdd.html

[7] http://c2.com/cgi/wiki?TestDrivenDevelopment

[8] http://www.developer.com/design/article.php/10925_3622546_1/Test-Driven-Development-a-Portable-Methodology.htm

[9] http://msdn.microsoft.com/en-us/library/aa730844(VS.80).aspx

BDD

[10] http://behaviour-driven.org/Introduction

[11] http://en.wikipedia.org/wiki/Behavior_Driven_Development

[12] http://www.code-magazine.com/article.aspx?quickid=0805061

DDD

[13] http://www.infoq.com/articles/ddd-in-practice

[14] http://en.wikipedia.org/wiki/Domain-driven_design

MDD

[15] http://en.wikipedia.org/wiki/Model-driven_engineering

[16] http://msdn.microsoft.com/en-us/library/aa964145.aspx

[17] http://searchsoa.techtarget.com/news/interview/0,289202,sid26_gci999474,00.html