विनिर्देश वह कार्य है जिसके अर्न्तगत लिखे जाने वाले सॉफ्टवेयर का संभवतः सही ढ़ंग से वर्णन किया जाता है। व्यावहारिक रूप से, सबसे सफल विनिर्देशों को पहले से ही सुविकसित प्रोग्रामों को समझने और अधिक अनुकूल बनाने के लिए लिखा जाता है। यद्यपि अक्सर प्रोग्राम के विकास के पूर्व सुरक्षा की दृष्टि से अत्यंत महत्वपूर्ण सॉफ्टवेयर तंत्रों का सावधानीपूर्वक विस्तृत विवरण दिया जाता है। "विनिर्देश बाहरी अंतरफलकों के लिए सबसे अधिक महत्वपूर्ण होते हैं जिन्हें स्थिर बना रहना चाहिए." विनिर्देश पर्याप्त रूप से सही हैं या नहीं इसका निर्धारण करने का एक अच्छा तरीका आवश्यकताओं और उपयोग की स्थितियों की शुद्ध रूप से सक्षमता सुनिश्चित करने के लिए तीसरे पक्ष द्वारा दस्तावेजों की समीक्षा कराना है।

योजना
कार्यान्वयन, परीक्षण और दस्तावेजीकरण
विनिर्देश
औपचारिक पद्धतियां