Struktureret system udvikling Minimodul 2: UML og use cases

Relaterede dokumenter
Struktureret system udvikling Minimodul 1: Introduktion, UML og use cases

UML til kravspecificering

Struktureret system udvikling Minimodul 2: Kravspecifikation og accepttest

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Svendeprøve Projekt Tyveri alarm

Indholdsfortegnelse for kapitel 1

Bias Reducing Operating System - BROS -

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

Model og metode til programudvikling. Om undertegnede... Struktureret Systemudvikling. Dagens menu... Tankevækkende erfaringer med systemudvikling...

Struktureret system udvikling Minimodul 2: Kravspecifikation og accepttest

Accepttest Specifikation For. Gruppen

My Shop. Funktioner, oversigt: Kom i gang: Online shop system

3. SEMESTER 2. PROJECT MULB Gruppe september 2015

Opsætning af Bolyguard/Scoutguard MG982 til GPRS

Vejledning til udviklingsprocessen for projekt 2

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Struktureret system udvikling Minimodul 3: Kravspecifikation og accepttest

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

Redaktørmanual TYPO3 Version 6.2

Integration med Microsoft SharePoint

Katrines Kælder Kasseapparat

Iterativ og Agil udvikling

VDI Manual v. 5 Indhold

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

Software Design (SWD) Spørgsmål 1

KURSER INDENFOR SOA, WEB SERVICES OG SEMANTIC WEB

Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag

Secure O matic. Gruppe 5 2. SEMESTERPROJEKT. Udgave. Accepttest-specifikation

Web services i brug. Anvendelse uden for biblioteksverdenen

spørgsmål til CATIA 3DEXPERIENCE on the Cloud

Ruko SmartAir. Updater installation

Bruger Manual For WT-215W WIFI relæ

Fra Computer til Virkelighed. TPE-kursus Elektroniske Systemer P1

Computer Networks Specielt om Infrastrukturer og Teknologi

BEC. NetScaler Unmanaged VPN. Installation. Bruger Vejledning. Version

DATABASE Projekt 1-3. semester

QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: APP: SMARTEYES PRO PORT: SecVision - Quick Manual v1.0

Articles... 3 I gang med Adobe Connect... 4 Når du skal invitere deltagere til et Adobe Connect møderum...11 Sådan redigerer du en video optaget i

Instruktion til UNGDOMSSKOLEWEB BETALINGSMODULER. Version 1.04

DE BEAR TECHNOLOGY. o Processer, metoder & værktøjer. info@dbtechnology.dk

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE

Installation af Point Yomani terminal

VA 7.4 Tips og Tricks. Torben Skov

Scope Management ITU #ituscpmgt

GECKO Booking Gavekort-/shop modul vejledning

Agenda. Muligheder for anvendelse. Komponenter. Features. Restore muligheder. DR og TSM integration. Repository. Demo. Spørgsmål

Netværk & elektronik

Overvejelser ved valg af IT system

Indholdsfortegnelse for kapitel 2

I denne guide vil jeg prøve at give en beskrivelse af hvad man skal gøre for at få adgang til Microsoft Azure via Dreamspark når man går på Easj.

Software Design (SWD) Spørgsmål 1

Vejledning til Autodesk Account Maintenance Subscription

Procesbeskrivelse - Webprogrammering

Kom godt igang med Inventar registrering

Indholdsfortegnelse. EasyIQ IDM 5.4 Brugermanual

Velkommen til. Kravspecifikation i Softwareudvikling Workshop hos Brüel & Kjær. 14. september 2012,

Diagnostic og Toolbox Instruktion. Lindgaard Pedersen A/S. Rev. 1.0 Side 1 / 14

Vejledning til. LearnSpace

Informatik C robotter

Brugervejledning - trin for trin til VIRMIK med PathXL based on contents Note: Eksamen SMEA0615E er brugt som eksempel

Vejledning til det digitale eksamenssystem. Heilesen, Simon. Publication date: Document Version Peer-review version

VPN-klienten SecureClient for TDC Managed Firewall

Automatisk Vandingssystem

