SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Assignment 03: Requirements Elicitation

Release date: Wednesday, 22.04.14 - Due date: Sunday, 27.04.14, 23:59


Task 08: Usage Scenarios and Use Cases

11 points

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: Banker Bart wants to buy 10 bread rolls.

Scenarios: Student Sharon 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.


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

9 points

As we are developing our mobile app for ordering baked goods, we need to care as well for Non-Functional requirements.

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 Requirements1)
    • 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 10: Executable Scenarios

12 = 3+6+3 Points

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”.5)6)
  2. The scenarios from Task 08.
  3. Two little executable scenarios in cloud_bakery_2100.story.7)
  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 “Sharon 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 “Sharon 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)
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.
2)
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.
3)
You may want to add https://svn.iai.uni-bonn.de/repos/IAI_Software/se/oosc2014/samplesolutions/ as another SVN repository location from the SVN perspective
5)
Run de.unibonn.oosc.CloudBakery2100.java to see what you have got.
7)
Hold Ctrl and click on of the lines to get to CloudBakery2100Steps.java.
teaching/lectures/oosc/2014/assignment_03.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2020