Documentation Samples

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • prashanthv
    New Member
    • Feb 2007
    • 1

    Documentation Samples

    I'm just starting a full fledged software project for the first time and I need to maintain documentation of Requirements Specifications, High Level and Low Level Design documents etc. I wanted to know where I could find templates or samples for these. It's a relatively small project so minimal or generic documents will do.
  • DeMan
    Top Contributor
    • Nov 2006
    • 1799

    #2
    Have you tried searching the Internet? I would imagine there are a great number of "learn software Engineering/design/SDLC etc" sites that would suggest how you could go about rwequirements capture, design planning etc.

    Comment

    • r035198x
      MVP
      • Sep 2006
      • 13225

      #3
      Originally posted by prashanthv
      I'm just starting a full fledged software project for the first time and I need to maintain documentation of Requirements Specifications, High Level and Low Level Design documents etc. I wanted to know where I could find templates or samples for these. It's a relatively small project so minimal or generic documents will do.
      These things are really dependant on the type and size of the project. Remember these documents are for helping in maintanace and upgrading so the requirements' size and depth depend on how much those two will be done.

      Comment

      • AricC
        Recognized Expert Top Contributor
        • Oct 2006
        • 1885

        #4
        Originally posted by prashanthv
        I'm just starting a full fledged software project for the first time and I need to maintain documentation of Requirements Specifications, High Level and Low Level Design documents etc. I wanted to know where I could find templates or samples for these. It's a relatively small project so minimal or generic documents will do.
        The first thing I do is define the limits/specs of the project. Then I like to draw out my forms and add notation. Planning is very important don't just jump right in and start coding.

        Comment

        • Ganon11
          Recognized Expert Specialist
          • Oct 2006
          • 3651

          #5
          Originally posted by AricC
          Planning is very important don't just jump right in and start coding.
          Definitely - check this thread for some member's thoughts about planning/design.

          Comment

          • senaka
            New Member
            • Feb 2007
            • 23

            #6
            Originally posted by prashanthv
            I'm just starting a full fledged software project for the first time and I need to maintain documentation of Requirements Specifications, High Level and Low Level Design documents etc. I wanted to know where I could find templates or samples for these. It's a relatively small project so minimal or generic documents will do.
            Hi try this document by IEEE, "Std 830-1998" or any other document based on this standard. That's the recommended version by IEEE.

            Comment

            • carly
              New Member
              • Oct 2006
              • 37

              #7
              Originally posted by prashanthv
              I'm just starting a full fledged software project for the first time and I need to maintain documentation of Requirements Specifications, High Level and Low Level Design documents etc. I wanted to know where I could find templates or samples for these. It's a relatively small project so minimal or generic documents will do.
              Im starting the design phase, for my software project too. The main thing we have to cover in our design is basically the architecture of the software we are trying to develope, there's also the interface, the work-break down structure, activity diagram, sequence diagram, Algorithms, risk list, etc.

              Comment

              • Aflj
                New Member
                • May 2007
                • 6

                #8
                What we do:

                First, a doc in which we essentially lay down the use cases. This doc usually starts with a dictionary, containing terms specific to the business domain, terms coined during discussions with the customer, terms which are more technical in nature but which the customer has to learn in order the communication to work properly. Then comes a list of unstructured, non-functional requirements. These are things like number of concurrent users, data load, availability expectations, and the like. If a specific non-functional requirement is big, it gets a chapter on its own. All functional requirements are then written down as use cases. These usually contain preconditions, scope, the actual use case description as a succession of steps, and post-conditions. However, we don't use such terms in the document - this starting document has to be extremely concise and completely understandable by the customer/end user.

                This document almost always contains additional chapters, depending on what the customer requirements are. Typical case is a chapter about access rights, specific issues regarding deployment, specific technology issues.

                Second, we do a design document. This, when there are code generators for the target language in our UML tool, is data models and plus UML diagrams, with lots of comments. If code generators are not available, we write a class dictionary as text, also heavily commented, maybe also generate some code skeletton - but we try to avoid code, since it is hard to maintain in sync with later changes to the code.

                After this, we start coding from the specification. In parallel, testers start scripting and planning their tests. Once we are finished coding, we run the tests. Code goes to manual testing only after all scripted tests run without a glitch.

                During coding the design documents at least have to be permanently updated. If you have smart tools and use UML, this is not so difficult.

                I think that if we hadn't the right tools we'd rather go without thorough design documentation, just with some wiki pages on the general architecture. Out of sync docs are even worse than no docs at all. Unfortunately, customers often want to read most of the design documentation, so you often don't get away without it even if you decide you don't have the proper tools for doing it.

                No matter how you document your design, your code must be self-documenting. There's no better documentation than the code itself, provided it is cleanly written and well maintained.

                Depending on the customer, we either provide the customer with plans for acceptance testing, or they do them themselves. When we do this, it's just the initially laid down use cases plus input/test data and expected output. Once testers say everything is OK, we ship the binaries to the customer, and often we also perform the installation. Then we have to push the customers to actually do the acceptance tests. A time of support, bugfixes, updates, smaller or larger change requests follows. Change requests always lead to a revision of all documents.

                The two documents I described (I never mess with the teser's documentation, they maintain this for themselves, and it's not really much, usually - they are even more extreme in that the test scripts are the documentation than we programmers are), can range in size from 10 or 20 pages per document for tiny projects of just a few dozens of man-days to hundreds of pages per document for large projects, of several man-years (as a small team, we don't do projects of tens of man years, where the documentation probably would require thousands of pages per document).

                The main requirement about the documentation is that the non-technical customer should be able to read it and understand as much as possible of it. All that's not for the user to read should be documented as source code. That's how we think.

                Comment

                Working...