Function Oriented Design क्या है?

Function Oriented Design
(Function Oriented Design क्या है?)

Function Oriented Design (FOD) एक software design approach है, जिसमें पूरे system को उसके functions के आधार पर design किया जाता है। इसमें system को छोटे-छोटे functions और sub-functions में divide किया जाता है, ताकि हर function एक specific task perform करे।

Key Points

  • पूरा system functions collection के रूप में represent किया जाता है।
  • Design में Top-Down Approach follow किया जाता है |
  • Data Flow Diagram (DFD) इसका मुख्य tool होता है, जो data के flow को दिखाता है।
  • हर function एक specific Input–Process–Output (IPO) relationship follow करता है।
  • यह approach mainly procedural languages (जैसे C, COBOL) में use होती है।
  • Small और medium size systems (जैसे Banking, Railway, Hospital Management) के लिए suitable है।

Characteristics of Function Oriented Design (विशेषताएँ)

  1. Function-Centric Approach : System को objects की जगह functions के रूप में देखा जाता है।
  2. Top-Down Design : पहले main function define किया जाता है, फिर उसे छोटे-छोटे sub-functions में divide किया जाता है।
  3. Stepwise Refinement : Complex problem को simple parts में break किया जाता है।
  4. Data Flow Focus : यह देखा जाता है कि data एक function से दूसरे function में कैसे flow करता है।
  5. Input–Process–Output (IPO) Model : हर function input लेता है, process करता है और output देता है।
  6. Procedural Nature : यह approach procedural programming (जैसे C language) से closely related है।

Tools Used in Function Oriented Design

  1. Data Flow Diagram (DFD)
    • System में data के movement और processing को graphical form में show करता है।
    • इसके main components हैं – Process, Data Flow, Data Store, External Entity।
  2. Structure Chart
    • Functions के hierarchy और उनके relationships को show करता है।
    • यह बताता है कि कौन सा function किस function को call करता है।
  3. Flowchart
    • Step-by-step logic और process flow को diagram के रूप में represent करता है।
  4. Decision Table / Decision Tree
    • Complex decision-making logic को clearly represent करने के लिए use किया जाता है।
  5. Pseudocode
    • Program logic को simple English-like statements में लिखने के लिए, जिससे coding आसान हो जाए।

Steps in Function Oriented Design

  1. System Requirement Analysis
    • सबसे पहले user और organization की requirements को समझा जाता है।
    • यह पता लगाया जाता है, कि system से क्या-क्या काम करवाने हैं।
  2. Identify Major Functions
    • पूरे system के main functions को list किया जाता है।
    • हर function एक बड़ा task represent करता है।
  3. Function Decomposition
    • हर main function को छोटे-छोटे sub-functions में divide किया जाता है।
    • इसे Top-Down Approach भी कहते हैं।
  4. Prepare Data Flow Diagram
    • System के अंदर data कैसे move करता है, यह दिखाने के लिए Data Flow Diagram बनाया जाता है।
    • इससे यह समझ आता है कि data कहाँ से input होता है, किन processes से गुजरता है और कहाँ store होता है।
  5. Develop Structure Chart
    • Functions के बीच hierarchy और calling relationship को दिखाने के लिए Structure Chart बनाया जाता है।
    • यह बताता है कि कौन सा function किस function को call करता है।
  6. Design Detailed Algorithms / Pseudocode
    • हर function के लिए step-by-step logic लिखा जाता है।
    • इसे Pseudocode या Flowchart के रूप में represent किया जाता है।
  7. Modular Implementation
    • हर function को अलग-अलग module के रूप में implement किया जाता है।
    • इससे testing और debugging आसान हो जाती है।
  8. Testing and Integration
    • सभी developed modules को आपस में integrate करके पूरे system का testing किया जाता है।
    • Errors, mismatches और missing functionality को identify करके सुधार किया जाता है।

