NDepend

NDepend
NDepend
Developer(s) NDepend
Stable release 3.0 / February 24, 2010
Operating system Windows
Type Software quality
License Proprietary
Website http://ndepend.com

NDepend is a static analysis tool for .NET managed code. This tool supports a large number of code metrics, allows for visualization of dependencies using directed graphs and dependency matrix. The tools also performs code base snapshots comparison, and validation of architectural and quality rules. User-defined rules can be written using a dedicated language called "Code Query Language" (CQL). This language is very similar to SQL, hence users can query the code base the same way that one would query a relational database. The tool also comes with a large number of predefined code quality rules. Rules can be checked automatically during continuous integration.

Contents

Features

The main features of NDepend are:

  • Dependency Visualization (using dependency graphs, and dependency matrix)
  • Software metrics (NDepend currently supports 82 code metrics: Cyclomatic complexity; Afferent and Efferent Coupling; Relational Cohesion; Google page rank of .NET types; Percentage of code covered by tests, etc.)
  • Declarative code query using CQL
  • Integration with CruiseControl and TeamCity
  • Optional code constraints in the source code using .NET attributes
  • Version comparison of two versions of the same assembly

CQL

CQL (Code Query Language), is one of the innovations of NDepend. It is an SQL inspired query language: .NET assemblies can be queried in a very similar way that relational database are queried. For example:

- Which public methods have more than 30 lines of code?

SELECT METHODS  WHERE NbLinesOfCode >  30  AND IsPublic

- Which classes implement System.IDisposable?

SELECT TYPES WHERE IsClass AND Implements "System.IDisposable"

- Which methods have been modified since the last release?

SELECT METHODS WHERE CodeWasChanged

See also

External links

NDepend reviewed by the .NET community

Books that mention NDepend

  • Marcin Kawalerowicz and Craig Berntson. Continuous Integration in .NET (2010)
  • James Avery and Jim Holmes. Windows developer power tools‎ (2006)
  • Patrick Cauldwell and Scott Hanselman. Code Leader: Using People, Tools, and Processes to Build Successful Software‎ (2008)
  • Yogesh Shetty and Samir Jayaswal. Practical .NET for financial markets‎ (2006)
  • Paul Duvall. Continuous Integration‎ (2007)
  • Rick Leinecker and Vanessa L. Williams. Visual Studio 2008 All-In-One Desk Reference For Dummies (2008)
  • Patrick Smacchia. Practical .Net 2 and C# 2: Harness the Platform, the Language, the Framework‎ (2006)

Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • NDepend — Outil de contrôle de qualité logicielle pour les développements .NET …   Wikipédia en Français

  • Software visualization — [(Diehl, 2002; Diehl, 2007; Knight, 2002)] is concerned with the static or animated 2 D or 3 D [(Marcus et al., 2003)] visual representation of information about software systems based on their structure [(Staples Bieman, 1999), size (Lanza,… …   Wikipedia

  • Software package metrics — This article describes various software package metrics. They have been mentioned by Robert Cecil Martin in his Agile Software Development: Principles, Patterns, and Practices book (2002).The term software package , as it is used here, refers to… …   Wikipedia

  • List of tools for static code analysis — This is a list of significant tools for static code analysis.Historical products* Lint the original static code analyzer of C code.Open source or Noncommercial products .NET (C#, VB.NET and all .NET compatible languages) *… …   Wikipedia

  • Design structure matrix — The design structure matrix (DSM) (also referred to as dependency structure method, dependency structure matrix, problem solving matrix (PSM), incidence matrix, n square matrix or design precedence matrix) is a compact, matrix representation of a …   Wikipedia

  • Cohesion (computer science) — In computer programming, cohesion is a measure of how strongly related each piece of functionality expressed by the source code of a software module is. Methods of measuring cohesion vary from qualitative measures classifying the source text… …   Wikipedia

  • Softwarevisualisierung — [1] [2] beschäftigt sich mit der statischen oder animierten Darstellung von 2D oder 3D [3] Informationen über Softwaresysteme. Die Informationen können dabei die Struktur [4] , die Größe [5] , den historischen Verlauf [6] oder das dynamische… …   Deutsch Wikipedia

  • Métrique (logiciel) — Pour les articles homonymes, voir Métrique. Une métrique logicielle est une compilation de mesures issues des propriétés techniques ou fonctionnelles d un logiciel. Il est possible de classer les métriques logicielle en trois catégories :… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”