0% found this document useful (0 votes)
16 views16 pages

GET - 211 (Computer Software & Engineering) Practice Q&A.

The document provides a comprehensive overview of software engineering fundamentals, including definitions, principles, lifecycle phases, process models, and metrics. It emphasizes the importance of software requirements, design, quality attributes, and testing techniques in the development process. Additionally, it discusses the evolution of software engineering and the relationship between software engineering concepts and the computing discipline.

Uploaded by

ogbondagospel12
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)
16 views16 pages

GET - 211 (Computer Software & Engineering) Practice Q&A.

The document provides a comprehensive overview of software engineering fundamentals, including definitions, principles, lifecycle phases, process models, and metrics. It emphasizes the importance of software requirements, design, quality attributes, and testing techniques in the development process. Additionally, it discusses the evolution of software engineering and the relationship between software engineering concepts and the computing discipline.

Uploaded by

ogbondagospel12
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

Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

REVISE THIS FOR YOUR EXAM

Section A: Software Engineering Fundamentals (8 questions)


1. Define software engineering and explain why it is considered a computing discipline.
How does it differ from traditional programming?
Answer :
 Definition: Software Engineering is the systematic application of engineering principles, methods, and
tools to the design, development, testing, deployment, and maintenance of high-quality software
systems. It involves a disciplined approach to building software that is reliable, efficient, scalable, and
maintainable.
 Why it is a Computing Discipline: It is considered a computing discipline because it is deeply rooted
in Computer Science theory (algorithms, data structures) but focuses on the practical challenges of
building large-scale systems. It bridges the gap between theoretical computation and real-world
application by addressing issues of cost, schedule, reliability, and safety.
Difference from Traditional Programming:
● Scope: Traditional programming primarily focuses on writing code to solve a specific problem
(often by an individual). While Software Engineering focuses on the entire lifecycle of a system
(requirements, design, testing, maintenance) usually involving teams.
● Scale: Programming often deals with small scripts or single modules; Software Engineering deals with
complex architectures and integration of many modules.
● Outcome: A programmer focuses on a "working program." A software engineer focuses on a "software
product" that is documented, maintainable, and meets the user's long-term needs.
2. Discuss the key principles of software engineering. Why are these principles
important in modern software development?
Answer :
Key Principles:
1. Modularity: Breaking a complex system into smaller, manageable, and independent units (modules)
to reduce complexity. This allows teams to work on different parts simultaneously and makes the
system easier to debug.
2. Abstraction: Hiding complex implementation details behind simple interfaces and exposing only the
necessary features to the user or other parts of the system.
3. Anticipation of Change: Designing software with the expectation that requirements, technologies,
and users will change over time.
4. Separation of Concerns: Ensuring that different distinct sections of the software address different
issues (e.g., separating user interface logic from business logic).
 Importance in Modern Development: These principles are crucial because modern software is
incredibly complex. They allow teams to work in parallel without interference, make code easier to
test and debug, facilitate code reuse, and make the system easier to maintain and scale over time .
3. Explain the concept of software lifecycle. What are the main phases in a typical
software lifecycle?
Answer :
PAGE |1. Holy-Dave Studios @ 2026.
Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

The Software Development Life Cycle (SDLC) is a structured framework that describes the stages involved in
software development. It provides a roadmap for improving the quality of software and the overall
development process

Main Phases:
1. Planning/Requirements-Analysis: Gathering and
defining what the software needs to do.
2. Design: Creating the architecture and detailed design of
the system.
3. Implementation (Coding): Translating the design to
actual source code based on the design.
4. Testing: Verifying that the software works as intended
and is free of bugs.
5. Deployment: Releasing the software to the target
environment for users.
6. Maintenance: Updating, adding features and fixing the
software after release.

4. Compare and contrast at least three software process models (e.g., Waterfall, Agile,
Spiral). Discuss the advantages and disadvantages of each.
Answer :

Model Core Concept Advantages Disadvantages

Linear and sequential; each Simple to manage; clear Rigid; hard to change
Waterfall phase must finish before milestones; disciplined requirements later; user doesn't
the next begins. approach. see software until the end.

Iterative and incremental; Highly flexible; fast Hard to predict final


Agile focuses on small, frequent feedback; promotes high costs/timelines; requires highly
releases. customer satisfaction. skilled, collaborative teams.

Risk-driven; combines Excellent for high-risk or Can be expensive; requires


Spiral iterative development with complex projects; flexible; specialized expertise in risk
systematic risk analysis. robust risk management. assessment.

