R
R
ramntry2013-06-03 12:28:23
Programming
ramntry, 2013-06-03 12:28:23

What tools and methodologies exist for studying large projects?

Good afternoon everyone.

This year, I applied for the Intel Summer School and, as a result, had a phone interview with an Intel employee. During it, the mentor of one of the teams was especially interested in having experience in studying large (really large, a student project of 120 thousand lines of code as an example was not categorically accepted) projects, and asked: “How would you study a large project? What tools did you use? To be honest, I was a little confused by this question. I began to answer, listing what came to my mind:

1. Reading official documentation, wikis, articles and publications created as part of the project
2. Studying automatically generated documentation, for example, doxygen's, fortunately, it is also the simplest class diagrams contains
3. Debugging: running under a console debugger, graphical, maybe even debug printing
4. Reading code and navigating through it using modern IDEs.
5. Reading tests, if any. Often a test is a good example of the correct use of modules and classes within a project.
6. Experiment and modification attempt.
7. Communication with development team members, if possible
8. Creation of additions and corrections to the project, closing issues from the project bug tracker, requests to merge the changes made.

So it seemed to me that the answer of my interviewer did not satisfy. I don't seem to know something important. So, how to study a big project? What tools are there for this? How do you do it?

Thank you.

Answer the question

In order to leave comments, you need to log in

4 answer(s)
D
DancingOnWater, 2013-06-03
@DancingOnWater

Most likely, the person expected to hear the parsing process, and not the methods used. Those. what you have listed is all true, but now from this it is necessary to build a logical scheme where and when to use these tools.
For example:
1) I find the entry point to the program.
2) Looking at the code, I determine which classes are created and what they run.
3) If there is a dock, I read what these classes do
4) Using code navigation, I isolate which code is responsible for which functions.
5) Well, etc.

P
pomeo, 2013-06-03
@pomeo

There is such a book “Analysis of program code using the example of Open Source projects” , where the Linux kernel, Apache, freebsd, etc. are analyzed. You can browse it.

X
Xlab, 2013-06-03
@Xlab

grep and learning the call stack from top to bottom.

I
ixSci, 2013-06-03
@ixSci

To a stupid question, you answered more than deployed. I would answer it more simply: "I would take it and study it." The question is really idiotic.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question