Apr 6, 2008

Architecture and Design Review

Lately, my management asked me to review one asp.net application from architecture and design perspective.

As usual, I googled it on how and what should be the overall approach. After half a day research I thought review comments can be grouped in following categories.

1. Code quality

2. Design constraints

3. Performance constraints

4. Duplicate code

5. Dependencies

Certainly, I concluded report with summary that highlighted most risky components within application and recommendations on how to mitigate risk.

Now, here is the list of tools and articles that I have used to accomplish this task.

1. To start with, this is the best article: Chapter 4 — Architecture and Design Review of a .NET Application for Performance and Scalability

2. Metrics, metrics and more metrics: Gather and understand as much as you can. Ndpend is great tool, initially you will feel slightly uncomfortable with UI and ocean of information it gives. But hang on there and after some time you will find this tool worthy.

3. SourceMonitor is another good tool to understand cyclomatic complexity of application.

4. To know memory leak and slowest lines of code in application use ANTS Profiler.

5. Duplicate code, here is magic wand. “Simian - Similarity Analyser”. You have a liberty to specify number of lines of duplicate code you would like to check(threshold property)

To know recommendations and efforts spent on this activity, leave a comment on this post!