5. What are process assessment models? Explain how they are used to evaluate
software development processes.
Answer :
Process Assessment Models are frameworks used to evaluate the maturity and capability of an
organization's software development processes. They provide a standard against which an
organization's practices can be measured.

PAGE |2. Holy-Dave Studios @ 2026.


Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

 How they are used: They are used to diagnose strengths and weaknesses in current processes by
assessing an organization against a model (like CMMI - Capability Maturity Model Integration),
auditors can assign a "maturity level" (e.g., Level 1: Initial to Level 5: Optimizing). This helps
organizations identify areas for improvement and assures clients of the organization's ability to
deliver quality software.
6. Define software process metrics. Provide examples of at least four important metrics
used to measure software development performance.
Answer :
Software process metrics are quantitative measures used to track the efficiency and quality of the
development process. They help in management and decision-making.
Examples of Important Metrics:
 Velocity: The amount of work (usually in story points) a team completes in a single sprint.
 Cycle Time: The total time taken from the start of a task until it is completed and delivered.
 Defect Density: The number of confirmed bugs found in the software relative to its size (e.g., bugs
per 1,000 lines of code).
 Mean Time to Recovery (MTTR): The average time it takes to recover from a product or system
failure.
 Code Coverage: The percentage of the source code that is executed during automated testing.
7. Explain the life cycle of a software system from conception to retirement. What
activities occur in each phase?
Answer :
 Conception: Identifying a business need or a problem to solve. Feasibility studies occur here.
 Requirements & Design: Detailed planning of "what" and "how."
 Construction: The actual building (coding and unit testing) of the system.
 System Testing & Integration: Ensuring all pieces work together and meet the original requirements.
 Deployment & Operation: The software is "live" and being used by the customer.
 Maintenance & Evolution: The longest phase; includes bug fixes and adapting to new needs.
 Migration: Moving data or functionality to a new platform if the current environment changes .
 Retirement (Decommissioning): The software is phased out, data is migrated, and the system is shut
down because it is obsolete or replaced.
8. What is the relationship between software engineering concepts and the computing
discipline? How has software engineering evolved as a field?
Answer :
 Relationship: Software Engineering is a sub-discipline of computing that intersects with Computer
Science (algorithms, theory), Computer Engineering (hardware-software interaction), and
Management Science (project management). It relies on the theoretical foundations of Computer
Science to solve practical engineering problems.
Evolution of the Field:
● 1960s (The Software Crisis): The term was coined to address the chaotic nature of early
programming, where projects were consistently over budget and late.

PAGE |3. Holy-Dave Studios @ 2026.


Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

● 1970s-80s (Structured Programming): Introduction of formal methodologies like Waterfall and


structured programming languages (C, Pascal) to bring order.
● 1990s (Object-Oriented): Shift toward Object-Oriented Programming (OOP) to handle increasing
complexity and promote reuse.
● 2000s-Present (Agile & DevOps): Move toward lightweight, iterative methodologies (Agile) and the
integration of development and operations (DevOps) for continuous delivery and rapid adaptation to
market needs.
Section B: Software Requirements and Design (9 questions)
9. What are software requirements? Distinguish between functional and non-
functional requirements with examples.
Answer :
Software Requirements: These are the detailed descriptions of what the system needs to do and the
constraints under which it must operate. They act as an agreement between the client and the
developers
Difference:
● Functional Requirements: Define what the system must do (features and functions). Example: "The
system must allow a user to reset their password via email."
● Non-Functional Requirements: Define how the system performs (quality attributes). Example: "The
password reset email must be sent within 5 seconds.".
10. Explain the importance of software specifications. What are the
characteristics of good software specifications?
Answer :
Software Specifications are the bridge between user requirements and the technical deign. They are
formal document describing what the software should do.
Characteristics of Good Specifications:
 Clear (Unambiguous): Can only be interpreted in one way.
 Complete: Includes all necessary features and constraints.
 Consistent: Does not contradict itself.
 Testable: Written in a way that can be verified (e.g., "fast" is bad; "loads in 2 seconds" is good).
11. Describe at least three techniques for gathering software requirements from
stakeholders.
Answer :
1. Interviews: One-on-one meetings with stakeholders to ask specific questions and understand their
visions deeply.
2. Surveys / Questionnaires: Distributing a set of written questions to a large group of users to gather
statistical data and broad opinions.
3. Prototyping: Building a quick, functional “mock” version of the software to show stakeholders and get
immediate feedback.
4. JAD (Joint Application Development): A workshop involving users, managers, and developers to
resolve requirements quickly.

