Requirements in een groot project Gastcollege Technische Universiteit Eindhoven Harry Nieboer
Insteek vandaag Requirements in de praktijk Eerst Requirements in een klein project (één software engineer in project van één week) Daarna Requirements in een groot project Requirements met Endeavour Aansluiting van Requirements op Architectuur, Bouw en Test Vragen gewoon tussendoor Op het einde tijd voor discussie 2
Requirements in project van Nick Visie Probleembeschrijving Oplossingbeschrijving Stakeholders Ondersteunde taken 3 Later ook: Alternatieven en foutafhandeling bij ondersteunde taken
Requirements in een Endeavour project Endeavour Visie document Needs Probleem Probleem Ruimte Features Oplossings Ruimte Endeavour Use Case specificaties Software Requirements (Use cases + aanv req) v Endeavour aanvullende requirements Endeavour requirements management plan Endeavour Use Case model Test Cases Design Documentatie 4
Visie Document Visie document Identificatie Stakeholder Vertegenwoordigde groep STHR001 Service Provider Eigenaar van de ASP Dhr. B.I.G. applicatie. Moneymaker STHR002 Service Provider Administrator Mevr. M. InControl Toekomstig beheerteam van de applicatie. STHR003 BOVAG Eigenaren van garagebedrijven en keuringsstations STHR004 STHR005 STHR006 Referentie Garagebedrijf De Krik Referentie Keuringsstation Effe Checken Referentie Leasemaatschappij Superlease Medewerkers van garagebedrijven die met de applicatie gaan werken Keurmeesters van keuringsstations die met de applicatie gaan werken Medewerkers van leasemaatschappijen die met de applicatie gaan werken Betrokkenheid Stelt resources beschikbaar. Neemt GO/NOGO besluiten. Toekomstig beheerder van de ASP applicatie. Helpt mee met opstellen requirements voor beheer. Inbrengen financieel inzicht. Inbrengen praktijk kennis. Helpen mee met opstellen requirements voor de applicatie Inbrengen praktijk kennis. Helpen mee met opstellen requirements voor de applicatie Inbrengen praktijk kennis. Helpen mee met opstellen requirements voor de applicatie. 5
Use-Case lifecycle Discovered Use Case model Briefly Described Outlined Use Case specificaties Fully Described 6
Use-Case lifecycle Discovered Use Case model
Use-Case lifecycle Discovered Briefly Described? Use Case specificaties
Use-Case lifecycle Discovered Briefly Described Outlined Use Case specificaties Flow Keur voertuig 1. Het Systeem toont lijst met ingeplande keuringen 2. De Keurmeester selecteert het te keuren voertuig. 3. Het Systeem toont detailscherm voor het geselecteerde voertuig. 4. De Keurmeester legt de keuringswerkzaamheden vast. 5. Het Systeem meldt keuring aan het RDW. 6. Het Systeem meldt of voertuig is aangemerkt voor een steekproef. 7. Indien de Keurmeester nog meer voertuigen wil keuren, ga verder bij 1. Hier eindigt de Use Case. Diepgang outline hangt af van doel bv Duidelijkheid scope bv Initiële planning
Use-Case lifecycle Discovered Briefly Described Outlined Fully Described
Insteek vandaag Requirements in de praktijk Eerst Requirements in een klein project (één software engineer in project van één week) Daarna Requirements in een groot project Requirements met Endeavour Aansluiting van Requirements op Architectuur, Bouw en Test Vragen gewoon tussendoor Op het einde tijd voor discussie 12
Het project van Nick Opdrachtnemer Nick Software Engineer 12 jaar ervaring Werkt het liefst alleen 13 Project Management Requirements Architectuur en Design Test...
Een project met meer mensen Project Management Beheer Requirements Business Development Architectuur Test 14
Lifecycle van een Use Case Requirements Architectuur Development Gereviewd Test Gereviewd Geïdentificeerd Kort omschreven Outline beschreven Volledig beschreven Geanalyseerd Gerealiseerd Test beschreven Getest Geaccepteerd 15
Architectuur in project van Nick 17 Architectuur Eenvoudig, Client/Server Schets
Standard 3 3 Standard 2 2 Standard 1 1 Taskset 5 Taskset 4 Taskset 1 Taskset 3 Taskset 2 Taskset 1 Platform Service Platform Service Process Service Process Service Process Service Business Service Business Service Business Service Architectuur bij Endeavour project Service Oriented Architectuur Wijzig de mindset van applicaties naar solutions Herbruikbare services Definieert de project structuur Communicatie Planning Design, Testen, etc Front End A Front Ends Business Services Geeft de richting van de aanroep aan Configuration item afhankelijkheid Service Bus Legenda Legenda Functionele deelgebieden front-end Endeavour Referentie Architectuur definieert de best practices en principes Legacy System Legacy System Toekomstig Configuration Item Front End B Legacy systeem Process Services Toegang extern domein Integration Services Cluster Configuration Item Gegevensopslag Platform Service(s) Platform Services 18
Logische Solution Architectuur 19
Use Case Realisatie 20
Analysis / LSA 21
View Of Participating Classes View of Participating Classes UC01 Keur voertuig Garage Management Systeem + ToonKeuringen() + ToonKeuringsrapport() «functional area» Keur voertuigen «process service» Voertuig keuring «integration service» RDW APK + OphalenAfspraken(RQM_Afspraak) : RSM_Afspraak + OphalenKeuringen(bool) : RSM_Keuring «business service» Klant + OphalenKlant(RQM_Klant) : RSM_Klant «business service» Voertuig + OphalenAfspraken(RQM_Afspraak) : RSM_Afspraak + BewarenKeuring(RQM_Keuring) : void 22
User-Experience Modeling Een systematische aanpak om te beschrijven wat de gebruiker ervaart Inhoud van (onderdelen van) vensters beschrijven User-Experience Elements Mogelijke navigaties tussen vensters User-Experience Navigation Maps Vensters gerelateerd aan Use Cases User-Experience Storyboards 25
User-Experience Elements Vensters Stereotype: screen Venster met een titelbalk Formulieren Stereotype: form Groep of lijst uitvoervelden Invoerformulieren Stereotype: inputform Groep of lijst invoervelden 26
User-Experience Elements cd Participants «screen» SelecterenVoertuig Zoek auto() : void Selecteer voertuig() : void $Er is niets gevonden() : void Zoek auto 0..* «input form» Zoek auto Kenteken: string Merk: AutoMerk Type: AutoType «form» Auto beknopt Kenteken: string Merk: AutoMerk Type: AutoType 27
User-Experience Navigation Maps Globaal overzicht over ALLE Use Cases Geen forms en input forms Toont alle mogelijke navigatie tussen vensters Welke vensters roepen andere vensters aan 28
User-Experience Navigation Maps cd User-Experience Nav igation Map User-Experience Navigation Map Garage Management Systeem «screen» SelecterenVoertuig Selecteer voertuig «screen» KlantEnVoertuig Afbreken Bewaren «screen» TaakAfronden Selecteren Selecteer klant andere klant «screen» SelecterenKlant 29
User-Experience Storyboards Detail overzicht van één Use Case Toont alle mogelijke navigatie tussen (onderdelen van) vensters Toont alle details van vensters en forms 30
User-Experience Storyboards cd Participants Participants Use-Case Storyboard UC20 Wijzigen voertuigeigenaar Garage Management Systeem «screen» TaakAfronden Bevestigen() : void Afbreken() : void Begin hier Bewaren «screen» SelecterenVoertuig Selecteer voertuig() : void $Er is niets gevonden() : void Selecteer voertuig «screen» KlantEnVoertuig Kilometerstand: int Selecteren andere klant() : void Bewaren() : void Afbreken() : void Afbreken Selecteren andere klant Selecteer klant «screen» SelecterenKlant Zoek klant() : void Selecteer klant() : void $Geen klanten gevonden() : void Zoek auto 1 0..* «input form» Zoek auto Kenteken: string Merk: AutoMerk Type: AutoType 0..* «form» Auto beknopt Kenteken: string Merk: AutoMerk Type: AutoType «input form» Zoek klant Naam: string Straatnaam: string Postcode: string Woonplaats: string «form» Klant beknopt Naam: string Straatnaam: string Postcode: string Woonplaats: string Zoek auto() : void 1 1 «form» Klant «input form» Auto Brandstof: BRANDSTOF Gewicht: int Kenteken: string Kleur: string Merk: AutoMerk Prijs: currency Type: AutoType Verkoopdatum: date Naam: string Straatnaam: string Huisnummer: string Postcode: string Woonplaats: string Telefoonnummer: string Rekeningnummer: string 31
User-Experience Storyboards cd Participants Begin hier «screen» KlantEnVoertuig «screen» SelecterenVoertuig Selecteer voertuig() : void $Er is niets gevonden() : void Selecteer voertuig Kilometerstand: int Selecteren andere klant() : void Bewaren() : void Afbreken() : void 1. Het Systeem toont SelecterenVoertuig. 2. De Administratief Medewerker zoekt op basis van kenteken of merk en/of type. 3. Het Systeem toont een lijst met voertuigen die aan de zoekcriteria voldoen. 4. De Administratief Medewerker selecteert een voertuig. 32
Test in project van Nick Vroeg testen, Vaak testen Door Nick zelf 34
Test bij Endeavour project Gestructueerd rond Use Cases Gaat gelijk op in de planning Sterke relatie Bij elke Use Case een Test Case Testen maakt gebruik van Scenario s in de Use Case 35
Flows en Scenarios Eén Basic Flow Succesvol van start tot finish Meerdere Alternatieve Flows Reguliere varianten Uitzonderingen Fouten Scenario = Basic Flow + # Alt Flows Basic Flow Basic Flow + A1 Basis Flow + A2 A2 BF A1 37
Test Case sluit aan op Use Case Hoofdflow UC <Naam> 1. Het Systeem toont. 2. De Actor. 3. Het Systeem. 4. De Actor. 5. Het Systeem. 6. De Actor heeft de mogelijkheid om: a.. Ga verder bij stap 7 b.. Ga verder bij stap 9 c.... Voer subflow UC.SF1 uit Alternatieve flows A2.1 Indien De Actor Ga verder bij stap 5 A5.1 Wanneer het Systeem Ga verder bij stap 4 A5.2 Wanneer het Systeem Ga verder bij stap 1 A9.1 Wanneer het Systeem Ga verder bij stap 7 A9.2 Indien het Systeem Ga verder bij stap 11 Voorbeeld Use Case specificatie Testscenario s ID Req.ID Belang Flows Korte omschrijving SV01 UCXX M BF Basic flow SV02 UCXX M BF F6b BF SV03 UCXX M BF A2.1 BF SV04 UCXX M BF A9.2 BF SV05 UCXX M BF A2.1 F6b BF SV06 UCXX M SF SF1.F3a BF Subflow eindigt voortijdig SV07 UCXX M SF SF1.F3b Use Case eindigt voortijdig Testcases ID Scenario Req. Belang Regr. Beschrijving ID Ind. SC001 SV01 UCXX.01 M VBS Alleen verplichte velden ingevuld SC002 SV01 UCXX.01 M REG Alle velden ingevuld SC003 SV01 UCXX.01 M REG Alleen verplichte velden ingevuld SC004 SV01 UCXX.01 M REG Niet alle verplichte velden ingevuld Testsuites Testscripts
Insteek vandaag Requirements in de praktijk Eerst Requirements in een klein project (één software engineer in project van één week) Daarna Requirements in een groot project Requirements met Endeavour Aansluiting van Requirements op Architectuur, Bouw en Test Vragen gewoon tussendoor Op het einde tijd voor discussie 39
Discussie Is Requirements volgens jullie moeilijk? Is Requirements volgens jullie belangrijk? Kan iederen Requirements werk doen? Wat willen jullie nog weten van Requirements 40
Insteek vandaag Requirements in de praktijk Eerst Requirements in een klein project (één software engineer in project van één week) Daarna Requirements in een groot project Requirements met Endeavour Aansluiting van Requirements op Architectuur, Bouw en Test Vragen gewoon tussendoor Op het einde tijd voor discussie 41
Vragen en Antwoorden 42
Bedankt Harry Nieboer harryn@infosupport.com http://nl.linkedin.com/in/harrynieboer Evelien Frederiks evelienf@infosupport.com http://nl.linkedin.com/pub/evelien-van-denberg-frederiks/0/559/5b5 43