Practices
  Home arrow Practices arrow Page 3 - Writing A Software Technical Reference Manual (part 2)
Dev Shed Forums  
Administration  
AJAX  
Apache  
BrainDump  
DHTML  
Flash  
Java  
JavaScript  
Multimedia  
MySQL  
Oracle  
Perl  
PHP  
Practices  
Python  
Reviews  
Security  
Smartphone Development  
Style-Sheets  
Web Services  
XML  
Zend  
Zope  
Mobile Linux  
App Generation ROI  
IBM® developerWorks  
Forums Sitemap  
E-Commerce Hosting  
Linux Web Hosting  
Managed Hosting  
Small Business Hosting  
VPS Hosting  
Weekly Newsletter

 
Developer Updates  
Free Website Content 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid  
Request Media Kit
Contact Us  
Site Map  
Privacy Policy  
Support  
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
PRACTICES

Writing A Software Technical Reference Manual (part 2)
By: Deepa L, (c) Melonfire
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: starstarstarstarstar / 2
    2003-02-13


    Table of Contents:
  • Writing A Software Technical Reference Manual (part 2)
  • Starting Off Easy
  • System Shock
  • Remote Control
  • Improving Yourself
  • Sealed With A Kiss

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      error-file:tidyout.log Del.ici.ous error-file:tidyout.log Digg
      error-file:tidyout.log Blink error-file:tidyout.log Simpy
      error-file:tidyout.log Google error-file:tidyout.log Spurl
      error-file:tidyout.log Y! MyWeb error-file:tidyout.log Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article

     
     
    ADVERTISEMENT


    Writing A Software Technical Reference Manual (part 2) - System Shock
    ( Page 3 of 6 )

    Once you've got the introductory material out of the way, it's time to delve into the nitty-gritty of system and component design and function.

    3. System
    This is the meat of the document. The idea here is to first present an overview of the system and then move on to each component and its function. This section as a whole needs to cover the explanation of the way your application is structured and how the various pieces of it work together.

    3.1. System Overview
    In this section, start with high-level architectural diagrams of the system design, together with descriptions of the components used and their relationships via a modeling language (UML is good for this). Also include a description of the various modules that make up the system.

    Going deeper, address all "global" aspects of the application. List and describe the global configuration and runtime variables defined within the system. Detailed information on where and how these variables are stored can be included in an appendix.

    Address your data storage next. Define the data structures used by the system for system, configuration and user data and discuss the format of their storage containers (whether they are databases, flat files or some other format). Provide a brief explanation of the requirements that resulted in the choice of a particular format, and address the resultant constraints or benefits. The exact directory structure with file names and instructions on how to back this data up before upgrading or re-installing can be included in an appendix.

    Next, explain the security and performance considerations. Describe the user levels defined in the application, their access permissions and the techniques used by you to ensure data protection. Also talk about the performance enhancing techniques incorporated, their effects and their constraints - for example, caching and platform-specific tuning options. You may choose to relegate the details like the cache size, location, backup considerations and customizing options to an appendix.

    3.2. Component Overview
    Drilling deeper into the application components, this section should explain the purpose of each component, its functions, its data input and output formats, its input and output interfaces, its internal business logic, and its interaction with other components. You can include pseudo-code wherever needed to ensure that the details are clearly communicated.

    On the whole, this section will be similar in structure to the system overview except that you will be describing a component instead of the system.

    Your heads of information could be:

    * Scope of functions
    Talk briefly about what the component does and the requirement it fulfills.

    * Block diagram
    This diagram should highlight the structure of the component, displaying the sub-components, if any, and the local APIs. You may choose not to have this block diagram if the component is a single unit without any further sub-components.

    * Control flow diagram
    This diagram should depict the flow within the component for execution of its function(s). Highlight the input and output paths, the events that trigger the component APIs, and the points at which this component interacts with other components.

    Explain the flow depicted in the diagram in detail - describe the input/output instances and describe the data formats, the events that trigger the local/private APIs and the events that trigger interaction with other components (you can describe the local APIs in detail in the next section). Similarly, while talking about the interaction with other components, introduce the system interfaces (public APIs) called, and reference detailed notes in other sections of the document.

    * Component APIs
    Having introduced the component APIs, describe them here. For each API, include information on its access method (socket, local function call, remote function call and so on), the arguments to be provided, boundary conditions and return values.

    * Configuration and run time variables
    List the variables relevant to the component, with a brief description of each, allowed values or value range and data type.

    * Data Structure
    Since you have already defined the system-wide data structures, talk about other data structures used by the component, if any.

    * Sub-components
    If sub-components exist, list them here and, for each, briefly describe all the above heads of information.

    * Exception handling and error types
    Discuss the errors you have anticipated and how your exception handler will deal with them. Also define the error types you have identified.

    Commonly, the error types are based on severity of the problem - notification, warning, or fatal error are the three most common - and they are depicted differently to help the user identify them. For example, error types may be color coded within the application for easy identification - talk about these conventions and what each one signifies too.

    * Diagnostics
    Finally, talk about the logs and reports generated by this component. Discuss the method of accessing these logs, filters available to sift through them, and the formats in which they are generated. You could provide samples and discuss detailed log analysis or troubleshooting in an appendix.

    3.3. System APIs
    Talk about the interfaces between components here (public APIs). Since you will have introduced most of these APIs while describing the flow of the components, this section could simply be information on their access methods, boundary conditions, arguments needed and return values.

    3.4. System Interfaces
    This section will address any interfacing that the system needs to do with other existing systems in the customer's office. For example, if your application is to automate the generation of employee salary/bonus statements, it would possibly interface with the accounting system to extract the salary info for the salesmen, and with the sales system to calculate sales per person and corresponding commission/bonus payable. In such cases, describe the instances of data extraction/insertion, data formats, the necessary configurations and back-up considerations for each interface.

     
     
    >>> More Practices Articles          >>> More By Deepa L, (c) Melonfire
     

       

    PRACTICES ARTICLES

    - More Techniques for Finding Things
    - Finding Things
    - Finishing the System`s Outlines
    - The System in So Many Words
    - Basic Data Types and Calculations
    - What`s the Address? Pointers
    - Design with ArgoUML
    - Pragmatic Guidelines: Diagrams That Work
    - Five-Step UML: OOAD for Short Attention Span...
    - Five-Step UML: OOAD for Short Attention Span...
    - Introducing UML: Object-Oriented Analysis an...
    - Class and Object Diagrams
    - Class Relationships
    - Classes
    - Basic Ideas





    © 2003-2009 by Developer Shed. All rights reserved. DS Cluster 3 Hosted by Hostway
    Stay green...Green IT