50 Software Eng Revision
50 Software Eng Revision
General Concepts
1. What is Software Engineering?
• Software engineering is the application of engineering principles to software
development to create reliable, efficient, and maintainable software systems.
2. Why is Software Engineering important?
• It ensures software is developed systematically, with high quality, within budget, and on
time.
3. What are the characteristics of good software?
• Reliability, maintainability, efficiency, usability, portability, and scalability.
4. What is the Software Development Life Cycle (SDLC)?
• A process followed for software development, including planning, analysis, design,
implementation, testing, deployment, and maintenance.
5. What are the different software process models?
• Waterfall, Agile, Spiral, V-Model, and Iterative models.
• Requirements that define what a system should do, such as features and functionality.
20. What is the difference between a programming language and a scripting language?
• Programming languages (e.g., Java, C++) compile to machine code, while scripting
languages (e.g., Python, JavaScript) are interpreted.
Software Testing
21. What is software testing?
• The process of evaluating software to ensure it meets requirements and is free of defects.
• The final testing phase where end-users validate if the software meets business
requirements.
• Testing without knowledge of the internal code structure, focusing only on inputs and
outputs.
• Testing with knowledge of the internal code to examine logic and structure.
29. What is the difference between manual testing and automated testing?
• Manual testing is performed by humans, while automated testing uses software tools.
• The process of ensuring that software meets quality standards and works as expected.
• Managing software changes systematically using version control tools like Git.
• Frequently merging code changes into a shared repository and running automated tests.
• The delivery of computing services (storage, processing, databases) over the internet.
• Packaging software and its dependencies into containers (e.g., Docker) for consistent
deployment.