RSS feed

Linkedin Profile

Tags:
programming
seattle
things that bug me
wall art

Posts by month: 10/08 (2)
08/08 (1)
06/08 (2)
05/08 (1)
03/08 (3)
02/08 (1)
01/08 (2)
12/07 (2)
11/07 (1)
07/07 (1)
05/07 (2)
02/07 (1)
01/07 (1)
12/06 (1)
11/06 (1)
10/06 (1)
08/06 (1)
07/06 (1)
06/06 (2)
05/06 (1)
04/06 (2)
02/06 (1)
01/06 (2)
12/05 (3)
11/05 (2)
09/05 (5)
08/05 (5)
07/05 (7)
06/05 (3)
05/05 (6)
04/05 (8)
03/05 (7)
02/05 (7)
01/05 (6)
12/04 (2)
11/04 (3)
10/04 (5)
09/04 (3)
08/04 (5)
07/04 (5)
06/04 (4)
05/04 (4)
04/04 (9)
03/04 (4)
02/04 (3)
01/04 (5)
12/03 (1)
11/03 (14)
10/03 (8)


Ten new ways to query .Net source code
2005-03-27

Check out the latest Concern Map screenshot, notice anything different?

Concern Map diagram

The big news is... rounded corners! This alone warrants a version number. More importantly, I added 10 new "query shortcuts" to the existing query mechanisms which bind diagram elements to source code artefacts. These are:

CallsMethod [method name]
Any method that calls into a method with a matching name
HasMethod [method name]
Any class that has a method with a matching name
InNamespace [namespace]
Any class or interface within namespace
TypeNamed [class name]
Any class with a matching name
ExtendsType [class name]
Any class that directly inherits from named class
ImplementsInterface [int. name]
Any class that implements the named interface
GetsField [field name]
Any method that gets the named field
SetsField [field name]
Any method that sets the named field
HasField [field name]
Any class that has a field with a matching name
UsesType [type name]
Any class that calls a method or gets or sets a field on the named type

These are aimed at supporting the more code-centric of the key scenarios for the tool: capturing cross-cutting concerns, consolidating program logic, correlating code and pattern roles, and correlating code and architecture

Under the covers, these shortcuts back onto the existing XPath and XQuery mechanisms I've built for querying source code, but insulate the user, getting rid of a lot of the knowledge required (and tedium). There is still some work to do - it would be nice to optionally allow type names for GetsField, SetsField, CallsMethod (e.g. CallsMethod [type name, method name]), and I'm yet to bring interfaces and structs into this properly. Nonetheless, it beats typing in long XQueries.

Back to weblog