Question 1
1.1. What should be the primary objective of each iteration?
The primary objective of each iteration in system development is to complete a full cycle of analysis,
design, implementation, and testing for a functional part of the system. Each iteration aims to deliver
a working piece of software that contributes to the overall system, even if it represents only a small
part of the final product. This approach allows the team to respond to changing requirements, gather
user feedback early, and evaluate progress regularly. It also enables the identification and resolution
of high-risk or complex components early on, while continuously improving the process with each
cycle. The first iteration typically focuses on securing project approval, establishing a clear vision for
the system, and delivering a detailed solution for a specific initial feature. From there, each new
iteration builds on that foundation, gradually expanding and refining the system until it's complete.
1.2. There are several benefits of iterative development. State any two (2) benefits.
Sooner Deployment and Benefits Accrual
One of the key advantages of iterative development is that parts of the system can be deployed
earlier, allowing the business to start seeing benefits much sooner. Instead of waiting for the entire
system to be built, usable sections—such as core features or essential workflows—can be delivered
in early iterations. This not only speeds up access to value but also gives users a chance to interact
with the system, provide input, and confirm that it's meeting their needs.
Early Identification and Addressing of Difficult/Risky Problems
Another major benefit is the ability to uncover and address complex or high-risk issues early in the
project. Since each iteration focuses on a manageable piece of the system, it's easier to spot technical
challenges, design flaws, or other concerns before they become larger problems. This is especially
helpful in big, complicated projects where it's hard to grasp every detail upfront. Tackling risky
elements early reduces the chance of costly changes later and helps keep the project on track.
1.3. What is the purpose of user acceptance testing?
Verifying That the System Meets User Requirements
The main purpose of user acceptance testing (UAT) is to confirm that the system meets the needs of
the people who will actually use it. This involves checking whether the system correctly performs
the functions that support users in their daily work. If the system doesn't meet these expectations, it's
not ready to go live.
Ensuring the System Supports Real-World Scenarios
UAT also checks whether the system can handle actual business and user scenarios. This includes
different types of events that may occur—like user actions, scheduled processes, or changes in
system states. The goal is to make sure the system works as expected in the real world, not just in
theory.
Confirming Nonfunctional Requirements
While functionality is critical, UAT also helps verify nonfunctional aspects like ease of use, system
performance, security, and overall reliability. These qualities affect how well the system fits into the
users' workflow and whether it will be accepted in the long run.