Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

What are technical specifications? Are they the same as design documents. If not, what is the difference and some examples?

share|improve this question
add comment

2 Answers 2

Technical specifications, at least in the form of a technical design, are part of the design documents, along with, for example, requirements lists, functional designs, user stories, graphics design mockups, usability studies, UML diagrams, business process diagrams, data model specifications, etc.

Technical specifications of the type that you write after the fact, to document the finished product, are not generally part of the design documents, but they can be included in the set of design documents of a later version (for reference) or another product that relies on them.

share|improve this answer
    
Thank you. Also basically I need functional specification to know what to do and then design documents to know how to do, is that correct? Just a little question, what is the functional design you referred to (hope it wont add confusion to my understanding of functional spec) –  user970696 Dec 15 '12 at 15:14
    
A functional design defines the product's intended functionality, from a user's point of view, without going into implementation details. There are plenty of questions with excellent answers here that give exhaustive explanation about what a functional design is and is not. –  tdammers Dec 15 '12 at 23:13
add comment

A software design document can be at the level of a system or component, and generally describes the following aspects:

  • relevant goals or requirements (functional and non-functional)
  • static structure (e.g. components, interfaces, dependencies)
  • dynamic behavior (how components interacts)
  • data models or external interfaces (external to the system/component described in the document)
  • deployment considerations (e.g. runtime requirements, third party components)

Note that all of these descriptions are at an abstract level. The purpose is to give the reader a broad general understanding of the system or component. There may be many levels of design documents, e.g. at the system level, component-level etc.

A technical specification, in contrast, describes the minute detail of either all or specific parts of a design, e.g.:

  • the signature of an interface, including all data types/structures required (input data types, output data types, exceptions)
  • detailed class models including all methods, attributes, dependencies and associations
  • the specific algorithms that a component employs and how they work
  • physical data models including attributes and types of each entity/data type
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.