Qt World Summit: Submit your Presentation

How to understand and analyze an undocumented Qt application(the source code)

  • Hi all,
    Lately I have been assigned a really big Qt application to work on and add functionalities that meet the needs of my company.The problem is that the project is undocumented and I mostly have a hard time to achieve what I want.My question is this.Are there any specific steps that one might follow to address this kind of problem?

    The steps I have elaborated from my personal experience are as follows:

    1.Build the project from source and get it running

    2.Learn as much as you can on the application from a user's perspective

    3.Determine a small function that you want to work on .

    4.Look for any hints that you may find in the application that you have built.Here it might be an icon or an action and follow their slots or any related code chunk to see how things were done.

    5.In your findings try to comment some stuff out and the see the effect in the running application

    6.Add some functionalities of your own and see what you get

    It is not possible for me to contact people who have worked on the project previously so I kind of am on my own in this.I have used doxygen to generate class relationship charts but it did not help a lot.Some have even suggested getting a book on Design patterns and learn about ideas behind big application design and I ordered a copy and planing to read it to see where it leads.

    Any ideas or advices will be warmly appreciated.Thanks

  • Hi!
    Code reading is a not precise science. Your 6 steps are good to.
    Some time ago i have read this "book":http://www.amazon.com/Code-Reading-Open-Source-Perspective/dp/0201799405 . There are some useful recomendations, but still code reading can't be described as universal formula(my opinion).

  • Thanks qxoz for your answer.I just wanted to hear what others are doing to address similar problems.I'll have a look at the book you proposed and see what I can get.May be do you guys have steps of your own that you would like to share? :-)

Log in to reply