- Asked 2/20
- 2073 Chaitra · 4+4 marks
- 2071 Shrawan · 3+5 marks
Good programming practice and software selection
Short answer
Good programming practice includes planning, modular design, structured code, clear naming, defensive programming, and reviews/version control. A reliable software supplier is chosen based on reputation, quality standards, support, documentation, financial stability, compatibility, total cost, and trial.
Explain the approach for good programming practice. What are the basic criteria for selecting a company for purchasing reliable software?
Approach for good programming practice
- Plan before coding: understand the requirements and make a design (flowchart, pseudocode, state diagram) first.
- Modular, top-down design: divide the program into small functions/modules, each doing one job (high cohesion, low coupling), with clear interfaces.
- Structured programming: use sequence, selection and iteration; avoid goto and global variables; one entry and one exit per function.
- Meaningful names and consistent style: descriptive names for variables and functions, consistent indentation and a coding standard.
- Comments and documentation: a header per module (purpose, inputs, outputs, author, version) and comments explaining why, not what.
- Defensive programming: check inputs and return values, handle errors and boundary cases, initialise variables, use watchdog timers in embedded code.
- Reuse and portability: use tested library routines; keep hardware-dependent code separate; use constants instead of "magic numbers".
- Reviews and testing: code inspection/walkthroughs, unit testing, and version control (Git).
- Keep it simple; optimise only after measurement.
Criteria for selecting a software supplier (company)
- Reputation and track record: years in business, references, number of similar installations, customer feedback.
- Quality of the product: the company follows recognised process standards (ISO 9001, CMMI), has a testing and bug-tracking procedure, and published reliability or defect data.
- Support and maintenance: helpdesk, updates and patches, response time, warranty, and long-term support.
- Documentation and training: manuals, user training and source-code access/escrow.
- Financial stability of the company, so that it will exist to support the product.
- Compatibility and security: works with the existing hardware, OS and standards; security practices and licence terms.
- Cost: total cost of ownership (licence, installation, training, upgrades), not just the price.
- Trial/evaluation: demonstration or trial version and an acceptance test.
✓ Answer checked by Claude Sonnet 5.5
Related questions
- Selection criteria for ADC · Instrumentation II, chapter 4 · asked 3×
- Software selection and purchase · Instrumentation II, chapter 9
- Software maintenance and fixing common bugs · Instrumentation II, chapter 9
- Basic concepts of modular programming · Software Engineering, chapter 3
- Ownership and structure for software company · Organization and Management, chapter 4
- Proposal to start a software company · Communication English, chapter 6
- Features for selecting simulation software · Simulation and Modeling, chapter 9