PAGE |4. Holy-Dave Studios @ 2026.


Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

12. What is software design? Explain the difference between high-level design
and low-level design.
Answer :
Software design is the process of planning and structuring a software system before it is built. It
translates requirements and specifications into a blueprint that developers can follow to implement the
system efficiently and correctly.
Difference:
 High-Level Design (System Design): Focuses on the overall system architecture, including the
database structure, external interfaces, and the main modules.
 Low-Level Design (Detailed Design): Focuses on the internal logic of each module, including
specific algorithms, data structures, and class diagrams.
13. Define software architecture and explain its importance in software
development. Provide examples of common architectural patterns.
Answer :
Software architecture is the fundamental structure of a software system. It defines the software's high-
level components and how they interact with each other.
Importance: It is critical because it determines the system's performance, security, and scalability.
Common Patterns:
● Client-Server: Separates the system into a provider of resources (server) and a requester (client).
● MVC (Model-View-Controller): Separates the data (Model), the user interface (View), and the logic
(Controller).
● Micro-services: Breaks the application into small, independent services that communicate over a
network.
14. What are software metrics in the context of design? How do they help in
evaluating design quality?
Answer :
Definition: These are quantitative measures used to assess the quality of the software design before
coding begins.
How they help: They help identify potential problems early. For example, if a design metric shows high
complexity, developers can simplify the design to prevent bugs and make the code easier to maintain
later.
Improve maintainability
Helps replace guess work with measurable evidence
15. Explain the concept of modularity in software design. What are the benefits
of modular design?
Answer :
Modularity is the practice of breaking a large software system into distinct, independent smaller units
called "modules." Where Each module handles a specific functionality.
Benefits:
 Parallel Development: Different teams can work on different modules simultaneously.
 Maintenance: Fixing one module is unlikely to break others.
 Reusability: A module written for one project can be used in another.
PAGE |5. Holy-Dave Studios @ 2026.
Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

 Easier Debugging: If an error occurs, you know exactly which module is responsible.
