GET 211 – SOFTWARE ENGINEERING
Practice Questions with Model Answers
TOPIC 1: SOFTWARE ENGINEERING AS AN ENGINEERING DISCIPLINE
Short-Answer Questions
1. Define software engineering.
Answer: Software engineering is the disciplined application of engineering principles to the
development and maintenance of software systems.
2. State two differences between programming and software engineering.
Answer: Programming focuses on writing code, while software engineering includes requirements
analysis, design, testing, and maintenance.
3. Why does most software cost occur after deployment?
Answer: Software evolves, requiring updates, adaptation, and defect correction.
Conceptual Questions
1. Explain why software is considered an informational product rather than a physical product.
Answer: Software is intangible, and its defects arise from design rather than manufacturing
processes.
2. Discuss how engineering constraints influence software design decisions.
Answer: Constraints such as cost, time, and security force engineers to balance competing system
qualities.
Application Question
A Nigerian polytechnic wants to build an online hostel allocation system. Identify three software
engineering considerations beyond coding.
Answer: Scalability to support many students; data integrity for allocation records; security to prevent
unauthorised access.
TOPIC 2: SOFTWARE SYSTEMS AND ENGINEERING CONTEXT
Short-Answer Questions
1. Define a software system.
Answer: A software system is a collection of interacting components working together to achieve a
purpose.
2. What is a socio-technical system?
Answer: A socio-technical system combines technical components with human and organisational
factors.
3. Mention two types of interfaces in software systems.
Answer: Software–hardware interface and human–computer interface.
Conceptual Questions
1. Explain why correct software logic does not guarantee system success.
Answer: Failures may arise from interface issues, environmental constraints, or user
misunderstandings.
2. Discuss the role of human behaviour in software system reliability.
Answer: Human errors can introduce unexpected inputs and misuse that compromise reliability.
Application Question
A hospital appointment system frequently experiences missed bookings despite correct
scheduling logic. Suggest possible contextual causes.
Answer: User interface confusion; network connectivity problems; staff misunderstanding of
procedures.
TOPIC 3: SOFTWARE PROCESSES AND LIFECYCLE MODELS
Short-Answer Questions
1. Define software process.
Answer: A structured set of development activities, roles, and artefacts that guide how software is
developed and maintained.
2. List two phases of the SDLC.
Answer: Planning and testing (also: requirements analysis, design, implementation, deployment,
maintenance).
3. State one advantage of iterative development.
Answer: Early feedback is obtained, allowing requirements to be refined as understanding improves.
Conceptual Questions
1. Explain lifecycle thinking in software engineering.
Answer: Early decisions influence long-term cost and quality; maintenance often dominates total
project effort throughout a system's lifespan.
2. Compare Waterfall and Agile approaches.
Answer: Waterfall is sequential and requires stable requirements, while Agile is adaptive, iterative,
and suitable for evolving requirements.
Application Question
A startup developing a ride-hailing platform expects changing requirements. Which process is
most suitable and why?
Answer: Agile, because requirements evolve and rapid feedback is needed to respond to changes
efficiently.
TOPIC 4: AGILE DEVELOPMENT PHILOSOPHY
Short-Answer Questions
1. Define Agile.
Answer: Agile is iterative, adaptive software development that emphasises collaboration, flexibility,
and continuous delivery of working software.
2. State one Agile principle.
Answer: Customer collaboration over contract negotiation (or: responding to change over following a
plan).
Conceptual Question
Why is continuous testing important in Agile?
Answer: Continuous testing enables early defect detection, ensuring quality is maintained across
every iteration rather than discovered only at the end.
Application Question
Suggest a project suitable for Agile.
Answer: A mobile banking application, because user needs evolve frequently and rapid, incremental
releases enable ongoing feedback and improvement.
TOPIC 5: PROTOTYPING MODEL
Short-Answer Questions
1. Define prototype.
Answer: A prototype is an incomplete, quickly developed system created for learning and
requirement clarification rather than deployment.
2. Mention one type of prototyping.
Answer: Throwaway prototyping, where the prototype is evaluated and discarded; lessons learned
guide the final design.
3. State one benefit of prototyping.
Answer: It improves requirement clarity by allowing stakeholders to visualise functionality before full
implementation.
Conceptual Question
Why should prototypes not be treated as final systems?
Answer: Prototypes may lack security, optimisation, robustness, and architectural integrity required
for production deployment.
Application Question
Suggest a scenario where prototyping is appropriate.
Answer: Designing a student registration interface, where a prototype helps lecturers and
administrators visualise workflows before full development.
TOPIC 6: SOFTWARE DESIGN FUNDAMENTALS
Short-Answer Questions
1. Define software design.
Answer: Software design is the activity of defining system structure, component responsibilities, and
interactions to satisfy specified requirements.
2. What is modularity?
Answer: Modularity divides a system into self-contained units called modules, each performing a
specific function and communicating through well-defined interfaces.
3. Distinguish between high-level and low-level design.
Answer: High-level design defines the overall system structure and major subsystems, while low-
level design specifies algorithms, data structures, and internal module logic.
Conceptual Questions
1. Explain why functional correctness alone is insufficient for good design.
Answer: Systems may function correctly yet be difficult to maintain, scale, or test if poorly structured;
quality encompasses reliability, usability, and maintainability as well.
2. Discuss the relationship between cohesion and coupling.
Answer: High cohesion means modules focus on a single purpose, while low coupling means
modules depend minimally on each other; together they improve clarity, testability, and maintenance
quality.
Application Question
Design a modular structure for an online food delivery platform operating in Lagos.
Answer: Separate modules for: ordering interface (user interaction); payment processing (transaction
management); delivery coordination (driver assignment and tracking); and database management
(storing orders, users, and records).
TOPIC 7: SOFTWARE ARCHITECTURE
Short-Answer Questions
1. Define software architecture.
Answer: Software architecture is the system-wide structure describing major subsystems, their
responsibilities, and interactions, forming the blueprint for development.
2. List one architectural style.
Answer: Layered architecture, which divides a system into hierarchical layers such as presentation,
logic, and data.
Conceptual Question
Why are architectural decisions difficult to change?
Answer: Architectural decisions affect the entire system structure; changing them later requires
extensive rework and risks introducing new failures across multiple components.
Application Question
Suggest an architecture for an online voting system.
Answer: A client–server architecture with layered components to ensure security, scalability, and
clear separation of user interface, voting logic, and data storage.
TOPIC 8: SOFTWARE IMPLEMENTATION AS AN ENGINEERING ACTIVITY
Short-Answer Questions
1. Define software implementation.
Answer: Software implementation is the engineering activity of translating design into working,
maintainable code while preserving design structure and integrity.
2. State one benefit of readable code.
Answer: Readable code reduces maintenance errors and costs because future developers can
understand and modify it more easily.
Conceptual Question
Why is version control essential in teamwork?
Answer: Version control manages collaborative changes, tracks history, prevents conflicts, and
allows teams to recover previous versions, ensuring coordination and code quality.
Application Question
Describe debugging steps for a faulty payment transaction.
Answer: Observe the error symptom; isolate the faulty module (e.g., payment gateway); identify the
root cause; apply a correction; and verify the fix through retesting.
TOPIC 9: SOFTWARE TESTING AND QUALITY ASSURANCE
Short-Answer Questions
1. Define software testing.
Answer: Software testing is a systematic activity that verifies whether a system behaves as intended
and satisfies specified requirements.
2. Distinguish between defect and failure.
Answer: A defect is a flaw in design or code, while a failure occurs when the system exhibits
incorrect behaviour during execution.
3. Mention one testing level.
Answer: Unit testing, which verifies individual modules or functions in isolation.
Conceptual Questions
1. Why is testing required even if the code compiles successfully?
Answer: Compilation only confirms syntactic correctness; testing is necessary to verify logical
correctness and detect defects that may only appear under specific inputs or conditions.
2. Explain the importance of test cases.
Answer: Test cases provide systematic verification by specifying inputs, expected outputs, and
conditions, enabling consistent detection of deviations from requirements.
Application Question
Suggest testing strategies for a mobile airtime recharge application.
Answer: Unit tests for recharge calculation logic; integration tests for payment gateway interaction;
and system tests for overall user experience and load handling.
TOPIC 10: SOFTWARE MAINTENANCE AND EVOLUTION
Short-Answer Questions
1. Define maintenance.
Answer: Software maintenance involves modifying deployed systems to correct defects, adapt to
new environments, or enhance functionality.
2. List one type of maintenance.
Answer: Corrective maintenance, which involves fixing defects and failures discovered after
deployment.
Conceptual Question
Explain technical debt.
Answer: Technical debt refers to shortcuts taken during development that reduce immediate effort
but increase future maintenance difficulty, gradually degrading system quality if left unmanaged.
Application Question
Suggest maintenance needs for a digital library system.
Answer: Corrective: fixing search bugs; adaptive: adjusting the system to support new document
formats; perfective: improving the user interface based on feedback.
TOPIC 11: HUMAN, ETHICAL, AND PROFESSIONAL ISSUES
Short-Answer Questions
1. Define professional ethics.
Answer: Professional ethics involves responsible conduct, including honesty, avoidance of
negligence, and prioritisation of public interest in engineering work.
2. Mention one ethical responsibility.
Answer: Protecting user data through secure storage and responsible data handling.
Conceptual Question
Why is usability an ethical concern?
Answer: Poor usability may cause harm by preventing users from completing critical tasks
accurately, which is particularly serious in healthcare, finance, or public service systems.
Application Question
Suggest ethical considerations for a student data management system.
Answer: Privacy protection for student records; data accuracy to prevent incorrect outcomes; and
secure access control to restrict unauthorised use.
TOPIC 12: CASE STUDIES AND SOFTWARE ENGINEERING IN THE REAL
WORLD
Short-Answer Questions
1. Define a software engineering case study.
Answer: A case study examines real software systems to connect theoretical concepts with practical
cause-and-effect relationships in real-world engineering contexts.
2. State one difference between student programming and professional software engineering.
Answer: Professional software engineering emphasises reliability, scalability, and maintainability
beyond functional correctness.
Conceptual Questions
1. Why do many software systems fail despite technically correct code?
Answer: Many systems fail due to weak processes, poor requirements definition, and inadequate
testing rather than coding errors alone.
2. Explain why lifelong learning is necessary in software engineering.
Answer: Technologies, methodologies, and system requirements continuously evolve; engineers
must update their skills throughout their careers to remain effective.
Application Questions
1. Identify lessons from a failed online registration system.
Answer: Lessons include the need for scalability planning to handle peak loads, robust performance
testing, and architectural foresight to anticipate growth.
2. Outline skills needed for a career in large-scale software development.
Answer: Essential skills include teamwork, design thinking, testing competence, architectural
awareness, and effective communication across technical and non-technical stakeholders.