Requirements Engineering Practicum Describing the practical exercises with illustrations By: Maurice ter Beek, Slinger Jansen, and Tom Groentjes.

Slides:



Advertisements
Verwante presentaties
Let me tell you about... (De Voltooid Tegenwoordige Tijd)
Advertisements

The stock market will go up De beurswaarden zullen stijgen YESNO JA NEEN Is Jefken a good person ? Is Jefken een goed mens ? YES NO JA NEEN Is Lonny a.
Als ik kon zijn waar jij bent If I could be where you are
CO2, 1 april CO2, April 1 CO2 uitstoot door; CO2 emissions;
Deltion College Engels C1 Spreken [Edu/003] thema “Oprah at Deltion” can-do : kan duidelijke, gedetailleerde beschrijving geven van complexe onderwerpen,
Order placed Should be Nederland Netherlands can be removed here, just Scancorner Instead of ‘undefined’ -> ‘geen’ New logo should be displayed here. COUNTS.
Requirements -People are able to make their own memorial page, called a memori -The website will be build first in Dutch for extension.nl, then copied.
Een alternatief voorstel Naar aanleiding van bestudering van de IAASB voorstellen denkt de NBA na over een alternatief. Dit alternatief zal 26 september.
Social Technographics Hoe ontwikkel je een succesvolle social media strategie? Reineke Reitsma Director, Consumer Technographics Forrester Research 11.
Deltion College Engels C1 Gesprekken voeren [Edu/002]/ subvaardigheid lezen thema: Order, order…. can-do : kan een bijeenkomst voorzitten © Anne Beeker.
Conditional Clauses If-zinnen.
ETHOS PROJECT: PROGRESS Follow-up & feedback end of year 1.
Thursday, 10 July 2014 donderdag 10 juli 2014 Click Klik.
Vaardig? Een spectrum aan vaardigheden! Van informatie- naar media- naar exploratievaardig? Of e-Research & e-learning literate? Collaboration literate??
Accessible Instructional Materials. § Discussion: Timely access to appropriate and accessible instructional materials is an inherent component.
RHODODENDRON.
© 2004 IBM Corporation Guts Wissema, OpenSource & Linux Sales, IBM Open Document Format.
zaterdag 19 juli 2014 Saturday, 19 July 2014 I see what you don’t see I come from another galaxy My earthal life was not the intention I was meant.
Beyond Big Grid – Amsterdam 26 september 2012 Enquette 77 ingevulde enquettes, waarvan 60 met gebruikservaring = Mainly Computer Science.
Macbeth Quotes.
PROJECTCOMPETENCE MANAGEMENT SCREENCompetenciesEdit1 DESCRIPTIONCompetencies in the “Competentie beheer” is a link to the editwizard for competencies.
SCENARIO BASED PRODUCT DESIGN
SQL injections en meer... PERU. web application vulnerabilities Cross Site Scripting (21.5%) SQL Injection (14%) PHP includes (9.5%) Buffer overflows.
ONREGELMATIGE WERKWOORDEN
Woensdag 23 juli 2014 volgende vorige algemeen ziekenhuis Sint-Jozef Malle Dementia pathway: a condition specific approach Patrick De Wit, MD Thierry Laporta,
Applets as didactical tools for the learning of algebra
“Drawing your Mobility Map” (cf. A. Gohard-Radenkovic) Meertalige competencies & interculturele mediation Utrecht 2010 M-C. Kok Escalle.
en ‘If-zinnen’ (klik hier als je meteen naar If-zinnen wilt.)
In samenwerking met het Europees Sociaal Fonds en het Hefboomkrediet The role of APEL in career coaching and competence management Competence navigation.
LokWeb and LWB 7 maart 2006 by Maarten and Hilverd.
Creatieve workshop Wiki: Scroll naar beneden: docentenpagina: Pia Terstroet.
De Zegen in het Lijden. Oh, what I would do to have the kind of faith it takes, to climb out of this boat I'm in onto the crashing waves Ik zou alles.
Copyright met toestemming gebruikt van Stichting Licentie © 1994 Shepherd's Heart Music 1/12 JOY! JOY TO THE WORLD (Dennis L. Jernigan) 1. And this is.
Sunday, 03 August 2014 zondag 3 augustus 2014 Click Klik.
Instructions and warnings. Instructions Om in het Engels een instructie te maken gebruikt men, net als in het Nederlands de Gebiedende Wijs.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Universal Modeling Language … why you need models? Models are necessary to communicate,
Tussentoets Digitale Techniek. 1 november 2001, 11:00 tot 13:00 uur. Opmerkingen: 1. Als u een gemiddeld huiswerkcijfer hebt gehaald van zes (6) of hoger,
From computer power and human reason. Joseph Weizenbaum.
F REE R IDING IN P ROJECTS Recognize it today, Deal with it tomorrow, Prevent it in the next project Toine Andernach Focus Centre of Expertise on Education,
Organizing Organization is the deployment of resources to achieve strategic goals. It is reflected in Division of labor into specific departments & jobs.
Deltion College Engels B1 Gesprek voeren [Edu/001]
Deltion College Engels C1 Schrijven [Edu/002] thema: CV and letter of application can-do : kan complexe zakelijke teksten schrijven © Anne Beeker Alle.
Deltion College Engels B1 Gesprekken voeren [Edu/005] thema: applying for a job can-do : kan een eenvoudig sollicitatiegesprek voeren © Anne Beeker Alle.
Deltion College Engels B1 Gesprekken voeren [Edu/007] theme: Can I have my money back… can-do : kan minder routinematige situaties aan © Anne Beeker Alle.
Deltion College Engels C1 Gesprekken voeren [Edu/004]/ thema: There are lies, damned lies and statistics... can-do : kan complexe informatie en adviezen.
Deltion College Engels B2 Schrijven [Edu/004] thema: (No) skeleton in the cupboard can-do: kan een samenhangend verhaal schrijven © Anne Beeker Alle rechten.
Deltion College Engels C1 Luisteren [Edu/001] thema: It’s on tv can-do : kan zonder al te veel inspanning tv-programma’s begrijpen.
Deltion College Engels B2 Gesprekken voeren [Edu/006]/subvaardigheid schrijven notulen en kort voorstel thema: ‘What shall we do about non- active group.
Deltion College Engels B1 En Spreken/Presentaties [Edu/007] Thema: Soap(s) can-do : kan met enig detail verslag doen van ervaringen, in dit geval, rapporteren.
Deltion College Engels En Projectopdracht [Edu/001] thema: research without borders can-do/gesprekken voeren : 1. kan eenvoudige feitelijke informatie.
Deltion College Engels C1 En Gesprekken voeren[Edu/003]/ Subvaardigheid lezen thema: Would you be prepared to cut off your arm… can-do : kan overtuigend.
Deltion College Engels C1 Spreken/Presentaties [Edu/006] thema ‘I hope to convince you of… ‘ can-do : kan een standpunt uiteenzetten voor een publiek van.
Deltion College Engels B1 Schrijven [Edu/004]/ subvaardigheid lezen thema: reporting a theft can-do : kan formulieren waarin meer informatie gevraagd wordt,
Deltion College Engels C1 Gesprekken voeren [Edu/006] thema: ‘I was wondering what you think of…’ can-do : kan deelnemen aan de conversatie bij zeer formele.
Writing exercise This one goes into your language portfolio!!! You have until the end of the week to hand it in… (So you have a little longer than it says.
Telecommunicatie en Informatieverwerking UNIVERSITEIT GENT Didactisch materiaal bij de cursus Academiejaar
Woorden als or, and, but, when, because, so en since gebruiken we om twee zinsdelen te koppelen. Voorbeeld in het Nederlands: De dvd was erg duur maar.
All right 1thv unit 7 gr 2.1 en 2.2.
Rational Unified Process RUP Jef Bergsma. Iterations –Inception –Elaboration –Construction –Transition De kernbegrippen (Phases)
Ted Nelson (1937- ) A file structure for the Complex, the changing, and the Interdeterminate.
EML en IMS Learning Design
Link Popularity Het principe van linkpopulariteit kun je als volgt samenvatten: hoe meer webpagina's er naar een bepaalde webpagina linken, des te belangrijker.
Het geheim van Linked Data Marcel ReuversGeonovum CB-NL 20 november 2014.
Deltion College Engels B1 Gesprekken voeren [Edu/006] thema: Look, it says ‘No smoking’… can-do : kan minder routinematige zaken regelen © Anne Beeker.
Nothing Is As It Seems Lesson 7 What’s the Story?.
Deltion College Engels B1 Spreken [Edu/001] thema: song texts can-do : kan een onderwerp dat mij interesseert op een redelijk vlotte manier beschrijven.
The Research Process: the first steps to start your reseach project. Graduation Preparation
[Description – 160 Characters] [Location]  [Website]
The student will be able to:
This title must precisely present your idea
Transcript van de presentatie:

Requirements Engineering Practicum Describing the practical exercises with illustrations By: Maurice ter Beek, Slinger Jansen, and Tom Groentjes

Outline Three assignments – Requirements Scenarios (33%) – Testing Requirements with Formal Descriptions (33%) – Testing Requirements with Behavioral Descriptions (33%) All will be graded All can be done in teams of two (but team needs to stay a team) This presentation is the most detailed description of the practicum

P1: Requirements Scenarios

its

Use of Diagrams Sequence diagrams Activity diagrams Use case diagrams

Requirements Scenarios Aim: Familiarize students with different scenario types and formulations. Pick an example feature request from here: DZkWjlfZ1l5NW9kbXozZ1huTENoRGc#gid=0 DZkWjlfZ1l5NW9kbXozZ1huTENoRGc#gid=0 And write scenarios for it: Current-state and desired state scenarios, positive and negative scenarios, misuse scenarios, descriptive, exploratory, and explanatory scenarios, instance and type scenarios, system-internal scenarios, interaction scenarios, context scenarios, and exception scenarios. Scenarios need not overlap or be related, although a sufficient understanding needs to be shown of the application.

Scenarios: Grading Scenario correctness (50%) Creativity (15%) Presentation (20%) Language (15%)

P2: Formal Specification

Formal Specification Aim: Familiarize students with formal requirements specification without “implementation clutter” Use VDM++ to expand the reduced VDM++ Alarms example for a chemical factory Deliver the UML, the code, and tests Requirements are changed, removed, and added

Formal Specification: VDM++ See this document for a tutorial: OvertureV1.pdf OvertureV1.pdf Install Eclipse Install the VDM++ plugin for Eclipse: Get a copy of the alarms example from the tutorial document mentioned in the first bullet See if the test is running (define entry point) Details on the VDM++ language can be found here: nV2.pdf nV2.pdf

Formal Specification: Alarms R1. A computer-based system is to be developed to manage the alarms of this plant. R2. Four kinds of qualifications are needed to cope with the alarms: electrical, mechanical, biological, and chemical. R3. There must be experts on duty during all periods allocated in the system. R4. Each expert can have a list of qualifications. R5. Each alarm reported to the system has a qualification associated with it along with a description of the alarm that can be understood by the expert. R6. Whenever an alarm is received by the system an expert with the right qualification should be found so that he or she can be paged. R7. The experts should be able to use the system database to check when they will be on duty. R8. It must be possible to assess the number of experts on duty.

Formal Specification: New Requirements R9. Please introduce another expert: The Requirements Engineer. R10. Some experts are interested in becoming an expert in one other area as well. If they are, they should be paged also. R11. There is a new alarm class that is basically a call to all available experts. R12. If an expert has more than two expertises, she is more expensive to page. These experts should only be paged when no other experts are available. In case of a Meltdown, these should be called first. R13. Experts can cancel an alarm after reaching the scene, to reduce the number of experts coming. R14. Experts need a car to get to the location of the mishap. If there are no cars available an exception request needs to be sent to factory management. R15. Cars can hold a maximum of 2 experts. R13. Experts that have two similar expertises should never be in the same car together.

Formal Specification: Grading Please add comments to your own code. Write some of your own tests. We will create several tests to confirm your code is working correctly. Here are some examples to get you started.

Formal Specification: Grading Correctly working: 60% Comments: 20% Your own tests: 20%

Formal Specification: some tests Some tests can already be found here.found here Deze test doen basale functie checks namelijk: – checken welke expert gepaged moet worden bij een specifiek alarm in een specifieke tijdsspanne – checken hoeveel experts aan het werk zijn in een specifieke periode – list all experts – check in welke perioden een expert aan het werk is Heb verder 9 soorten alarmen, 1 meltdown, 20 experts, 27 tijdsspannes, en 1 plant. (met dank aan Tom)

Some Important Remarks (1) Overloaden van constructors/functies werkt niet (had aparte constructor gemaakt die alarm meltdown aanriep en daar kreeg ik geen errors bij totdat ik het programma ging draaien) -Comments worden geschreven door de regel te starten met -- -De examples die ze moeten hebben zijn niet makkelijk te vinden in de link van de slides maar kunnen beter gehaald worden van hier. Anders hebben ze grote kans dat ze de AlarmErrPP en Alarm++tracesPP niet in de examples hebben zitten.hier (credits go to Tom)

Remarks (2) Verder vroeg ik mij af of het de bedoeling is dat ze zelf Experts aanmaken (en dus zelf kunnen kiezen welke expertise deze hebben) of dat ze die van ons krijgen. Het zelfde geld voor de de timeschedules en de soorten alarmen. Wat betreft de naming conventies denk ik dat we makkelijk kunnen zeggen dat we alles in het engels willen waarbij classes met een hoofdletter beginnen. Zover ik het nu zie zijn de waardes die in mijn tests gebruikt gaan worden effectief alleen de classnaming waarvan het grootste deel al bestaat (Plant, Alarm, Expert,Period,Meltdown,Car)

Remarks (3) Verder heb ik gezien dat UML diagrammen uit EA ingeladen kunnen worden, en waarschijnlijk gaat daarmee het implementeren van de systemen makkelijker (diagrammen maken is makkelijker dan VDM++ coden), echter EA is geen freeware, dus ik denk niet dat veel studenten die weg zullen bewandelen.

P3: Behavioral Descriptions

Behavioral Descriptions Aim: Get students familiarized with behavioral descriptions and behavior driven development. Install Ruby, Cucumber, and Selenium.

Behavioral Descriptions Write Cucumber tests for a complex feature of a current web site, such as: – Moneybird’s invoice creation and deletion feature – GitHub’s ticketing features – Facebook’s picture upload feature – Lighthouse’s ticketing feature – … Or us if you have a better idea!

Write Behavioral Tests At least 10 tests for a common web app Make sure one of them fails and explain why (you probably want the behavior of the app to be different) Give a half page description for each test Provide instructions if necessary (other gems needed?), it should be VERY easy for us to run your tests

Install Ruby & Rails See

Install Cucumber Voeg cucumber toe aan de Gemfile: gem “cucumber-rails”, :group => :test gem “database_cleaner”, :group => :test Installeer via bundler en initialiseren: $ bundler install $ rails generate cucumber:install

Eerste Setup Een simpele resource om mee te testen: rails g scaffold user \ name:string string password:string Voeg validatie toe: class User < ActiveRecord::Base attr_accessible : , :name, :password, :password_confirmation validates_presence_of :name, : , :password validates_confirmation_of :password end (Please note: this is only to test a local rails app, not for testing an external app with Selenium)

Create Test File Maak een nieuw bestand aan: $ vi features/users.feature

Test Feature: Sign up As an unauthorized user I want to sign up So that a new account is created Scenario: Given I am on the signup page When I fill in “Name” with “Test User” And I fill in " " with And I fill in "Password" with "secret" And I fill in "Password confirmation" with "secret" And I press “Create User” Then the Show User page should be shown And I should see “User was successfully created” And a user with name “Test User” should be registered

Execute tests Voer nu de test uit: $ bundle exec cucumber Het resultaat:... Undefined step: "I am on the signup page" (Cucumber::Undefined)... You can implement step definitions for undefined steps with these snippets: Given /^I am on the signup page$/ do pending # express the regexp above with code end Cucumber weet nog niet wat onze test betekent!

Instruct Cucumber Om de tests uit te kunnen voeren moeten we Cucumber vertellen wat onze stappen betekenen: $ vi features/step_definitions/user_steps.rb 3 standaard keywords: “Given”: Given /^I am on the signup page$/ do visit new_user_url end “When” When /^I press "(.*?)"$/ do |button_name| click_button button_name end “Then” Then /^I should see "(.*?)"$/ do |content| assert page.has_content?(content) end

Instructions for the Example Alle definities voor onze test: Given /^I am on the signup page$/ do visit new_user_url end When /^I fill in "(.*?)" with "(.*?)"$/ do |field, value| fill_in field, :with => value end When /^I press "(.*?)"$/ do |button_name| click_button button_name end Then /^I should see "(.*?)"$/ do |content| assert page.has_content?(content) end Then /^a user with name "(.*?)" should be registered$/ do |username| assert User.find_by_name(username) != nil end

Execute test again Voer de test opnieuw uit: $ bundle exec cucumber Using the default profile... Feature: Sign up As an unauthorized user I want to sign up So that a new account is created Scenario: Proper signup Given I am on the signup page When I fill in "Name" with "Test User" And I fill in " " with And I fill in "user_password" with "secret" And I fill in "user_password_confirmation" with "secret" And I press "Create User" Then I should see "User was successfully created" And a user with name "Test User" should be registered 1 scenario (1 passed), 8 steps (8 passed), 0m0.436s

Deeper Testing Meerdere velden met de zelfde naam? Scope met #within: within("#new_user") do fill_in ' ', :with => fill_in 'Password', :with => 'password' end Ambiguiteit? Als meerdere velden soortgelijke namen hebben kunnen ok ID of CLASS tags gebruikt worden fill_in 'password', :with => 'foo' fill_in 'password_confirmation', :with => 'foo' Meer informatie over selectors op de Capybara github:

Aanrader: gebruik deze frameworks Standaard gebruikt Cucumber Test::Unit, de Rails default. Maar is compatible met andere test frameworks zoals RSpec. Voeg de gewenste gems toe aan de Gemfile: gem 'rspec-rails', :group => :test Daarna kun je de rspec matchers gebruiken: Test::Unit: assert page.has_content?(content) RSpec: page.should have_content(content)

Now For Selenium Cucumber heeft ingebouwde hooks voor testen met Selenium. Deze hoeft alleen aan de Gemfile te worden toegevoegd: gem 'selenium-webdriver' Vervolgens vertellen we Cucumber dat we via de Selenium webdriver willen testen, edit Scenario: Proper signup Given I am on the signup page When I fill in "Name" with "Test User"...

Selenium Needs to Connect Start net als eerder de cucumber tests in jouw environment: $ bundle exec cucumber Cucumber zal automatisch via de Selenium webdriver jouw browser starten en de tests uitvoeren. Let op dat Selenium een server nodig heeft om mee te verbinden, voor lokale developent kun je je rails app server starten met `rails s` in de console.

Funny… don-t-use-cucumber

Grading: One half point per test, including description. (so 5 points in total) Overall impression (comments, completeness, coverage is worth 4 points) Bringing us to 9 points

Hand it in By sending an with attachments and perhaps some instructions to by the deadlines (although dropbox seems to be in place)