Curriculum Vitae. Uddannelse: 2001 Civilingeniør fra Danmaks tekniske universitet, fagprofil: styring og regulering.

SSO - FAQ - Kendte problemer med opsætninger

Overvågningskamera. ~Af Svend, Valdemar og Frederik~

FRA USECASE TIL TESTCASE HP TEST BRUGERKONFERENCE, 10. APRIL 2014

Arduinostyret klimaanlæg Afsluttende projekt programmering C

ONE BUSINESS - ONE APP BRUGER MANUAL

FORCE Inspect Online Manual v FORCE Inspect Online Manual. 1 af 18

Projekt database. 3 Semester - Mul a Projekt 1. Yaser Osman cph-mo102@cphbusiness.dk. Dan Eskildsen cph-de32@cphbusiness.dk

Succesfuld implementering af automatiseret test

IBM IT Manager Konference John Leadbetter

Visility HSB vejledning

GUIDE TIL CLOUD DRIVE

Vejledning og kommentarer til ny version

Opstartsvejledning ATS aktørudgave

Quick guide til e-learn.sdu.dk (Blackboard) for studerende

Quick guide til e-learn.sdu.dk (Blackboard) for studerende

2017 Recordit.nu version 2. Call Recorder Kvikguide for Apresa Client

Adobe Acrobat Connect brugergrænsefladen

BEC. Cisco AnyConnect Unmanaged VPN. Installation. Brugervejledning. Version

Transkript:

Struktureret system udvikling Minimodul 2: UML og use cases Rasmus L. Olsen, 4 februar 2011 1

Evalueringen af Struktureret SystemUdvikling Udgangspunktet for evalueringen af kurset baserer sig på de opgaver der bliver lavet i de tre workshops som afholdes i løbet af kurset. Hver workshop vil starte med et oplæg til et givet problemstilling, der løses gruppevis i løbet af den afsatte tid. Løsningen til denne problemstilling dokumenteres, således der for hver workshop dannes et dokument på en 5-10 sider, som danner udgangspunkt i evalueringen af faget. Faget evalueres individuelt og mundtlig med en bestået/ikke bestået karakter. 2

Dagens program UML System definition og afgræsninger Elementer Eksempler Use case beskrivelse Hvad og hvorfor Betragtninger Sammenhæng mellem projektforløb og use cases U model Kravspecifikation Test Opgaver 3

Problemet med traditionelle krav, features og begrænsninger De beskriver ikke hvad systemet gør Tendens til at beskrive hvad slutmålet skal være Tendens til at være uafhængige af hinanden og i tid Sammenhænget mellem kravene mistes og forståelsen for kravene er svære at opnå Svære at konvertere til design Fordi der mangler et tidsligt sammenhæng er udvikleren ofte nød til at gætte sig frem til hvad der skal ske i systemet De er svære at teste Fordi de mangler et sammenhæng Svaret på spørgsmålet ingen stillede: Use Cases! 4

Unified Modelling Language (UML) UML (Unified Modelling Language) = en OMG (Object Management Group) standard (www.omg.org) OMG er en sammenslutning af ca. 800 virksomheder. UML anvendes i dag verden over som beskrivelsesværktøj i forbindelse med udviklingsprojekter. Eksempler på værktøjer: ArgoUML: http://argouml.tigris.org/ Visual Paradigm: http://www.visual-paradigm.com/ 5

Use case notation Et interface Aktør Use Case Deltagelse i Association System Grænse (Ofte underfor stået) 6

Use case, eksempel Online butik Kunde Bestil vare Behandle kunderegning Salgs Assistent Send ordre Finans organ 7

Mål med Use Cases En Use Case: specificerer en komplet funktionalitet, som har værdi for brugeren Aktør (aktør/bruger) befinder sig eksternt i forhold til systemet. Kan være en person, hardware, m.m. Aktør er karakteriseret ved sin rolle, hvilket også skal fremgå af navnet! systemet betragtes som en black box skal ikke omhandle design! kun det antal use cases der er nødvendige for at forstå systemets funktionalitet 8

