42
Struktureret system udvikling Minimodul 1: Introduktion, UML og use cases Rasmus L. Olsen, 27 februar 2008

Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm: Use case notation Use Case Aktør “Deltagelse i

Embed Size (px)

Citation preview

Page 1: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Struktureret system udvikling

Minimodul 1: Introduktion, UML og use cases

Rasmus L. Olsen, 27 februar 2008

Page 2: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Introduktion

Kursets hjemmeside• http://www.kom.aau.dk/~rlo/…

Kursus holder• Rasmus L. Olsen• Færdiguddannet i 2003 • Opnået PhD i Januar 2008• Arbejdet i Europæisk forskningsprojekter

• MAGNET 2004-2005 Udvikling af nyt netværksparadigmer (Personal Networks)

• MAGNET Beyond 2006-2008 (http://www.ist-magnet.org)• OPEN fra 2008

Page 3: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Kursus indhold og mål

• System begreb• Analyse, kravspecifikation og accepttest• Designprincipper og faldgruber• Testprincipper• Implementering• Dokumentation• Bruger, -installations og vedligeholdelses- dokumenter

Page 4: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Opfyldelse af studiemål

• Læsning af litteratur (primære og supplerende)• Forelæsninger• Opgaveløsninger (med udgangspunkt i jeres projekter)

• Analysedokumenter• Designdokumenter• Reviewdokument(er)

• Aktiv deltagelse i opgaveløsninger• Fordelagtigt, også i forhold til jeres projekt

Page 5: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Kursusoversigt og tidsplan

Mm1: Introduktion til kursus, UML og use cases (i dag – 11 Februar, 2008)Mm2: Kravspecifikation og accepttest (18/2)Mm3: SPU og UML (11/3)Mm4: Design af system (18/3)Mm5: Test design og planlægning (25/3??)

Page 6: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Dagens program

• Baggrund og motivation for Struktureret System Udvikling (SPU)• Introduktion til SPU og V-model• UML og use cases• Opgaver

Page 7: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Dagens program

• Baggrund og motivation for Struktureret System Udvikling (SPU)• Introduktion til SPU og V-model• UML og use cases• Opgaver

Page 8: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Problem stilling

Page 9: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

System udvikling set i perspektiv

Marked

EfterspørgselUdbud

Forventninger Resultater

Kvalitets mangel

Krav

System udvikling Forretningsmuligheder

Resultater

Udbud

MarkedEfterspørgsel

Forventninger

Krav Udbud

Ekstern proces(Samfundet)

Intern proces(Virksomheden)

Udbud

Kvalitets mangel

Page 10: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Hvorfor SPU?

• Tidsstyring• Vedligeholdelse• Dokumenentation• Risikominimering• Kvalitetsoptimering• Genbrug• m.m.

Page 11: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Fejlretningsudgifter

Jo længere henne i udviklingsprocessen, jo mere koster det at rette fejl i tid og penge

Krav Design Kodning Test Drift

Relativ udgift forfejlretning

1

10

100

• Systematisk design gør det lettere at rette fejl

• Kravfejl -> Designfejl• Designfejl -> Kodefejl • Mangel på erfaring

Page 12: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Styringsproblemer

Hvad går galt her?• Problemer bliver først opdaget når koden er skrevet

og skal integreres!

Krav Design Kodning Test Integration

Planlagt

Realitet

Udgifter/Tidsplan/Problemer

• Manglende kravspecifikation-> ringe estimeringsgrundlag

• Mangel på indsigt i SWudviklingsproblematik

• Dårlig koordinering mellemudviklere pga. dårlige interfacedesign

• Mangel på forståelse mellemudviklere

Page 13: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Software fejludvikling

Introduktion af SW opdateringer• Skal være nemt for brugeren og ikke stille alt for store krav• Skal ikke introducere flere problemer end der løses

• Spaghetti kode er svært atvedligeholde- Umuligt at huske efter 10 mdr.

• Udokumenteret kode ersvært at udvikle videre på- Centreret omkring få udviklere- Øger afhængighed af disse

Ustruktureret/Udokumenteret

UdviklingStart V1.0 V2.0 V3.0

Fejlhyppighed

Held

Uheld

Struktureret

Page 14: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Undtagelser

• En person om en simpel ting, f.eks.• Ens personlige hjemmeside• Et lille hobby projekt• Eller mere generelt: når der er tale om et minimalt personligt system

til engangsbrug• Ellers altid en god ide at bruge struktureret system design

Page 15: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Konklusion

• Systemudvikling er mere håndværk end videnskab !

• Der “markedsføres” mange forskellige metoder!• Ingen passer præcist til nogen situation !

• Skal skræddersys til det aktuelle tilfælde !• To metoder I vil støde på i løbet af tiden på AAU:

• Struktureret SystemUdvikling (el. Systematisk SystemUdvikling) - SPU• Objekt Orienteret Analyse og Design (OOAD)

Page 16: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Udvikling er ikke let, specielt ikke hvis det skal ende med succes!Højere succesrate: Struktureret Systemudvikling

Konklusion

Page 17: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Dagens program

• Baggrund og motivation for Struktureret System Udvikling (SPU)• Introduktion til SPU og V-model• UML og use cases• Opgaver

Page 18: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

SPU-UML konceptet

1. Benyt en udviklingsmodel2. Udarbejd en kravspecifikation3. Design før kodning4. Planlæg test5. Anvend review teknikken6. Foretag projektstyring7. Dokumentér undervejs8. Foretag konfigurationsstyring

Page 19: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Apparatudvikling

Page 20: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

SPU - udviklingsmodellen

Page 21: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

SPU – udviklingsmodellen (Detaljeret)

Page 22: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

SPU V-model (Software)

Kravspec.

Programdesign

Procesdesign

Moduldesign

Implementation

Procesintegration

Accept-test

Modultest

Modulintegration

Page 23: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

SPU V-model (Hardware)

Kravspec.

Strukturdesign

HW moduldesign

Layoutdesign

Wrapning/Printudlægning

Integrationstest

Accept-test

Forbindelsestest

HW Modultest

Page 24: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Dagens program

• Baggrund og motivation for Struktureret System Udvikling (SPU)• Introduktion til SPU og V-model• UML og use cases• Opgaver

Page 25: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Krav specifikation

• Opstilling af de rigtige krav er en disciplin for sig selv.• Typisk 20% af de samlede udviklingsresurser• Beskriver hvad der skal udvikles, og IKKE hvordan!• Nogle af metoderne til at finde de rigtige krav er:

• Brugerinddragelse• Use Case-teknikken• Genbrug af krav• Krav fra samfundet, regler/love etc.

Page 26: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Relation mellem kravspecifikation og use cases

Page 27: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

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/

Page 28: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Use case notation

Use Case

Aktør“Deltagelse i”

Association

SystemGrænse(Ofte underforstået)

Page 29: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Use case, eksempel

Kunde

Finansorgan

Online butik

Bestil vareSalgs

AssistentBehandle kunde-

regning

Send ordre

Page 30: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

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

Page 31: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Relationer mellem grundkomponenter

SpecifikAktør

SpecifikAktør

Aktør

Grund Use Case

Udvidet Use Case

<<extend>>

Grund Use Case

Specifik Use Case

Grund Use Case

InkluderetUse Case

<<include>>

Page 32: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Eksempel på relationer mellem grundkomponenter

ValiderUser

Sendordre

<<include>>

CheckPassword

Håndterordre

<<extend>>Kunde

Kommercielkunde

Privatkunde

Page 33: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Use case komponenter

Komponent Beskrivelse SyntaksUse case En sekvens af handlinger, som

et system (eller andre enheder) kan udføre, interagere med aktørerne i use caset

Aktør Et sammenhængende sæt af roller, som brugere af use caset, har mens denne interagere med use caset.

System grænse

Repræsentation af grænse mellem det fysiske system og aktørerne som interagerer med det fysiske system

Use caseName

Aktør navn

Page 34: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Use case, relationer

Relation Beskrivelse SyntaksAssociation Interaktion mellem en aktør og

en use caseGeneralisering Relation mellem en generel use

case og en mere specifik use case

Udvidelse Relation mellem en udvidet use case, baseret på en given use case

Indeholdende Relation mellem en given use case, og i en base use case

<<extend>>

<<include>>

Page 35: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Use case beskrivelse

• Use Case navn:• f.eks. overvåg temperatur

• Målbeskrivelse:• hvad er det use caset tilbyder aktøren

• Normal scenario:• beskrevet ved et antal trin

• Undtagelser:• beskrivelse af undtagelser og afvigelser samt hvordan de

håndteres af systemet

Page 36: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Eksempel – MP3 afspiller

“Lytteren”

MP3 afspiller

Afspil mp3 fil

Vis ID-tag info

Upload af mp3 filer

PC

Forstærkeranlæg

“Uploader”

Page 37: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Use case eksempel, tekst beskrivelse #1/2

• Use Case Navn: Afspil mp3 fil• Målbeskrivelse: På baggrund af ”lytterens” valg dekodes og afspilles en

mp3 fil• Nomal scenario:

1.“Lytteren” tænder for mp3 afspilleren2.Et musiknummer vælges3.Dette afspilles4.Afspilning stopper

Page 38: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Use case eksempel, tekst beskrivelse #2/2

• Undtagelser:• Enkodningen ikke understøttet

1.send besked til display2.fortsæt til næste nummer

• Ingen filer uploaded1.send besked til display

Page 39: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Dagens program

• Baggrund og motivation for Struktureret System Udvikling (SPU)• Introduktion til SPU og V-model• UML og use cases• Opgaver

Page 40: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Opgaver

• Med udgangspunkt i jeres projekt, udarbejd et analysedokument. Sehttp://kom.aau.dk/~rlo/lectures/systemDesign08/Skitse%20analysedokument.htm

• Opgaverne er tænkt følgende jeres projekt og bør ses som yderligere support til projektet

• Review af analyse dokumenter udføres (senere) af to grupper

Page 41: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Grupper

.... Fyldes ind her: (Gruppe nr. + rumnummer)

Page 42: Minimodul 1: Introduktion, UML og use caseskom.aau.dk/~rlo/lectures/ssd_09/mm1.pdf · • Visual Paradigm:  Use case notation Use Case Aktør “Deltagelse i

Referencer

The system engineering process, Boarder, J.C.;Engineering Management Conference, 1995. 'Global Engineering Management: Emerging Trends in the Asia Pacific'., Proceedings of 1995 IEEE Annual International25-28 June 1995 Page(s):293 – 298, Digital Object Identifier 10.1109/IEMC.1995.524596