Similarity between Code Recognition

Just listened to a talk to day and feel like many concepts are the same thing.

Aspect Oriented Programming : cutting a complete program into different parts based on Aspect that provided while coding. Make it's easier to understand and debug on specific point of code.

Feature Location : a project from Sukanya and Hye Jung Choi, that trying to monitor code changes while a developer debug the code which is issued from bug tracker. And we can say that the specific bug report covers this part of the code. When we got a part of code labeled by description from bug tracker (or manually assigned), that part of code is easily to understand.

Agile's refactoring and Test-Driven Development :  Test-Driven Development(TDD) is writing test first. Then implementing the code later. After awhile (maybe after integration, or completing code), a developer re-factors the code to make it easier to read without breaking test suite.
If we can capture the test cases matching with the code/functions that they use to test, that's the cognitive knowledge of the code.  That means we can understand the code just from reading "test case" first, then see what classes are related, then we can focus our attention to the classes easily.

Quite the same? These concepts are trying to help developers understand the code by mapping "aspect"/"description"/"test case" to a part of source code.
They just use different approaches.

No comments:

Post a Comment