The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

OOD, Metrics and Empirical Studies

I'm doing a PhD in Computer Science at the University of Auckland, New Zealand. Part of my research involves looking at the design of real software systems. I have conglomerated a large corpus of Java software and found that for most systems dependencies between source files are not well-managed. The result is a system where almost everything depends on everythign else.

I give a brief overview of my research here:

 http://www.cs.auckland.ac.nz/~hayden/research.htm

Basically it involves modelling a software system as a directed graph where nodes are source files and edges are compilation dependencies. Then I collect graph-centric metrics like the size of strongly connected components and the reachability set for each class. I think that the metrics I have collected are useful at measuring some important aspects of "design quality".

If you are interested in seeing what the dependency structure of your software system looks like I have also made a tool available to collect these metrics. It too is available from my website.
Hayden Melton Send private email
Monday, May 29, 2006
 
 
Have you looked at the existing metrics. There are similarities with your reasearch. I did some study myself a couple of years back on this topic. But I felt it as difficult to convince ROI.

Chidamber, S.R., and Kemerer, C.F., "A Metrics Suite for Object-Oriented Design," IEEE Transactions on Software Engineering, Vol. 20, No. 6, June 1994, pp. 476-493.

and a tool
http://www.it.swin.edu.au/projects/jmetric/products/jmetric/
nullptr
Monday, May 29, 2006
 
 
> Basically it involves modelling a software system as a directed graph where nodes are source files and edges are compilation dependencies.

That's an important part of the book _Large-Scale C++ Software Design_ by Lakos. Appendix C of that book is tools to extract this information from C++ source code.
Christopher Wells Send private email
Monday, May 29, 2006
 
 
You may be interested in this paper: http://objectwatch.com/whitepapers/ABetterPath-Final.pdf
It hilights with differences between application and enterprise architectures.  Within an application architecture the goal of re-use and class-extension may lead to coupling and dependency, and that may be ok.  However, an enterprise architechure has the goal of maintainability, and thereby seeks to minimize coupling and dependency.
GMan Send private email
Tuesday, May 30, 2006
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz