0% found this document useful (0 votes)
2 views6 pages

GET211 Practice Questions With Answers

The document provides a comprehensive overview of software engineering, covering topics such as definitions, differences between software engineering and programming, software processes, Agile development, software design fundamentals, and ethical considerations. It includes short-answer, conceptual, and application questions with model answers to facilitate understanding of key concepts and practices in software engineering. Additionally, it emphasizes the importance of continuous learning and adaptability in the field.

Uploaded by

yungrichie16
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views6 pages

GET211 Practice Questions With Answers

The document provides a comprehensive overview of software engineering, covering topics such as definitions, differences between software engineering and programming, software processes, Agile development, software design fundamentals, and ethical considerations. It includes short-answer, conceptual, and application questions with model answers to facilitate understanding of key concepts and practices in software engineering. Additionally, it emphasizes the importance of continuous learning and adaptability in the field.

Uploaded by

yungrichie16
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

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.

You might also like