This all is with respect to Microsoft project CodeBook: CodeBook

There is huge amount of code in the repository, many classes , a call hierarchy of functions, testcases etc. I am interested in knowing how this crawling process takes place, and how this data is sorted?

  • 1
    What kind of data are you hoping to extract? – yannis Dec 3 '12 at 13:27
  • 2
    There are a lot of tools for reverse engineering, static analysis, and the gathering of various metrics from an existing code base. Most IDEs have some of these (like call hierarchy and class identification) built in - Eclipse is an example of an open source IDE. Other functionality is provided by plugins, some of which may be open source. However, without knowing what information you're trying to gather, this isn't really an answerable question. – Thomas Owens Dec 3 '12 at 13:31
  • @Yannis: Data which can help me to find relevent people for an API, finding out who will be affected by a change I make, finding out who owns a specification or knows the most about it etc. Kindly see the link in my updated question. – engineer Dec 3 '12 at 13:33

I know that there is some research in the area of social network analysis to large software projects with regards to both knowledge management as well as the identification of defects, but to the best of my knowledge, it's mostly academic at this point. I did find Supporting Collaborative Software Development through the Visualization of Socio-Technical Dependencies, a paper by researchers at the University of California, Irvine and Universidade Federal do Pará which mentions an Eclipse plugin for such work. The plugin website also links to some other publications by this group.

A professor at my university also has some academic interests in defects and software security through similar approaches. Before I graduated, he gave a presentation related to some of his work. I believe the presentation was based on this paper, titled Predicting Failures with Developer Networks and Social Network Analysis. It doesn't appear to be what you're looking for exactly, but there might be some interesting related work in network analysis based on source code repositories.

I took a quick glance at the CodeBook project that you linked to. It appears that in order to get the level of detail that they are describing, you need some kind of knowledge about the organization of the project. That might be difficult with an open-source project, but I would expect that you can at least learn the basis of the analysis that they are doing.

At the very least, perhaps these papers might give you some other documents, publications, or keywords that you can use to help get started. Some keywords to perhaps get you started: social network analysis, socio-technological dependencies, distributed software development, developer network.

  • I am interested in making a project that can help in inter team coordination as my final year project. I have read some research papers but couldn't find some practical knowledge in this regard. – engineer Dec 3 '12 at 13:50
  • @engineer I don't think there's much practical knowledge or experience in this area out there yet. Every time I've read anything about this, it has been in academic publications. One project did release an Eclipse plugin, but I would still consider that an academic tool to support their research. – Thomas Owens Dec 3 '12 at 13:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.