Relationer mellem grundkomponenter Grund Use Case Grund Use Case Aktør <<extend>> Specifik Use Case Udvidet Use Case Grund Use Case Specifik Aktør Specifik Aktør Inkluderet Use Case <<include>> 9

Eksempel på relationer mellem grundkomponenter Kunde Send ordre <<extend>> Håndter ordre <<include>> Valider User Kommerciel kunde Privat kunde Check Password 10

Use case komponenter Komponent Beskrivelse Syntaks Use case Aktør System grænse En sekvens af handlinger, som et system (eller andre enheder) kan udføre, interagere med aktørerne i use caset Et sammenhængende sæt af roller, som brugere af use caset, har mens denne interagere med use caset. Repræsentation af grænse mellem det fysiske system og aktørerne som interagerer med det fysiske system Use case Name Aktør navn 11

Use case, relationer Relation Beskrivelse Syntaks Association Interaktion mellem en aktør og en use case Generalisering Relation mellem en generel use case og en mere specifik use case Udvidelse Indeholdende Relation mellem en udvidet use case, baseret på en given use case Relation mellem en given use case, og i en base use case <<extend>> <<include>> 12

Eksempel MP3 afspiller MP3 afspiller Lytteren Afspil mp3 fil Vis ID-tag info Forstærker anlæg Uploader PC Upload af mp3 filer 13

Faldgruber #1 Kamera Åben shutter Kamera Tag billede Fotograf Flash Fotograf Formater kort Luk shutter Hvor er problemet? Åbne/lukke shutter + flash er ikke isolerede anvendelser! Tidsmæssig afhængighed er bedre beskrevet på andre måder... Sekvensdiagrammer, men dem kommer vi til 14

Faldgruber #2 Server Server Start/stop User Browser Servicer side Browser Servicer side Admin Hvad er galt her? Interaktionen mellem User og Browser er temmelig uklar... Browser Sæt URL Vi kan sætte flere use cases op, der hænger sammen User Modtag side Server 15

Faldgruber #3 Check in passager <<uses>> Vej baggage <<uses>> Tildel sæde <<extends>> <<uses>> Tildel vinduesæde <<extends>> <<uses>> Tildel midtersæde Hvad er problemet nu her? Ved <<uses>> indikerer vi at en opgave har en delopgave der skal løses før hovedopgaven er løst -> vi kan ikke både tildele et vindue og midtersæde... Ved <<extends>> kan vi udtrykke der er flere måder at udføre en generel opgave på 16

Dagens program UML System definition og afgræsninger Elementer Eksempler Use case beskrivelse Hvad og hvorfor Betragtninger Sammenhæng mellem projektforløb og use cases U model Kravspecifikation Test Opgaver 17

Use cases - et andet eksempel ATM Kunde Bank system Identifikation Hæve Indsætte Konto kontrol Auditør Forestil jer et banksystem Hvad skal banksystemet gøre? Hvad er dets ansvar? Hvad er aktørens ansvar? Hvad skal brugeren gøre for at kunne udføre de forskellige ting? Hvad nu hvis noget går galt? Brugeren gør noget uventet? Maskinen gør noget uventet? 18

Hvad er en use case? Karakteristika og formål En mekanisme til at beskrive operationelle krav til systemet En beskrivelse af det tidslige forhold mellem system og aktør involveret i systemets anvendelse En teknik til at udtrykke hvem, hvad og hvordan et system skal opføre sig En metode til at klargøre en sekvens af aktiviteter, som tilsammen har en værdi for en ekstern bruger En metode til at klargøre afvigende interaktioner mellem bruger og aktør 19

Use cases Use cases fanger overordnede opførsel af systemet Anvendes til Design og udvikling af system Fastholdelse af projektfokus Test og verifikation af overordnet system Kommunikationsmiddel mellem forskellige aktører involveret i udviklingsprocessen 20

Use cases - overordnet Use case start Undtagelse Fortsæt mod Use case mål Undtagelse Use case mål Fortsæt mod Use case mål Use case beskrivelse 21

Use case beskrivelse 22

