My problem is the following; I need to get to know a totally new system, for example WordPress, Drupal, or a framework like Symfony, or maybe a big forum system like PhpBB.
Let’s suppose it has no documentation at all, but the code is good.
What I end up doing is that I start at index.php
and click the first include, so this takes me to the next file. But then it requests another file and that file request another, so at the end I even forget where I started and have no clue which was the previous request.
So my question is, is there a good way to do this ? Like drawing a chart of the application flow or something. When I want to get to know a new system, at first I would like to get the “big picture” about what comes after what, and what files do what part of the system, what function get called when, things like these.
Basically all I want to do is able to write an Application flow like this when I start with a new system.
Is there a nice way tot do this without taking too much time and confusion?
Are there any software or debugging tools for this?
Are there any chart types for this situation which I can apply here?
Can you suggest small tricks or tips how you get to know big systems and what are you looking first without digging into the code too deeply wasting too much time on not-really-important-parts?
1
This question is very broad, so just some general advice.
Is there a nice way tot do this without taking too much time and confusion ?
I know only one: ask the authors of the system if they can give you some explanation. If you cannot grasp any of the authors, you will have to start reengineering – no shortcut.
Are there any softwares or debugging tools for this ?
Just the same tools you use to debug your own programs. If the system is written mostly in PHP, for example, use your favorite PHP debugger.
Are there any chart types for this situation which I can apply here ?
You already suggested flow charts by yourself. Actually, if there is an underlying database, I would add an ER model (or utilize an UML class diagram as ERM replacement).
Can you suggest small tricks or tips how you get to know big systems and what are you
looking first without digging into the code too deeply wasting too much time on
not-really-important-parts ?
The only general hint I can give you here: start to analyse the data model (and whatever technology is used to store persistent data). But honestly, the right thing to do depends heavily on the system, and what you are trying to accomplish.