1 / 35

Introduktion til SundhedsIT – koncepter og systemer

Introduktion til SundhedsIT – koncepter og systemer. Uddybning af enkelte emner fra 1. semester. Dagens gang. Præsentation af det kommende semester Objekters adfærd samt opgave Generalisering og mapning samt opgave Aktivitetsdiagram og opgave

kenaz
Download Presentation

Introduktion til SundhedsIT – koncepter og systemer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduktion tilSundhedsIT – koncepter og systemer Uddybning af enkelte emner fra 1. semester

  2. Dagens gang • Præsentation af det kommende semester • Objekters adfærd samt opgave • Generalisering og mapning samt opgave • Aktivitetsdiagram og opgave • Beskrivelsesteknikker til operationer og funktioner samt opgave

  3. Præsentation af semesteret • ..\index.html

  4. 0..* Start 0..* Flyvende ting 0..* 1 1 1 Flyveleder Landingsbane 1 1 1 Fly 0..* Helikopter Landing 0..* 0..* Klasse struktur

  5. Adfærd • Et objekt kommer ud for lidt af hvert i sit liv: • Et SK45:fly bliver lavet, letter, lander, letter, lander, letter og falder ned – Dette er hændelsesforløbet for SK45 • Et SK46:fly bliver lavet, letter, lander, letter, lander… 50673 gange … letter og lander og bliver skrottet – Dette er hændelsesforløbet for SK46 • Begge objekter tilhører klassen Fly. Reglerne for ”korrekt” / ”mulig” fly opførsel beskrives i et ADFÆRDSMØNSTER for klassen Fly

  6. Adfærdsmønster • Adfærdsmønsteret for fly definerer lovlig adfærd for objekter af klassen Fly (alt det som ikke er lovligt er ulovligt ) • Adfærdsmønstre beskrives med lovlige tilstande for objekter og med de hændelser som ændrer tilstanden for objekterne til en anden lovlig tilstand lette Fly I luften På jorden lande

  7. Tilstandsdiagrammer I • Adfærdsmønstre kan beskrives i tilstandsdiagrammer: • Tilstande: • Transformationer (her hændelser) I luften lande

  8. Tilstandsdiagrammer II • Typiske strukturer i tilstandsdiagrammer: Selektion: I luften På jorden lande Falde ned Skrottet En af flere mulige hændelser

  9. Tilstandsdiagrammer II • Typiske strukturer i tilstandsdiagrammer: sekvens: I luften På jorden lande + skrotte Skrottet Hændelser i fastlagt rækkefølge

  10. Tilstandsdiagrammer III • Typiske strukturer i tilstandsdiagrammer: iteration: På jorden reparere Hændelser gentagesuden Tilstandsskift Eller lette I luften På jorden lande

  11. Tilstandsdiagrammer IV Fødsel Betingelser Død Attributter

  12. Opgave • Tegn tilstandsdiagrammer for samtlige klasser • Hændelserne er • lande • melde klar • få starttilladelse • flyve ind • reparere • skrotte • falde ned • Opstil en hændelsestabel

  13. Opgave mapning af generaliseringer Brug mapningsreglerne til at mappe ovenstående strukturer og vurder hvilken der er bedst egnet.

  14. Aktivitetsdiagrammet Formål og notation Bennet kap.5

  15. Aktivitetsdiagrammet (Activity diagram) Formål: • Beskrivelse af arbejdsopgaver og forretningsgange • Beskrivelse af en funktion eller operation i systemet Aktivitetsdiagrammer er velegnede til at beskrive arbejdsopgaver i de tidlige faser i systemudviklingsforløbet. Forretningsaktivitetsdiagrammer kan være et godt udgangspunkt for definition af use cases. Til beskrivelse af operationer findes der bedre diagrammer! (fx sekvensdiagrammer)

  16. Add a New Client Assign StaffContact [no campaign to add] [campaign to add] Add New Campaign Notation • Start tilstand • Aktiviteter • Rektangler med runde hjørner • Meningsfuldt navn • Transitioner • Pile med åbne pilehoveder • Beslutningspunkt • Betingelser • Slut tilstand

  17. CampaignManager Accountant Client Record Completion of a campaign Issue invoice Pay invoice Record client payment Notation Svømmebaner • Lodrette kolloner • Angiver hvilken person, organisationeller afdeling, der er ansvarlig for aktiviteterne i kollonen

  18. CampaignManager Accountant Client Record Completion of a campaign Issue invoice Pay invoice Record client payment Notation Svømmebaner • Lodrette kolloner • Angiver hvilken person, organisationeller afdeling, der er ansvarlig for aktiviteterne i kollonen

  19. Author Reviewer Typesetter Printer Write Chapter Review Chapter Revise Chapter [book not complete] [book complete] Typeset Book Correct Proofs Reset Book Print Book AKTIVITETSDIAGRAMMET Et godt diagram indeholder en enkel notation, der er intuitivt let at forstå. Kompleksiteten i systemudvikling kræver brug af mange forskellige diagrammer, med hvert deres formål

  20. Write Chapter Plan Chapter Produce First Draft Author Reviewer Typesetter Printer Revise Draft Write Chapter [not satisfied] [satisfied] Review Chapter Add Exercises Revise Chapter [book not complete] Add References to Bibliography [book complete] Typeset Book Correct Proofs Reset Book Print Book Detaljeskjul En udbredt metode til at skule mængden af detaljer er nedbrydning af diagrammer, hvor hver nedbrydning har fokus på et delelement, der så beskrives i yderligere detaljer

  21. Øvelse Tegn et aktivitetsdiagram over en patient-indlæggelse og behandling på et sygehus.

  22. Operationsspecifikationer Bennett kap. 10

  23. Operationsspecifikationer Specifikation af operationer er en detaljeret beskrivelse af de enkelte operationer, enten i form af struktureret sprog, formaliserede tabeller eller aktivitetsdiagrammer. Formålet med specifikation af operationer: • Fra et analyseperspektiv: Sikring at brugernes behov er forstået. • Fra et designperspektiv: Et grundlag for korrekt programmering. • Fra et testperspektiv: Test at metoderne gør, hvad de skal.

  24. Operationsspecifikationer Hvornår skal specifikationerne laves ? ”det er vigtigt, at lave alle operationer inden designfasen.” ”ikke før end der foreligger et stabilt klassediagram.” Skal alle specifikationer specificeres? Rumbaugh: ”trivielle” operationer skal ikke specificeres, da de er selvforklarende. Bennett: Alle operationer skal specificeres, af hensyn til fremtidig vedligeholdelse.

  25. Trivielle og ikke-trivielle operationer Ikke trivielle operationer er med mange sideeffekter: • Opretter eller sletter objektinstanser • Opdaterer attributværdier • Opretter eller sletter relationer mellem objekter • Foretager beregninger • Kalder metoder I andre objektet Trivielle operationer er uden sideeffekter: • Forespørger på data uden at ændre noget.

  26. Operationsspecifikationer beskrevet som Kontrakter En service mellem to objekter kan defineres som en kontrakt mellem de aktive objekter. • Kontrakter har fokus på input og output. • Hvad der sker I metoderne betragtes som en blackbox. • Kontrakter har derfor fokus på udførelsen af services, men ignorerer implementering. Black box Output Input

  27. Operationsspecifikationer beskrevet som kontrakter I en kontrakt beskrives, hvordan klient objektet skal opnå en service. En kontrakt kan indeholde følgende punkter: • Formålet med operationen. • Operationens signatur, herunder returtype • Beskrivelse af indre logik. • Andre operationer der kaldes. • Hændelser der videreføres til andre objekter • Attributer, der sættes ved eksekvering af operationen • Retursvar ved exceptions (f.eks. forkerte parameter) • Ikke-funktionelle krav (fx svartid) Kontrakter er ikke UML-notation eller specifikt objektorienteret

  28. Specifikation af den indre logik To hovedkategorier: • Algoritmiske metoder - fokuserer på hvordanoperation fungerer • Ikke-algoritmiske metoder fokuserer på hvadoperationen skal opnå White box Black box

  29. Rule 3 Conditions and actions Rule 1 Rule 2 Conditions Is budget likely to be overspent? N Y Y Is overspend likely to exceed 2%? - N Y Actions No action X Send letter X X Set up meeting X Specifikation af den indre logikIkke-algoritmiske metoder Beslutningstabeller: En beslutningstabel viser de betingelser, der medfører en bestemt handling Beslutningstabeller er velegnede, hvor der er mange forskellige betingelser, der resulterer i forskellige handlinger

  30. Specifikation af den indre logikIkke-algoritmiske metoder Før- og efterbetingelser: pre-conditions: creativeStaffObject is valid gradeObject is valid gradeChangeDate is a valid date post-conditions: a new staffGradeObject exists new staffGradeObject linked to creativeStaffObject new staffGradeObject linked to previous value of previous staffGradeObject.gradeFinishDate set equal to gradeChangeDate Operationen CreativeStaff.changeGrade() Use case: Change the grade for a member of staff • Idéen med før- og efter-betingelser er at specificere: • Hvilke betingelser skal være til stede føren operation kan udføres? • Hvilken ny tilstand befinder systemet sig i efterat operationen har kørt.

  31. Specifikation af den indre logikAlgoritmiske metoder En algoritme beskriver den interne logik i en operation Algoritmiske specifikationer gør brug af kontrolstrukturerne: • Sekvens • Selektion • Iteration Forretningsmæssige regelsæt kan med fordel specificeres ved: • Struktureret sprog • Pseudokode • Aktivitetsdiagrammer

  32. Specifikation af den indre logikAlgoritmiske metoder Struktureret sprog Målet er at beskrive den algoritmiske struktur og logik i et program uden, at blive programmeringssprogs specifik. Derfor er det let at skrive og læse. Struktureret sprog anvendes ofte til at præciserer forretningslogik. Eksempel: If client contact is ”Luis” Set discount rate to 5% Else Set discount rate to 2 % End if Do while there are more adverts for campaign Get next advert Get cost for this advert Add to cumulative cost for campaign End do selektion iteration

  33. Specifikation af den indre logikAlgoritmiske metoder Pseudo-kode Pseudo-kode er i sprogform tættere på det konkrete Programmeringssprogs syntaks og notation. Målet er at danne et direkte grundlag for implementeringen. Pseudo-kode er derfor typisk en designaktivitet. Eksempel: { while more adverts { get advertcost; cumcost = cumcost + advertcost; next advert; } }

  34. Specifikation af den indre logikAlgoritmiske metoder Aktivitetsdiagrammer Er velegnede til at specificere kompleks algoritmisk logik på grund af den letforståelige grafiske notation. Er en del af UML notationen. Eksempel: Aktivitetsdiagram for CreativeStaff.calculateBonus( )

  35. Opgave • Regler for opsigelsesvarsel fra arbejdsgiver: • Inden udløb af : Varsel fra arbejdsgiver • 5 måneder 1 måned • 2 år og 9 måneder 3 måneder • 5 år og 8 måneder 4 måneder • 8 år og 7 måneder 5 måneder • Herefter 6 måneder • Vi har en medarbejder-klasse med bl.a. en attribut ansættelsesdato og en operation beregnOpsigelsesvarsel der returnerer et antal måneder for varsel for opsigelse fra arbejdsgiver. • 1.Beskriv reglerne i et beslutningstræ • 2.Beskriv reglerne i en beslutningstabel • 3.Beskriv operationen i struktureret naturligt sprog • 4.Beskriv operationen med et aktivitetsdiagram

More Related