CS 2401-01 Software Engineering 1 - AY2025-T2 Written (Programming) Assignment Unit 2
CS 2401-01 Software Engineering 1 - AY2025-T2 Written (Programming) Assignment Unit 2
Software Engineering 1
CS 2401
crucial role in defining the quality attributes of a software system. They complement functional
requirements by addressing how the system performs tasks rather than what tasks it performs.
Below is an in-depth analysis of the provided NFRs, categorizing them as testable or non-
Analysis
This requirement is ambiguous and lacks specific, measurable criteria, making it challenging to
verify directly. As argued by Marsic (2012), vague terms like "user-friendly" introduce
subjectivity and impede the development of clear acceptance tests. While usability testing can
To make this requirement testable, specific usability metrics must be defined, such as:
navigating through features) and measure the success rate, errors, and satisfaction scores using
Requirement B: "The number of mouse clicks the user needs to perform when navigating
to any window of the system’s user interface must be less than 10."
Analysis
This requirement is concrete, measurable, and easily verifiable, making it highly testable. As
stated by Bochmann (2010), defining clear thresholds for metrics enhances the testability of
requirements.
Acceptance Test
Test Criteria: Pass the requirement if all paths require fewer than 10 clicks. For automation,
tools like Selenium can be used to simulate and validate navigation flows.
Requirement C: "The user interface of the new system must be simple enough so that any
Analysis
Like Requirement A, this is subjective and non-testable in its current form due to the vagueness
Quantify "minimum training" by defining a standard training duration (e.g., 15 minutes) and a
Test Plan:
Test Criteria: Success is defined as at least 90% of users completing all tasks within the
Requirement D: "The maximum latency from the moment the user clicks a hyperlink in a
web page until the rendering of the new web page starts is 1 second over a broadband
connection."
Analysis
This requirement is specific and quantifiable, making it highly testable. As stated by Wiegers
1. Use performance testing tools like Apache JMeter or Lighthouse to measure page latency.
3. Simulate user interactions by clicking hyperlinks and recording the latency until page
rendering starts.
Test Criteria: The requirement passes if latency remains under 1 second for all tested hyperlinks
Requirement E: "In case of failure, the system must be easy to recover and must suffer
Analysis
This requirement is partially testable. The ease of recovery can be verified by conducting disaster
recovery tests, but "minimum loss of important data" requires clarification. As argued by Marsic
1. Define "Minimum Loss of Data": Specify acceptable data loss limits (e.g., recovery
3. Measure Recovery Time and Data Integrity: Record the time taken to restore the
(e.g., RTO of 10 minutes) and data loss remains within acceptable limits.
Netflix employs chaos engineering to simulate failures and ensure system resilience
(Garlan & Shaw, 1994). Applying similar practices can validate the ease of recovery and
Amazon routinely measures user satisfaction using metrics like click-through rates and
task completion times. This approach aligns with verifying requirements A and B.
Conclusion
Effective requirements elicitation and validation are critical in software engineering. Testable
NFRs ensure systems meet user expectations and maintain quality standards. By defining clear,
measurable criteria for ambiguous requirements, developers can create robust test plans,
enhancing system reliability and user satisfaction. As argued by Wiegers (n.d.), bridging the gap
between user expectations and technical feasibility begins with well-articulated requirements.
References
http://www.site.uottawa.ca/~bochmann/SEG3101/Notes/SEG3101-ch3-1%20-%20Intro
%20to%20Analysis%20and%20Specification.pdf
2. Continuous Delivery. (2020, August 19). How to write acceptance tests [Video].
YouTube. https://youtu.be/JDD5EEJgpHU?si=PekRS-cIgfHV_zZQ
https://www.cs.cmu.edu/afs/cs/project/vit/ftp/pdf/intro_softarch.pdf
4. Marsic, I. (2012, September 10). Software engineering. Rutgers: The State University
https://my.uopeople.edu/pluginfile.php/57436/mod_book/chapter/46513/
CS4403MarsicTextbook.pdf
[PowerPoint slides]. Rutgers: The State University of New Jersey. Retrieved from
https://my.uopeople.edu/pluginfile.php/1927486/mod_book/chapter/539654/lec-
5%20RequirementsEng.ppt
http://www.tutorialspoint.com/software_engineering/software_requirements.htm
7. Wiegers, K. (n.d.). When telepathy won’t do: requirements engineering key practices.