Advantages of Function Oriented Design (लाभ)

  1. Simple and Easy to Understand
    • System को functions में divide करने से पूरा design आसानी से समझ में आ जाता है।
  2. Top-Down Structured Approach
    • Main function से sub-functions तक जाने से development एक systematic order में होता है।
  3. Better Documentation
    • DFD और Structure Chart की वजह से system का complete flow clearly documented रहता है।
  4. Suitable for Procedural Programming
    • C, COBOL, FORTRAN जैसी procedural languages के लिए यह approach बहुत useful है।
  5. Easy Debugging and Testing
    • हर function अलग module होने से error locate करना आसान होता है।
  6. Cost Effective for Small Systems
    • Small और medium projects में development कम समय और कम cost में पूरा हो जाता है।

Limitations of Function Oriented Design (सीमाएँ)

  1. Poor Data Security
    • Data अक्सर global होता है, जिससे unauthorized access का risk बढ़ जाता है।
  2. Low Reusability
    • Functions को किसी दूसरे project में direct reuse करना मुश्किल होता है।
  3. Tight Coupling
    • एक function में change करने से उससे जुड़े कई functions पर effect पड़ता है।
  4. Not Suitable for Large and Complex Systems
    • Very large systems में यह approach scalability और maintenance problems create करती है।
  5. Difficult Maintenance
    • Time के साथ requirements change होने पर functions को modify करना complex हो जाता है।
  6. No Real-World Mapping
    • Real-world objects और entities को directly represent नहीं कर पाता, जैसा कि Object Oriented Design में possible होता है।

Conclusion (निष्कर्ष)

Function Oriented Design (FOD) एक structured और systematic software design approach है, जिसमें पूरे system को functions और sub-functions के रूप में design किया जाता है। यह Top-Down Approach और Data Flow Diagram (DFD) जैसे tools की मदद से system के data flow और process logic को clearly represent करता है।

यह approach विशेष रूप से procedural programming languages जैसे C और COBOL के लिए suitable है तथा छोटे और मध्यम आकार के systems के लिए cost-effective और आसान solution प्रदान करती है।

हालाँकि, बड़े और complex systems में इसकी limitations जैसे tight coupling, low reusability और difficult maintenance सामने आती हैं। इसलिए modern large-scale applications में Object Oriented Design को अधिक prefer किया जाता है, जबकि structured और smaller systems के लिए FOD आज भी एक effective design methodology है।

Important Questions

Q.1  Function Oriented Design क्या है?

  • Function Oriented Design एक software design approach है, जिसमें पूरे system को उसके functions के आधार पर design किया जाता है। इसमें system को छोटे-छोटे functions और sub-functions में divide किया जाता है, जहाँ हर function एक specific task perform करता है।

Q.2 Function Oriented Design में कौन-कौन से मुख्य tools उपयोग किए जाते हैं?

Function Oriented Design में निम्न tools उपयोग किए जाते हैं :

  • Data Flow Diagram (DFD)

  • Structure Chart

  • Flowchart

  • Decision Table / Decision Tree

  • Pseudocode

Q.3 Function Oriented Design की मुख्य विशेषताएँ क्या हैं?

  • Function-Centric Approach

  • Top-Down Design

  • Stepwise Refinement

  • Data Flow Focus

  • Input–Process–Output (IPO) Model

  • Procedural Nature

Q.4 Function Oriented Design के क्या लाभ हैं?

  • Simple और easy to understand

  • Structured Top-Down development

  • Better documentation (DFD और Structure Chart के माध्यम से)

  • Procedural programming languages के लिए suitable

  • Easy debugging and testing

  • Small systems के लिए cost-effective

Q.5 Function Oriented Design की सीमाएँ क्या हैं?

  • Poor data security

  • Low reusability

  • Tight coupling

  • Large systems के लिए unsuitable

  • Difficult maintenance

  • Real-world objects को directly represent नहीं कर पाता

error: Content is protected !!