Software requirements



Vergelijkbare documenten
Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

General info on using shopping carts with Ingenico epayments

Hoe met Windows 8 te verbinden met NDI Remote Office (NDIRO) How to connect With Windows 8 to NDI Remote Office (NDIRO

Handleiding Digipass DP310

MyDHL+ Van Non-Corporate naar Corporate

Interaction Design for the Semantic Web

Bijlage 2: Informatie met betrekking tot goede praktijkvoorbeelden in Londen, het Verenigd Koninkrijk en Queensland

MyDHL+ Uw accountnummer(s) delen

Socio-technisch systemen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 2 Slide 1

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010

Besluitenlijst CCvD HACCP/ List of decisions National Board of Experts HACCP

Add the standing fingers to get the tens and multiply the closed fingers to get the units.

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published

B1 Woordkennis: Spelling

MyDHL+ ProView activeren in MyDHL+

Introductie in flowcharts

The genesis of the game is unclear. Possibly, dominoes originates from China and the stones were brought here by Marco Polo, but this is uncertain.

liniled Cast Joint liniled Gietmof liniled Castjoint

This appendix lists all the messages that the DRS may send to a registrant's administrative contact.

Engels op Niveau A2 Workshops Woordkennis 1

De modellen die hiervoor gebruikt zijn zijn: Class diagrams; object diagrams; use case diagrams.

Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information

CTI SUITE TSP DETAILS

Ontpopping. ORGACOM Thuis in het Museum

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

OUTDOOR HD DOME IP CAMERA PRODUCT MANUAL GB - NL

Interface tussen Stuurbediening en Sony autoaudio

Handleiding Installatie ADS

HANDLEIDING VOOR HET GEBRUIK VAN UW INTERNET BANKIEREN (IB)-PASS

Genetic code. Assignment

Model Driven Software Development: Geen toekomst maar realiteit. 4 juni 2009, WTC, Amsterdam.

Classification of triangles

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right.

Wat is Interaction Design?

L.Net s88sd16-n aansluitingen en programmering.

MyDHL+ Tarief berekenen

Stap 1: Registreer via de link op de G-schijf beschikbaar na inloggen met de teken-account, verzend via Submit. Nadien krijg je een bevestiging op

Hoe te verbinden met NDI Remote Office (NDIRO): Apple OS X How to connect to NDI Remote Office (NDIRO): Apple OS X

Architecten-debat 21 juni 2006 PI GvIB Themamiddag. Renato Kuiper. Principal Consultant Information Security

ICARUS Illumina E653BK on Windows 8 (upgraded) how to install USB drivers

Ontwerp. <naam applicatie>

DECLARATION FOR GAD approval

L.Net s88sd16-n aansluitingen en programmering.

i(i + 1) = xy + y = x + 1, y(1) = 2.

Handleiding beheer lijst.hva.nl. See page 11 for Instruction in English

Four-card problem. Input

Business Opening. Very formal, recipient has a special title that must be used in place of their name


OUTDOOR HD BULLET IP CAMERA PRODUCT MANUAL

Opleiding PECB ISO 9001 Quality Manager.

Ervaringen met begeleiding FTA cursus Deployment of Free Software Systems

UML is een visuele taal om processen, software en systemen te kunnen modeleren.

Contents. Introduction Problem Definition The Application Co-operation operation and User friendliness Design Implementation

The first line of the input contains an integer $t \in \mathbb{n}$. This is followed by $t$ lines of text. This text consists of:

Daylight saving time. Assignment

Cambridge International Examinations Cambridge International General Certificate of Secondary Education

Het idee van reisadviezen uit de Kaartautomaat

ETS 4.1 Beveiliging & ETS app concept

After that, the digits are written after each other: first the row numbers, followed by the column numbers.

open standaard hypertext markup language internetprotocol transmission control protocol internet relay chat office open xml

Notitie : In de grond gevormde palen met grondverwijdering

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

TOEGANG VOOR NL / ENTRANCE FOR DUTCH : lator=c&camp=24759

EM7680 Firmware Update by OTA

Lijnenspel. Remco van Groesen ( ) & Ellen Houbiers ( )

GOVERNMENT NOTICE. STAATSKOERANT, 18 AUGUSTUS 2017 No NATIONAL TREASURY. National Treasury/ Nasionale Tesourie NO AUGUST

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14

AMPLI B.V.B.A. Afdeling HEFWERKTUIGEN: driemaandelijkse en twaalfmaandelijkse controle van hefwerktuigen volgens art.281 v/h ARAB

Puzzel OVCP - Wal. Beste medewerker,

HANDLEIDING VOOR HET GEBRUIK VAN UW INTERNETBANKIEREN (IB)-PASS

HANDLEIDING VOOR HET GEBRUIK VAN UW INTERNET BANKIEREN (IB)-PASS

Multi user Setup. Firebird database op een windows (server)

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours.

Travel Survey Questionnaires

LONDEN MET 21 GEVARIEERDE STADSWANDELINGEN 480 PAGINAS WAARDEVOLE INFORMATIE RUIM 300 FOTOS KAARTEN EN PLATTEGRONDEN

Shipment Centre EU Quick Print Client handleiding [NL]

Vergaderen in het Engels

Continuous testing in DevOps met Test Automation

Handleiding Zuludesk Parent

Leeftijdcheck (NL) Age Check (EN)

Reisde u met een papieren kaartje?

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren

Maillijsten voor medewerkers van de Universiteit van Amsterdam

Voorbeelden van machtigingsformulieren Nederlands Engels. Examples of authorisation forms (mandates) Dutch English. Juli 2012 Versie 2.

3e Mirror meeting pren April :00 Session T, NVvA Symposium

Calculator spelling. Assignment

Systeem modellen. Topics covered

VALUE ENGINEERING: THE H E G A G ME! E

Preschool Kindergarten

The training courses are only offered in Dutch.

Nieuwsbrief NRGD. Editie 11 Newsletter NRGD. Edition 11. pagina 1 van 5.

Travel Getting Around

OPEN TRAINING. Onderhandelingen met leveranciers voor aankopers. Zeker stellen dat je goed voorbereid aan de onderhandelingstafel komt.

2019 SUNEXCHANGE USER GUIDE LAST UPDATED

Group work to study a new subject.

PRESTATIEVERKLARING. DoP: voor fischer RM II (Lijm anker voor gebruik in beton) NL

Transcriptie:

Hoofdstuk 6 Software requirements I N T R O D U C T I E Belangrijk in dit hoofdstuk is het onderscheid tussen functionele en nietfunctionele eisen, en ook het onderscheid tussen gebruikerseisen (user requirements) en systeemeisen (system requirements). Functionele eisen beschrijven de diensten die het systeem aan de gebruiker levert. Niet-functionele eisen zijn randvoorwaarden daaraan, zoals snelheid en betrouwbaarheid. Gebruikerseisen beschrijven welke diensten het systeem de gebruiker verstrekt en aan welke randvoorwaarden het moet voldoen. Deze moeten volledig zijn, maar niet al te gedetailleerd. Ze moeten ook voor niet-technici goed te begrijpen zijn. Ze worden geformuleerd in (eventueel gestructureerde) natuurlijke taal, aangevuld met figuren en diagrammen. Systeemeisen zijn een gedetailleerde uitwerking van de gebruikerseisen. Deze moeten volledig zijn en geen ruimte laten voor misverstanden. Ze worden opgesteld in gestructureerde natuurlijke taal, in een speciale specificatietaal of grafische notatie, of met behulp van een wiskundig formalisme. Een specificatietaal kan ook een wiskundig formalisme zijn. LEERDOELEN Na het bestuderen van dit hoofdstuk wordt verwacht dat u het verschil weet tussen functionele en niet-functionele eisen weet wat domeineisen zijn en hoe die zich verhouden tot functionele en niet-functionele eisen drie soorten niet-functionele eisen kunt noemen en van elke soort ten minste twee voorbeelden kunt geven in een gegeven specificatie functionele en niet-functionele eisen kunt onderscheiden het verschil weet tussen gebruikerseisen, systeemeisen en een ontwerpspecificatie onvolledigheden, dubbelzinnigheden en tegenstrijdigheden herkent in een eenvoudige specificatie in (semi-)natuurlijke taal gebruikerseisen voor een eenvoudig systeem kunt opstellen in gestructureerde natuurlijke taal kunt uitleggen wat wordt verstaan onder specificatie van de benodigde interfaces, en drie typen van deze interfaces kunt noemen weet uit welke onderdelen een specificatiedocument bestaat. OUN 49

Software engineering L E E R K E R N 6.1 Functional and non-functional requirements Domeineisen (domain requirements) worden in paragraaf 6.1.3 (bladzijde 125) besproken. Het gaat hier om extern opgelegde eisen, die voor de gebruiker van het systeem niet direct van belang zijn. De opsomming in het begin van paragraaf 6.1 is ongelukkig, omdat deze wederzijdse uitsluiting suggereert, terwijl domeineisen zowel functioneel als niet-functioneel kunnen zijn. 6.1.2 NON-FUNCTIONAL REQUIREMENTS bladzijde 122 Usability Portability Interoperability Figure 6.3 bevat termen die mogelijk onbekend zijn. Usability is gebruiksvriendelijkheid. Het gaat daarbij bijvoorbeeld om de tijd die het kost om met het systeem om te leren gaan, om hoe goed het gebruikersfouten opvangt en hoe makkelijk het aan te passen is aan de stijl van werken van een individuele gebruiker. Portability is overdraagbaarheid. Een systeem is overdraagbaar wanneer het in verschillende omgevingen kan draaien, dus bijvoorbeeld onder verschillende bedrijfssystemen of op verschillende soorten hardware. Interoperability duidt aan in hoeverre een systeem kan samenwerken met andere systemen. Voorbeelden zijn de mogelijkheid om in een tekstverwerker illustraties te importeren die met een ander pakket gemaakt zijn, of in een programmeertaal code (bijvoorbeeld procedures of klassen) te gebruiken die in een andere taal zijn geschreven. Een bekend voorbeeld van software waaraan om juridische redenen een externe (domein)eis werd gesteld, is LimeWire. Met dit programma kunnen gebruikers muziekbestanden van elkaar kopiëren. De voorganger Napster gebruikte een centrale server om te registreren welke bestanden op een bepaald moment beschikbaar waren; deze centrale registratie werd in een reeks processen voor de meeste muziek onwettig verklaard. De opvolger moest dus zo worden ontworpen dat ook die registratie decentraal verliep. Over de ethische kant hiervan is natuurlijk ook veel te zeggen (en ook veel gezegd). De precieze betekenis van de maatstaven voor betrouwbaarheid uit figure 6.6 vindt u op bladzijde 209 van het tekstboek (figure 9.10). 6.1.3 DOMAIN REQUIREMENTS bladzijden 125-126 Welke (functionele of niet-functionele) eisen nu precies domeineisen genoemd kunnen worden, ligt niet eenduidig vast. We noemden hiervoor al het voorbeeld van LimeWire; de afwezigheid van een centrale server is duidelijk een domeineis. Het voorgeschreven gebruik van een programmeertaal door de klant, omdat die taal standaard is binnen de eigen organisatie is geen domeineis maar een niet-functionele implementatie-eis. Een domeineis geldt dus voor het hele domein, niet voor een enkel bedrijf of project in het domein. 50 OUN

Hoofdstuk 6 Software requirements Het voorbeeld uit figure 6.7 is echter minder duidelijk. Volgens Sommerville is dit een domeineis, maar met even veel recht is deze berekeningswijze helemaal geen eis te noemen, maar gewoon een definitie van de term vertraging. Iedere domeinspecifieke applicatie heeft een lijst van termen met hun betekenissen binnen dat domein. OPGAVE 6.1 Maak exercise 6.3 uit het tekstboek. Het personal identification number is de pincode van de pas. 6.2 User requirements OPGAVE 6.2 Waarom pleit Sommerville voor het gebruik van natuurlijke taal bij user requirements terwijl daar toch zoveel bezwaren aan kleven? bladzijde 128 punt 2 Sommerville noemt de eis dat de maatgeving voor een rooster zowel in centimeters als in inches getoond kan worden, een niet-functionele eis. Dat is onterecht. Het is weliswaar een detail dat mogelijk niet thuis hoort in de gebruikerseisen, maar het betreft een aspect van een geboden dienst en is dus wel degelijk een functionele eis. OPGAVE 6.3 Maak exercise 6.4 uit het tekstboek. 6.3 System requirements OPGAVE 6.4 Wat is de dubbelzinnigheid in Shoes must be worn; dogs must be carried? Z E L F T O E T S 1 Leg uit wat het verschil is tussen gebruikerseisen en systeemeisen. 2 Maak exercise 6.7 uit het tekstboek. 3 Een bedrijf ontwikkelt een nieuw soort polshorloge, dat ook bij de overgang van een tijdzone de juiste tijd blijft aangeven. Enkele eisen aan dit systeem zijn de volgende. 1 Het horloge past de getoonde tijd en datum zelf aan bij het overschrijden van tijdzones en zo nodig ook bij het overschrijden van landsgrenzen (in verband met eventueel hanteren van een verschil tussen zomer- en wintertijd). 2 De nauwkeurigheid van de plaatsbepaling is dezelfde als die van GPS, namelijk met een mogelijke afwijking van ongeveer 30 meter. 3 Het horloge maakt gebruik van GPS om vast te stellen waar het zich bevindt. 4 Het beschikt zelf over de nodige gegevens om deze positie om te zetten in een tijdzone. OUN 51

Software engineering 5 Het horloge heeft een levensduur van ongeveer vijf jaar. 6 De benodigde software wordt ontwikkeld in Java, in overeenstemming met bedrijfspolitiek. a Welke van deze eisen zijn functioneel en welke zijn niet-functioneel? b Van welk type zijn de niet-functionele eisen? 4 a Wat wordt in dit hoofdstuk verstaan onder specificatie van de benodigde interfaces? b Welke drie soorten van dergelijke interfaces kent u? c Bij het schrijven van Java-programma s maakt u veelvuldig gebruik van bestaande klassen. Van welk type zijn de interfaces van deze bestaande componenten en hoe zijn ze gedefinieerd? 5 a Welke partijen die betrokken zijn bij de ontwikkeling van software, gebruiken het eisendocument en voor welk doel? b Noem tenminste zes onderdelen van een dergelijk document. 52 OUN

Hoofdstuk 6 Software requirements T E R U G K O P P E L I N G 1 Uitwerking van de opgaven 6.1 Solution 6.3 Ambiguities and omissions include: Can a customer buy several tickets for the same destination together or must they be bought one at a time? Can customers cancel a request if a mistake has been made? How should the system respond if an invalid card is input? What happens if customers try to put their card in before selecting a destination (as they would in ATM machines)? Must the user press the start button again if they wish to buy another ticket to a different destination? Should the system only sell tickets between the station where the machine is situated and direct connections or should it include all possible destinations? Als we uitgaan van de Nederlandse situatie, is er in elk geval nog één onduidelijkheid, namelijk welke kaartsoorten er gekocht kunnen worden (alleen enkele reis en retour, of ook railrunners, fietskaarten, weekendretours en dergelijke; alleen tweede klas of ook eerste klas, met of zonder korting). 6.2 Gebruikerseisen zijn onder meer bedoeld voor eindgebruikers en managers van de klantorganisatie. Daarvan kan niet verwacht worden dat ze een formele specificatie kunnen lezen. 6.3 Een mogelijke uitwerking is de volgende (deze specificatie is gebaseerd op de werking van de NS-kaartautomaten met touch-screen). Op de website van de NS vinden we (2008) de volgende informatie voor reizigers: Uitleg bij de kaartautomaat met aanraakscherm Door het volgen van onderstaande stappen, bemachtigt u binnen een minuut een kaartje bij de snelle kaartautomaat met aanraakscherm. Hieronder vindt u een korte uitleg over het gebruik van de kaartautomaat met aanraakscherm. U maakt uw keuze door de bestemming of kaartsoort op het scherm aan te raken. In 3 stappen heeft u de beschikking over het door u gewenste kaartje: 1. Raak uw keuze op het scherm aan. 2. Voer PINpas of Chipknip in 3. Pak kaartje / kaartjes uit bakje. Nader uitgewerkt: 1. U kiest voor Enkele reis, Dagretour, 5-Retourkaart, Weekendretour of Railrunner. Als u opteert voor Overige kaartjes (linksonder in de hoek) verschijnen de kaartsoorten: Dagkaarten, Treintaxi, Maandkaarten, ICE Toeslag en Overgangsbewijzen 2-1 op uw scherm. U kunt ook een kaartje kopen bij deze kaartautomaat naar populaire bestemmingen in België / Luxemburg / Frankrijk en Duitsland. OUN 53

Software engineering Voor de kaartsoorten Enkele reis, Dagretour, Weekendretour, 5-Retourkaart en Maandtrajectkaarten geldt dat u onderstaande stappen dient te doorlopen. 2. Raak de eerste letter aan van uw bestemming en kies nog een tweede letter als dit wordt aangegeven. 3. Kies uw bestemming door deze aan te raken op het scherm. 4. Maak een keuze uit eerste of tweede klas (met uitzondering van Jeugdmaandtrajectkaart ) 5. Kies Vol tarief of Met korting (met uitzondering van Maandtrajectkaarten ) 6. Kies reisdatum (vandaag of zonder datum). 7. Kies hoeveel kaartjes u wilt (met een maximum van vier kaartjes - met uitzondering van Maandkaarten ). 8. Kies hoe u wilt betalen (snel en veilig met PINpas of Chipknip). 9. Voer uw betaalpas in een volg de instructies op het betaalschermpje. 10. Neem uw kaartje(s) uit het bakje. Heeft u op het scherm gekozen voor de kaartsoort Dagkaart fiets, Dagkaart hond, ICE Toeslag, Railrunner of Treintaxi dan doorloopt u de stappen: 6 tot en met 10. Heeft u op het scherm gekozen voor de kaartsoort Overgangsbewijzen 2-1 : - keuzedag 60+, dan doorloopt u de stappen: 7 tot en met 10 - dagkaart, dan doorloopt u de stappen: 5 tot en met 10 - enkele reis of retour, dan doorloopt u de stappen: 2 tot en met 10 Heeft u op het scherm gekozen voor één van de overige Dagkaarten dan doorloopt u de stappen: 4 tot en met 10. (Bron: http://www.ns.nl, 2008) Uitwerking van de specificatie: 1 Kaartautomaat voor de spoorwegen 1.1 Het systeem verkoopt de meest courante kaartsoorten voor alle bestemmingen binnen Nederland; de klant betaalt met een pinpas. 1.2 Een geslaagde kaartverkoop verloopt als volgt: 1 De klant start de transactie door een kaartsoort te kiezen. 2 De klant selecteert een bestemming. 3 De klant selecteert een klasse (eerste of tweede klas). 4 De klant geeft aan of gereisd wordt met korting. 5 De klant kiest de reisdatum. 6 De klant kiest het aantal kaartjes. 7 De klant kiest de betalingswijze. 8 De klant voert een pas in. 9 De klant voert een pincode in. 10 De klant bevestigt de opdracht, en neemt de pas uit. 11 Het kaartje wordt gedrukt en uitgegeven. 1.3 Tot en met stap 8 kan de klant de transactie op ieder moment onderbreken door een foutknop in te drukken; het systeem keert dan terug naar de begintoestand. 1.4 Als de klant tijdens de eerste vijf stappen gedurende dertig seconden geen invoer geeft, wordt de transactie onderbroken en keert het systeem terug naar de begintoestand. 1.5 Als de klant een ongeldige pas invoert, wordt dit gemeld, wordt de klant gemaand de pas terug te nemen en keert het systeem terug naar de begintoestand. 1.6 Als de klant een ongeldige pincode invoert, krijgt deze twee keer de gelegenheid om dit te herstellen. Bij een derde foutieve invoer wordt de pas ingenomen. Het systeem meldt dat de pas is ingenomen wegens driemaal invoeren van een foute pincode en keert terug naar de begintoestand. Voor de andere kaartsoorten (zie na punt 10 van de NS-tekst) kunnen alternatieve specificaties opgesteld worden. 54 OUN

Hoofdstuk 6 Software requirements 6.4 De formulering laat in het midden wat nu precies de verplichting is. Men moet altijd schoenen aan hebben, maar men hoeft niet altijd een hond bij zich te hebben! 2 Uitwerking van de zelftoets 1 Zie bladzijde 118 van het tekstboek. 2 Solution 6.7 There are many possibilities here. Some suggestions are shown in Table 6.1. TABLE 6.1 Non-functional requirements Non-functional Description Examples requirement Performance Performance requirements The system must process at set out limits to the least 150 transactions per performance expected of the second. system. These may be expressed in different ways The maximum response time depending on the type for any user request should be of system e.g. number of 2 seconds. transactions processed per second, response time to user requests, etc. Implementation Defines specific standards or The system design must be methods which must be used developed using an objectin the development process oriented approach based on the for the system. UML process. The system must be implemented in C++, Version 3.0. Usability Defines requirements which All operations which are relate to the usability of the potentially destructive must system by end-users. include an undo facility which allows users to reverse their action. (This is an example of a functional requirement which is associated with a non-functional requirement) potentially All operations which are destructive must be highlighted in red in the system user interface. Safety Safety requirements are The system must be certified concerned with the overall according to Health and Safety safe operation of the system. Regulations XYZ 123. 3 a Eisen 1, 3 en 4 zijn functionele eisen; de andere eisen zijn nietfunctioneel. b Eisen 2 en 5 zijn producteisen. Eis 2 is een performance-eis. Eis 5 past niet goed in de classificatie van figure 6.3; dat komt omdat het beschouwde horloge een volledig systeem is dat uit meer dan software bestaat. Eis 6 is een implementatie-eis. OUN 55

Software engineering 4 a Het gaat hier om de interfaces van bestaande systemen waar het nieuw te bouwen systeem mee samen moet werken, en dus niet om gebruikersinterfaces. b Zie bladzijde 135 van het tekstboek. c Dit zijn procedurele interfaces; ze zijn gespecificeerd in de APIspecificaties. 5 a Zie figure 6.16 op bladzijde 137 van het tekstboek. b Zie bladzijde 139 van het tekstboek. 56 OUN