Best way to write Technical spec for a C++ code

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • venujune6
    New Member
    • Jul 2008
    • 10

    Best way to write Technical spec for a C++ code

    Hi All,
    I have a C++ on windows code with no underlying documents. I need to produce the Technical specification for this code, explaining each and every function in the program in terms of both technical and functional.
    1.What can be best method to proceed with this kind of projects?
    2.What can be the suitable estimation for these docs, if the code is of 3000K lines?
    3.How best I can use the Visio tool for this process of reverse engineering ?
    4.How can I exactly categorize these documents rather than putting the whole understanding into a single document ?
    5.How best the developer new to the system, can best utilize this document for ?
    6.I cannot debug the system, nor I have an access to the live system, nor I get the complete trace files of the application in run, all I have is just a dump of code. Is it a challenging task ?

    Please advice.
    Thanks in advance.
    regards,
    V.
  • venujune6
    New Member
    • Jul 2008
    • 10

    #2
    hi,
    Can anyone please reply to my post.

    Comment

    • donbock
      Recognized Expert Top Contributor
      • Mar 2008
      • 2427

      #3
      Reverse-engineering the software design of 3000K (3 million!) lines of source code is a really big project. Some questions you should ask yourself follow. I'm not suggesting you post a reply that answers each question. These are just things you should consider. If you don't understand why a question is meaningful, then by all means post a request for clarification.

      Is the code well-commented?
      Were you part of the team that wrote the code? That is, do you have some preexisting knowledge of the software design? If not, do you have access to any of the people who wrote the code?
      Do you have a clear idea of what the code (as a whole) is trying to accomplish?
      Is this more of a batch program or a real-time program?
      Does this program run on a standard computer or an embedded processor? If the latter, do you have the HW/SW Interface specification?
      Does this source code build into an executable program or into a library?

      What exactly are you being asked to do?
      The simplest task would be to merely document the API for the exposed functions in a library.
      Next easiest would be to document the API for all functions.
      Hardest is to explain why the software looks like this, the purpose (as opposed to the function) of each function, and relationships between functions.

      Are there constraints on what your result has to look like?
      Does it have to be a software design document that complies with IEEE or some other specified document format?
      Is there certain minimum information that has to be provided?
      Does your output have to be pdf, an html tree, or something else?

      There are tools out there that can perform static analysis on source code and help you find your way. You might look at doxygen; source navigator. Browse the tools available at gnu.org. Good luck.

      Comment

      • venujune6
        New Member
        • Jul 2008
        • 10

        #4
        Hi,
        Thank you very much for your reply.
        All your questions does make sense and helped me to explain better to my manager.
        I need another help from you, I guess you can surely help me on this.
        This application is list of DLL's on Windows. I understand I cant just run these DLL's to test them. I have to have a wrapper program written which can call these DLL's. Can you please advise how can write the wrapper program ?
        I am using IDE Microsoft Visual Studio .NET (Microsoft Dev Env ver 7.1,
        Microsoft .NET Framework 1.1)

        regards,
        Venu

        Comment

        Working...