Assignment 03: Requirements Elicitation

Release date: Wednesday, 21.04.15 - Due date: Sunday, 26.04.15, 23:59


Task 08: Non-functional and Pseudo Requirements (FURPS+)

9 points

Assume you were developing your Software Vision (from task 02) or the “Reliable Rescue Team Companion”1) or the “Explore the Opportunities”2) or the “we.share.our.travels”3) from the introductory slides. Pick any of these, but stay with it for the whole task. We need to care for Non-Functional requirements of this system.

We mentioned the following classification of requirements:

  • [F]unctional Requirements
  • Quality Requirements
    • [U]sability
    • [R]eliability (Dependability, Robustness, Safety)
    • [P]erformance (Response time, Throughput, Availability, Accuracy)
    • [S]upportability (Adaptability, Maintainability)
  • [+] More Non-Functional Requirements4)
    • Implementation requirements
    • Interface requirements
    • Operations requirements
    • Packaging requirements
    • Legal requirements

a) For a better understand of this list, we suggest that your read through the following section in [BD09] 4.3.2 “Non-functional Requirements”, Table 4-3 in 4.4.7 “Identifying Non-functional Requirements”, 4.6.5. “Identifying Non-functional Requirements” (Table 4-3 applied to an example). You can try online resources as well, but we do recommend the book.

b) For each of the 4 quality and 5 pseudo requirements in our list suggest a sensible requirement. You may as well take inspiration from the world wide web, but remember to cite your sources.

c) Argue with one sentence for each of your requirement, why you placed it in the respective category of the 4+5 categories.


Task 09: Usage Scenarios and Use Cases

11 points

Now we are switching to the “cloud BAKERY 2100” that we gave as an example in task 02. One of your colleagues came back from an interview session with a customer. He has tried to create a preliminary use case diagram A03T08_CloudBakery based on the notes he had taken during the interview. Unfortunately he got fired before he is able to complete his work. Congratulations to your recent promotion.

During the next interview session, you and the customer end up with a set of scenarios that represent typical uses of the system envisioned by the customer. Your boss asks you to build a use case model from those scenarios. Here is what you have got:

Description: “cloud BAKERY 2100”

Scenarios: Developer Dennis wants to buy bread rolls for his party.

Scenarios: System-analyst Susan needs food for a late breakfast after a long night.

Scenarios: Maintainer Michael orders new ingredients for the “cloud BAKERY 2100” machine.

You decide to take your colleagues work as a starting point. As you can see, he failed to write down the flow of events in his early version of the use case model.

Your task is to complete the use case model so that all of the scenarios are covered and all use cases have a complete description. For your convenience you find the scenario texts in the astah file.

We expect to get the complete use case diagram and as well a complete use case description for each use case5).


Task 10: Executable Scenarios

12 = 3+6+3 Points
Let a non-Mac-user do this task. If you use a Mac, you might run into trouble executing the tests, but you can still solve this task (only with less fun).

a) Set up your environment.

As this is quite some work, this is already worth 3 points.

1. Install plug-ins from two update-sites

2. Check out three projects

3. Create a proof that you got everything running

b) Make scenario 2.1 executable and gather feedback for your colleagues

As mentioned in the lecture scenarios are a good foundation for functional tests. Making them executable is a perfect means to verify that implementation and requirements are consistent. That is your job now. You got from your colleagues:

  1. A03T10_CloudBakery2100: A prototype of the UI for the “cloud BAKERY 2100”.9)10)
  2. The scenarios from Task 09.
  3. Two little executable scenarios in cloud_bakery_2100.story.11)
  4. The glue code that maps textual steps in scenarios to test steps in CloudBakery2100Steps.java

If you compare the lines in the “*.story” file and the text in the annotations in CloudBakery2100Steps.java you should get an idea how they are related. These annotations give you the language that you can use in your creation of the executable scenario. Based on this language complete the executable version of scenario 2.1 “Susan orders Pumpernickel” in the “*.story” file. Try to be as complete as possible. Given-lines set the scene, When-lines describe some simulated actions, Then-lines describe the expect behavior. As result we like to get form you:

  • The scenario “Susan orders Pumpernickel” in cloud_bakery_2100.story
  • Feedback to the UI designer, test steps creator and the scenario creator about what they have missed.

You can always run your scenario by right-clicking on CloudBakery2100Stories.java and selecting “Run As” → “JUnit Test”.

c) Enjoy creating another scenario of your choice

By now you should be excited about the power of these tools. Create another meaningful scenario for our “cloud BAKERY 2100” that either succeeds or is a substantial contribution to the requirements or both. (10 sentences at least.)


Screenshot and Footnotes

1) Geo-tracking and communication system for rescue teams
2) Tracking the mining opportunities in Zambia
3) Online platform for sharing travel plans and report
4) We named this section “Pseudo Requirements”, but most of these requirements are real. E.g. how the system needs to be operated is a question that always needs to be answered.
5) Remember the elements of the checklist for use case descriptions!
6) You already installed an eclipse plug-in during the SVN Setup. Now you follow the same process but need to add the new URLs manually. 1) Got to: Help → Install New Software… 2) Add a new site 3) Then you can install the plug-in
7) You may want to add https://svn.iai.uni-bonn.de/repos/IAI_Software/se/oosc2015/samplesolutions/ as another SVN repository location from the SVN perspective
9) Run de.unibonn.oosc.CloudBakery2100.java to see what you have got.
11) Hold Ctrl and click on of the lines to get to CloudBakery2100Steps.java.
Last modified: 2017/08/31 03:29
 
*