Hvem gør hvad og hvornår? Bruger ATM System 1) Indsætter kort 2) Læser magnet/chip 4) Indtaster PIN 3) Spørger om PIN 8) Trykker knap for hæve 10) Indtaster beløb 11) Trykker OK 5) Verificerer PIN og kunde 7) Viser menu 6) Henter muligheder 9) Spørger efter mængde 14) Trykker JA 12) Vis mængde 13) Spørger om udprint 17) Tager kvittering 16) Printer kvittering 19) Tager kort 18) Spytter kort ud 21) Tager penge 20) Spytter penge ud 11) Valider mængde og subtraher 15) Henter historik 23

Eksempel på use case beskrivelse 24

Udvidelse af use cases + = Use case beskrivelse Udvidelser til at fjerne antagelser Komplette Use cases 25

Problemet med flere aktører 26

Alt afhænger af de øjne der ser systemet Online billetsystem Kunde Bestil billet Validerings system Begge diagrammer er korrekte, men bemærk En er et server baseret systemmodel En er en forretnings model Kunde Sælger Billetforretning Køb billet Validerings system 27

Vi skal forstå de forskellige roller Typisk involverede i forhold til systemet, krav og udvikling Udvikler Analytiker Bruger(e) Support folk Installatører Operatører Slut bruger Andre systemer Hvem skal være involveret i udviklingen af use cases? Eller med hvilke øjne skal man angribe use cases? 28

Og de øjne der ser #1 Udviklere Typisk førstevalg fordi de er tilgængelige Typisk også et forkert valg, fordi de fokuserer på løsninger Brugere Gode til at bidrage med råmateriale til use cases Ser oftest ikke use cases som en nødvendighed Det er da soleklart for enhver, det skal være således!!! Med det, er det indforstået at...!!! Spørger man forskellige brugere, får man forskellige svar 29

Og de øjne der ser #1 Analytikeren Faciliterer use case udviklingen og danner bro mellem udviklere og brugere Skal være i stand til At kunne stille de rigtige spørgsmål Opnå enighed mellem involverede Have en høj tolerance overfor ukomplethed Evne at tænke abstrakt Det er med analytikerens øjne der skrives use cases! 30

Forskelle mellem de tre En bruger kan f.eks. sige... hvis et medlem er godkendt til medicin, så... Hvor analytikeren straks vil spørge Hvad definerer godkendelse? Hvad medicin? Hvad er et medlem? Er vi alle enige om hvad et medlem er? En udviklers tankegang er meget lineær Jeg skal med det her, løse det her problem (fra A til Å via B, C, osv.) En analytikers tankegang er mere fokuseret på formålet Hvad arbejde udfører systemet for brugeren/brugerne? Og ikke hvordan udførest arbejdet! 31

Klar, parat, start Hvordan kommer vi godt fra start med use cases? Definer mål og start fra hvad i ved Hvad nu, når use casen er ukomplet/fyldt med huller? Iterer, gå videre med huller; på et tidspunkt bliver de fyldt ud Hvad nu hvis vi ikke ved hvad der starter en use case? Let drop det... indtil videre. Marker det så i kan se startshændelse ukendt TBD Gå igang med indholdet i use casen Over tid, og via iteration vil i opdage den manglende start 32

Karakteristika af use cases Dårlige use cases beskriver Lavtliggende funktioner fra et teknisk synspunkt CRUD funktioner (Create, Retrieve, Update og Delete) Hvilken teknologi der anvendes, f.eks. Bluetooth Ydelsesorienteret funktioner Sammenhæng mellem delsystemer Gode use cases beskriver En identificerbar transaktion der har en brugsværdi for den angivne bruger/aktør Metoder hvormed en aktør opnår sine forudsatte mål 33

Do s og Don ts Brug verber Use cases er altid aktive og orienteret til at bruge verber F.eks. skriv personaliser indhold istedet for personalisering hvis man beskriver en use case der tillader en bruger at personalisere indholdet på en webside (f.eks. ved et content management system) Brug definitive ord (undgå uklarheder) Undgå fraser som systemet kan måske..., funktion xyz kan udbydes i nogle tilfælde...,... i tvivlstilfælde udføres en generel funktion. Hvis der er tvivl om noget, efterlad det i en tilstand af TBD og diskuter det med den relevant aktør eller anden relevant person 34

