Program Design Notes | Basic Computer Engineering | RGPV BTech First Year

Program Design Notes | Basic Computer Engineering | RGPV BTech First Year


Program Design

Program Design Software Development Process рдХрд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд░рдг рд╣реИред рдХрд┐рд╕реА рднреА Program рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕рдХреЗ Logic, Structure рддрдерд╛ Execution Process рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ Program рдХрд╛ Design рд╕рд╣реА рд╣реЛрдЧрд╛ рддреЛ Coding рдЖрд╕рд╛рди рд╣реЛрдЧреА, Errors рдХрдо рд╣реЛрдВрдЧреЗ рддрдерд╛ Program рдЕрдзрд┐рдХ Efficient рд╣реЛрдЧрд╛ред

Program Design рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп Problem рдХреЛ рдЫреЛрдЯреЗ-рдЫреЛрдЯреЗ Logical Parts рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ рдРрд╕рд╛ Solution рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕реЗ Programmer рдЖрд╕рд╛рдиреА рд╕реЗ Code рдореЗрдВ рдмрджрд▓ рд╕рдХреЗред


Introduction

Programming рдХреЗрд╡рд▓ Code рд▓рд┐рдЦрдиреЗ рдХрд╛ рдирд╛рдо рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рднреА Software рдпрд╛ Application рдХреЗ Development рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕рдХреА Planning рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕ Planning Process рдХреЛ Program Design рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

Program Design рдХреЗ рджреМрд░рд╛рди Problem рдХреЛ Analyze рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, Input рддрдерд╛ Output рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, Algorithm рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, Flowchart рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдерд╛ Modules рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдЕрдЪреНрдЫрд╛ Program Design Program рдХреА Quality, Maintainability рддрдерд╛ Performance рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИред


Definition of Program Design

Program Design рд╡рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА Problem рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП Program рдХреА Structure, Logic рддрдерд╛ Execution Steps рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред

Program Design = Planning + Logic + Algorithm + Structure

Objectives of Program Design

  • Problem рдХрд╛ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рддреИрдпрд╛рд░ рдХрд░рдирд╛ред
  • Program Logic рдХреЛ рд╕реНрдкрд╖реНрдЯ рдмрдирд╛рдирд╛ред
  • Error Free Program рддреИрдпрд╛рд░ рдХрд░рдирд╛ред
  • Easy Maintenance рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ред
  • Reusable Program Components рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ред
  • Development Time рдХрдо рдХрд░рдирд╛ред
  • Testing рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ред
  • Documentation рдмреЗрд╣рддрд░ рдмрдирд╛рдирд╛ред

Need of Program Design

рдпрджрд┐ рдмрд┐рдирд╛ Planning рдХреЗ Program рд▓рд┐рдЦрд╛ рдЬрд╛рдП рддреЛ Program рдореЗрдВ Errors рдЕрдзрд┐рдХ рд╣реЛрддреЗ рд╣реИрдВ, Debugging рдХрдард┐рди рд╣реЛрддреА рд╣реИ рддрдерд╛ Future Modifications рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

Program Design Developer рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ Program рдХрд╛ рдкреВрд░рд╛ Blueprint рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ Development Process рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░рд╣рддреА рд╣реИред


Program Design Process

  1. Problem Identification
  2. Requirement Analysis
  3. Input Analysis
  4. Output Analysis
  5. Algorithm Development
  6. Flowchart Preparation
  7. Module Design
  8. Coding
  9. Testing
  10. Documentation
  11. Maintenance

Steps of Program Design

1. Problem Identification

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕ Problem рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП Program рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

2. Requirement Analysis

User рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрдерд╛ Functional рддрдерд╛ Non-Functional Requirements рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред

3. Input Analysis

Program рдореЗрдВ рдЙрдкрдпреЛрдЧ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА Input Data рдХреА рдкрд╣рдЪрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред

4. Output Analysis

Program рджреНрд╡рд╛рд░рд╛ Generate рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА Outputs рдХреЛ Define рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

5. Algorithm Design

Problem рдХреЗ Solution рдХреЛ Step-by-Step Algorithm рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

6. Flowchart Design

Algorithm рдХреЛ Graphical Representation рдореЗрдВ рдмрджрд▓рдХрд░ Flowchart рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


Characteristics of Good Program Design