16. Describe the principles of good software design. How do these principles
contribute to maintainability and scalability?
Answer :
1. Separation of Concerns: Distinct sections of code should handle distinct tasks.
2. DRY (Don't Repeat Yourself): Avoid duplicating code; use functions or variables instead.
3. KISS (Keep It Simple, Stupid): Simpler designs are easier to understand and maintain than complex
ones.
Contribution:
By keeping code simple and separated, These principles make the system maintainable (easier to fix and
update because code is organized) and scalable (easier to add new features without breaking old ones).

17. What is coupling and cohesion in software design? Why should we aim for
low coupling and high cohesion?
Answer :
 Cohesion: How related the functions within a module are (How focused a module is on a single
task). High Cohesion means a module does one thing very well.
 Coupling: The degree of dependency between two different modules. (How much Module A relies
on Module B). Low Coupling means modules are independent.
Why aim for Low and High Cohesion ?
 We want Low Coupling so that changing one module doesn't break others. We want High Cohesion
so that each module is focused, understandable, and robust.
 Goal: This makes the system robust; a change in one module won't cause a "ripple effect" of errors
elsewhere.
Section C: Software Quality and Testing (8 questions)
18. Define software quality. What are the key attributes that determine software quality?
Answer :
Software quality is the degree to which a software system meets the specified requirements and satisfies
the needs and expectations of the user. It is about how well the software works and how easy it is to use.
Key Attributes (often remembered as FURPS):
1. Functionality: Does it do what it is supposed to do?
2. Usability: Is it easy for users to learn and operate?
3. Reliability: Does it work consistently without crashing?
4. Performance: Is it fast and responsive?
5. Supportability: Is it easy to maintain and repair?
19. Explain the difference between software verification and software validation. Provide
examples of each.
Answer :
● Verification: Checks if we are building the product correctly. It focuses on the process and documentation
(e.g., code reviews, inspections) to ensure the design meets the specs.

PAGE |6. Holy-Dave Studios @ 2026.


Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

● Validation: Checks if we are building the correct product. It focuses on the actual software (e.g., testing) to
ensure it meets user needs.
Examples:
● Verification: Reviewing code to ensure it follows coding standards.
● Validation: Asking a user to test the software to see if it solves their problem.
20. Describe at least four different software testing techniques (e.g., unit testing,
integration testing, system testing, acceptance testing).
Answer :
1. Unit Testing: Testing the smallest individual parts of the code (functions or methods) in isolation to ensure
they work correctly.(Usually done by developers).
2. Integration Testing: Testing how different modules work when combined or "integrated" together to find
interface errors.
3. System Testing: Testing the complete, fully integrated software product to evaluate the system's
compliance with requirements.
4. Acceptance Testing: The final testing phase performed by the end-user or client to decide whether to
accept the product for delivery
21. What is test-driven development (TDD)? Explain the TDD cycle and its benefits.
Answer :
TDD is a development process where developers write the test before they write the actual code.
The TDD Cycle (Red-Green-Refactor):
1. Red: Write a test for a small feature (it will fail because the code doesn't exist yet).
2. Green: Write just enough code to make the test pass.
3. Refactor: Clean up and improve the code while keeping the test passing.
 Benefits: Results in very high code quality, reduces bugs significantly, and better-documented code which
and allows for safer code changes later.
22. Explain the concept of software quality assurance. How does it differ from software
testing?
Answer :
Software Quality Assurance (Process-focused): A broad, process-oriented approach focused on preventing
bugs through standards and audits. It answers, "Are we doing the right things in the right way?"
Software Testing (Product-focused): Focuses on finding defects in the actual product. It answers, "Does the
product work?"
● Difference: Testing is product-oriented and focused on finding bugs in the code. SQA defines how we
build; testing checks what we built.
23. What are software quality metrics? Provide examples of metrics used to measure
software quality.
Answer :
Software Quality Metrics are Quantitative measures used to assess the final product's quality of a software.
Example:
 Defect Removal Efficiency (DRE): % of bugs caught before release.
 Mean Time to Failure (MTTF): Average time between system crashes.
PAGE |7. Holy-Dave Studios @ 2026.
Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

 Customer Satisfaction Score (CSAT): Rating given by users after using the software.
24. Describe the role of software architecture in ensuring quality. How does good
architecture contribute to testability?
Answer :
Role: Architecture acts as the foundation. A strong foundation ensures the house stands; similarly, A good
architecture ensures the software handles high loads (performance), resists attacks (security), and can be
updated easily (maintainability).
Contribution to Testability:
Good architecture separates components clearly (modularity). This allows testers to isolate specific parts
of the system to test them individually without needing to run the entire complex system, making testing
faster and more accurate.
25. What is regression testing? Why is it important in software maintenance?
Answer :
Regression testing is the re-running of previous tests after a change is made in a software, to ensure
old features still work.
Importance in Maintenance: It ensures that "fixing one thing didn't break another." In maintenance,
code is frequently changed; regression testing is the “safety net” that prevents new bugs (regressions)
from being introduced into working code.
Section D: Software Evolution and Maintenance (6 questions)
26. Define software evolution. Why do software systems need to evolve over time?
Answer :
Software evolution is the process of continuously updating, modifying, and improving software after it’s
initial development in order to meet changing requirements and user needs, to keep it useful over its
lifetime.
 Necessity: Software must evolve to fix security vulnerabilities, adapt to new operating systems
networks, and meet changing user demands
27. What is software maintenance? Describe the different types of software maintenance
(corrective, adaptive, perfective, preventive).
Answer :
Software maintenance is the process of modifying, updating, and improving a software system after it has
been delivered and put into use. It ensures that a system continues to function correctly, efficiently, and
reliably throughout its operational life.
Types:
 Corrective: Fixing bugs found by users.
 Adaptive: Updating software for a new environment (e.g., Cloud migration).
 Perfective: Adding new features or improving performance.
 Preventive: Refactoring code to prevent future bugs.
28. Explain the characteristics of maintainable software. What design practices promote
maintainability?
Answer :
PAGE |8. Holy-Dave Studios @ 2026.
Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

Characteristics of Maintainable Software:


Maintainable software has a clear and well-structured design and good documentation that makes the
system easy to understand. It is modular, meaning the system is divided into well-defined components or
modules, each responsible for a specific function. Such software exhibits low coupling and high cohesion,
ensuring that changes in one module have minimal impact on others.
Design Practices that Promote Maintainability:
1. Applying the principles of low coupling and high cohesion reduces interdependencies and simplifies
modifications.
2. Using abstraction and encapsulation hides internal implementation details and exposes only necessary
interfaces.
3. Consistent coding standards and naming conventions improve readability and understanding.
4. Proper documentation of requirements, design, and code enhances maintainability.
29. What is re-engineering in software development? How does it differ from reverse
engineering?
Answer :
Re-engineering in software development is the process of examining and modifying an existing software
system to improve its quality, performance, maintainability, or adaptability while preserving its core
functionality.
Reverse engineering, on the other hand, is the process of analysing an existing software system to
understand its structure, behaviour, and design without changing the system itself. It is mainly used when
documentation is missing or outdated.
Difference:
The key difference between the two is that re-engineering focuses on improving and transforming the
software system, while reverse engineering focuses on understanding the system. Reverse engineering is
often a preliminary step in re-engineering, as understanding the existing system is necessary before
making improvements.
30. Explain the challenges associated with legacy systems. What strategies can be used to
manage legacy systems?
Answer :
Challenges Associated with Legacy Systems:
1. Outdated technology: Legacy systems are often built using old programming languages, frameworks, or
hardware that are no longer widely supported, making maintenance difficult.
2. Poor or missing documentation: This makes it hard for new developers to understand and modify the
system.
3. high maintenance costs: due to frequent failures, difficulty in fixing bugs, and scarcity of skilled personnel
familiar with the technology.
Strategies for Managing Legacy Systems:
 system maintenance and enhancement, where the existing system is continuously maintained and
improved to meet current needs.
 re-engineering, which involves restructuring or modernizing the system while retaining its
functionality.

PAGE |9. Holy-Dave Studios @ 2026.


Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

 Wrapping or encapsulation can also be used, where new interfaces are built around the legacy
system to enable integration with modern systems.
 system replacement may be used, where the legacy system is gradually or completely replaced with a
new system.
31. What is software reuse? Discuss the benefits and challenges of software reuse in
modern development.
Answer :
Software reuse is the practice of using existing software components, modules, libraries, frameworks,
or entire systems to build new software applications instead of developing everything from scratch .
The main goal of software reuse is to improve productivity, reduce development time and cost, and
enhance software quality.
Benefits of Software Reuse:
1. reduced development time, as developers can quickly integrate existing and tested components
into new systems.
2. It lowers development costs by minimizing duplicated effort and resource usage.
3. it allows developers to focus more on innovation and problem-solving rather than rewriting
common functionality.
Challenges of Software Reuse:
1. One challenge is compatibility, as reused components may not perfectly fit new system
requirements or environments
2. Understanding and adapting existing components can also be difficult, especially if documentation
is poor.
3. There may be integration issues when combining reused components with new or existing systems.
4. managing reusable components requires proper version control, configuration management, and
organizational support. In some cases, licensing and legal constraints may limit how software
components can be reused.
Section E: Software Project Management (10 questions)
32. What is software project management? Explain why it is critical for successful
software development.
Answer :
Software Project Management involves the process of Planning, monitoring, and controlling software
projects to meet goals and deliver quality software product that meets user needs.
Why it is Critical: It is critical because software development is complex and unpredictable. Without
management, projects often suffer from "scope creep" (uncontrolled changes), budget overruns, missed
deadlines, and poor quality, leading to project failure.
33. Describe the key responsibilities of a software project manager.
Answer :
A software project manager is responsible for ensuring that a software project is successfully completed
within the agreed scope, time, cost, and quality constraints.
responsibilities of a software project manager:
● Project Planning: Defining the scope, schedule, and budget.
PAGE |10. Holy-Dave Studios @ 2026.
Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

● Staffing: assembling the team and assigning tasks.


● Monitoring & Control: Tracking progress against the plan and fixing deviations.
● Risk Management: Identifying potential problems before they happen.
● Communication: Acting as the bridge between the development team and the stakeholders
(clients).
34. Explain the concept of team management in software projects. What factors
contribute to effective team performance?
Answer :
Team management involves organizing and coordinating individuals to work together towards a common
goal. It focuses on maximizing productivity and maintaining high morale.
Factors for Effective Performance:
1. Clear Communication: Everyone knows what they need to do.
2. Shared Goals: The team understands the project's purpose.
3. Trust: Team members rely on each other to finish tasks.
4. Balance of Skills: The team has the right mix of technical and soft skills.
35. What is project scheduling? Describe at least two techniques used for scheduling
software projects (e.g., Gantt charts, PERT charts).
Answer :
Project scheduling is the process of planning, organizing, and allocating project tasks and activities over time
in order to ensure that a software project is completed within the specified timeframe.
Techniques:
1. Gantt Charts: A horizontal bar chart that visually represents the project activities along a timeline ( i.e
schedule). It is easy to read and shows the duration of tasks and their overlap.
2. PERT (Program Evaluation and Review Technique) Charts: A network diagram that uses nodes and arrows
to show the sequence of dependencies between tasks.. It is better for analyzing complex task relationships.
36. Explain software estimation techniques. Compare and contrast at least two estimation
methods (e.g., COCOMO, Function Point Analysis).
Answer :
Software Estimation is The process of predicting the effort, cost, and time required to develop a software
system.
Comparison:
● COCOMO (Constructive Cost Model): An algorithmic method that uses mathematical formulas based on
the size of the project (typically Lines of Code) to estimate effort. It is technical and data-driven.
● Function Point Analysis (FPA): Estimates size based on the user-visible functionality rather than code. (e.g.,
number of inputs, outputs, inquiries, queries). It is better for estimating early when code size is unknown.
37. What is the critical path method (CPM) in project scheduling? How is it used to
manage project timelines?
Answer :
The Critical Path Method (CPM) is an algorithm used to identify the longest sequence of dependent
activities in a project that determines the minimum time required to complete the project. This sequence of

PAGE |11. Holy-Dave Studios @ 2026.


Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

activities is known as the critical path. Any delay in activities on the critical path will directly result in a delay
in the overall project completion time.
Useage:
CPM is used to manage project timelines by first identifying all project activities and their durations, then
determining the dependencies between these activities. Using this information, a network diagram is
created to calculate the earliest and latest start and finish times for each activity.
38. Describe the different software measurement techniques used in project
management.
Answer :
Software measurement techniques in project management are methods used to quantitatively assess
various aspects of a software project in order to support planning, estimation, monitoring, and control.
These measurements help project managers make informed decisions, track progress, and ensure that
project objectives related to cost, time, scope, and quality are achieved.
Measurement techniques used:
1. size measurement, which estimates the physical size of the software product. ( e.g Function Point Analysis
(FPA), Lines of Code - LOC).
2. effort measurement, which focuses on the amount of work required to complete a project. Typically
measured in person-hours or person-months
3. cost measurement, which estimates and tracks the financial resources required for the project, including
labour, tools, and infrastructure costs.
4. productivity measurement assesses the efficiency of the development team by relating output (such as
size or functionality delivered) to input (such as effort or time).
5. quality measurement techniques are used to evaluate software quality through metrics such as defect
density, defect removal efficiency, and mean time to failure.
39. What is risk analysis in software projects? Explain the process of identifying, analyzing,
and mitigating risks.
Answer :
 Risk analysis in software projects is the systematic process of identifying, evaluating, and managing
potential events or conditions that could negatively affect the successful completion of a software project.
Process:
 Identify: Recognize and list potential risks that may arise during the project. (e.g., "Team lead leaves
project").
 Analyze: Determine the probability of the risk occurring and its potential impact on the project.
 Mitigate: develop strategies to reduce the probability of risks occurring or to minimize impact or the
damage of the risk if they do occur.

40. Define software quality assurance in the context of project management. How does it
ensure project success?
Answer :
In Project Management, Software Quality Assurance (SQA) ensures that the process being used to build the
software is correct and follows established standards.

PAGE |12. Holy-Dave Studios @ 2026.


Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

How it ensures success:


 By auditing the process, SQA prevents errors rather than just finding them at the end.
 It ensures the team isn't cutting corners, which reduces expensive rework later and keeps the project on
budget.
 SQA promotes continuous improvement by analyzing process performance and incorporating lessons
learned into future activities
 It also enhances communication and accountability among project stakeholders by clearly defining quality
responsibilities.
41. Explain the importance of project monitoring and control. What metrics are typically
tracked during project execution?
Answer :
Project monitoring and control is the continuous process of measuring project performance, comparing
actual progress with planned objectives, and taking corrective actions when deviations occur.
The importance of project monitoring and control.
 By regularly tracking progress, project managers can detect problems such as schedule delays, cost
overruns, quality issues, or scope creep at an early stage and take timely corrective actions.
 It reduces risks, prevents project failure, and helps ensure that project goals are achieved.
 Monitoring and control also improve accountability, communication, and decision-making by providing
accurate and up-to-date information to stakeholders.
Metrics Tracked:
1. Schedule Variance: Are we ahead or behind schedule?
2. Cost Variance: Are we under or over budget?
3. Effort Variance: Are tasks taking more work hours than estimated?
4. Defect Discovery Rate: How fast are we finding bugs?
5. Risk and scope metrics: number of open risks and change requests, are monitored to control uncertainty
and scope changes.
Section F: Software Configuration Management and Legal Aspects (9 questions)
42. What is software configuration management (SCM)? Explain its importance in
software development.
Answer :
Software Configuration Management (SCM) is the process of identifying, organizing, controlling, and
tracking changes to software configuration items (including source code, design documents, requirements
specifications, etc.) throughout the software development lifecycle.
The importance of SCM in software development
The importance of SCM in software development lies in its ability to control change in a structured and
disciplined manner. Software projects involve frequent modifications due to evolving requirements, bug
fixes, and enhancements. SCM helps manage these changes by providing version control, change tracking,
and clear records of who made changes, when they were made, and why. This reduces confusion, prevents
conflicts, and minimizes the risk of errors.
43. Describe the key activities involved in configuration management (e.g., version
control, change management, build management).

PAGE |13. Holy-Dave Studios @ 2026.


Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

Answer :
Configuration management involves a set of coordinated activities used to systematically control and
manage changes to software artifacts throughout the software development lifecycle. These activities
ensure consistency, traceability, and integrity of the software product.
1. Version Control: Keeping track of every modification to the code (who changed what and when).
2. Change Management: The formal process of deciding whether to accept or reject a proposed change.
3. Build Management: Automating the process of compiling code into executable programs.
4. Release Management: Packaging and deploying the software to the end-users.
44. What is version control? Compare centralized and distributed version control systems
with examples.
Answer :
Version control is a system that records changes to a file or set of files over time so that you can recall
specific versions later.
Comparison:
● Centralized (CVCS): Only one single server holds all the files and history. If the server goes down, no one
can work or save changes and all history is lost.
○ Example: Subversion (SVN).
● Distributed (DVCS): Every developer has a full copy (clone) of the entire repository, including history, on
their local machine. This allows for offline work and better safety.
○ Example: Git.
45. Explain the concept of baseline in configuration management. Why is baselining
important?
Answer :
A baseline is a stable, tested version of the software configuration items at a specific point in time. It serves
as a reference point. Or can be a formally reviewed and agreed-upon version of a software configuration
item (e.g., "Version 1.0").
Importance:
 Baselining is critical because it "locks" the code. Once a baseline is established (e.g., "Version 1.0"),
no changes can be made to it without a formal change control process. It allows development to
move to the next phase safely.
 It serves as a stable starting point for future development. If a project gets messy, you can always
revert to the baseline to start over if new changes fail.
46. What is change control? Describe the typical change management process in
software projects.
Answer :
Change control is the procedure used to ensure that changes (like adding a feature or fixing a bug) are
introduced into a software in a controlled and coordinated manner.
Typical Process:
1. Request: A change is proposed by a user or developer (Change Request - CR).
2. Impact Analysis: The impact (cost, time, risk) of the change is evaluated.
3. Decision: A Change Control Board (CCB) approves or rejects the request.
PAGE |14. Holy-Dave Studios @ 2026.
Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

4. Implementation: If approved, the change is made and tested and released.


5. Verification: The change is verified to ensure it works as intended.
47. Discuss the legal aspects of software engineering. What are software licenses and why
are they important?
Answer :
software license is a legal instrument (contract) governing the use and redistribution of software, i.e They
define the terms under which a user can use, modify, or distribute a software.
Importance:
They are important because software is intellectual property and The license defines what the user
can do (e.g., install on one computer) and cannot do (e.g., sell copies to others). Without a license,
using software is technically copyright infringement.
They protect the developer's intellectual property, define user rights, and limit the developer's legal
liability if the software causes damage.
legal aspects of software engineering.
1. Licensing: Software licenses dictate how users can use the software. Engineers should be
aware of license types (e.g., open-source, proprietary) and terms.
2. Contracts: Engineers often work under contracts specifying terms, payment, and
responsibilities. Review contracts carefully before signing!
3. Data Protection: Software often handles sensitive data, so engineers must comply with data
protection laws (e.g., Nigeria's NDPR).
4. Cybersecurity: Software vulnerabilities can lead to security breaches. Engineers have a duty to
implement robust security measures.
48. Explain the difference between proprietary software and open-source software from a
legal perspective.
Answer :
● Proprietary Software (Closed Source): The source code is the legal property of the creator. Users pay for
a license to use it, but they cannot view, modify, or redistribute the code.
○ Example: Microsoft Windows, Adobe Photoshop.
● Open-Source Software (OSS): The source code is made available to the public Licenses (like GPL or MIT)
legally allow users to view, modify, and redistribute the code, often for free.
○ Example: Linux, Android.
49. What is intellectual property in software? Discuss patents, copyrights, and
trademarks as they relate to software.
Answer :
Intellectual Property (IP) in software refers to creations of the mind, like code, designs, and
innovations. In software, they are Legal rights resulting from intellectual activity in the industrial, scientific,
or literary fields. it protects the rights of the creators.
Types:
1. Copyright: Protects the expression of the idea (the specific code written). It prevents others from copying
your code exactly.
2. Patents: Protect the idea or functionality itself (e.g., a specific algorithm or method). It prevents others
from creating a system that does the same thing, even with different code.

PAGE |15. Holy-Dave Studios @ 2026.


Holy-Dave Studios @ 2026 GET – 211 Practice Questions & Answers

3. Trademarks: Protect the brand names and logos (e.g., the Apple logo or the name "Windows") to prevent
consumer confusion.
50. Describe the ethical responsibilities of software engineers. What professional codes
of conduct guide software engineering practice?
Answer :
Software engineers have a responsibility to develop software that's safe, secure, reliable and respects users'
rights. Key ethical responsibilities include:
1. Public Safety: Ensure software doesn't harm users or the public
2. Confidentiality: Protect sensitive data and user information
3. Competence: Maintain and improve professional skills; be honest about capabilities
4. Honesty: Be truthful about software functionality, limitations, and potential risks
5. Accountability: Take responsibility for software quality and impacts
Professional codes of conduct is the primary guide for professional behaviour in the field, guiding software
engineering practices. They include:
1. IEEE-CACM Software Engineering Code of Ethics: Emphasizes public interest, client and employer
interests, and professional obligations
2. ACM Code of Ethics: Focuses on contributing to society, avoiding harm, and being professional
3. Nigerian Computer Society (NCS) Code of Ethics: Guides IT professionals in Nigeria on ethics and
professionalism
These codes promote responsible software development, respect for stakeholders, and maintaining public
trust.

PAGE |16. Holy-Dave Studios @ 2026.

Common questions

Powered by AI

Modularity is a key principle in software engineering because it involves breaking down a complex system into smaller, manageable, and independent units or modules. This approach reduces complexity, allows parallel development by different teams, and simplifies debugging and maintenance. Modularity also enhances code reusability, allowing modules to be used across different projects .

Gantt charts and PERT charts complement each other in project scheduling as Gantt charts provide a clear and straightforward visualization of project activities along a timeline, illustrating task durations and their overlaps, while PERT charts focus on the sequence of dependencies between tasks, which is beneficial for analyzing complex task relationships. Together, they offer detailed insights into both task scheduling and dependency management .

The 'Separation of Concerns' principle contributes to scalability and maintainability by ensuring that distinct sections of the code address separate concerns or tasks, which makes the system more organized and easier to understand. This separation allows easier updates and additions of new features without risk to other parts of the codebase, thus enhancing maintainability and scalability as new requirements emerge .

Software configuration management is critical in the development lifecycle because it helps in organizing, controlling, and tracking changes to software configuration items—such as source code, design documents, and specifications—maintaining consistency and traceability across processes. This role is vital for managing change and ensuring project integrity and traceability .

Software verification and validation are both crucial in ensuring software quality. Verification focuses on building the product correctly by checking the process and documentation (e.g., code reviews, inspections), ensuring they meet specifications. Validation checks if the right product is built, ensuring it functions as intended for the user (e.g., user acceptance testing, and functional testing).

Risk analysis in software projects involves identifying, evaluating, and managing potential events or conditions that could negatively affect project completion. The process includes identifying risks, analyzing their probability and potential impact, and developing strategies to mitigate or minimize their effects. This systematic approach helps in preparing for uncertainties and minimizing disruptions to the project .

Software engineering is important in modern computing because it involves the systematic application of engineering principles to develop reliable, efficient, scalable, and maintainable software systems, whereas traditional programming primarily focuses on writing code to solve specific problems. This differentiation is crucial as software engineering addresses the entire lifecycle of a system, involving multiple teams and complex architectures, in contrast to the individual and smaller scope of programming .

Software metrics enhance the assessment of design quality by providing objective, quantifiable measures that identify potential problems early, such as high complexity, which might be simplified to reduce bugs and maintenance efforts later. This preemptive assessment is crucial because it aids in maintaining high quality, reducing risk, and ensuring the design aligns well with requirements .

Software specifications act as a bridge between user requirements and technical design by providing formal documentation of what the software should achieve, guiding the design process. Essential characteristics include clarity to avoid misinterpretation, completeness to cover all necessary features, consistency to prevent contradictions, and testability to ensure specifications can be verified .

Identifying a project's critical path is significant in software project management because it determines the longest sequence of dependent tasks that dictates the minimum time necessary to complete the project. Understanding this sequence allows project managers to focus on these tasks to avoid delays in the overall project timeline, ensuring timely completion and efficient resource allocation .

You might also like