Do s og Don ts Anvend strukturet sprogbrug Sammenlign f.eks. The order entry system has an interface to a backend system and to a terminal It computes and displays the the sum of the order item s cost The orderer (a system or an entry person) identifies the name of the customer & the items on the order The system displays the cost of the total order If the item is in stock and the client has sufficient credit,... Hvad? Hvor? Hvordan? 35

Do s og Don ts Undgå at udtrykke mål og elementer i tekniske termer og specifik teknologi Dårligt: Byg XML parsing infrastruktur Måske forståelig for en programmør (men til hvilket formål?) Ikke forståelig for en slutbruger Bedre: Formatter data til udveksling Tillader forskellige typer af dataformater og ikke kun XML Mere forståelig for en slutbruger (ok ok, måske ikke lige min bedstemor) Sluttelig, kan man i samme ombæring udnytte formuleringer som Use case beskrivelsen Formatter data til udveksling er udført successfuldt med XML parsing modulet 36

Do s og Don ts Selvom det kan være nødvendigt at holde ting i en TBD tilstand, så forsøg at lukke huller hurtigst muligt Åbne ender tillader andre at fortolke uden at der er enighed Køkkenvask syndromet (Scope creep ) Det bliver mere svært at vurdere den tid det tager at udvikle use casen Use cases uden undtagelser siger stort set vi har en perfekt verden Og det har vi jo ikke!!! Der vil altid være en bruger der liiiige skal prøve noget... (og det kunne være mig!) 37

Andre gode hints Overvej hvorfor i har use casene Find ordre -> Hvorfor skal x finde en ordre? Måske i virkeligheden i prøver på at sende ordre...? Søg index -> Hvorfor skal indekset søges? Måske i virkeligheden i gerne vil håndtere indeks? Lokaliser vognmand -> Hvorfor vil i lokalisere vognmand? Måske i virkeligheden i vil tilknytte vognmand rute..? Pointen: at være kritisk overfor de use cases i vil beskrive! Use cases skal beskrive på passende niveau hvad systemet skal gøre. Spørg jer selv: Hvad vil i med denne use case? 38

Dagens program UML System definition og afgræsninger Elementer Eksempler Use case beskrivelse Hvad og hvorfor Betragtninger Sammenhæng mellem projektforløb og use cases U model Kravspecifikation Test Opgaver 39

Overordnet planlægning og styring Analyse Forståelse og overblik for alle involverede parter Krav Overordnet design Satellit Hardware Software Integration Identifikation af fejl, mangler og forbedringer Test Erfaringer 40

Kravspecifikation U modellen igen Analyse og kravspecifikation OO Analyse Arkitektur Design SW og HW implementering af use case X System Integrationstest Accepttest Use Case Model Iteration 41

Relation mellem kravspecifikation og use cases 42

Detaljeret planlægning Drej satellit Hardware Analyse Valg Implementering Software Test Integration Test Modellering Impl. Test Link til overordnet analyse 43

Link mellem use case og blokke 44

Relation til tests En use case er mål orienterede En use case indeholder scenarier Hvert scenarie medfører mindst en funktionel test Hvert scenarie har en start og slutbetingelse, som kan måles og vejes! Ellers må det ændres! En funktionel test indeholder specifikation fra alle scenarier Mere om det i senere minimodul vdr. tests 45

Dagens program UML System definition og afgræsninger Elementer Eksempler Use case beskrivelse Hvad og hvorfor Betragtninger Sammenhæng mellem projektforløb og use cases U model Kravspecifikation Test Opgaver 46

Opgaver - i grove træk Hente UML værktøj og lære det at kende, tegn use case diagram for jeres P1 projekt UML use case for satellit projekt NB! Hold det overordnet! UML use case for jeres P2 projekt Beskriv use case; husk undtagelser! 47