Characteristic Description
Simplicity Program рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭ рдЖрдиреЗ рдпреЛрдЧреНрдп рд╣реЛред
Reliability Correct Output рдкреНрд░рджрд╛рди рдХрд░реЗред
Efficiency рдХрдо Time рддрдерд╛ Memory рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗред
Maintainability Future Changes рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рдП рдЬрд╛ рд╕рдХреЗрдВред
Modularity Program рдЫреЛрдЯреЗ Modules рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛред
Portability рд╡рд┐рднрд┐рдиреНрди Platforms рдкрд░ Execute рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

Program Design Approaches

Top-Down Design

рдЗрд╕ Approach рдореЗрдВ рдмрдбрд╝реА Problem рдХреЛ рдЫреЛрдЯреЗ-рдЫреЛрдЯреЗ Modules рдореЗрдВ Divide рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ Module рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Bottom-Up Design

рдЗрд╕ Approach рдореЗрдВ рдЫреЛрдЯреЗ Modules рдкрд╣рд▓реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рддрдерд╛ рдмрд╛рдж рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдХрд░ рдкреВрд░рд╛ Program рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Approach Description
Top-Down Large Problem рд╕реЗ Small Modules рдХреА рдУрд░
Bottom-Up Small Modules рд╕реЗ Complete Program рдХреА рдУрд░

Modular Program Design

Modular Program Design рдореЗрдВ рдкреВрд░реЗ Program рдХреЛ рдХрдИ рдЫреЛрдЯреЗ-рдЫреЛрдЯреЗ Modules рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ Module рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ Program рдХреЛ Develop рдХрд░рдирд╛, Test рдХрд░рдирд╛ рддрдерд╛ Maintain рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

Advantages of Modular Design

  • Code Reusability рдмрдврд╝рддреА рд╣реИред
  • Testing рдЖрд╕рд╛рди рд╣реЛрддреА рд╣реИред
  • Maintenance рд╕рд░рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
  • Development Time рдХрдо рд╣реЛрддрд╛ рд╣реИред
  • Debugging рдЖрд╕рд╛рди рд╣реЛрддреА рд╣реИред
  • Large Projects рдХреЛ Manage рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред

Structured Program Design

Structured Program Design рдПрдХ рдРрд╕реА Technique рд╣реИ рдЬрд┐рд╕рдореЗрдВ Program рдХреЛ Logical Blocks рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рддреАрди рдкреНрд░рдХрд╛рд░ рдХреА Control Structures рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  • Sequence
  • Selection
  • Iteration
Structure Purpose
Sequence Instructions рдХреНрд░рдорд╡рд╛рд░ Execute рд╣реЛрддреА рд╣реИрдВред
Selection Decision рд▓реЗрдирд╛ред
Iteration Repeated Executionред

Program Documentation

Program Documentation рд╡рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ Program рдХреЗ рдЙрджреНрджреЗрд╢реНрдп, Logic, Algorithm, Variables рддрдерд╛ Functions рдХреА рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦрд┐рдд рд░реВрдк рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦреА рдЬрд╛рддреА рд╣реИ рддрд╛рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ Program рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХреЗред

Types of Documentation

  • Internal Documentation
  • External Documentation
  • User Documentation
  • Technical Documentation

Program Testing

Program рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ Program рд╕рд╣реА рдкреНрд░рдХрд╛рд░ рд╕реЗ рдХрд╛рд░реНрдп рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ Testing рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

Testing Type Purpose
Unit Testing Single Module Testing
Integration Testing Modules рдХреЛ Combine рдХрд░рдХреЗ Testing
System Testing Complete Software Testing
Acceptance Testing User рджреНрд╡рд╛рд░рд╛ Final Testing

Program Maintenance

Software Release рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рд╕рдордп-рд╕рдордп рдкрд░ рдЙрд╕рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдирд╛, Errors рд╣рдЯрд╛рдирд╛ рддрдерд╛ рдирдП Features рдЬреЛрдбрд╝рдирд╛ Program Maintenance рдХрд╣рд▓рд╛рддрд╛ рд╣реИред

  • Corrective Maintenance
  • Adaptive Maintenance
  • Perfective Maintenance
  • Preventive Maintenance

Advantages of Good Program Design

  • Program рдЕрдзрд┐рдХ Reliable рдмрдирддрд╛ рд╣реИред
  • Development Time рдХрдо рд╣реЛрддрд╛ рд╣реИред
  • Maintenance рдЖрд╕рд╛рди рд╣реЛрддреА рд╣реИред
  • Errors рдХрдо рд╣реЛрддреЗ рд╣реИрдВред
  • Code Reusability рдмрдврд╝рддреА рд╣реИред
  • Testing рд╕рд░рд▓ рд╣реЛрддреА рд╣реИред
  • Documentation рдмреЗрд╣рддрд░ рд╣реЛрддреА рд╣реИред
  • Team Development рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред

Limitations

  • Planning рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред
  • Complex Systems рдореЗрдВ Design рдХрдард┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • Large Documentation рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
  • Initial Development Cost рдмрдврд╝ рд╕рдХрддреА рд╣реИред

Applications of Program Design

  • Software Engineering
  • Mobile Application Development
  • Web Development
  • Operating System Development
  • Embedded Systems
  • Artificial Intelligence
  • Machine Learning
  • Cloud Computing
  • Banking Software
  • Hospital Management Systems
  • ERP Systems
  • E-Commerce Applications

Industrial Importance

Professional Software Development рдореЗрдВ Program Design рдХрд╛ рдЕрддреНрдпрдзрд┐рдХ рдорд╣рддреНрд╡ рд╣реИред Microsoft, Google, Amazon, Oracle, IBM рддрдерд╛ рдЕрдиреНрдп Software Companies рдХрд┐рд╕реА рднреА Project рдХреА Coding рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕рдХрд╛ Detailed Design рддреИрдпрд╛рд░ рдХрд░рддреА рд╣реИрдВред рдЗрд╕рд╕реЗ Development рддреЗрдЬ рд╣реЛрддрд╛ рд╣реИ рддрдерд╛ Software Quality рдмреЗрд╣рддрд░ рд░рд╣рддреА рд╣реИред


Viva Questions

  1. Program Design рдХреНрдпрд╛ рд╣реИ?
  2. Program Design рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрддреА рд╣реИ?
  3. Top-Down Design рдХреНрдпрд╛ рд╣реИ?
  4. Bottom-Up Design рдХреНрдпрд╛ рд╣реИ?
  5. Modular Design рдХреНрдпрд╛ рд╣реИ?
  6. Structured Programming рдХреНрдпрд╛ рд╣реИ?
  7. Program Documentation рдХреНрдпрд╛ рд╣реИ?
  8. Program Testing рдХреЗ рдкреНрд░рдХрд╛рд░ рдмрддрд╛рдЗрдПред
  9. Program Maintenance рдХреНрдпрд╛ рд╣реИ?
  10. Good Program Design рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдмрддрд╛рдЗрдПред

Exam Oriented Important Questions

  1. Program Design рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдПрд╡рдВ рдЙрджреНрджреЗрд╢реНрдп рд▓рд┐рдЦрд┐рдПред
  2. Program Design Process рд╕рдордЭрд╛рдЗрдПред
  3. Top-Down рдПрд╡рдВ Bottom-Up Design рдореЗрдВ рдЕрдВрддрд░ рд▓рд┐рдЦрд┐рдПред
  4. Modular Program Design рд╕рдордЭрд╛рдЗрдПред
  5. Structured Program Design рдкрд░ рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦрд┐рдПред
  6. Program Testing рддрдерд╛ Maintenance рд╕рдордЭрд╛рдЗрдПред
  7. Good Program Design рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд▓рд┐рдЦрд┐рдПред
  8. Program Documentation рдХреНрдпрд╛ рд╣реИ? рд╕рдордЭрд╛рдЗрдПред

Conclusion

Program Design рдХрд┐рд╕реА рднреА рд╕рдлрд▓ Software Development Project рдХреА рдиреАрдВрд╡ рд╣реИред рдПрдХ рдЕрдЪреНрдЫреА Design Program рдХреЛ рдЕрдзрд┐рдХ Efficient, Reliable, Reusable рддрдерд╛ Maintainable рдмрдирд╛рддреА рд╣реИред Engineering Students рдХреЗ рд▓рд┐рдП Program Design рдХрд╛ рдЕрдзреНрдпрдпрди рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣реА рдЖрдЧреЗ рдЪрд▓рдХрд░ Data Structures, Object Oriented Programming, Software Engineering рддрдерд╛ Large Scale Software Development рдХреА рдЖрдзрд╛рд░рд╢рд┐рд▓рд╛ рдмрдирддрд╛ рд╣реИред

Related Articles

Manipulators in C++ Notes | endl, setw, setprecision, setfill | Basic Computer Engineering | RGPV BTech First Year

0...

Read More тЖТ

Type Conversion in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Type Co...

Read More тЖТ

Assignment Operator in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Assignm...

Read More тЖТ

Copy Constructor in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

Copy Co...

Read More тЖТ

this Pointer in C++ Notes | Basic Computer Engineering | RGPV BTech First Year

this Po...

Read More тЖТ