Question 1
Consider the following scenario for a train tracking system and answer the questions
accordingly:
You're tasked with developing an online train tracking system based on the following
requirements:
• User Authentication: Users must log in with unique credentials. The system should
validate these credentials and grant access only to authorized users.
• User Registration and Profile Management: Users should be able to register with the
system and manage their profiles.
• Train Schedule and Route Management: Users should be able to search for train
schedules, view routes, and check the availability of seats on specific trains.
• Real-Time Train Tracking: The system should provide real-time tracking of trains,
allowing users to monitor train locations and estimated arrival times at different
stations.
• Ticket Booking and Management: Users should be able to book tickets through the
system, view their booking history, and manage current reservations.
• Notifications: The system should send notifications to users about train delays,
cancellations, or any other critical updates. Notifications can be sent via email, SMS,
or within the system interface.
• Administrator Functions: Administrators should have the ability to manage user
accounts, update train schedules, oversee the system’s operational status, and generate
reports.
• Support Staff: Assist users with account-related issues such as registration and login
problems. Provide support for booking issues, cancellations, and refunds, and address
user complaints and feedback.
• Train Operator: Responsible for updating real-time train tracking information and
reporting any issues related to train operations, such as schedules or passenger
concerns. Additionally, they ensure that train information is accurate and up to date.
a) Identify three user roles and provide a brief explanation of their responsibilities.
[6 Marks]
Any three of the following options or similar responses.
1. Regular User (Passenger)
Responsibilities:
Register and manage their profiles.
Log in using unique credentials.
Search for train schedules, view routes, and check seat availability.
Track trains in real time.
Book tickets, including viewing booking history.
Receive notifications about train delays, cancellations, and other updates.
2. Administrator
Responsibilities:
Manage user accounts (creating, updating, or deactivating accounts).
Update train schedules and route information.
Generate and analyze reports
3. Train Operator
Responsibilities:
Update real-time train tracking information
Report issues of train operations (schedules or passenger related).
Maintain accurate and up-to-date train information.
4. Support Staff (Customer Service)
Responsibilities:
Assist users with account issues, including registration and login problems.
Provide support for booking issues, cancellations, and refunds.
Help users navigate the system and utilize its features.
Address user complaints and feedback
b) Identify and briefly describe two potential challenges that may arise during the
development or implementation phases of this project. [4 Marks]
Any two of the following options or similar responses.
Scalability: The system must accommodate a high volume of concurrent users,
particularly during peak travel periods. Achieving efficient scalability without
compromising performance requires extensive optimization of both software and
infrastructure.
Accurate and Up-to-Date Train Schedules and Routes: Integrating real-time data
from multiple sources while maintaining consistency across various system
components presents challenges. Efficiently managing changes in schedules or routes
is essential to ensure a seamless user experience.
Real-Time Train Tracking: Accurately capturing and transmitting train location data
in real-time poses challenges, mainly concerning GPS accuracy and network
connectivity. Providing timely updates to users and managing large data volumes are
critical considerations.
Ticket Booking and Management: The system must handle peak booking times and
support high volumes of concurrent users without performance degradation.
Additionally, maintaining accurate booking and reservation records is crucial to avoid
overbooking and errors.
** Challenges related to administrative tasks and the effective management of system
notifications should also be considered.
c) Create a Use Case diagram for the scenario described above. [10 Marks]
(Points allocation: 2 marks for identifying actors, 4 marks for accurately identifying use
cases, 2 marks for correctly defining boundaries, and 2 marks for overall completeness and
clear illustration.)
The provided example highlights only a few primary and secondary actors, along with some
use cases. Your response should identify at least three actors and describe their associated use
cases. Demonstrate how these actors interact with the specific use cases. Optionally, you may
indicate if there are any "extends" or "includes" relationships between the use cases. Ensure
the system boundary is clearly defined to encapsulate the entire system.
Question 2
a) Explain Test-driven development (TDD) using an illustration. [8 Marks]
4 marks for TDD and process explanation, 4 Marks for correct illustration
Test-Driven Development (TDD) is a software development methodology where tests are
written before the actual code. The development process is structured around writing small,
incremental tests that define how the software should behave. The code is then written to
pass these tests. This approach ensures that the code meets the specified requirements and
behaves as expected from the outset.
TDD Process
1. Write a Test: Write a test for a small piece of functionality that the software should
perform. Initially, this test will fail because the functionality doesn't exist yet.
2. Write the Code: Write the minimum amount of code necessary to pass the test.
3. Run the Test: Run the test to ensure it passes. If it does, the code meets the
requirements of the test.
4. Refactor: Refactor the code to improve its structure and quality, ensuring that it still
passes the test.
5. Repeat: Repeat the cycle for the next piece of functionality.
b) Respond to the following questions based on the given function.
i) Create a Control Flow Graph (CFG) for the function described above. [8 Marks]
ii) Determine the Cyclomatic Complexity of the function provided above. [4 Marks]
(P = Number of connected components (one per function))
Method 01
Cyclomatic Complexity
= (No of Edges) - (No of Nods) + 2*P
= 6 - 5 + 2*1
= 1+2
=3
Method 02
Cyclomatic Complexity
= Total number of closed regions in the control flow graph + 1
=2+1
=3
Method 03
(P = Total number of predicate nodes (Decision Points) contained in the control flow
graph)
Cyclomatic Complexity = P + 1
=2+1
=3
Question 3
a) Illustrate a network diagram for the following activities using a standard diagrammatic
technique (Activity Network Diagram) and determine the critical path and duration
of critical path. Calculate earliest start, earliest finish, latest start, latest finish and slack
for each activity. [15 Marks]
Task Duration (Weeks) Dependencies
A1 1 none
A2 2 none
A3 4 A1, A2
A4 4 A3
A5 2 none
A6 3 A5, A3
A7 5 A5, A6
A8 6 A5
A9 2 A8
A10 4 A4, A7, A9
Illustrate activities and paths correctly [5 Marks]
Correctly identifying earliest start, earliest finish, latest start, latest finish and slack for each
activity. [5 Marks]
Critical path and duration of critical path. [5 Marks]
Critical Path: A2 → A3 → A6 → A7 → A10
Duration of critical path = 18 Weeks
b) A key task on the critical path of a software project has been delayed. Identify three
strategies that can be employed to mitigate the impact on the overall project schedule
and ensure timely delivery. [5 Marks]
Any three of the following options or similar responses.
• update the project schedule to reflect the delay. This helps in understanding the new
critical path and the potential impact on the project timeline.
• Allocate additional resources or team members to the delayed task to speed up its
completion.
• Implementing overtime or extra work hours to make up for lost time, if feasible and
acceptable.
• Identify opportunities to perform other tasks in parallel with the delayed task to
reduce the overall project timeline.
• Work with stakeholders to negotiate changes in scope
• Adding resources to shorten the duration of the delayed task or related tasks on the
critical path.
Question 4
a) For a software input field that accepts numbers between 1 and 100, use Equivalence
Partitioning to categorize valid and invalid input classes. Provide example values for
each class. Additionally, apply Boundary Value Analysis to identify the critical lower
and upper boundary values. Include an illustration to support your explanation.
[12 Marks]
4 Marks for Illustration, 4 Marks for identifying valid and invalid input classes, 4 Marks for
Identifying boundary values.
Equivalence Partitioning
Valid Input Class:
Range: 1 to 100
Examples: Any number within this range, such as 50 or 75
Invalid Input Classes:
Below the Valid Range:
Range: Less than 1
Examples: Negative numbers or zero, such as -5 or 0
Above the Valid Range:
Range: Greater than 100
Examples: Any number greater than 100, such as 150 or 101
Boundary Value Analysis
Lower Boundary Values:
Boundary Test Cases:
Just Below the Lower Boundary: 0 (invalid)
At the Lower Boundary: 1 (valid)
Just Above the Lower Boundary: 2 (valid)
Upper Boundary Values:
Boundary Test Cases:
Just Below the Upper Boundary: 99 (valid)
At the Upper Boundary: 100 (valid)
Just Above the Upper Boundary: 101 (invalid)
b) Explain the purpose of acceptance testing and the role it plays in the software
development lifecycle. [4 Marks]
Purpose: Acceptance testing ensures the software fulfills the agreed-upon
requirements and business needs as outlined in the requirements specification.
Confirms that the software is ready for release to end-users by verifying its
functionality, usability, and performance in a real-world environment.
Role in SDLC: Acts as the final validation step before the software is delivered to
customers or stakeholders, ensuring it meets quality standards and performs as
expected. Involves end-users or stakeholders in the testing process to verify that the
software aligns with their needs and expectations.
c) Explain how system testing differs from integration testing. [4 Marks]
Integrating testing verifies the interaction and communication between integrated
modules or components within the system. It ensures that different parts of the
application work together as intended.
System testing validates the entire system as a whole against the specified
requirements. It ensures that the complete and integrated system functions correctly in
a real-world environment.
Question 5
a) What is the difference between functional and non-functional requirements. [4 Marks]
Functional requirements specify what the system should do. They describe the
interactions between the system and its users or other systems.
Non-functional requirements define how the system performs its functions. They
address the quality attributes, constraints, and performance standards the system must
meet.
b) What is requirement validation and explain three common challenges faced during the
requirements validation phase? [5 Marks]
Requirement validation is the process of ensuring that the requirements for a
system or product are accurate, complete, and aligned with stakeholder needs and
expectations.
Any three of the following options or similar responses
Challenges
• Requirements may be incomplete or poorly defined, leading to
misunderstandings about what is needed.
• Different stakeholders might have conflicting or contradictory
requirements.
• Requirements may evolve due to changes in business goals, market
conditions, or stakeholder feedback.
• Miscommunication or misunderstandings between stakeholders and the
development team can lead to incorrect interpretations of requirements.
• Scope creep: During validation, new requirements or enhancements may
be proposed that were not part of the original scope.
c) Identify five common techniques for eliciting requirements from stakeholders.
[3 Marks]
Any five of the following options or similar responses
Interviews, Surveys and Questionnaires, Workshops, Observation, Prototyping,
Document Analysis, Focus Groups, Brainstorming.
d) Describe two techniques discussed in the previous question and outline their
advantages. [8 Marks]
Any two of the following options or similar responses
Interviews
An interview is a method used to conduct one-on-one or group discussions with stakeholders
to collect comprehensive information about their needs, expectations, and constraints.
Advantages:
• In-Depth Understanding: Allows for deep exploration of individual stakeholder needs
and perspectives.
• Clarification: Provides opportunities for immediate clarification of ambiguous or
complex requirements.
• Flexibility: Can be adapted to address specific topics or questions based on
stakeholder responses.
Surveys and Questionnaires
A survey is a method in which structured surveys or questionnaires are distributed to
stakeholders to gather information on their needs, preferences, and priorities.
Advantages:
• Wide Reach: Enables gathering information from a large number of stakeholders
efficiently.
• Quantitative Data: Provides quantitative data that can be analyzed for patterns and
trends.
• Cost-Effective: Often less resource-intensive compared to interviews and workshops.
Observation
Observation involves examining stakeholders within their work environment to gain insight
into their tasks, processes, and challenges.
Advantages:
• Contextual Understanding: Provides insights into how stakeholders perform their tasks
and interact with existing systems.
• Real-World Insights: Reveals actual workflows, pain points, and inefficiencies that may
not be captured through other techniques.
• Non-Intrusive: Allows for understanding stakeholder needs without direct questioning.
Prototyping
Prototyping is a method used to create prototypes or mock-ups of a system in order to
demonstrate potential solutions and collect feedback from stakeholders.
Advantages:
• Visual Representation: Helps stakeholders visualize and interact with potential
solutions, leading to more concrete feedback.
• Iterative Improvement: Enables iterative refinement of requirements based on
stakeholder interactions with the prototype.
• Early Validation: Provides early validation of requirements and design concepts.