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 рдкрд╣рд▓реЗ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
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
- Problem Identification
- Requirement Analysis
- Input Analysis
- Output Analysis
- Algorithm Development
- Flowchart Preparation
- Module Design
- Coding
- Testing
- Documentation
- 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
- Program Design рдХреНрдпрд╛ рд╣реИ?
- Program Design рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрддреА рд╣реИ?
- Top-Down Design рдХреНрдпрд╛ рд╣реИ?
- Bottom-Up Design рдХреНрдпрд╛ рд╣реИ?
- Modular Design рдХреНрдпрд╛ рд╣реИ?
- Structured Programming рдХреНрдпрд╛ рд╣реИ?
- Program Documentation рдХреНрдпрд╛ рд╣реИ?
- Program Testing рдХреЗ рдкреНрд░рдХрд╛рд░ рдмрддрд╛рдЗрдПред
- Program Maintenance рдХреНрдпрд╛ рд╣реИ?
- Good Program Design рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдмрддрд╛рдЗрдПред
Exam Oriented Important Questions
- Program Design рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдПрд╡рдВ рдЙрджреНрджреЗрд╢реНрдп рд▓рд┐рдЦрд┐рдПред
- Program Design Process рд╕рдордЭрд╛рдЗрдПред
- Top-Down рдПрд╡рдВ Bottom-Up Design рдореЗрдВ рдЕрдВрддрд░ рд▓рд┐рдЦрд┐рдПред
- Modular Program Design рд╕рдордЭрд╛рдЗрдПред
- Structured Program Design рдкрд░ рдЯрд┐рдкреНрдкрдгреА рд▓рд┐рдЦрд┐рдПред
- Program Testing рддрдерд╛ Maintenance рд╕рдордЭрд╛рдЗрдПред
- Good Program Design рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд▓рд┐рдЦрд┐рдПред
- 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 тЖТ