Q.1 Which of the following best defines Software Engineering?
Writing code without planning
Applying engineering principles to software development
Designing hardware components
Testing software only after deployment
Explanation - Software Engineering is the systematic application of engineering approaches to software development to ensure reliability, efficiency, and maintainability.
Correct answer is: Applying engineering principles to software development
Q.2 Which phase of the Software Development Life Cycle (SDLC) involves gathering requirements?
Design
Implementation
Requirements Analysis
Testing
Explanation - The Requirements Analysis phase focuses on understanding what the software must do, gathering functional and non-functional requirements from stakeholders.
Correct answer is: Requirements Analysis
Q.3 Which of the following is NOT a characteristic of good software?
Maintainability
Reusability
Complexity
Reliability
Explanation - Good software should be simple, maintainable, reliable, and reusable. Complexity reduces maintainability and increases errors.
Correct answer is: Complexity
Q.4 What is the main goal of the design phase in SDLC?
To write code for the system
To plan and structure the software
To test the system for bugs
To deploy the system
Explanation - The design phase defines the architecture, components, interfaces, and data for a system to satisfy specified requirements.
Correct answer is: To plan and structure the software
Q.5 Which software development model is also called the linear sequential model?
Waterfall Model
Agile Model
Spiral Model
Iterative Model
Explanation - The Waterfall Model is a linear and sequential approach where each phase must be completed before the next begins.
Correct answer is: Waterfall Model
Q.6 In Agile methodology, software development is done in:
Large monolithic releases
Small iterative cycles
Random order of tasks
Only at the end of project
Explanation - Agile emphasizes incremental development, delivering small, working portions of software in short iterations.
Correct answer is: Small iterative cycles
Q.7 Which of the following is a type of software maintenance?
Corrective
Constructive
Destructive
Distributive
Explanation - Corrective maintenance involves fixing bugs or defects in the software after it has been delivered.
Correct answer is: Corrective
Q.8 What is the main advantage of using CASE tools?
They automate software development tasks
They replace software engineers completely
They reduce hardware costs
They eliminate the need for testing
Explanation - CASE (Computer-Aided Software Engineering) tools support software engineers by automating tasks such as design, coding, and documentation.
Correct answer is: They automate software development tasks
Q.9 Which of the following is a non-functional requirement?
User login feature
System should respond within 2 seconds
Add a search button
Payment processing module
Explanation - Non-functional requirements specify criteria like performance, security, or usability, rather than specific behaviors.
Correct answer is: System should respond within 2 seconds
Q.10 Which diagram is used to represent the flow of control in a system?
Use Case Diagram
Activity Diagram
Class Diagram
Component Diagram
Explanation - Activity diagrams in UML show workflows and control flow from one activity to another, helping understand system behavior.
Correct answer is: Activity Diagram
Q.11 Which is the most important factor in estimating software project cost?
Lines of code
Number of developers
Complexity of requirements
Programming language used
Explanation - Complexity of requirements directly affects effort, time, and cost, making it crucial for accurate project estimation.
Correct answer is: Complexity of requirements
Q.12 What is the primary purpose of software testing?
To add new features
To find and fix defects
To design the software architecture
To write user manuals
Explanation - Software testing is performed to detect errors and ensure the software meets its specified requirements.
Correct answer is: To find and fix defects
Q.13 Which principle emphasizes designing software to be easily changed in the future?
Modularity
Encapsulation
Maintainability
Reusability
Explanation - Maintainability refers to designing software in a way that it can be easily modified to correct faults or improve performance.
Correct answer is: Maintainability
Q.14 Which of the following is a widely used software process model for iterative development?
Waterfall Model
Spiral Model
Big Bang Model
V-Model
Explanation - The Spiral Model combines iterative development with risk analysis, allowing repeated refinement of the software through cycles.
Correct answer is: Spiral Model
Q.15 Which document defines how the software should be tested?
Requirements Specification
Design Document
Test Plan
User Manual
Explanation - A Test Plan describes the objectives, resources, schedules, and activities for testing the software.
Correct answer is: Test Plan
Q.16 Which of the following is a technique for software requirement gathering?
Interviews
Coding
Testing
Compilation
Explanation - Interviews with stakeholders help gather detailed information about system requirements.
Correct answer is: Interviews
Q.17 What does 'software quality assurance' primarily focus on?
Ensuring software is bug-free
Ensuring software meets specified standards
Ensuring fast development
Ensuring maximum code length
Explanation - Software Quality Assurance (SQA) involves processes that ensure the software development and maintenance meet defined quality standards.
Correct answer is: Ensuring software meets specified standards
Q.18 Which UML diagram shows classes and their relationships?
Sequence Diagram
Class Diagram
Activity Diagram
Deployment Diagram
Explanation - Class diagrams represent the structure of a system by showing classes, attributes, operations, and relationships.
Correct answer is: Class Diagram
Q.19 Which of the following is a risk in software projects?
Unclear requirements
Experienced team
Adequate budget
Clear schedule
Explanation - Unclear or changing requirements introduce uncertainty and increase the risk of project delays or failure.
Correct answer is: Unclear requirements
Q.20 In which phase of SDLC is code reviewed and verified against design?
Testing
Implementation
Requirements Analysis
Deployment
Explanation - During the Implementation phase, developers write and review code to ensure it matches design specifications.
Correct answer is: Implementation
Q.21 Which factor is NOT directly part of software project management?
Time
Cost
Quality
Programming language syntax
Explanation - Project management focuses on time, cost, scope, and quality; the syntax of a programming language is a technical detail, not a management factor.
Correct answer is: Programming language syntax
Q.22 Which methodology emphasizes customer collaboration over contract negotiation?
Agile
Waterfall
V-Model
Spiral
Explanation - Agile prioritizes interactions with customers and adapting to changes rather than strictly following pre-defined contracts.
Correct answer is: Agile
Q.23 Which software metric measures how much code can be reused?
Maintainability
Reusability
Complexity
Reliability
Explanation - Reusability measures how components of software can be used in other systems or projects with minimal changes.
Correct answer is: Reusability
Q.24 What is the key difference between functional and non-functional requirements?
Functional defines behavior; non-functional defines quality
Functional is optional; non-functional is mandatory
Functional is for users; non-functional is for developers only
Functional is about design; non-functional is about coding
Explanation - Functional requirements describe what the system should do, while non-functional requirements describe how well the system performs these functions.
Correct answer is: Functional defines behavior; non-functional defines quality
Q.25 Which of the following is an example of software evolution?
Fixing a bug in deployed software
Writing code for a new project
Designing hardware circuits
Installing an operating system
Explanation - Software evolution refers to modifying and updating software after its initial release to correct faults, improve performance, or adapt to new environments.
Correct answer is: Fixing a bug in deployed software
